org.argouml.uml.diagram.deployment.ui
Class FigComponent

java.lang.Object
  extended byorg.tigris.gef.presentation.Fig
      extended byorg.tigris.gef.presentation.FigGroup
          extended byorg.tigris.gef.presentation.FigNode
              extended byorg.argouml.uml.diagram.ui.FigNodeModelElement
                  extended byorg.argouml.uml.diagram.deployment.ui.FigComponent
All Implemented Interfaces:
ArgoEventListener, ArgoNotationEventListener, Cloneable, Connecter, DelayedVChangeListener, EventListener, org.tigris.gef.di.GraphicElement, org.tigris.gef.di.GraphNode, Highlightable, KeyListener, MouseListener, NotationContext, PathContainer, PopupGenerator, PropertyChangeListener, Serializable, VetoableChangeListener

public class FigComponent
extends FigNodeModelElement

Class to display graphics for a UML Component in a diagram.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.argouml.uml.diagram.ui.FigNodeModelElement
ABSTRACT, ACTIVE, invisibleAllowed, LEAF, notationProviderName, ROOT, ROWHEIGHT, SHADOW_COLOR_ALPHA, SHADOW_COLOR_VALUE, STEREOHEIGHT
 
Fields inherited from class org.tigris.gef.presentation.FigNode
_blinkPorts, _highlight, ang135, ang225, ang315, ang45
 
Fields inherited from class org.tigris.gef.presentation.Fig
_allowsSaving, _context, _dashes, _dashPeriod, _dashStyle, _filled, _h, _w, _x, _y, an, annotationOwner, annotationStatus, BORDER, MIN_SIZE, plotter
 
Constructor Summary
FigComponent()
          Constructor.
FigComponent(GraphModel gm, Object node)
          The constructor that hooks the Fig into an existing UML element.
 
Method Summary
 Object clone()
          After the base clone method has been called determine which child figs of the clone represent the name, stereotype and port.
 Rectangle getHandleBox()
           
 Dimension getMinimumSize()
           
 Vector getPopUpActions(MouseEvent me)
          Build a collection of menu items relevant for a right-click popup menu.
 boolean getUseTrapRect()
           
 Selection makeSelection()
           
protected  void modelChanged(PropertyChangeEvent mee)
          This is called after any part of the UML MModelElement has changed.
 String placeString()
          Default Reply text to be shown while placing node in diagram.
protected  void setBoundsImpl(int x, int y, int w, int h)
           
 void setEnclosingFig(Fig encloser)
          Updates the modelelement container if the fig is moved in or out another fig.
 void setHandleBox(int x, int y, int w, int h)
           
 void setLineColor(Color c)
           
 void setNode(Vector figures)
          TODO: This is not used anywhere.
 void setUnderline(boolean b)
           
protected  void textEditStarted(FigText ft)
          This method is called when the user doubleclicked on the text field, and starts editing.
protected  void updateListeners(Object oldOwner, Object newOwner)
          Implementations of this method should register/unregister the fig for all (model)events.
protected  void updateStereotypeText()
          Updates the text of the sterotype FigText.
 
Methods inherited from class org.argouml.uml.diagram.ui.FigNodeModelElement
addElementListener, addElementListener, addElementListener, addEnclosedFig, allowRemoveFromDiagram, buildModifierPopUp, buildVisibilityPopUp, calcBounds, classNameAndBounds, createFeatureIn, damage, delayedVetoableChange, deleteFromModel, displace, elementOrdering, enableSizeChecking, finalize, forceRepaintShadow, getBigPort, getContextNotation, getDiElement, getEnclosedFigs, getEncloser, getEnclosingFig, getItalicLabelFont, getItemUID, getLabelFont, getName, getNameBounds, getNameFig, getPopupAddOffset, getRemoveDelegate, getShadowSize, getStereotypeFig, getTipString, hit, hitClarifier, initNotationProviders, isCheckSize, isDragConnectable, isEditable, isPartlyOwner, isPartlyOwner, isPathVisible, isReadyToEdit, keyPressed, keyReleased, keyTyped, mouseClicked, notationAdded, notationChanged, notationProviderAdded, notationProviderRemoved, notationRemoved, paint, paintClarifiers, postLoad, propertyChange, removeAllElementListeners, removeElementListener, removeEnclosedFig, removeFromDiagram, removeFromDiagramImpl, renderingChanged, setBigPort, setContextNotation, setDiElement, setEditable, setEncloser, setItemUID, setLayer, setName, setNameFig, setOwner, setPathVisible, setReadyToEdit, setShadowSize, setShadowSizeFriend, setSuppressCalcBounds, setVisible, showHelp, textEdited, updateBounds, updateNameText, vetoableChange
 
Methods inherited from class org.tigris.gef.presentation.FigNode
addFigEdge, bindPort, cleanUp, contains, deepHitPort, dispose, endTrans, getFigEdges, getFigEdges, getHighlight, getPortFig, getPortFigs, getPortSector, hidePorts, hitPort, hitPort, isBlinkPorts, mouseEntered, mouseExited, mousePressed, mouseReleased, paint, removeFigEdge, removePort, setBlinkPorts, setHighlight, showPorts, superTranslate, translateImpl, updateEdges
 
Methods inherited from class org.tigris.gef.presentation.FigGroup
addFig, addFigs, deepSelect, elements, getDisplayedFigs, getExtraFrameSpace, getFigAt, getFigCount, getFigPosn, getFigs, getFont, getFontFamily, getFontSize, getPrivateData, getSubFigBounds, getTextColor, getTextFillColor, getTextFilled, hitFig, isReshapable, isRotatable, iterator, parseDynObjects, removeAll, removeFig, setExtraFrameSpace, setFigs, setFigs, setFillColor, setFilled, setFont, setFontFamily, setFontSize, setLineWidth, setPrivateData, setTextColor, setTextFillColor, setTextFilled
 
Methods inherited from class org.tigris.gef.presentation.Fig
addAnnotation, addPoint, addPropertyChangeListener, align, center, connectionPoint, contains, contains, countCornersContained, createDrag, firePropChange, firePropChange, firePropChange, getAnnotationOwner, getAnnotationStrategy, getBounds, getBounds, getCenter, getClosestPoint, getContext, getDashed, getDashed01, getDashedString, getFillColor, getFilled, getFilled01, getFirstPoint, getGravityPoints, getGroup, getHalfHeight, getHalfWidth, getHeight, getId, getLastPoint, getLayer, getLineColor, getLineWidth, getLocation, getLocked, getNumPoints, getOwner, getPerimeterLength, getPoint, getPoints, getPreferredSize, getResource, getSingle, getSize, getTrapRect, getVisState, getWidth, getX, getXs, getY, getYs, hasFillColor, hasLineColor, initAnnotations, insertPoint, intersects, intersectsPerimeter, isAnnotation, isCopyable, isCutable, isLowerRightResizable, isMovable, isRemoveStarted, isResizable, isSelectable, isSelected, isVisible, pointAlongPerimeter, postSave, preSave, print, redraw, removeAnnotation, removePoint, removePropertyChangeListener, reorder, routingRect, savingAllowed, setAnnotationOwner, setAnnotationStatus, setAnnotationStrategy, setBounds, setBounds, setCenter, setContext, setDashed, setDashedString, setGroup, setHeight, setLocation, setLocation, setLocked, setMovable, setNumPoints, setPoint, setPoint, setPoint, setPoint, setPoints, setResizable, setResource, setSavingAllowed, setSize, setSize, setWidth, setX, setXs, setY, setYs, stuffBounds, stuffPointAlongPerimeter, translate, translateAnnotations, unsetAnnotationOwner, updateAnnotationPositions, within
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.awt.event.MouseListener
mouseEntered, mouseExited, mousePressed, mouseReleased
 
Methods inherited from interface org.argouml.cognitive.Highlightable
getHighlight, setHighlight
 
Methods inherited from interface org.tigris.gef.di.GraphicElement
getId, getOwner, routingRect
 

Constructor Detail

FigComponent

public FigComponent()
Constructor.


FigComponent

public FigComponent(GraphModel gm,
                    Object node)
The constructor that hooks the Fig into an existing UML element.

Parameters:
gm - ignored
node - the UML element
Method Detail

placeString

public String placeString()
Description copied from class: FigNodeModelElement
Default Reply text to be shown while placing node in diagram. Overrule this when the text is not "new [UMLClassName]".

Overrides:
placeString in class FigNodeModelElement
Returns:
the text to be shown while placing node in diagram
See Also:
FigNodeModelElement.placeString()

clone

public Object clone()
Description copied from class: FigNodeModelElement
After the base clone method has been called determine which child figs of the clone represent the name, stereotype and port.

The clone function is used by Copy/Paste operations.

Overrides:
clone in class FigNodeModelElement
See Also:
Object.clone()

modelChanged

protected void modelChanged(PropertyChangeEvent mee)
Description copied from class: FigNodeModelElement
This is called after any part of the UML MModelElement has changed. This method automatically updates the name FigText. Subclasses should override and update other parts.

Overrides:
modelChanged in class FigNodeModelElement
Parameters:
mee - the ModelElementEvent that caused the change
See Also:
FigNodeModelElement.modelChanged(java.beans.PropertyChangeEvent)

updateListeners

protected void updateListeners(Object oldOwner,
                               Object newOwner)
Description copied from class: FigNodeModelElement
Implementations of this method should register/unregister the fig for all (model)events. For FigNodeModelElement only the fig itself is registered as listening to events fired by the owner itself. But for, for example, FigClass the fig must also register for events fired by the operations and attributes of the owner.

An explanation of the original purpose of this method is given in issue 1321.

This function is used in UMLDiagram, which removes all listeners to all Figs when a diagram is not displayed, and restore them when it becomes visible again.

In this case, it is imperative that indeed ALL listeners are updated, since they are ALL removed by the call to removeElementListener.

Additionally, this function may be used by the modelChanged() function.

In this case, it is also imperative that all listeners get removed / added.

Overrides:
updateListeners in class FigNodeModelElement
Parameters:
newOwner - null, or the owner of this. The former means that listeners have to be removed, the latter that they have to be set. TODO: Should this not be boolean, to clarify?
See Also:
org.argouml.uml.diagram.ui.FigNodeModelElement#updateListeners(java.lang.Object)

getPopUpActions

public Vector getPopUpActions(MouseEvent me)
Build a collection of menu items relevant for a right-click popup menu.

Specified by:
getPopUpActions in interface PopupGenerator
Overrides:
getPopUpActions in class FigNodeModelElement
Parameters:
me - a mouse event
Returns:
a collection of menu items
See Also:
PopupGenerator.getPopUpActions(java.awt.event.MouseEvent)

setUnderline

public void setUnderline(boolean b)
Parameters:
b - switch underline on or off

setLineColor

public void setLineColor(Color c)
See Also:
Fig.setLineColor(java.awt.Color)

makeSelection

public Selection makeSelection()
Overrides:
makeSelection in class FigNodeModelElement
See Also:
Fig.makeSelection()

getMinimumSize

public Dimension getMinimumSize()
See Also:
Fig.getMinimumSize()

setBoundsImpl

protected void setBoundsImpl(int x,
                             int y,
                             int w,
                             int h)
See Also:
Fig.setBounds(int, int, int, int)

setEnclosingFig

public void setEnclosingFig(Fig encloser)
Description copied from class: FigNodeModelElement
Updates the modelelement container if the fig is moved in or out another fig. If this fig doesn't have an enclosing fig anymore, the namespace of the diagram will be the owning modelelement. If this fig is moved inside another FigNodeModelElement the owner of that fignodemodelelement will be the owning modelelement.

Overrides:
setEnclosingFig in class FigNodeModelElement
See Also:
Fig.setEnclosingFig(org.tigris.gef.presentation.Fig)

setNode

public void setNode(Vector figures)
TODO: This is not used anywhere. Can we remove it?

Parameters:
figures - ?

getUseTrapRect

public boolean getUseTrapRect()
See Also:
Fig.getUseTrapRect()

updateStereotypeText

protected void updateStereotypeText()
Description copied from class: FigNodeModelElement
Updates the text of the sterotype FigText. Override in subclasses to get wanted behaviour.

Overrides:
updateStereotypeText in class FigNodeModelElement
See Also:
FigNodeModelElement.updateStereotypeText()

textEditStarted

protected void textEditStarted(FigText ft)
Description copied from class: FigNodeModelElement
This method is called when the user doubleclicked on the text field, and starts editing. Subclasses should overrule this field to e.g. supply help to the user about the used format.

It is also possible to alter the text to be edited already here, e.g. by adding the stereotype in front of the name, by calling notationProviderName.putValue("fullyHandleStereotypes", true);, but that seems not user-friendly. See issue 3838.

Overrides:
textEditStarted in class FigNodeModelElement
Parameters:
ft - the FigText that will be edited and contains the start-text
See Also:
FigNodeModelElement.textEditStarted(org.tigris.gef.presentation.FigText)

getHandleBox

public Rectangle getHandleBox()
See Also:
Get the rectangle on whose corners the dragging handles are to be drawn. Used by Selection Resize.

setHandleBox

public void setHandleBox(int x,
                         int y,
                         int w,
                         int h)
See Also:
Fig.setHandleBox(int, int, int, int)


ArgoUML © 1996-2006ArgoUML HomepageArgoUML Developers' pageArgoUML Cookbook