weka.gui.beans
Class BeanVisual

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byweka.gui.beans.BeanVisual
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class BeanVisual
extends javax.swing.JPanel
implements java.io.Serializable

BeanVisual encapsulates icons and label for a given bean. Has methods to load icons, set label text and toggle between static and animated versions of a bean's icon.

Since:
1.0
Version:
$Revision: 1.3 $
Author:
Mark Hall
See Also:
JPanel, Serializable, Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static int EAST_CONNECTOR
           
static java.lang.String ICON_PATH
           
protected  javax.swing.ImageIcon m_animatedIcon
           
protected  java.lang.String m_animatedIconPath
          Holds name (including path) of the animated icon
private  boolean m_displayConnectors
           
protected  javax.swing.ImageIcon m_icon
          ImageIcons for the icons.
protected  java.lang.String m_iconPath
          Holds name (including path) of the static icon
private  java.beans.PropertyChangeSupport m_pcs
           
private  boolean m_stationary
          Container for the icon
protected  javax.swing.JLabel m_visualLabel
           
protected  java.lang.String m_visualName
          Name for the bean
static int NORTH_CONNECTOR
           
static int SOUTH_CONNECTOR
           
static int WEST_CONNECTOR
           
 
Fields inherited from class javax.swing.JPanel
 
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.Container
 
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
 
Constructor Summary
BeanVisual(java.lang.String visualName, java.lang.String iconPath, java.lang.String animatedIconPath)
          Constructor
 
Method Summary
 void addPropertyChangeListener(java.beans.PropertyChangeListener pcl)
          Add a listener for property change events
 javax.swing.ImageIcon getAnimatedIcon()
          Returns the animated icon
 java.awt.Point getClosestConnectorPoint(java.awt.Point pt)
          Returns the coordinates of the closest "connector" point to the supplied point.
 java.awt.Point getConnectorPoint(int compassPoint)
          Returns the coordinates of the connector point given a compass point
 javax.swing.ImageIcon getStaticIcon()
          Returns the static icon
 java.lang.String getText()
          Get the visual's label
 boolean loadIcons(java.lang.String iconPath, java.lang.String animatedIconPath)
          Loads static and animated versions of a beans icons.
 void paintComponent(java.awt.Graphics gx)
           
private  void readObject(java.io.ObjectInputStream ois)
          Overides default read object in order to reload icons.
 void removePropertyChangeListener(java.beans.PropertyChangeListener pcl)
          Remove a property change listener
 void setAnimated()
          Set the animated version of the icon
 void setDisplayConnectors(boolean dc)
          Turn on/off the connector points
 void setStatic()
          Set the static version of the icon
 void setText(java.lang.String text)
          Set the label for the visual.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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

ICON_PATH

public static final java.lang.String ICON_PATH
See Also:
Constant Field Values

NORTH_CONNECTOR

public static final int NORTH_CONNECTOR
See Also:
Constant Field Values

SOUTH_CONNECTOR

public static final int SOUTH_CONNECTOR
See Also:
Constant Field Values

EAST_CONNECTOR

public static final int EAST_CONNECTOR
See Also:
Constant Field Values

WEST_CONNECTOR

public static final int WEST_CONNECTOR
See Also:
Constant Field Values

m_iconPath

protected java.lang.String m_iconPath
Holds name (including path) of the static icon


m_animatedIconPath

protected java.lang.String m_animatedIconPath
Holds name (including path) of the animated icon


m_icon

protected transient javax.swing.ImageIcon m_icon
ImageIcons for the icons. Is transient because for some reason animated gifs cease to be animated after restoring from serialization. Icons are re-loaded from source after deserialization


m_animatedIcon

protected transient javax.swing.ImageIcon m_animatedIcon

m_visualName

protected java.lang.String m_visualName
Name for the bean


m_visualLabel

protected javax.swing.JLabel m_visualLabel

m_stationary

private boolean m_stationary
Container for the icon


m_pcs

private java.beans.PropertyChangeSupport m_pcs

m_displayConnectors

private boolean m_displayConnectors
Constructor Detail

BeanVisual

public BeanVisual(java.lang.String visualName,
                  java.lang.String iconPath,
                  java.lang.String animatedIconPath)
Constructor

Parameters:
visualName - name for the bean
iconPath - path to the icon file
animatedIconPath - path to the animated icon file
Method Detail

loadIcons

public boolean loadIcons(java.lang.String iconPath,
                         java.lang.String animatedIconPath)
Loads static and animated versions of a beans icons. These are assumed to be defined in the system resource location (i.e. in the CLASSPATH). If the named icons do not exist, no changes to the visual appearance is made. Since default icons for generic types of beans (eg. DataSource, Classifier etc) are assumed to exist, it allows developers to add custom icons for for specific instantiations of these beans (eg. J48, DiscretizeFilter etc) at their leisure.

Parameters:
iconPath - path to
animatedIconPath - a String value

setText

public void setText(java.lang.String text)
Set the label for the visual. Informs any property change listeners

Parameters:
text - the label

getText

public java.lang.String getText()
Get the visual's label

Returns:
a String value

setStatic

public void setStatic()
Set the static version of the icon


setAnimated

public void setAnimated()
Set the animated version of the icon


getClosestConnectorPoint

public java.awt.Point getClosestConnectorPoint(java.awt.Point pt)
Returns the coordinates of the closest "connector" point to the supplied point. Coordinates are in the parent containers coordinate space.

Parameters:
pt - the reference point
Returns:
the closest connector point

getConnectorPoint

public java.awt.Point getConnectorPoint(int compassPoint)
Returns the coordinates of the connector point given a compass point

Parameters:
compassPoint - a compass point
Returns:
a Point value

getStaticIcon

public javax.swing.ImageIcon getStaticIcon()
Returns the static icon

Returns:
an ImageIcon value

getAnimatedIcon

public javax.swing.ImageIcon getAnimatedIcon()
Returns the animated icon

Returns:
an ImageIcon value

setDisplayConnectors

public void setDisplayConnectors(boolean dc)
Turn on/off the connector points

Parameters:
dc - a boolean value

addPropertyChangeListener

public void addPropertyChangeListener(java.beans.PropertyChangeListener pcl)
Add a listener for property change events

Parameters:
pcl - a PropertyChangeListener value

removePropertyChangeListener

public void removePropertyChangeListener(java.beans.PropertyChangeListener pcl)
Remove a property change listener

Parameters:
pcl - a PropertyChangeListener value

paintComponent

public void paintComponent(java.awt.Graphics gx)

readObject

private void readObject(java.io.ObjectInputStream ois)
                 throws java.io.IOException,
                        java.lang.ClassNotFoundException
Overides default read object in order to reload icons. This is necessary because for some strange reason animated gifs stop being animated after being serialized/deserialized.

Parameters:
ois - an ObjectInputStream value
Throws:
java.io.IOException - if an error occurs
java.lang.ClassNotFoundException - if an error occurs