uk.ac.ic.doc.y2002.tool.editor
Class ArcLabel

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JLabel
                          |
                          +--uk.ac.ic.doc.y2002.tool.editor.PNLabel
                                |
                                +--uk.ac.ic.doc.y2002.tool.editor.ArcLabel
All Implemented Interfaces:
javax.accessibility.Accessible, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.io.Serializable, javax.swing.SwingConstants
Direct Known Subclasses:
ArcTypedLabel

public class ArcLabel
extends PNLabel
implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener

The ArcLabel is the JLabel representing an arc on screen. Each arc is represented in the PNML.

See Also:
Serialized Form

Inner classes inherited from class javax.swing.JLabel
javax.swing.JLabel.AccessibleJLabel
 
Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent
 
Fields inherited from class uk.ac.ic.doc.y2002.tool.editor.PNLabel
beingMoved, contextmenu, element, fillcolour, firsttime, height, highlightfill, id, lastX, lastY, normalfill, ns, offset, propertiesbox, rotation, scaling, selected, textspace, width, xoffset, xPress, yoffset, yPress
 
Fields inherited from class javax.swing.JLabel
labelFor
 
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.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NORTH, NORTH_EAST, NORTH_WEST, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ArcLabel(org.jdom.Element e)
           
 
Method Summary
 void addToken()
          Re-use this function to change the arc weight.
 void dofirst()
          When first drawn, the ArcLabel initialises its LineLabel and adds it to the DisplayPane.
 void fire()
          When fired, an Arc adds its weight in Tokens to its target.
 java.util.List getLinkedLabels()
          Returns a list of PNLabels which are linked to this PNLabel.
 boolean getSnap()
          Gets the Snap-to-position property in the JDOM Document.
 java.lang.String getSourceID()
          Returns the source ID stored in the Arc element
 java.lang.String getTargetID()
          Returns the target ID stored in the Arc element
 int getWeight()
          Access function for the arc weight stored in the JDOM Document - default 1.
 void highlight(boolean highlight)
          This overridden version also deals with highlighting the lines.
 void highlightLine(boolean highlight)
          Highlights (or un-highlights) the line.
 boolean isActive()
          Arc is active if its Source is active - it informs the source of the arc weight, and asks it whether it is active.
static org.jdom.Element makeElement(java.lang.Integer x, java.lang.Integer y, java.lang.String id, java.lang.String source, java.lang.String target, org.jdom.Namespace ns)
           
static org.jdom.Element makeInscription(org.jdom.Namespace ns)
           
 void mouseDragged(java.awt.event.MouseEvent e)
          Handles the event of a user dragging the mouse while holding down the mouse button.
 void mouseReleased(java.awt.event.MouseEvent e)
           
 void paintComponent(java.awt.Graphics g)
          The function which draws the PNLabel on screen.
 void positionLines()
          Calculates the position of the Arc - either snap-to-position or user specified.
 DisplayPane remove()
          A cleanup function that is called when the label is removed from the display.
 void remToken()
          Re-use this function to change the arc weight.
 void setSnap(boolean snap)
          Sets the Snap-to-position property in the JDOM Document.
 void setSourceLabel(NodeLabel source)
          Sets the local reference to the Label representing the arc's Source.
 void setTargetLabel(NodeLabel target)
          Sets the local reference to the Label representing the arc's Target.
 void setWeight(int weight)
          Sets the Arc weight in the JDOM Document.
protected  void snapToPosition()
          Positions the arc exactly between its source and target.
 void unfire()
          When un-fired, an Arc removes its weight in Tokens from its source.
 void updateBounds()
          may be overridden to deal with different sizes and shapes of labels.
protected  void updateLocation(java.awt.event.MouseEvent e)
          Updates the coordinates representing the location of the current label in response to Mouse being dragged.
 
Methods inherited from class uk.ac.ic.doc.y2002.tool.editor.PNLabel
changeElement, doubleclickAction, getDisplayPane, getID, getJX, getJY, getPreferredSize, getToolspecific, makeGraphics, makeToolspecific, mouseClicked, mouseEntered, mouseExited, mouseMoved, mousePressed, myElementName, returnElement, returnSelected, select, selectOnly, setJX, setJY, setPosition, showContextMenu, updateLocation, updatePosition, updateSelf
 
Methods inherited from class javax.swing.JLabel
checkHorizontalKey, checkVerticalKey, getAccessibleContext, getDisabledIcon, getDisplayedMnemonic, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getLabelFor, getText, getUI, getUIClassID, getVerticalAlignment, getVerticalTextPosition, imageUpdate, paramString, setDisabledIcon, setDisplayedMnemonic, setDisplayedMnemonic, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabelFor, setText, setUI, setVerticalAlignment, setVerticalTextPosition, 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, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getLayout, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setLayout, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, inside, isDisplayable, isEnabled, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.event.MouseListener
mouseClicked, mouseEntered, mouseExited, mousePressed
 
Methods inherited from interface java.awt.event.MouseMotionListener
mouseMoved
 

Constructor Detail

ArcLabel

public ArcLabel(org.jdom.Element e)
Method Detail

updateBounds

public void updateBounds()
Description copied from class: PNLabel
may be overridden to deal with different sizes and shapes of labels.
Overrides:
updateBounds in class PNLabel

paintComponent

public void paintComponent(java.awt.Graphics g)
Description copied from class: PNLabel
The function which draws the PNLabel on screen. Overridden in subclasses of PNLabel.
Overrides:
paintComponent in class PNLabel

dofirst

public void dofirst()
When first drawn, the ArcLabel initialises its LineLabel and adds it to the DisplayPane. It assumes that the sourcelabel and targetlabel attributes have been set.
Overrides:
dofirst in class PNLabel

positionLines

public void positionLines()
Calculates the position of the Arc - either snap-to-position or user specified. Snap-to-position is when the arc automatically moves to the mid-point of its source and target. User-specified is when the user chooses to move the arc elsewhere - for example to move it out of the way of a complex part of the net.

snapToPosition

protected void snapToPosition()
Positions the arc exactly between its source and target.

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
Handles the event of a user dragging the mouse while holding down the mouse button. Overridden to turn off auto-snap.
Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener
Overrides:
mouseDragged in class PNLabel

updateLocation

protected void updateLocation(java.awt.event.MouseEvent e)
Updates the coordinates representing the location of the current label in response to Mouse being dragged. Overridden to deal with updating the LineLabel as well.
Overrides:
updateLocation in class PNLabel

getSnap

public boolean getSnap()
Gets the Snap-to-position property in the JDOM Document. This property is toolspecific.

setSnap

public void setSnap(boolean snap)
Sets the Snap-to-position property in the JDOM Document. This property is toolspecific.

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Specified by:
mouseReleased in interface java.awt.event.MouseListener
Overrides:
mouseReleased in class PNLabel

getWeight

public int getWeight()
Access function for the arc weight stored in the JDOM Document - default 1.
Returns:
The Arc weight as stored in the Document - defaults to 1 if not present.

setWeight

public void setWeight(int weight)
Sets the Arc weight in the JDOM Document.

getSourceID

public java.lang.String getSourceID()
Returns the source ID stored in the Arc element

getTargetID

public java.lang.String getTargetID()
Returns the target ID stored in the Arc element

setSourceLabel

public void setSourceLabel(NodeLabel source)
Sets the local reference to the Label representing the arc's Source.

setTargetLabel

public void setTargetLabel(NodeLabel target)
Sets the local reference to the Label representing the arc's Target.

isActive

public boolean isActive()
Arc is active if its Source is active - it informs the source of the arc weight, and asks it whether it is active.
Overrides:
isActive in class PNLabel

fire

public void fire()
When fired, an Arc adds its weight in Tokens to its target. If the target is not a Place, an error message is printed.
See Also:
unfire()

unfire

public void unfire()
When un-fired, an Arc removes its weight in Tokens from its source. If the source is not a Place, an error message is printed.
See Also:
fire()

makeElement

public static org.jdom.Element makeElement(java.lang.Integer x,
                                           java.lang.Integer y,
                                           java.lang.String id,
                                           java.lang.String source,
                                           java.lang.String target,
                                           org.jdom.Namespace ns)

makeInscription

public static org.jdom.Element makeInscription(org.jdom.Namespace ns)

getLinkedLabels

public java.util.List getLinkedLabels()
Returns a list of PNLabels which are linked to this PNLabel. The list will consist of the Source label and the Target label.
Overrides:
getLinkedLabels in class PNLabel
Following copied from class: uk.ac.ic.doc.y2002.tool.editor.PNLabel
Returns:
a List of PNLabels which are linked to this PNLabel.

remove

public DisplayPane remove()
A cleanup function that is called when the label is removed from the display. It removes its LineLabel, and updates the reference to itself stored within its source and target labels.
Overrides:
remove in class PNLabel
Following copied from class: uk.ac.ic.doc.y2002.tool.editor.PNLabel
Returns:
The DisplayPane that contained the PNLabel.

highlight

public void highlight(boolean highlight)
This overridden version also deals with highlighting the lines.
Overrides:
highlight in class PNLabel

highlightLine

public void highlightLine(boolean highlight)
Highlights (or un-highlights) the line.

addToken

public void addToken()
Re-use this function to change the arc weight.
Overrides:
addToken in class PNLabel
Following copied from class: uk.ac.ic.doc.y2002.tool.editor.PNLabel
See Also:
PlaceLabel, ArcLabel

remToken

public void remToken()
Re-use this function to change the arc weight.
Overrides:
remToken in class PNLabel
Following copied from class: uk.ac.ic.doc.y2002.tool.editor.PNLabel
See Also:
PlaceLabel, ArcLabel