Class LDAPMultiBrowser

  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by issrg.utils.gui.repository.LDAP_DIT
                      extended by issrg.utils.gui.repository.LDAPMultiBrowser
All Implemented Interfaces:
RepositoryMultiBrowser, XMLChangeListener, java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer,, java.util.Comparator, java.util.EventListener, javax.accessibility.Accessible
Direct Known Subclasses:
ACMLDAPBrowser, Editor2LDAPBrowser, PTLDAPBrowser

public class LDAPMultiBrowser
extends LDAP_DIT
implements RepositoryMultiBrowser, java.awt.event.ActionListener, XMLChangeListener, java.util.Comparator

An extension of the LDAP_DIT component. This extension provides better and extended functionality of the original component.

The LDAP_DIT component, is a component that can be used to connect to LDAP directories, and browse these directories. Although a limitation to this component is that the directories cannot be changed, and that the root element must be hard coded in the code. If a computer is connected late to a network connection the predefined LDAP directory will not load.

This Component therefore arranges these short comings. It adds a drop down list on top of the LDAP_DIT, with the current connections that we can swap, during a policy writing session. Connections are obtained from a configurable xml file in the program.

Christian Azzopardi
See Also:
LDAP_DIT, issrg.editor2.LDAPConfiguration, issrg.editor2.ConfigurationComponent, Serialized Form

Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JPanel
Nested classes/interfaces inherited from class javax.swing.JComponent
Nested classes/interfaces inherited from class java.awt.Container
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
Field Summary
protected  AttributeComboBox availableConnectionsLDAP
 javax.swing.JComboBox cb
          Drop down list for the connection names.
protected  java.lang.String CONFIG
protected  org.w3c.dom.Node[] connections
          List of Nodes containing the available LDAP connections.
protected  javax.swing.JLabel connLbl
          Label that introduces the connection drop down list.
protected  XMLEditor xmlED
          Reference to the XML Editor
Fields inherited from class issrg.utils.gui.repository.LDAP_DIT
Fields inherited from class javax.swing.JComponent
Fields inherited from class java.awt.Component
Fields inherited from interface java.awt.image.ImageObserver
Constructor Summary
LDAPMultiBrowser(AbstractConfigComponent that, java.lang.String node)
          Sets the initial connection to an LDAP server.
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          When a selection occurs in the ComboBox, we take the index of the Item that was selected, and find it in our sorted arrays.
 int compare(java.lang.Object o1, java.lang.Object o2)
          Comparator for sorting the data so that ignores case.
 void connectTo(org.w3c.dom.Element e)
 java.lang.String[] getAttributeTypes(java.lang.String acType)
 javax.swing.ImageIcon getBrowserLogo()
          Get the image logo of this browser
 java.lang.String getBrowserName()
 void getConnectionNames()
          Method that obtains a list of connection names from the configComponent static variable in PEApplication.
 javax.swing.JPanel getContentPanel()
          Method used to display the component.
 java.lang.String getNode()
 XMLEditor getXMLEditor()
          Gets the XML Editor Reference
 void refreshConnection(boolean refreshNewConfig)
 void setBackground(java.awt.Color bg)
 void setBrowserLogo(javax.swing.ImageIcon browserLogo)
          Set a image logo for this browser
 void setBrowserName(java.lang.String browserName)
          Set the browser name.
 void setEnabled(boolean enable)
          Method that overrides the LDAP_DIT setEnabled.
 void setNode(java.lang.String node)
 void setXMLEditor(XMLEditor xmled)
          Sets the XML Editor Reference
 org.w3c.dom.Node[] sortNodes(org.w3c.dom.Node[] unsorted)
          Method to sort the names Array in alphabetical order, and in doing so, does not loose its references towards the other corresponding arrays.
 void XMLChanged(XMLChangeEvent ev)
          When XML has changed, we want it to refresh the connection names listed in the drop down list, therefore this must call the getConnectionNames() method.
Methods inherited from class issrg.utils.gui.repository.LDAP_DIT
connectTo, connectTo, dnWithoutBaseDN, getBinaryAttributes, getConnectionTimeoutValue, getSelectedNode, new_Tree, setBinaryAttributes, setConnectionTimeoutValue, setRoot, setRoot, setRoot, setSelectionListener, showSelectionDialog, showSelectionDialog
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Comparator

Field Detail


public javax.swing.JComboBox cb
Drop down list for the connection names.


protected javax.swing.JLabel connLbl
Label that introduces the connection drop down list.


protected org.w3c.dom.Node[] connections
List of Nodes containing the available LDAP connections.


protected XMLEditor xmlED
Reference to the XML Editor


protected final java.lang.String CONFIG
See Also:
Constant Field Values


protected AttributeComboBox availableConnectionsLDAP
Constructor Detail


public LDAPMultiBrowser(AbstractConfigComponent that,
                        java.lang.String node)
Sets the initial connection to an LDAP server. Also sets the component to listen to any XMLChanges.

that -
node -
Method Detail


public javax.swing.JPanel getContentPanel()
Method used to display the component. Consists of a JComboBox and and LDAP_DIT component. The LDAP_DIT will display the Directory chosen in the above JComboBox.

A JPanel with both the needed components.


public void getConnectionNames()
Method that obtains a list of connection names from the configComponent static variable in PEApplication. In the process it will also gather a connectionURL Array with a list of the corresponding connections. This connectionURL array will be used in the actionPerformed method to set the connection to the root node.


public java.lang.String[] getAttributeTypes(java.lang.String acType)


public void connectTo(org.w3c.dom.Element e)


public int compare(java.lang.Object o1,
                   java.lang.Object o2)
Comparator for sorting the data so that ignores case.

Specified by:
compare in interface java.util.Comparator


public org.w3c.dom.Node[] sortNodes(org.w3c.dom.Node[] unsorted)
Method to sort the names Array in alphabetical order, and in doing so, does not loose its references towards the other corresponding arrays.

for e.g. if we have two connections, one array is storing the names of the connections and the other is storing the urls. We do not want the case were the URLs get mixed up between the two, due to sorting, so the method, sorts the names array, and links to the corresponding URL,ports and baseDNs array.

an object array, that contains the 4 arrays in a sorted manner.


public void actionPerformed(java.awt.event.ActionEvent e)
When a selection occurs in the ComboBox, we take the index of the Item that was selected, and find it in our sorted arrays.

The Connection will then be attempted.

Specified by:
actionPerformed in interface java.awt.event.ActionListener


public void setXMLEditor(XMLEditor xmled)
Sets the XML Editor Reference


public XMLEditor getXMLEditor()
Gets the XML Editor Reference

the XML Editor Reference


public void setNode(java.lang.String node)
node - the node to set


public java.lang.String getNode()
the node


public void XMLChanged(XMLChangeEvent ev)
When XML has changed, we want it to refresh the connection names listed in the drop down list, therefore this must call the getConnectionNames() method.

The combobox is removed from being an ActionListener, otherwise the getConnectionNames() will try to populate the dropDown List and will continuosly fire Action Events. When the connection Names are then refreshed, the combobox is set to be an ActionListener once again.

Specified by:
XMLChanged in interface XMLChangeListener


public void setEnabled(boolean enable)
Method that overrides the LDAP_DIT setEnabled. When disabling this class, each component that makes it up, must be disabled as well.

setEnabled in class LDAP_DIT


public void setBackground(java.awt.Color bg)
setBackground in class javax.swing.JComponent


public java.lang.String getBrowserName()
Specified by:
getBrowserName in interface RepositoryMultiBrowser
return the name of this browser as a string which maybe used to label this components if used in another component such as JTabbedPane


public void setBrowserName(java.lang.String browserName)
Description copied from interface: RepositoryMultiBrowser
Set the browser name. This browser name maybe used to label this component when used by another swing component such as a JTabbedPane.

Specified by:
setBrowserName in interface RepositoryMultiBrowser


public javax.swing.ImageIcon getBrowserLogo()
Description copied from interface: RepositoryMultiBrowser
Get the image logo of this browser

Specified by:
getBrowserLogo in interface RepositoryMultiBrowser


public void setBrowserLogo(javax.swing.ImageIcon browserLogo)
Description copied from interface: RepositoryMultiBrowser
Set a image logo for this browser

Specified by:
setBrowserLogo in interface RepositoryMultiBrowser


public void refreshConnection(boolean refreshNewConfig)
Specified by:
refreshConnection in interface RepositoryMultiBrowser