org.argouml.ui
Class StylePanelFig

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.ui.StylePanel
                          extended byorg.argouml.ui.StylePanelFig
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.lang.Cloneable, javax.swing.event.DocumentListener, java.util.EventListener, java.awt.event.FocusListener, java.awt.image.ImageObserver, java.awt.event.ItemListener, java.awt.event.KeyListener, javax.swing.event.ListSelectionListener, java.awt.MenuContainer, Orientable, java.io.Serializable, TabFigTarget, TabTarget, TargetListener
Direct Known Subclasses:
StylePanelFigClass, StylePanelFigInterface, StylePanelFigMessage, StylePanelFigRRect, StylePanelFigText, StylePanelFigUseCase

public class StylePanelFig
extends StylePanel
implements java.awt.event.ItemListener, java.awt.event.FocusListener, java.awt.event.KeyListener

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  javax.swing.JTextField _bboxField
           
protected  javax.swing.JLabel _bboxLabel
           
protected  javax.swing.JComboBox _fillField
           
protected  javax.swing.JLabel _fillLabel
           
protected  javax.swing.JComboBox _lineField
           
protected  javax.swing.JLabel _lineLabel
           
protected  javax.swing.JComboBox _shadowField
           
protected  javax.swing.JLabel _shadowLabel
           
protected  SpacerPanel _spacer
           
protected  SpacerPanel _spacer2
           
protected  SpacerPanel _spacer3
           
protected static org.apache.log4j.Logger cat
           
private static java.lang.String CUSTOM_ITEM
           
 
Fields inherited from class org.argouml.ui.StylePanel
_target
 
Fields inherited from class org.argouml.ui.TabSpawnable
_tear, _title, orientation, OVERLAPP
 
Fields inherited from class javax.swing.JPanel
 
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.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
StylePanelFig()
           
 
Method Summary
 void focusGained(java.awt.event.FocusEvent e)
           
 void focusLost(java.awt.event.FocusEvent e)
          Makes sure that the fig is updated when the _bboxField loses focus.
protected  void handleCustomColor(javax.swing.JComboBox field, java.lang.String title, java.awt.Color targetColor)
          Prompts the user for a new custom color and adds that color to the combo box.
protected  void initChoices()
           
 void itemStateChanged(java.awt.event.ItemEvent e)
           
 void keyPressed(java.awt.event.KeyEvent e)
           
 void keyReleased(java.awt.event.KeyEvent e)
           
 void keyTyped(java.awt.event.KeyEvent e)
          Tests if enter is pressed in the _bbodField so we need to set the target bounds.
protected  void markNeedsSave()
          Called when some property of the target has changed through the style panel.
protected  java.awt.Rectangle parseBBox()
          Parse the boundary box string and return the rectangle it represents.
 void refresh()
          Handle a refresh of the style panel after the fig has moved.
protected  void setTargetBBox()
          Change the bounds of the target fig.
 void setTargetFill()
           
 void setTargetLine()
           
 void setTargetShadow()
           
 
Methods inherited from class org.argouml.ui.StylePanel
actionPerformed, changedUpdate, getTarget, insertUpdate, refresh, removeUpdate, setTarget, shouldBeEnabled, targetAdded, targetRemoved, targetSet, valueChanged
 
Methods inherited from class org.argouml.ui.TabSpawnable
clone, getTitle, setOrientation, 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, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

cat

protected static org.apache.log4j.Logger cat

CUSTOM_ITEM

private static final java.lang.String CUSTOM_ITEM

_bboxLabel

protected javax.swing.JLabel _bboxLabel

_bboxField

protected javax.swing.JTextField _bboxField

_fillLabel

protected javax.swing.JLabel _fillLabel

_fillField

protected javax.swing.JComboBox _fillField

_lineLabel

protected javax.swing.JLabel _lineLabel

_lineField

protected javax.swing.JComboBox _lineField

_shadowLabel

protected javax.swing.JLabel _shadowLabel

_shadowField

protected javax.swing.JComboBox _shadowField

_spacer

protected SpacerPanel _spacer

_spacer2

protected SpacerPanel _spacer2

_spacer3

protected SpacerPanel _spacer3
Constructor Detail

StylePanelFig

public StylePanelFig()
Method Detail

initChoices

protected void initChoices()

refresh

public void refresh()

Handle a refresh of the style panel after the fig has moved.

Warning. There is a circular trap here. Editing the boundary box will also trigger a refresh, and so we reset the boundary box, which causes funny behaviour (the cursor keeps jumping to the end of the text).

The solution is to not reset the boundary box field if the boundaries have not changed.

Specified by:
refresh in interface TabTarget
Overrides:
refresh in class StylePanel

setTargetBBox

protected void setTargetBBox()

Change the bounds of the target fig. Called whenever the bounds box is edited.

Format of the bounds is four integers representing x, y, width and height separated by spaces or commas. An empty field is treated as no change and leading and trailing spaces are ignored.

Note. There is a note in the old code that more work might be needed, because this could change the graph model. I don't see how that could ever be.


parseBBox

protected java.awt.Rectangle parseBBox()

Parse the boundary box string and return the rectangle it represents.

The syntax are four integers separated by spaces or commas. We ignore leading and trailing blanks.

If we have the empty string we return null.

If we fail to parse, then we return null and print out a rude message.

Returns:
The size of the box, or null if the bounds string is empty or invalid.

handleCustomColor

protected void handleCustomColor(javax.swing.JComboBox field,
                                 java.lang.String title,
                                 java.awt.Color targetColor)
Prompts the user for a new custom color and adds that color to the combo box.


setTargetFill

public void setTargetFill()

setTargetLine

public void setTargetLine()

setTargetShadow

public void setTargetShadow()

markNeedsSave

protected void markNeedsSave()
Called when some property of the target has changed through the style panel. Sets the save flag in the current project.


itemStateChanged

public void itemStateChanged(java.awt.event.ItemEvent e)
Specified by:
itemStateChanged in interface java.awt.event.ItemListener
Overrides:
itemStateChanged in class StylePanel

focusGained

public void focusGained(java.awt.event.FocusEvent e)
Specified by:
focusGained in interface java.awt.event.FocusListener
See Also:
FocusListener.focusGained(java.awt.event.FocusEvent)

focusLost

public void focusLost(java.awt.event.FocusEvent e)
Makes sure that the fig is updated when the _bboxField loses focus.

Specified by:
focusLost in interface java.awt.event.FocusListener
See Also:
FocusListener.focusLost(java.awt.event.FocusEvent)

keyPressed

public void keyPressed(java.awt.event.KeyEvent e)
Specified by:
keyPressed in interface java.awt.event.KeyListener
See Also:
KeyListener.keyPressed(java.awt.event.KeyEvent)

keyReleased

public void keyReleased(java.awt.event.KeyEvent e)
Specified by:
keyReleased in interface java.awt.event.KeyListener
See Also:
KeyListener.keyReleased(java.awt.event.KeyEvent)

keyTyped

public void keyTyped(java.awt.event.KeyEvent e)
Tests if enter is pressed in the _bbodField so we need to set the target bounds.

Specified by:
keyTyped in interface java.awt.event.KeyListener
See Also:
KeyListener.keyTyped(java.awt.event.KeyEvent)


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