org.PingOO.DLAI.slave.UGM
Class UGM

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JInternalFrame
                          |
                          +--org.PingOO.DLAI.lib.PWidget.PInternalFrame
                                |
                                +--org.PingOO.DLAI.lib.appli.PSlave
                                      |
                                      +--org.PingOO.DLAI.slave.UGM.UGM

public class UGM
extends PSlave

The User & Group Manager.
Allows to create and edit the entries in the LDAP directory used in the PingOO distribution.

Since:
PingOO 2.0
Version:
2.0.2
Author:
Fabrice Bouyé (bouye@cur-archamps.fr)
See Also:
PSlave, Serialized Form

Inner Class Summary
private  class UGM.AdministratorAliasAction
          Action for creating a new administrator alias.
protected  class UGM.AllowRadioButton
          Radio button for creation
private  class UGM.DeleteAction
          Action : delete node.
private  class UGM.DirectoryViewer
          Customized tree viewer that displays the LDAP directory.
private  class UGM.ExitAction
          Action : exit slave.
private static class UGM.GroupTreeCellRender
          Renderer for the group tree (tree used when moving nodes.
private  class UGM.InsidePanel
          The inside panle of UGM.
private  class UGM.MoveComponentAction
          Action moving a node to a new home.
private  class UGM.NewComponentAction
          Action for new component.
private  class UGM.PrintAction
          Action : print selected node.
private  class UGM.PropertiesAction
          Action : show the properties of the selected node.
private  class UGM.ReloadTreeAction
          Action : reload the tree.
private  class UGM.SaveComponentAction
          Action : save selected node.
private  class UGM.SaveRunnable
          Saves the entire content of the tree.
private  class UGM.SortNodeAction
          Action : sort the content of the selected node.
private  class UGM.SortTreeAction
          Action : sort the cotent of the tree.
private  class UGM.UserAliasAction
          Action for creating a new user alias.
private  class UGM.UserGroupAction
          Action for creating a new user group.
private  class UGM.UserSheetAction
          Action for creating a new user sheet.
 
Inner classes inherited from class org.PingOO.DLAI.lib.appli.PSlave
PSlave.SlaveInternalFrameAdapter
 
Inner classes inherited from class org.PingOO.DLAI.lib.PWidget.PInternalFrame
PInternalFrame.PInternalMouseInputListener
 
Inner classes inherited from class javax.swing.JInternalFrame
javax.swing.JInternalFrame.AccessibleJInternalFrame, javax.swing.JInternalFrame.JDesktopIcon
 
Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent, javax.swing.JComponent.IntVector, javax.swing.JComponent.KeyboardBinding, javax.swing.JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AWTTreeLock
 
Field Summary
private  PAction administratorAliasAction
          Action : creates an adminsitrator.
private  DisplayPanel currentPanel
          The currently displayed panel.
private  DirectoryTree currentTree
          The current tree.
private  PAction deleteAction
          Action : destroys a node.
private  UGM.DirectoryViewer directoryViewer
          The tree scroll pane.
private  PAction exitAction
          Action : exiting the program.
private  UGM.InsidePanel inPanel
          Defines the inner panel used in this appli.
private  LogoWindow logoWindow
          The logo window.
private  PAction moveComponentAction
          Action : moves a component.
private  PAction newComponentAction
          Action : asks the input of the user to determine which node he wants to create.
private  PAction printAction
          Action : prints the currently selected node.
private  PAction propertiesAction
          Action : displays the properties of the selected node.
private  PAction reloadTreeAction
          Action : reload the tree.
private  Request request
          The request object which dialogs with the server.
private  PAction saveComponentAction
          Action : save the current node.
private  UGM.SaveRunnable saveProg
          The save thread.
private  DirectoryComponent selectedNode
          The currently selected node.
private  PAction sortNodeAction
          Action : sorts the content of a node.
private  PAction sortTreeAction
          Action : sorts the content of the tree
private  PAction userAliasAction
          Action : creates a user alias.
private  PAction userGroupAction
          Action : creates a new group.
private  PAction userSheetAction
          Action : creates a user sheet.
 
Fields inherited from class org.PingOO.DLAI.lib.appli.PSlave
appliListenerList, defaultInternalFrameListener, isInstable, protocol, SLAVE_NUMBER, slaveIdentifier, slaveListenerList, slaveThreadGroup
 
Fields inherited from class org.PingOO.DLAI.lib.PWidget.PInternalFrame
defaultMouseInputListener, manager, module, titleKey, toolTipKey
 
Fields inherited from class javax.swing.JInternalFrame
closable, CONTENT_PANE_PROPERTY, defaultCloseOperation, desktopIcon, FRAME_ICON_PROPERTY, frameIcon, GLASS_PANE_PROPERTY, iconable, IS_CLOSED_PROPERTY, IS_ICON_PROPERTY, IS_MAXIMUM_PROPERTY, IS_SELECTED_PROPERTY, isClosed, isIcon, isMaximum, isSelected, LAYERED_PANE_PROPERTY, maximizable, MENU_BAR_PROPERTY, opened, resizable, ROOT_PANE_PROPERTY, rootPane, rootPaneCheckingEnabled, title, TITLE_PROPERTY, uiClassID
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, alignmentX, alignmentY, ANCESTOR_USING_BUFFER, ancestorNotifier, autoscroller, border, changeSupport, clientProperties, flags, HAS_FOCUS, IS_DOUBLE_BUFFERED, IS_OPAQUE, IS_PAINTING_TILE, KEYBOARD_BINDINGS_KEY, listenerList, maximumSize, minimumSize, NEXT_FOCUS, paintImmediatelyClip, preferredSize, readObjectCallbacks, REQUEST_FOCUS_DISABLED, tmpRect, TOOL_TIP_TEXT_KEY, ui, uiClassID, UNDEFINED_CONDITION, vetoableChangeSupport, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
component, containerListener, containerSerializedDataVersion, dispatcher, layoutMgr, maxSize, ncomponents, serialVersionUID
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, assert, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, changeSupport, componentListener, componentListenerK, componentOrientation, componentSerializedDataVersion, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, hasFocus, height, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, name, nameExplicitlySet, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, RIGHT_ALIGNMENT, serialVersionUID, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowListenerK, x, y
 
Constructor Summary
UGM(UpperProtocol protocol)
          Creates a new users and groups manager.
 
Method Summary
protected  void changePanel(DirectoryComponent component)
          Changes the current panel.
private  void createMenuBar()
          Builds the menu bar.
private  void createToolBar()
          Builds the tool bar.
protected  void enableActions(boolean value)
          Enables or disables actions.
private  DirectoryTree getDirectoryTree()
          Return a tree representation of the current LDAP directory from the server.
 java.awt.Dimension getMaximumSize()
          Returns the maximum size of this component.
 java.awt.Dimension getMinimumSize()
          Returns the minimum size of this component.
 java.lang.String getModule()
          Gives the name of this module.
static javax.swing.Icon getSlaveIcon()
          Returns the icon used for this slave.
static java.lang.String getSlaveName()
          Returns the slave's name.
static java.lang.String getSlaveTitleKey()
          Gives a localized title describing this slave.
static java.lang.String getSlaveToolTipKey()
          Gives a localized tooltip describing this slave.
private  UserSheet[] getUserArray()
          Return an array with all users inside the tree.
private  void passwordChanged(DirectoryComponent component, java.lang.String type)
          Put all method changing the password here.
 void saveTree()
          Save the entire tree.
protected  void setAttributeForComponent(DirectoryComponent component, java.lang.String key)
          Set a specific attribute of the given component in the data base.
protected  void setAttributeForComponent(DirectoryComponent component, java.lang.String key, boolean recursiveSave, java.awt.Container source)
          Set a specific attribute of the given component in the data base.
protected  void setSelectedComponent(DirectoryComponent component)
          Set the currently selected component.
protected  void setSelectedComponent(java.lang.String dn)
          Set the currentlty selected component.
 void start()
          Starts the appli.
 void stop()
          Stops this targeted application by firing an event.
protected  void updateComponent(DirectoryComponent component)
          Updates the state of the givent component by asking its whol attribute set to the server.
protected  void userPasswordChanged(UserSheet user)
          Notify this program that the web password of a user has changed.
protected  void webPasswordChanged(UserSheet user)
          Notify this program that the web password of a user has changed.
 
Methods inherited from class org.PingOO.DLAI.lib.appli.PSlave
addAppliListener, addSlaveListener, fireKillSlave, fireKillTool, fireUpdateLanguage, fireUpdateUI, removeAppliListener, removeSlaveListener, removeTextFromButton, run, setInstable, setModule, setVisible, show
 
Methods inherited from class org.PingOO.DLAI.lib.PWidget.PInternalFrame
getManager, getTextKey, getToolTipKey, setLocalizedTitle, setLocalizedToolTipText, setManager, updateFont, updateLanguage, updateLanguage
 
Methods inherited from class javax.swing.JInternalFrame
addImpl, addInternalFrameListener, createRootPane, createRootPaneException, dispose, doDefaultCloseAction, fireInternalFrameEvent, getAccessibleContext, getBackground, getContentPane, getDefaultCloseOperation, getDesktopIcon, getDesktopPane, getForeground, getFrameIcon, getGlassPane, getJMenuBar, getLayer, getLayeredPane, getMenuBar, getRootPane, getTitle, getUI, getUIClassID, getWarningString, isClosable, isClosed, isIcon, isIconifiable, isMaximizable, isMaximum, isResizable, isRootPaneCheckingEnabled, isSelected, moveToBack, moveToFront, pack, paramString, removeInternalFrameListener, reshape, setBackground, setClosable, setClosed, setContentPane, setDefaultCloseOperation, setDesktopIcon, setForeground, setFrameIcon, setGlassPane, setIcon, setIconifiable, setJMenuBar, setLayer, setLayeredPane, setLayout, setMaximizable, setMaximum, setMenuBar, setResizable, setRootPane, setRootPaneCheckingEnabled, setSelected, setTitle, setUI, startModal, stopModal, toBack, toFront, updateUI, updateUIWhenHidden, writeObject
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, , addAncestorListener, addNotify, addPropertyChangeListener, addVetoableChangeListener, adjustPaintFlags, alwaysOnTop, bindingForKeyStroke, computeVisibleRect, computeVisibleRect, contains, createToolTip, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperties, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getFlag, getGraphics, getHeight, getInsets, getInsets, getLocation, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, keyboardBindings, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paintWithBuffer, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, readObject, rectangleIsObscured, registerKeyboardAction, registerKeyboardAction, registerWithKeyboardManager, removeAncestorListener, removeNotify, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, revalidate, scrollRectToVisible, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFlag, setFont, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, unregisterWithKeyboardManager, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyOrientation, countComponents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, initIDs, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPrint, list, list, locate, minimumSize, nextFocus, paintComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, print, printComponents, printOneComponent, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, areInputMethodsEnabled, bounds, checkImage, checkImage, coalesceEvents, constructComponentName, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, getWindowForObject, gotFocus, handleEvent, hide, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

currentTree

private DirectoryTree currentTree
The current tree.

inPanel

private UGM.InsidePanel inPanel
Defines the inner panel used in this appli.

request

private Request request
The request object which dialogs with the server.

directoryViewer

private UGM.DirectoryViewer directoryViewer
The tree scroll pane.

selectedNode

private DirectoryComponent selectedNode
The currently selected node.

propertiesAction

private final PAction propertiesAction
Action : displays the properties of the selected node.

sortNodeAction

private final PAction sortNodeAction
Action : sorts the content of a node.

sortTreeAction

private final PAction sortTreeAction
Action : sorts the content of the tree

deleteAction

private final PAction deleteAction
Action : destroys a node.

reloadTreeAction

private final PAction reloadTreeAction
Action : reload the tree.

saveComponentAction

private final PAction saveComponentAction
Action : save the current node.

printAction

private final PAction printAction
Action : prints the currently selected node.

exitAction

private final PAction exitAction
Action : exiting the program.

userGroupAction

private final PAction userGroupAction
Action : creates a new group.

userSheetAction

private final PAction userSheetAction
Action : creates a user sheet.

userAliasAction

private final PAction userAliasAction
Action : creates a user alias.

administratorAliasAction

private final PAction administratorAliasAction
Action : creates an adminsitrator.

moveComponentAction

private final PAction moveComponentAction
Action : moves a component.

newComponentAction

private final PAction newComponentAction
Action : asks the input of the user to determine which node he wants to create.

currentPanel

private DisplayPanel currentPanel
The currently displayed panel.

saveProg

private UGM.SaveRunnable saveProg
The save thread.

logoWindow

private LogoWindow logoWindow
The logo window.
Constructor Detail

UGM

public UGM(UpperProtocol protocol)
Creates a new users and groups manager.
Method Detail

getMinimumSize

public java.awt.Dimension getMinimumSize()
Returns the minimum size of this component.
Returns:
The minimum size of this component.
Overrides:
getMinimumSize in class javax.swing.JComponent

getMaximumSize

public java.awt.Dimension getMaximumSize()
Returns the maximum size of this component.
Returns:
The maximum size of this component.
Overrides:
getMaximumSize in class javax.swing.JComponent

start

public void start()
Starts the appli.
Overrides:
start in class PSlave

stop

public void stop()
Stops this targeted application by firing an event.
Overrides:
stop in class PSlave

createToolBar

private final void createToolBar()
Builds the tool bar.

createMenuBar

private final void createMenuBar()
Builds the menu bar.

enableActions

protected void enableActions(boolean value)
Enables or disables actions.
Parameters:
value - The new value to be set.

setSelectedComponent

protected final void setSelectedComponent(java.lang.String dn)
Set the currentlty selected component.
Parameters:
dn - The dn of the selected component.

setSelectedComponent

protected final void setSelectedComponent(DirectoryComponent component)
Set the currently selected component.
Parameters:
component - The targeted component.

changePanel

protected final void changePanel(DirectoryComponent component)
Changes the current panel.
Parameters:
component - The targeted component.

getDirectoryTree

private final DirectoryTree getDirectoryTree()
Return a tree representation of the current LDAP directory from the server.
Returns:
An instance of DirectoryTree or null.

saveTree

public void saveTree()
Save the entire tree. Note : in fact only modified nodes are saved.

setAttributeForComponent

protected final void setAttributeForComponent(DirectoryComponent component,
                                              java.lang.String key,
                                              boolean recursiveSave,
                                              java.awt.Container source)
Set a specific attribute of the given component in the data base.
Parameters:
component - The compoennt ot modify.
key - The key of the modified attribute.

setAttributeForComponent

protected final void setAttributeForComponent(DirectoryComponent component,
                                              java.lang.String key)
Set a specific attribute of the given component in the data base.
Parameters:
component - The compoennt ot modify.
key - The key of the modified attribute.

updateComponent

protected final void updateComponent(DirectoryComponent component)
Updates the state of the givent component by asking its whol attribute set to the server.
Parameters:
component - The component to update.

passwordChanged

private final void passwordChanged(DirectoryComponent component,
                                   java.lang.String type)
Put all method changing the password here.
May add method to change the administrator password as well.
Parameters:
component - the targeted component.
type - The type of the changed password.

getUserArray

private UserSheet[] getUserArray()
Return an array with all users inside the tree.
Returns:
An array of UserSheet.

userPasswordChanged

protected final void userPasswordChanged(UserSheet user)
Notify this program that the web password of a user has changed.
Parameters:
user - The targeted user.

webPasswordChanged

protected final void webPasswordChanged(UserSheet user)
Notify this program that the web password of a user has changed.
Parameters:
user - The targeted user.

getModule

public java.lang.String getModule()
Gives the name of this module.
Note : the name of the module is the same as the appli's name.
Returns:
A String that is the name of this module.
Overrides:
getModule in class PSlave

getSlaveIcon

public static javax.swing.Icon getSlaveIcon()
Returns the icon used for this slave.
Returns:
The icon used to represent this slave.

getSlaveToolTipKey

public static java.lang.String getSlaveToolTipKey()
Gives a localized tooltip describing this slave.
Returns:
A localized tooltip describing this slave.

getSlaveTitleKey

public static java.lang.String getSlaveTitleKey()
Gives a localized title describing this slave.
Returns:
A localized title describing this slave.

getSlaveName

public static java.lang.String getSlaveName()
Returns the slave's name.
Returns:
The slave's name.