org.PingOO.DLAI.lib.appli
Class PSlave

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
Direct Known Subclasses:
Backup, MailSM, Maintenance, MLM, Shutdown, UGM

public abstract class PSlave
extends PInternalFrame
implements PAppli

This class defines all common methods between the different salve applis.
A PSlave is an internal program that runs within the PingOO's DLAI and context and that uses the PingOO Protocol.
Such appli is displayed inside the AppliManager.

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

Inner Class Summary
protected  class PSlave.SlaveInternalFrameAdapter
          Default listener for exiting the slave.
 
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
protected  AppliEventListenerList appliListenerList
          Contains all registered listener for appli events.
protected  javax.swing.event.InternalFrameListener defaultInternalFrameListener
           
private  boolean isInstable
           
protected  UpperProtocol protocol
          The protocol, once correctly initialized can easily send and receive message to and from the server.
private static int SLAVE_NUMBER
          The slave number generator.
private  int slaveIdentifier
           
protected  SlaveEventListenerList slaveListenerList
          Contains all registered listener for slave events.
protected  PThreadGroup slaveThreadGroup
          The thread group associated with this slave.
 
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
PSlave(java.lang.String titleKey, java.lang.String tooltipKey, boolean resizable, boolean closable, boolean maximizable, boolean iconifiable, UpperProtocol protocol)
          Creates a new slave.
PSlave(java.lang.String titleKey, java.lang.String tooltipKey, UpperProtocol protocol)
          Creates a new slave.
PSlave(java.lang.String titleKey, UpperProtocol protocol)
          Creates a new slave.
PSlave(UpperProtocol protocol)
          Creates a new slave.
 
Method Summary
 void addAppliListener(AppliListener listener)
          Adds a specific AppliListener.
 void addSlaveListener(SlaveListener listener)
          Adds a specific SlaveListener.
protected  void fireKillSlave()
          Fire method to tell this application has been killed.
protected  void fireKillTool()
          Fire method to tell this application has been killed.
protected  void fireUpdateLanguage()
          Fire method to change the language of the window.
protected  void fireUpdateUI()
          Fire method to change the look'n feel of the window.
abstract  java.lang.String getModule()
          Gives the name of this module.
static javax.swing.Icon getSlaveIcon()
          Gives an icon to represent this slave.
static java.lang.String getSlaveTitleKey()
          Gives a localized title describing this slave.
static java.lang.String getSlaveToolTipKey()
          Gives a localized tooltip describing this slave.
 void removeAppliListener(AppliListener listener)
          Removes a specific AppliListener.
 void removeSlaveListener(SlaveListener listener)
          Removes a specific SlaveListener.
static void removeTextFromButton(javax.swing.JButton button)
          Removes text from J or P buttons.
 void run()
          Does what the appli does.
protected  void setInstable(boolean isInstable)
           
 void setModule(java.lang.String module)
          Does nothing.
 void setVisible(boolean value)
           
 void show()
           
 void start()
          Starts the appli.
 void stop()
          Stops this targeted application by firing an event.
 
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, getMaximumSize, getMinimumSize, 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

SLAVE_NUMBER

private static int SLAVE_NUMBER
The slave number generator.

slaveIdentifier

private int slaveIdentifier

appliListenerList

protected AppliEventListenerList appliListenerList
Contains all registered listener for appli events.

slaveListenerList

protected SlaveEventListenerList slaveListenerList
Contains all registered listener for slave events.

protocol

protected UpperProtocol protocol
The protocol, once correctly initialized can easily send and receive message to and from the server.

slaveThreadGroup

protected PThreadGroup slaveThreadGroup
The thread group associated with this slave.
All threads created within this slave must be part of this group.

defaultInternalFrameListener

protected final javax.swing.event.InternalFrameListener defaultInternalFrameListener

isInstable

private boolean isInstable
Constructor Detail

PSlave

public PSlave(UpperProtocol protocol)
Creates a new slave.

PSlave

public PSlave(java.lang.String titleKey,
              UpperProtocol protocol)
Creates a new slave.
Parameters:
titleKey - The key used to get the localized title.

PSlave

public PSlave(java.lang.String titleKey,
              java.lang.String tooltipKey,
              UpperProtocol protocol)
Creates a new slave.
Parameters:
titleKey - The key used to get the localized title.
toolTipKey - The key used to get the localized tool tip.

PSlave

public PSlave(java.lang.String titleKey,
              java.lang.String tooltipKey,
              boolean resizable,
              boolean closable,
              boolean maximizable,
              boolean iconifiable,
              UpperProtocol protocol)
Creates a new slave.
Parameters:
titleKey - The key used to get the localized title.
toolTipKey - The key used to get the localized tool tip.
resizable - Indicates if the internal frame is resizable or not.
closable - Indicates if the internal frame is closable or not.
maximizable - Indicates if the internal frame is maximizable or not.
iconifiable - Indicates if the internal frame is iconifiable or not.
Method Detail

start

public void start()
Starts the appli.

stop

public void stop()
Stops this targeted application by firing an event.
If you extends this method, you must make a call to super.stop() after your own actions or the appli will not be killed.

Makes sure all closing actions are finished before firing the event : for exemple you can remove all your registered listeners (if you keept tracks of them) from the EventListener list.

Parameters:
args -  

run

public void run()
Does what the appli does.
Required by the PAppli inheritage.

show

public void show()
Overrides:
show in class javax.swing.JInternalFrame

setVisible

public void setVisible(boolean value)
Overrides:
setVisible in class javax.swing.JInternalFrame

setInstable

protected void setInstable(boolean isInstable)

getSlaveIcon

public static javax.swing.Icon getSlaveIcon()
Gives an icon to represent this slave.
Returns:
The icon representing this slave or null if the slave have no icon.

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.

getModule

public abstract 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 PInternalFrame

setModule

public final void setModule(java.lang.String module)
Does nothing.
Overrides:
setModule in class PInternalFrame

removeTextFromButton

public static final void removeTextFromButton(javax.swing.JButton button)
Removes text from J or P buttons.
Parameters:
button - The button we want to remove the text from.

addAppliListener

public final void addAppliListener(AppliListener listener)
Adds a specific AppliListener.
Specified by:
addAppliListener in interface PAppli
Parameters:
listener - The listener to be added.

removeAppliListener

public final void removeAppliListener(AppliListener listener)
Removes a specific AppliListener.
Specified by:
removeAppliListener in interface PAppli
Parameters:
listener - The listener to be removed.

addSlaveListener

public final void addSlaveListener(SlaveListener listener)
Adds a specific SlaveListener.
Parameters:
listener - The listener to be added.

removeSlaveListener

public final void removeSlaveListener(SlaveListener listener)
Removes a specific SlaveListener.
Parameters:
listener - The listener to be removed.

fireUpdateUI

protected void fireUpdateUI()
Fire method to change the look'n feel of the window.

fireUpdateLanguage

protected void fireUpdateLanguage()
Fire method to change the language of the window.

fireKillSlave

protected void fireKillSlave()
Fire method to tell this application has been killed.

fireKillTool

protected void fireKillTool()
Fire method to tell this application has been killed.