lib
Class JTreeNode

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.AbstractButton
                  extended by javax.swing.JButton
                      extended by lib.JTreeNode
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.ItemSelectable, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.SwingConstants

public class JTreeNode
extends javax.swing.JButton

The JTreeNode encodes a semantic relationship between editable elements of the Learnable Action Pattern files, and is used primarily for the organisation of such elements before rendering them.

Version:
1.0
Author:
CobaltSoftware (abode.devteam@cobaltsoftware.net)
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JButton
javax.swing.JButton.AccessibleJButton
 
Nested classes/interfaces inherited from class javax.swing.AbstractButton
javax.swing.AbstractButton.AccessibleAbstractButton, javax.swing.AbstractButton.ButtonChangeListener
 
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  boolean bIsRendered
           
private  java.util.ArrayList children
           
private  java.awt.Color colour
           
private  java.util.ArrayList groupBy
           
private  java.lang.String label
           
private  IListOrganiser organiser
           
private  JTreeNode parent
           
private  javax.swing.JPopupMenu popup
           
private  IRenderer renderer
           
static long serialVersionUID
           
private  java.lang.String subText
           
private  boolean valid
           
private  IEditableElement value
           
 
Fields inherited from class javax.swing.AbstractButton
actionListener, BORDER_PAINTED_CHANGED_PROPERTY, changeEvent, changeListener, CONTENT_AREA_FILLED_CHANGED_PROPERTY, DISABLED_ICON_CHANGED_PROPERTY, DISABLED_SELECTED_ICON_CHANGED_PROPERTY, FOCUS_PAINTED_CHANGED_PROPERTY, HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, ICON_CHANGED_PROPERTY, itemListener, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, model, MODEL_CHANGED_PROPERTY, PRESSED_ICON_CHANGED_PROPERTY, ROLLOVER_ENABLED_CHANGED_PROPERTY, ROLLOVER_ICON_CHANGED_PROPERTY, ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, SELECTED_ICON_CHANGED_PROPERTY, TEXT_CHANGED_PROPERTY, VERTICAL_ALIGNMENT_CHANGED_PROPERTY, VERTICAL_TEXT_POSITION_CHANGED_PROPERTY
 
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
JTreeNode(java.lang.String title, java.lang.String caption, java.awt.Color col, IEditableElement element, JTreeNode parentNode)
          Initialize our tree node
JTreeNode(java.lang.String title, java.lang.String caption, java.awt.Color col, IEditableElement element, JTreeNode parentNode, IRenderer renderObject)
          Create this tree node, but make sure it has a rendering object of its own.
JTreeNode(java.lang.String title, java.lang.String caption, java.awt.Color col, IEditableElement element, JTreeNode parentNode, IRenderer renderObject, java.util.ArrayList group)
           
 
Method Summary
private  void actionMouseClicked(java.awt.event.MouseEvent evt)
          The user has clicked on us
 void addChild(JTreeNode child)
          Add a new child node off this one
 JTreeNode findAndFocus(IEditableElement element)
          Scan the tree looking for an element with the correct value and return it, as well as grabbing the focus.
 java.util.ArrayList getChildren()
          Get a list of our children
 java.awt.Color getColour()
          Get the colour we'return supposed to be painted with
 java.util.ArrayList getGroup()
          Get the object we group with
 java.lang.String getName()
          Get the name of the node
 IListOrganiser getOrganiser()
          Get the list organiser
 JTreeNode getParentNode()
          Get the parent node of this element
 boolean getRendered()
          Do we want this to show up on the tree?
 IRenderer getRenderer()
          Get our rendering object
 java.lang.String getSubTitle()
          Get the sub-title of this button
 java.lang.String getTitle()
          Get the title of this button
 IEditableElement getValue()
          Get the editable construct we're representing
 boolean isValid()
          Is this a valid node?
 void paintComponent(java.awt.Graphics g)
          Repaint the node
 void rewrite()
          Rewrite the tree so that any extra "Action to trigger" nodes are removed.
 void setChildren(java.util.ArrayList childList)
          Set our list of children
 void setColour(java.awt.Color col)
          Set the background color of this button
 void setGroup(java.util.ArrayList o)
          Set the object we group with
 void setOrganiser(IListOrganiser org)
          Set our list organiser object
 void setParent(JTreeNode node)
          Set the parent of this object in the tree
 void setParentNode(JTreeNode parentNode)
          Set the parent node of this element
 void setRendered(boolean render)
          Render this tree node invisibly?
 void setRenderer(IRenderer renderObject)
          Set our rendering object
 void setSubText(java.lang.String text)
          Set the sub=text of this button
 void setTitle(java.lang.String text)
          Set the title text of this button
 void setValid(boolean validBool)
          Set the validity of this node
 void setValue(IEditableElement objVal)
          Set the value of our edited construct
 void treeNodeActionPerformed(java.awt.event.ActionEvent event)
          An action was performed on the button, typically a click
private  void treeNodeFocusGained(java.awt.event.FocusEvent event)
          We've been focused
private  void treeNodeFocusLost(java.awt.event.FocusEvent event)
          We've lost focus
 
Methods inherited from class javax.swing.JButton
configurePropertiesFromAction, getAccessibleContext, getUIClassID, isDefaultButton, isDefaultCapable, paramString, removeNotify, setDefaultCapable, updateUI
 
Methods inherited from class javax.swing.AbstractButton
addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createActionPropertyChangeListener, createChangeListener, createItemListener, doClick, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, init, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, isSelected, paintBorder, removeActionListener, removeChangeListener, removeItemListener, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setEnabled, setFocusPainted, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setModel, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelected, setSelectedIcon, setText, setUI, setVerticalAlignment, setVerticalTextPosition
 
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, 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, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, 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, 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, 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, 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, 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, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

public static final long serialVersionUID
See Also:
Constant Field Values

parent

private JTreeNode parent

children

private java.util.ArrayList children

value

private IEditableElement value

label

private java.lang.String label

subText

private java.lang.String subText

colour

private java.awt.Color colour

bIsRendered

private boolean bIsRendered

valid

private boolean valid

popup

private javax.swing.JPopupMenu popup

renderer

private IRenderer renderer

groupBy

private java.util.ArrayList groupBy

organiser

private IListOrganiser organiser
Constructor Detail

JTreeNode

public JTreeNode(java.lang.String title,
                 java.lang.String caption,
                 java.awt.Color col,
                 IEditableElement element,
                 JTreeNode parentNode,
                 IRenderer renderObject,
                 java.util.ArrayList group)

JTreeNode

public JTreeNode(java.lang.String title,
                 java.lang.String caption,
                 java.awt.Color col,
                 IEditableElement element,
                 JTreeNode parentNode,
                 IRenderer renderObject)
Create this tree node, but make sure it has a rendering object of its own.


JTreeNode

public JTreeNode(java.lang.String title,
                 java.lang.String caption,
                 java.awt.Color col,
                 IEditableElement element,
                 JTreeNode parentNode)
Initialize our tree node

Method Detail

getGroup

public java.util.ArrayList getGroup()
Get the object we group with


setGroup

public void setGroup(java.util.ArrayList o)
Set the object we group with


setRenderer

public void setRenderer(IRenderer renderObject)
Set our rendering object


getRenderer

public IRenderer getRenderer()
Get our rendering object


rewrite

public void rewrite()
Rewrite the tree so that any extra "Action to trigger" nodes are removed.

Parameters:
root - Root of this sub-tree

getOrganiser

public IListOrganiser getOrganiser()
Get the list organiser


setOrganiser

public void setOrganiser(IListOrganiser org)
Set our list organiser object


getColour

public java.awt.Color getColour()
Get the colour we'return supposed to be painted with


setRendered

public void setRendered(boolean render)
Render this tree node invisibly?


getRendered

public boolean getRendered()
Do we want this to show up on the tree?


findAndFocus

public JTreeNode findAndFocus(IEditableElement element)
Scan the tree looking for an element with the correct value and return it, as well as grabbing the focus.


setParent

public void setParent(JTreeNode node)
Set the parent of this object in the tree


setTitle

public void setTitle(java.lang.String text)
Set the title text of this button


getTitle

public java.lang.String getTitle()
Get the title of this button


setSubText

public void setSubText(java.lang.String text)
Set the sub=text of this button


getSubTitle

public java.lang.String getSubTitle()
Get the sub-title of this button


setColour

public void setColour(java.awt.Color col)
Set the background color of this button


getName

public java.lang.String getName()
Get the name of the node

Overrides:
getName in class java.awt.Component

getChildren

public java.util.ArrayList getChildren()
Get a list of our children


setChildren

public void setChildren(java.util.ArrayList childList)
Set our list of children


addChild

public void addChild(JTreeNode child)
Add a new child node off this one


getValue

public IEditableElement getValue()
Get the editable construct we're representing


setValue

public void setValue(IEditableElement objVal)
Set the value of our edited construct


setParentNode

public void setParentNode(JTreeNode parentNode)
Set the parent node of this element


getParentNode

public JTreeNode getParentNode()
Get the parent node of this element


treeNodeActionPerformed

public void treeNodeActionPerformed(java.awt.event.ActionEvent event)
An action was performed on the button, typically a click


actionMouseClicked

private void actionMouseClicked(java.awt.event.MouseEvent evt)
The user has clicked on us


treeNodeFocusGained

private void treeNodeFocusGained(java.awt.event.FocusEvent event)
We've been focused


treeNodeFocusLost

private void treeNodeFocusLost(java.awt.event.FocusEvent event)
We've lost focus


paintComponent

public void paintComponent(java.awt.Graphics g)
Repaint the node

Overrides:
paintComponent in class javax.swing.JComponent

setValid

public void setValid(boolean validBool)
Set the validity of this node


isValid

public boolean isValid()
Is this a valid node?

Overrides:
isValid in class java.awt.Component