org.argouml.uml.ui
Class TabProps

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byorg.argouml.ui.TabSpawnable
                      extended byorg.argouml.uml.ui.TabProps
All Implemented Interfaces:
Accessible, ArgoEventListener, ArgoModuleEventListener, Cloneable, EventListener, ImageObserver, MenuContainer, org.tigris.swidgets.Orientable, Serializable, TabModelTarget, TabTarget, TargetListener
Direct Known Subclasses:
TabTable

public class TabProps
extends TabSpawnable
implements TabModelTarget, ArgoModuleEventListener

This is the tab on the details panel (DetailsPane) that holds the property panel. On change of target, the property panel in TabProps is changed.

With the introduction of the TargetManager, this class holds its original power of controlling its target. The property panels (subclasses of PropPanel) for which this class is the container are being registered as TargetListeners in the setTarget method of this class. They are not registered with TargetManager but with this class to prevent race-conditions while firing TargetEvents from TargetManager.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
private  JPanel blankPanel
           
private  JPanel lastPanel
           
private  EventListenerList listenerList
          The list with targetlisteners, these are the property panels managed by TabProps.
private static Logger LOG
           
private  String panelClassBaseName
           
private  Hashtable panels
           
private  boolean shouldBeEnabled
           
private  Object target
           
 
Fields inherited from class org.argouml.ui.TabSpawnable
 
Fields inherited from class javax.swing.JPanel
 
Fields inherited from class javax.swing.JComponent
accessibleContext, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
 
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
TabProps()
          The constructor.
TabProps(String tabName, String panelClassBase)
          The constructor.
 
Method Summary
 void addPanel(Class c, PropPanel p)
          Adds a property panel to the internal list.
private  void addTargetListener(TargetListener listener)
          Adds a listener.
 void finalize()
           
 TabModelTarget findPanelFor(Class targetClass)
           
private  void fireTargetAdded(TargetEvent targetEvent)
           
private  void fireTargetRemoved(TargetEvent targetEvent)
           
private  void fireTargetSet(TargetEvent targetEvent)
           
protected  String getClassBaseName()
           
 Object getTarget()
          Deprecated. As of ArgoUml version 0.13.5, the visibility of this method will change in the future, replaced by TargetManager.getInstance().getTarget().
protected  void initPanels()
          Preload property panels that are commonly used within the first few seconds after the tool is launched.
 void moduleDisabled(ArgoModuleEvent event)
          Invoked when a module has been disabled.
 void moduleEnabled(ArgoModuleEvent event)
          Invoked when a module has been enabled.
 void moduleLoaded(ArgoModuleEvent event)
          Invoked when a module has been loaded.
 void moduleUnloaded(ArgoModuleEvent event)
          Invoked when a module has been unloaded.
 Class panelClassFor(Class targetClass)
          Locate the panel for the given class.
 void refresh()
          Refreshes the tab IN TOTAL
private  void removeTargetListener(TargetListener listener)
          Removes a target listener.
 void setOrientation(org.tigris.swidgets.Orientation orientation)
          Set the orientation of the property panel.
 void setTarget(Object t)
          Deprecated. As of ArgoUml version 0.13.5, the visibility of this method will change in the future, replaced by TargetManager.
 boolean shouldBeEnabled(Object t)
          Determines if the property panel should be enabled.
 void targetAdded(TargetEvent e)
          Fired when a target is added to the list of targets.
 void targetRemoved(TargetEvent e)
          Fired when a target is removed from the list of targets
 void targetSet(TargetEvent e)
          Fired when a total new set of targets is set
 
Methods inherited from class org.argouml.ui.TabSpawnable
clone, getOrientation, getTitle, setTitle, spawn
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

LOG

private static final Logger LOG

shouldBeEnabled

private boolean shouldBeEnabled

blankPanel

private JPanel blankPanel

panels

private Hashtable panels

lastPanel

private JPanel lastPanel

panelClassBaseName

private String panelClassBaseName

target

private Object target

listenerList

private EventListenerList listenerList
The list with targetlisteners, these are the property panels managed by TabProps. It should only contain one listener at a time.

Constructor Detail

TabProps

public TabProps()
The constructor.


TabProps

public TabProps(String tabName,
                String panelClassBase)
The constructor.

Parameters:
tabName - the name of the tab
panelClassBase - the panel class base
Method Detail

finalize

public void finalize()
See Also:
Object.finalize()

setOrientation

public void setOrientation(org.tigris.swidgets.Orientation orientation)
Set the orientation of the property panel.

Specified by:
setOrientation in interface org.tigris.swidgets.Orientable
Overrides:
setOrientation in class TabSpawnable
Parameters:
orientation - the new orientation for this property panel
See Also:
org.argouml.swingext.Orientable#setOrientation(org.argouml.swingext.Orientation)

initPanels

protected void initPanels()
Preload property panels that are commonly used within the first few seconds after the tool is launched.


addPanel

public void addPanel(Class c,
                     PropPanel p)
Adds a property panel to the internal list. This allows a plugin to add a register a new property panel an run-time. This property panel will then be displayed in the detatils pane whenever an element of the given metaclass is selected.

Parameters:
c - the metaclass whose details show be displayed in the property panel p
p - an instance of the property panel for the metaclass m

setTarget

public void setTarget(Object t)
Deprecated. As of ArgoUml version 0.13.5, the visibility of this method will change in the future, replaced by TargetManager.

Sets the target of the property panel. The given target t may either be a Diagram or a modelelement. If the target given is a Fig, a check is made if the fig has an owning modelelement and occurs on the current diagram. If so, that modelelement is the target.

Specified by:
setTarget in interface TabTarget
Parameters:
t - the target to set
See Also:
TabTarget.setTarget(java.lang.Object)

refresh

public void refresh()
Description copied from interface: TabTarget
Refreshes the tab IN TOTAL

Specified by:
refresh in interface TabTarget
See Also:
TabTarget.refresh()

findPanelFor

public TabModelTarget findPanelFor(Class targetClass)
Parameters:
targetClass - the target class
Returns:
the tab model target

panelClassFor

public Class panelClassFor(Class targetClass)
Locate the panel for the given class.

Parameters:
targetClass - the given class
Returns:
the properties panel for the given class, or null if not found

getClassBaseName

protected String getClassBaseName()
Returns:
the name

getTarget

public Object getTarget()
Deprecated. As of ArgoUml version 0.13.5, the visibility of this method will change in the future, replaced by TargetManager.getInstance().getTarget().

Returns the current target.

Specified by:
getTarget in interface TabTarget
Returns:
the target
See Also:
TabTarget.getTarget()

shouldBeEnabled

public boolean shouldBeEnabled(Object t)
Determines if the property panel should be enabled. Returns true if it should be enabled. The property panel should allways be enabled if the target is an instance of a modelelement or an argodiagram. If the target given is a Fig, a check is made if the fig has an owning modelelement and occurs on the current diagram. If so, that modelelement is the target.

Specified by:
shouldBeEnabled in interface TabTarget
Parameters:
t - the given target
Returns:
true if the tab should be enabled
See Also:
TabTarget.shouldBeEnabled(Object)

moduleLoaded

public void moduleLoaded(ArgoModuleEvent event)
Description copied from interface: ArgoModuleEventListener
Invoked when a module has been loaded.

Specified by:
moduleLoaded in interface ArgoModuleEventListener
Parameters:
event - the event
See Also:
ArgoModuleEventListener.moduleLoaded(org.argouml.application.events.ArgoModuleEvent)

moduleUnloaded

public void moduleUnloaded(ArgoModuleEvent event)
Description copied from interface: ArgoModuleEventListener
Invoked when a module has been unloaded.

Specified by:
moduleUnloaded in interface ArgoModuleEventListener
Parameters:
event - the event
See Also:
ArgoModuleEventListener.moduleUnloaded(org.argouml.application.events.ArgoModuleEvent)

moduleEnabled

public void moduleEnabled(ArgoModuleEvent event)
Description copied from interface: ArgoModuleEventListener
Invoked when a module has been enabled.

Specified by:
moduleEnabled in interface ArgoModuleEventListener
Parameters:
event - the event
See Also:
ArgoModuleEventListener.moduleEnabled(org.argouml.application.events.ArgoModuleEvent)

moduleDisabled

public void moduleDisabled(ArgoModuleEvent event)
Description copied from interface: ArgoModuleEventListener
Invoked when a module has been disabled.

Specified by:
moduleDisabled in interface ArgoModuleEventListener
Parameters:
event - the event
See Also:
ArgoModuleEventListener.moduleDisabled(org.argouml.application.events.ArgoModuleEvent)

targetAdded

public void targetAdded(TargetEvent e)
Description copied from interface: TargetListener
Fired when a target is added to the list of targets.

Specified by:
targetAdded in interface TargetListener
Parameters:
e - The targetevent, name will be TARGET_ADDED
See Also:
TargetListener.targetAdded(org.argouml.ui.targetmanager.TargetEvent)

targetRemoved

public void targetRemoved(TargetEvent e)
Description copied from interface: TargetListener
Fired when a target is removed from the list of targets

Specified by:
targetRemoved in interface TargetListener
Parameters:
e - The targetevent, name will be TARGET_REMOVED
See Also:
TargetListener.targetRemoved(org.argouml.ui.targetmanager.TargetEvent)

targetSet

public void targetSet(TargetEvent e)
Description copied from interface: TargetListener
Fired when a total new set of targets is set

Specified by:
targetSet in interface TargetListener
Parameters:
e - The targetevent, name will be TARGET_SET
See Also:
TargetListener.targetSet(org.argouml.ui.targetmanager.TargetEvent)

addTargetListener

private void addTargetListener(TargetListener listener)
Adds a listener.

Parameters:
listener - the listener to add

removeTargetListener

private void removeTargetListener(TargetListener listener)
Removes a target listener.

Parameters:
listener - the listener to remove

fireTargetSet

private void fireTargetSet(TargetEvent targetEvent)

fireTargetAdded

private void fireTargetAdded(TargetEvent targetEvent)

fireTargetRemoved

private void fireTargetRemoved(TargetEvent targetEvent)


ArgoUML © 1996-2004 (20050222)ArgoUML HomepageArgoUML Developers' pageArgoUML Cookbook