issrg.utils.gui.repository
Class LDAPMultiBrowser

java.lang.Object
  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.io.Serializable, 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.

Author:
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
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
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
binaryAttrs, DEFAULT_ROOT_NAME, NO_TIMEOUT
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
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
equals
 

Field Detail

cb

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


connLbl

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


connections

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


xmlED

protected XMLEditor xmlED
Reference to the XML Editor


CONFIG

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

availableConnectionsLDAP

protected AttributeComboBox availableConnectionsLDAP
Constructor Detail

LDAPMultiBrowser

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.

Parameters:
that -
node -
Method Detail

getContentPanel

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.

Returns:
A JPanel with both the needed components.

getConnectionNames

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.


getAttributeTypes

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

connectTo

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

compare

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

sortNodes

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.

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

actionPerformed

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

setXMLEditor

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


getXMLEditor

public XMLEditor getXMLEditor()
Gets the XML Editor Reference

Returns:
the XML Editor Reference

setNode

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

getNode

public java.lang.String getNode()
Returns:
the node

XMLChanged

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

setEnabled

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.

Overrides:
setEnabled in class LDAP_DIT

setBackground

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

getBrowserName

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

setBrowserName

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

getBrowserLogo

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

Specified by:
getBrowserLogo in interface RepositoryMultiBrowser

setBrowserLogo

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

refreshConnection

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