org.argouml.uml.diagram.static_structure.ui
Class FigPackage

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.static_structure.ui.FigPackage
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, StereotypeContainer, VetoableChangeListener, VisibilityContainer
Direct Known Subclasses:
FigModel, FigSubsystem

public class FigPackage
extends FigNodeModelElement
implements StereotypeContainer, VisibilityContainer

Class to display graphics for a UML package in a class diagram.

The "tab" of the Package Fig is build of 2 pieces: the stereotypes at the top, and the name below it. Both are not transparent, and have a line border. And there is a blinder for the line in the middle.

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
FigPackage(GraphModel gm, Object node)
          Contructor that hooks the fig into the UML element.
FigPackage(Object node, int x, int y)
          The main constructor.
 
Method Summary
 String classNameAndBounds()
          USED BY PGML.tee.
 Object clone()
          After the base clone method has been called determine which child figs of the clone represent the name, stereotype and port.
 Point getClosestPoint(Point anotherPt)
           
 Color getFillColor()
           
 boolean getFilled()
           
 Color getLineColor()
           
 int getLineWidth()
           
 Dimension getMinimumSize()
           
 Vector getPopUpActions(MouseEvent me)
          Build a collection of menu items relevant for a right-click popup menu on a Package.
 boolean getUseTrapRect()
           
protected  void initNotationProviders(Object own)
          Create the NotationProviders.
 boolean isStereotypeVisible()
          Determine if the stereotype is visible.
 boolean isVisibilityVisible()
          Determine if the visibility is visible.
protected  void modelChanged(PropertyChangeEvent mee)
          Handles changes of the model.
 String placeString()
          Default Reply text to be shown while placing node in diagram.
 void renderingChanged()
          Rerenders the fig.
protected  void setBoundsImpl(int xa, int ya, int w, int h)
          Sets the bounds, but the size will be at least the one returned by getMinimumSize().
 void setFillColor(Color col)
           
 void setFilled(boolean f)
           
 void setLineColor(Color col)
           
 void setLineWidth(int w)
           
 void setStereotypeVisible(boolean isVisible)
          Set the visibility of the stereotype.
 void setVisibilityVisible(boolean isVisible)
          Set the visibility of the visibility.
protected  void textEditStarted(FigText ft)
          This method is called when the user doubleclicked on the text field, and starts editing.
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, 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, isCheckSize, isDragConnectable, isEditable, isPartlyOwner, isPartlyOwner, isPathVisible, isReadyToEdit, keyPressed, keyReleased, keyTyped, makeSelection, mouseClicked, notationAdded, notationChanged, notationProviderAdded, notationProviderRemoved, notationRemoved, paint, paintClarifiers, postLoad, propertyChange, removeAllElementListeners, removeElementListener, removeEnclosedFig, removeFromDiagram, removeFromDiagramImpl, setBigPort, setContextNotation, setDiElement, setEditable, setEncloser, setEnclosingFig, setItemUID, setLayer, setName, setNameFig, setOwner, setPathVisible, setReadyToEdit, setShadowSize, setShadowSizeFriend, setSuppressCalcBounds, setVisible, showHelp, textEdited, updateBounds, updateListeners, 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, setFont, setFontFamily, setFontSize, 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, getContext, getDashed, getDashed01, getDashedString, getFilled01, getFirstPoint, getGravityPoints, getGroup, getHalfHeight, getHalfWidth, getHandleBox, getHeight, getId, getLastPoint, getLayer, 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, setHandleBox, 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

FigPackage

public FigPackage(Object node,
                  int x,
                  int y)
The main constructor.

Parameters:
node - the UML package
x - the x coordinate of the location
y - the y coordinate of the location

FigPackage

public FigPackage(GraphModel gm,
                  Object node)
Contructor that hooks the fig into the UML element.

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

initNotationProviders

protected void initNotationProviders(Object own)
Description copied from class: FigNodeModelElement
Create the NotationProviders.

Overrides:
initNotationProviders in class FigNodeModelElement
Parameters:
own - the current owner
See Also:
FigNodeModelElement.initNotationProviders(java.lang.Object)

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()

setLineColor

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

getLineColor

public Color getLineColor()
See Also:
Fig.getLineColor()

setFillColor

public void setFillColor(Color col)
See Also:
Fig.setFillColor(java.awt.Color)

getFillColor

public Color getFillColor()
See Also:
Fig.getFillColor()

setFilled

public void setFilled(boolean f)
See Also:
Fig.setFilled(boolean)

getFilled

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

setLineWidth

public void setLineWidth(int w)
See Also:
Fig.setLineWidth(int)

getLineWidth

public int getLineWidth()
See Also:
Fig.getLineWidth()

renderingChanged

public void renderingChanged()
Description copied from class: FigNodeModelElement
Rerenders the fig.

This functionality was originally the functionality of modelChanged but modelChanged takes the event now into account.

Overrides:
renderingChanged in class FigNodeModelElement
See Also:
Called to update the graphics.

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()

classNameAndBounds

public String classNameAndBounds()
USED BY PGML.tee.

Overrides:
classNameAndBounds in class FigNodeModelElement
Returns:
the class name and bounds together with compartment visibility.

modelChanged

protected void modelChanged(PropertyChangeEvent mee)
Handles changes of the model. If the visibility is changed via the properties panel, then the display of it on the diagram has to follow the change.

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

getUseTrapRect

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

getMinimumSize

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

setBoundsImpl

protected void setBoundsImpl(int xa,
                             int ya,
                             int w,
                             int h)
Sets the bounds, but the size will be at least the one returned by getMinimumSize().

If the required height is bigger, then the additional height is equally distributed among all figs (i.e. compartments), such that the cumulated height of all visible figs equals the demanded height

. Some of this has "magic numbers" hardcoded in. In particular there is a knowledge that the minimum height of a name compartment is 21 pixels. This height is needed to be able to display the "Clarifier" inside the name compartment.

Parameters:
xa - Desired X coordinate of upper left corner
ya - Desired Y coordinate of upper left corner
w - Desired width of the FigClass
h - Desired height of the FigClass

getPopUpActions

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

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)

isStereotypeVisible

public boolean isStereotypeVisible()
Description copied from interface: StereotypeContainer
Determine if the stereotype is visible.

Specified by:
isStereotypeVisible in interface StereotypeContainer
Returns:
true if the stereotype is visible.
See Also:
StereotypeContainer.isStereotypeVisible()

setStereotypeVisible

public void setStereotypeVisible(boolean isVisible)
Description copied from interface: StereotypeContainer
Set the visibility of the stereotype.

Specified by:
setStereotypeVisible in interface StereotypeContainer
Parameters:
isVisible - the new visibility status.
See Also:
StereotypeContainer.setStereotypeVisible(boolean)

isVisibilityVisible

public boolean isVisibilityVisible()
Description copied from interface: VisibilityContainer
Determine if the visibility is visible.

Specified by:
isVisibilityVisible in interface VisibilityContainer
Returns:
true if the visibility is visible.
See Also:
VisibilityContainer.isVisibilityVisible()

setVisibilityVisible

public void setVisibilityVisible(boolean isVisible)
Description copied from interface: VisibilityContainer
Set the visibility of the visibility.

Specified by:
setVisibilityVisible in interface VisibilityContainer
Parameters:
isVisible - the new visibility status.
See Also:
VisibilityContainer.setVisibilityVisible(boolean)

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)

getClosestPoint

public Point getClosestPoint(Point anotherPt)
See Also:
Fig.getClosestPoint(java.awt.Point)


ArgoUML © 1996-2006ArgoUML HomepageArgoUML Developers' pageArgoUML Cookbook