kites.visual
Class NodeLabel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JLabel
                  extended by kites.visual.NodeLabel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.SwingConstants, NodeContainer

public class NodeLabel
extends javax.swing.JLabel
implements NodeContainer

This is the graphical representation of an ASTNode without children (i. e. variable or constant).

See Also:
Serialized Form

Nested Class Summary
private  class NodeLabel.MenuAction
          Listener in the popup menu for each rule.
private  class NodeLabel.PopupListener
          Listen on this label, if a right mouse click is seen, open up the popup menu
 
Nested classes/interfaces inherited from class javax.swing.JLabel
javax.swing.JLabel.AccessibleJLabel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  boolean canHighlight
           
private  ASTNode node
           
(package private)  javax.swing.JPopupMenu popup
           
(package private)  NodeLabel.PopupListener popupListener
           
private  java.util.LinkedList<Rule> rules
           
private static long serialVersionUID
          Eclipse still wants a serial field
private  InterpreterWindow wnd
           
 
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, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, 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
NodeLabel(ASTNode node)
          Create a new graphical representation for a node
NodeLabel(ASTNode node, java.util.LinkedList<Rule> rules, boolean activate)
          Create a new graphical representation for a node and embed information about rules applicable to this node
 
Method Summary
 void activate()
          Activate this node.
 void addClosePar()
          Add a closing parenthesis to this label.
 void addComma()
          Add a comma to this label.
 void colorize()
          Colorize this node.
 void deactivate()
          Deactivate this label
 InterpreterWindow getInterpreterWindow()
          Gives the interpreter window this label wants to be displayed in
 ASTNode getNode()
          Gives the node this label represents.
 java.util.LinkedList<Rule> getRules()
          Gives a list of applicable rules.
 NodeLabel getThis()
          Gives this label.
 void setInterpreterWindow(InterpreterWindow wnd)
          Set the interpreter window this label will be displayed in
 java.lang.String toString()
          Gives a string representation of the node this is the graphical representation of.
 
Methods inherited from class javax.swing.JLabel
checkHorizontalKey, checkVerticalKey, getAccessibleContext, getDisabledIcon, getDisplayedMnemonic, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getLabelFor, getText, getUI, getUIClassID, getVerticalAlignment, getVerticalTextPosition, imageUpdate, paramString, setDisabledIcon, setDisplayedMnemonic, setDisplayedMnemonic, setDisplayedMnemonicIndex, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabelFor, setText, setUI, setVerticalAlignment, setVerticalTextPosition, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, 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, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
Eclipse still wants a serial field

See Also:
Constant Field Values

node

private ASTNode node

rules

private java.util.LinkedList<Rule> rules

wnd

private InterpreterWindow wnd

popup

javax.swing.JPopupMenu popup

popupListener

NodeLabel.PopupListener popupListener

canHighlight

private boolean canHighlight
Constructor Detail

NodeLabel

public NodeLabel(ASTNode node)
Create a new graphical representation for a node

Parameters:
node - the node this label is for

NodeLabel

public NodeLabel(ASTNode node,
                 java.util.LinkedList<Rule> rules,
                 boolean activate)
Create a new graphical representation for a node and embed information about rules applicable to this node

Parameters:
node - the node this label is for
rules - list of applicable rules
activate - activate immediately
Method Detail

activate

public void activate()
Activate this node.

Specified by:
activate in interface NodeContainer
See Also:
NodeContainer.activate()

colorize

public void colorize()
Colorize this node.

Specified by:
colorize in interface NodeContainer
See Also:
NodeContainer.colorize()

getNode

public ASTNode getNode()
Gives the node this label represents.

Returns:
the node

getRules

public java.util.LinkedList<Rule> getRules()
Gives a list of applicable rules.

Returns:
list of rules

getInterpreterWindow

public InterpreterWindow getInterpreterWindow()
Gives the interpreter window this label wants to be displayed in

Returns:
the window

setInterpreterWindow

public void setInterpreterWindow(InterpreterWindow wnd)
Set the interpreter window this label will be displayed in

Specified by:
setInterpreterWindow in interface NodeContainer
Parameters:
wnd - the window

getThis

public NodeLabel getThis()
Gives this label. This may seem idiotic, but it is quite nice in conjunction with embedded listener classes.

Returns:
this

toString

public java.lang.String toString()
Gives a string representation of the node this is the graphical representation of.

Specified by:
toString in interface NodeContainer
Overrides:
toString in class java.awt.Component
Returns:
the string representation

deactivate

public void deactivate()
Deactivate this label

Specified by:
deactivate in interface NodeContainer
See Also:
NodeContainer.deactivate(), NodeContainer.activate()

addClosePar

public void addClosePar()
Add a closing parenthesis to this label. Needed when it is the last child element of a NodeBox

Specified by:
addClosePar in interface NodeContainer
See Also:
NodeContainer.addClosePar()

addComma

public void addComma()
Add a comma to this label. Needed when it is not the last child element of a NodeBox, but still a child element.

Specified by:
addComma in interface NodeContainer