| NORSYS SOFTWARE © 2009 | NETICA API | JAVA VERSION 4.18

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## norsys.netica.gui
Class NodePanel

    java.lang.Object
      |
      +--java.awt.Component
            |
            +--java.awt.Container
                  |
                  +--javax.swing.JComponent
                        |
                        +--javax.swing.JPanel
                              |
                              +--norsys.netica.gui.NodePanel

All Implemented Interfaces:
  javax.accessibility.Accessible, DataDisplayer, java.awt.image.ImageObserver, java.awt.MenuContainer, NeticaListener, RecursingEventListener, java.io.Serializable

Direct Known Subclasses:
  NodePanel_BeliefBar, NodePanel_BeliefBars, NodePanel_Circle, NodePanel_LabeledBox, NodePanel_Text

public abstract class NodePanel
extends javax.swing.JPanel
implements RecursingEventListener, DataDisplayer, NeticaListener

An abstract base class used for constucting classes that are different styles of NodePanel. Several extensions of this class are supplied in this toolkit. The style that are supplied are modeled after those available in Netica Application (TM). These are as depicted in the following diagram:

>
Fig. 1. The Available NodePanels.

If you are familiar with Java SWING programming, you should find it easy to extend this class and create your own node styles. If you override any of the base methods, you will typically want to call the parent method in your overriding method so as to guarantee compatibility with the other NodePanels supplied in this toolkit.

Since:
  3.0
Version:
  4.18 - October 1, 2010
See Also:
  Serialized Form

Inner classes inherited from class javax.swing.JPanel
`javax.swing.JPanel.AccessibleJPanel`

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`

Field Summary
`static java.awt.Color` | `defaultBackgroundColor_ConstantNode` Background Color for newly constructed Constant nodes.
`static java.awt.Color` | `defaultBackgroundColor_DecisionNode` Background Color for newly constructed Decision nodes.
`static java.awt.Color` | `defaultBackgroundColor_NatureNode` Background Color for newly constructed Nature nodes.
`static java.awt.Color` | `defaultBackgroundColor_UtilityNode` Background Color for newly constructed Utility nodes.
`static java.awt.Color` | `defaultBorderColor` The color of any border displayed by this panel upon construction.
`static java.awt.Color` | `defaultForegroundColor` The color of any foreground items, such as text.
`static javax.swing.border.Border` | `defaultTitleBorder` The Border around any title text.
`static java.awt.Font` | `defaultTitleFont` The Font of the title, if any.
`static int` | `DISPLAY_MODE_GRAYED` Used to display this NodePanel as "grayed" or "inactive".
`static int` | `DISPLAY_MODE_HILITED` Used to display this NodePanel as having been specially selected.
`static int` | `DISPLAY_MODE_NORMAL` Used to display this NodePanel in normal fashion.
`static java.awt.Color` | `grayedModeBGColor` A color to use for signaling that this NodePanel is in "grayed out" mode ( see `setDisplayMode(DISPLAY_MODE_GRAYED)`).
`static java.awt.Color` | `hilitedModeBGColor` A color to use for signaling that this NodePanel is in "hilited" mode ( see `setDisplayMode(DISPLAY_MODE_HILITED)`).
`static int` | `NODE_STYLE_ABSENT` Display the node as empty space.
`static int` | `NODE_STYLE_AUTO_SELECT` Display the node using a style that seems appropriate.
`static int` | `NODE_STYLE_BELIEF_BARS` Display the node similar to the Belief Bars Style in Netica Application.
`static int` | `NODE_STYLE_CIRCLE` Display the node as a circle or hexagon (Utility nodes).
`static int` | `NODE_STYLE_LABELED_BOX` Display the node titles only, in rounded boxes.
`static int` | `NODE_STYLE_TEXT` Display the node titles only.
`javax.swing.JLabel` | `nodeTitleJLabel` The title Component, if this NodePanel displays a title, otherwise null.
`static int` | `probabilitiesFormat` Used to control the format of any probabilities displayed by this NodePanel.
`static int` | `PROBABILITY_FORMAT_1` Used to display probabilities with no decimal place and a trailing "%" symbol.
`static int` | `PROBABILITY_FORMAT_2` Used to display probabilities as percentages, but without the "%" symbol, and with one decimal place.
`static int` | `PROBABILITY_FORMAT_3` Used to display probabilities as floats between 0.0 and 1.0, with two decimal places.
`static int` | `PROBABILITY_FORMAT_4` Used to display probabilities as floats between 0.00 and 1.00, with three decimal places.

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 java.awt.image.ImageObserver
`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

Method Summary
`void` | `addListenerToAllComponents(java.util.EventListener eventListener)` Add the given EventListener to this object and, if it is a Container, to all RecursingEventListeners it contains.
`static NodePanel` | `createNodePanel(Node node, int style)` Returns a NodePanel associated with node, of the given style.
`void` | `eventOccurred(NeticaEvent event)` A call-back method that Netica will call to indicate an event occurred.
`int` | `getDisplayMode()` Returns whether the node is grayed, normal, or hi-lited.
`Node` | `getNode()` Returns the Node corresponding to this NodePanel.
`int` | `getStyle()` Returns the display style of this NodePanel.
`void` | `moveBy(int deltaX, int deltaY)` Move this panel by a fixed displacement.
`void` | `paintComponent(java.awt.Graphics g)` Overrides javax.swing.JComponent.paintComponent().
`void` | `refreshDataDisplayed()` Refresh all the data in this graphical Component, so that it correctly represents the current state of the Netica object it represents.
`void` | `removeListenerFromAllComponents(java.util.EventListener eventListener)` Remove the given EventListener from this object and, if it is a Container, from all RecursingEventListeners it contains.
`void` | `setDisplayMode(int displayMode)` Sets whether the node is displayed as grayed, normal, or hi-lited.
`protected void` | `setupPanel()` Create subcomponents of this NodePanel and add them to this Container.

Methods inherited from class javax.swing.JPanel
`getAccessibleContext, getUIClassID, paramString, 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, getPreferredSize, 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, imageUpdate, 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`

Field Detail

public static final int NODE_STYLE_AUTO_SELECT

  Display the node using a style that seems appropriate. See `NetPanel.setNodeStyle`.

public static final int NODE_STYLE_LABELED_BOX

  Display the node titles only, in rounded boxes. See `NetPanel.setNodeStyle`.

public static final int NODE_STYLE_CIRCLE

  Display the node as a circle or hexagon (Utility nodes). See `NetPanel.setNodeStyle`.

public static final int NODE_STYLE_ABSENT

  Display the node as empty space. See `NetPanel.setNodeStyle`.

public static final int NODE_STYLE_BELIEF_BARS

  Display the node similar to the Belief Bars Style in Netica Application. See `NetPanel.setNodeStyle`.

public static final int NODE_STYLE_TEXT

  Display the node titles only. See `NetPanel.setNodeStyle`.

public static final int DISPLAY_MODE_GRAYED

  Used to display this NodePanel as "grayed" or "inactive". See `setDisplayMode`.

public static final int DISPLAY_MODE_NORMAL

  Used to display this NodePanel in normal fashion. See `setDisplayMode`.

public static final int DISPLAY_MODE_HILITED

  Used to display this NodePanel as having been specially selected. See `setDisplayMode`.

public static final int PROBABILITY_FORMAT_1

  Used to display probabilities with no decimal place and a trailing "%" symbol. See `probabilitiesFormat`.

public static final int PROBABILITY_FORMAT_2

  Used to display probabilities as percentages, but without the "%" symbol, and with one decimal place. See `probabilitiesFormat`.

public static final int PROBABILITY_FORMAT_3

  Used to display probabilities as floats between 0.0 and 1.0, with two decimal places. See `probabilitiesFormat`.

public static final int PROBABILITY_FORMAT_4

  Used to display probabilities as floats between 0.00 and 1.00, with three decimal places. See `probabilitiesFormat`.

public static java.awt.Color defaultBackgroundColor_NatureNode

  Background Color for newly constructed Nature nodes. The default is a light cream color.

public static java.awt.Color defaultBackgroundColor_UtilityNode

  Background Color for newly constructed Utility nodes. The default is kakki green.

public static java.awt.Color defaultBackgroundColor_DecisionNode

  Background Color for newly constructed Decision nodes. The default is cyan blue.

public static java.awt.Color defaultBackgroundColor_ConstantNode

  Background Color for newly constructed Constant nodes. The default is null (transparent).

public static java.awt.Color defaultBorderColor

  The color of any border displayed by this panel upon construction. NodePanel subclasses typically also have a a static defaultBorderColor, which starts off being this color. The default is black.

public static java.awt.Color grayedModeBGColor

  A color to use for signaling that this NodePanel is in "grayed out" mode ( see `setDisplayMode(DISPLAY_MODE_GRAYED)`). The default is gray.

public static java.awt.Color hilitedModeBGColor

  A color to use for signaling that this NodePanel is in "hilited" mode ( see `setDisplayMode(DISPLAY_MODE_HILITED)`). The default is red.

public static java.awt.Color defaultForegroundColor

  The color of any foreground items, such as text. Child classes of NodePanel will typically also have a a static defaultForegroundColor, which will start off being this color. The default is black.

public static java.awt.Font defaultTitleFont

  The Font of the title, if any. Child classes of NodePanel will typically also have a a static defaultTitleFont, which will start off being this Font. The default is bold, sans-serif, size 14.

public static javax.swing.border.Border defaultTitleBorder

  The Border around any title text. Child classes of NodePanel will typically also have a a static defaultTitleBorder, which will start off being this Border. The default is an EmptyBorder with 2 pixels for top and bottom, and 8 pixels for left and right.

public static int probabilitiesFormat

  Used to control the format of any probabilities displayed by this NodePanel.

  Can be set to one of:

  PROBABILITY_FORMAT_1 |  | Percentage, with no decimal. Eg., 100%, 14%, 0%.
  PROBABILITY_FORMAT_2 |  | Percentage, to one decimal place, and without the "%" symbol. Eg., 100.0, 14.0, 0.0.
  PROBABILITY_FORMAT_3 |  | Real number, to two decimal places. Eg., 1.00, 0.14, 0.00.
  PROBABILITY_FORMAT_4 |  | Real number, to three decimal places. Eg., 1.000, 0.144, 0.000.

  The probabilities displayed are rounded numbers.

  For formats 2, 3, and 4, if the probability is non-zero, but would display as zero, then a "+" is appended to thedisplay. For example, with format 4, a probabibility of 0.00023 is displayed as 0.00+"

public javax.swing.JLabel nodeTitleJLabel

  The title Component, if this NodePanel displays a title, otherwise null.

Method Detail

public static NodePanel createNodePanel ( |
Node | node,
int | style
| ) throws NeticaException

  Returns a NodePanel associated with node, of the given style.

  For style, specify one of:

  NODE_STYLE_AUTO_SELECT |  | Netica-J will choose an appropriate style from amongst the following. If the node's VisualNode style (see `VisualNode.setStyle`) is set and can be sensibly mapped to one of the following styles, then that style will be used. Otherwise an appropriate default style will be used.
  NODE_STYLE_LABELED_BOX |  | Node title/name in rounded box
  NODE_STYLE_CIRCLE |  | Plain circle
  NODE_STYLE_ABSENT |  | Empty 1-pixel x 1-pixel space. Links to/from it still appear, and the space can still receive mouse events.
  NODE_STYLE_BELIEF_BARS |  | Netica (TM) style belief bars, a very popular style
  NODE_STYLE_TEXT |  | Node title/name without a border

  Each of the above is depicted in the following diagram:

  If you choose NODE_STYLE_AUTO_SELECT, then Netica will attempt to choose an appropriate style, depending on the type of node and the node's preferred display style (see `VisualNode.setStyle`). Preference is given to the node's preferred display style, but if this style is not set, is not understood, or does not make sense for this particular node, then appropriate defaults are chosen as per the following table:

  Type of Node (see `Node.getKind`) |  | Default style
  NATURE_NODE |  | NODE_STYLE_BELIEF_BARS
  DECISION_NODE |  | NODE_STYLE_BELIEF_BARS
  UTILITY_NODE |  | NODE_STYLE_LABELED_BOX
  CONSTANT_NODE |  | NODE_STYLE_TEXT
  DISCONNECTED_NODE |  | NODE_STYLE_ABSENT

  Parameters:

  Node |  | node |  | The node associated with this graphical representation.
  int |  | style |  | The style of graphic; one of , NODE_STYLE_LABELED_BOX, NODE_STYLE_AUTO_SELECT, NODE_STYLE_LABELED_BOX, , ...

  Version:
  Versions 3.0 and later have this method.
  See Also:

  `NetPanel.setNodeStyle` |  | Set the display style of all the nodes in a NetPanel.
  `NodePanel_BeliefBars.NodePanel_BeliefBars` |  | Constructor for NodePanel_BeliefBars.
  `NodePanel_Circle.NodePanel_Circle` |  | Constructor for NodePanel_Circle.
  `NodePanel_LabeledBox.NodePanel_LabeledBox` |  | Constructor for NodePanel_LabeledBox.
  `NodePanel_Text.NodePanel_Text` |  | Constructor for NodePanel_Text.

public void addListenerToAllComponents ( |
EventListener | eventListener
| )

  Description copied from interface: `RecursingEventListener`
  Add the given EventListener to this object and, if it is a Container, to all RecursingEventListeners it contains.
  Parameters:

  EventListener |  | eventListener |  | The listener to be added to this component and to any of its children that are also RecursingEventListeners.

  Version:
  Versions 3.0 and later have this method.
  See Also:

  removeListenerFromAllComponents |  | removes it instead

  Specified by:
    `addListenerToAllComponents` in interface `RecursingEventListener`

public void eventOccurred ( |
NeticaEvent | event
| )

  A call-back method that Netica will call to indicate an event occurred.
  Parameters:

  NeticaEvent |  | event |  | An object with information about the event that occurred.

  Version:
  Versions 3.0 and later have this method.
  Specified by:
    `eventOccurred` in interface `NeticaListener`

public int getDisplayMode ( )

  Returns whether the node is grayed, normal, or hi-lited.

  Returns one of DISPLAY_MODE_GRAYED, DISPLAY_MODE_NORMAL, or DISPLAY_MODE_HILITED.
  Version:

  Versions 3.0 and later have this method.
  See Also:

  setDisplayMode |  | Sets it.

public Node getNode ( ) throws NeticaException

  Returns the Node corresponding to this NodePanel.
  Version:
  Versions 3.0 and later have this method.

public int getStyle ( )

  Returns the display style of this NodePanel.

  This is one of:

  NODE_STYLE_AUTO_SELECT |  | Netica-J will choose an appropriate style for you from amongst the following.
  NODE_STYLE_LABELED_BOX |  | Node title/name in rounded box
  NODE_STYLE_CIRCLE |  | Plain circle
  NODE_STYLE_ABSENT |  | Empty rectangular space (but links to/from it still appear, and the space can receive mouse events, etc.)
  NODE_STYLE_BELIEF_BARS |  | Netica (TM) style belief bars, a very popular styl
  NODE_STYLE_TEXT |  | Node title/name without a border

  Each of the above is depicted in the following diagram:
  Version:

  Versions 3.0 and later have this method.
  See Also:

  createNodePanel |  | Creates a NodePanel of a certain style.
  `NetPanel.setNodeStyle` |  | Creates new NodePanels of a certain style for an entire net.

public void moveBy ( |
int | deltaX,
int | deltaY
| ) throws NeticaException

  Move this panel by a fixed displacement.

  deltaX is the change in the x (horizontal) direction.

  deltaY is the change in the y (vertical) direction.

  The VisualNode associated with this NodePanel is also displaced, by the same amounts.
  Parameters:

  int |  | deltaX |  | The change in the x (horizontal) direction.
  int |  | deltaY |  | The change in the y (vertical) direction.

  Version:
  Versions 3.0 and later have this method.

public void refreshDataDisplayed ( ) throws NeticaException

  Description copied from interface: `DataDisplayer`
  Refresh all the data in this graphical Component, so that it correctly represents the current state of the Netica object it represents.

  If this is a Container object, then it should arrange to invoke the refreshDataDisplayed method of all the DataDisplayer objects it contains.
  Version:

  Versions 3.0 and later have this method.
  Specified by:
    `refreshDataDisplayed` in interface `DataDisplayer`

public void removeListenerFromAllComponents ( |
EventListener | eventListener
| )

  Description copied from interface: `RecursingEventListener`
  Remove the given EventListener from this object and, if it is a Container, from all RecursingEventListeners it contains.
  Parameters:

  EventListener |  | eventListener |  | The listener to be removed from this component and from any of its children that are also RecursingEventListeners.

  Version:
  Versions 3.0 and later have this method.
  See Also:

  addListenerToAllComponents |  | adds it instead

  Specified by:
    `removeListenerFromAllComponents` in interface `RecursingEventListener`

public void setDisplayMode ( |
int | displayMode
| )

  Sets whether the node is displayed as grayed, normal, or hi-lited.
  Parameters:

  int |  | displayMode |  | One of DISPLAY_MODE_GRAYED, DISPLAY_MODE_NORMAL, or DISPLAY_MODE_HILITED.

  Version:
  Versions 3.0 and later have this method.
  See Also:

  getDisplayMode |  | Retrieves it.

protected void setupPanel ( ) throws Exception

  Create subcomponents of this NodePanel and add them to this Container.

  When you subclass NodePanel, you typically will want to override this method with your own method that builds the subcomponents of your particular NodePanel. Should you do this, we recommend that you call super.setupPanel() so that default NodePanel behavior (e.g., hi-liting logic) is retained.
  Version:

  Versions 3.0 and later have this method.

public void paintComponent ( |
java.awt.Graphics | g
| )

  Overrides javax.swing.JComponent.paintComponent().

  NOTICE:If you override this method, you probably want to call super.paintComponent() in your method to ensure that the node correctly manages display modes.
  Parameters:

  java.awt.Graphics |  | g |  | The AWT/SWING Graphics context.

  Version:
  Versions 3.0 and later have this method.
  Overrides:
    `paintComponent` in class `javax.swing.JComponent`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD