weka.gui.beans
Class KnowledgeFlowApp

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by weka.gui.beans.KnowledgeFlowApp
All Implemented Interfaces:
ImageObserver, MenuContainer, PropertyChangeListener, Serializable, EventListener, Accessible, BeanCustomizer.ModifyListener

public class KnowledgeFlowApp
extends JPanel
implements PropertyChangeListener, BeanCustomizer.ModifyListener

Main GUI class for the KnowledgeFlow. Modifications to allow interoperability with swt provided by Davide Zerbetto (davide dot zerbetto at eng dot it).

Since:
1.0
Version:
$Revision: 8034 $
Author:
Mark Hall
See Also:
JPanel, PropertyChangeListener, Serialized Form

Nested Class Summary
static interface KnowledgeFlowApp.KFPerspective
          Interface for perspectives.
 class KnowledgeFlowApp.MainKFPerspective
          Main Knowledge Flow perspective
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Component
Component.BaselineResizeBehavior
 
Field Summary
static String FILE_EXTENSION
          the extension for the serialized setups (Java serialization)
static String FILE_EXTENSION_XML
          the extension for the serialized setups (Java serialization)
static Vector s_startupListeners
           
 
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, 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
 
Constructor Summary
KnowledgeFlowApp(boolean showFileMenu)
          Creates a new KnowledgeFlowApp instance.
 
Method Summary
static void addStartupListener(StartUpListener s)
          Add a listener to be notified when startup is complete
static void addToPluginBeanProps(File beanPropsFile)
           
 void clearLayout()
           
 void closeAllTabs()
           
 StringBuffer copyToBuffer(Vector selectedBeans)
          Utility routine that serializes the supplied Vector of BeanInstances to XML
static void createSingleton(String[] args)
          Create the singleton instance of the KnowledgeFlow
static void disposeSingleton()
           
 boolean getAllowMultipleTabs()
           
 Vector getFlow()
          Gets the current flow being edited.
static String getGlobalInfo(Object tempBean)
          Utility method for grabbing the global info help (if it exists) from an arbitrary object
 KnowledgeFlowApp.MainKFPerspective getMainPerspective()
          Gets the main knowledge flow perspective
 StringBuffer getPasteBuffer()
          Get the contents of the paste buffer
static KnowledgeFlowApp getSingleton()
          Return the singleton instance of the KnowledgeFlow
 void loadLayout(File oFile, boolean newTab)
          Load a layout from a file.
 void loadLayout(InputStream is, boolean newTab, String flowName)
          Load a flow file from an input stream.
 void loadLayout(Reader reader, boolean newTab, String flowName)
          Load a flow file from a reader.
static void loadProperties()
          Loads KnowledgeFlow properties and any plugins (adds jars to the classpath)
static void main(String[] args)
          Main method.
 void propertyChange(PropertyChangeEvent e)
          Accept property change events
static void reInitialize()
           
static void removeFromPluginBeanProps(File beanPropsFile)
           
 void saveLayout(File toFile, int tabIndex)
           
 void saveLayout(OutputStream out, int tabIndex)
          Save the knowledge flow into the OutputStream passed at input.
 void setAllowMultipleTabs(boolean multiple)
           
 void setEnvironment(Environment env)
          Set the environment variables to use.
 void setFlow(Vector v)
          Set the flow for the KnowledgeFlow to edit.
 void setModifiedStatus(Object source, boolean modified)
          Tells us about the modified status of a particular object - typically a customizer that is editing a flow component.
 void setPasteBuffer(StringBuffer b)
          Set the contents of the "paste" buffer and enable the paste from cliboard toolbar button
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, 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, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, 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, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, 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, imageUpdate, 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, 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
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

FILE_EXTENSION

public static final String FILE_EXTENSION
the extension for the serialized setups (Java serialization)

See Also:
Constant Field Values

FILE_EXTENSION_XML

public static final String FILE_EXTENSION_XML
the extension for the serialized setups (Java serialization)

See Also:
Constant Field Values

s_startupListeners

public static Vector s_startupListeners
Constructor Detail

KnowledgeFlowApp

public KnowledgeFlowApp(boolean showFileMenu)
Creates a new KnowledgeFlowApp instance.

Method Detail

addToPluginBeanProps

public static void addToPluginBeanProps(File beanPropsFile)
                                 throws Exception
Throws:
Exception

removeFromPluginBeanProps

public static void removeFromPluginBeanProps(File beanPropsFile)
                                      throws Exception
Throws:
Exception

loadProperties

public static void loadProperties()
Loads KnowledgeFlow properties and any plugins (adds jars to the classpath)


reInitialize

public static void reInitialize()

setEnvironment

public void setEnvironment(Environment env)
Set the environment variables to use. NOTE: loading a new layout resets back to the default set of variables

Parameters:
env -

getMainPerspective

public KnowledgeFlowApp.MainKFPerspective getMainPerspective()
Gets the main knowledge flow perspective

Returns:
the main knowledge flow perspective

closeAllTabs

public void closeAllTabs()

clearLayout

public void clearLayout()

setModifiedStatus

public void setModifiedStatus(Object source,
                              boolean modified)
Tells us about the modified status of a particular object - typically a customizer that is editing a flow component. Allows us to set the modified flag for the current flow.

Specified by:
setModifiedStatus in interface BeanCustomizer.ModifyListener
Parameters:
source - the source object
modified - true if the source object has been modified

setPasteBuffer

public void setPasteBuffer(StringBuffer b)
Set the contents of the "paste" buffer and enable the paste from cliboard toolbar button

Parameters:
b - the buffer to use

getPasteBuffer

public StringBuffer getPasteBuffer()
Get the contents of the paste buffer

Returns:
the contents of the paste buffer

copyToBuffer

public StringBuffer copyToBuffer(Vector selectedBeans)
                          throws Exception
Utility routine that serializes the supplied Vector of BeanInstances to XML

Parameters:
selectedBeans - the vector of BeanInstances to serialize
Returns:
a StringBuffer containing the serialized vector
Throws:
Exception - if a problem occurs

propertyChange

public void propertyChange(PropertyChangeEvent e)
Accept property change events

Specified by:
propertyChange in interface PropertyChangeListener
Parameters:
e - a PropertyChangeEvent value

loadLayout

public void loadLayout(File oFile,
                       boolean newTab)
Load a layout from a file. Supports loading binary and XML serialized flow files

Parameters:
oFile - the file to load from
newTab - true if the loaded layout should be displayed in a new tab

loadLayout

public void loadLayout(InputStream is,
                       boolean newTab,
                       String flowName)
                throws Exception
Load a flow file from an input stream. Only supports XML serialized flows.

Parameters:
is - the input stream to laod from
newTab - whether to open a new tab in the UI for the flow
flowName - the name of the flow
Throws:
Exception - if a problem occurs during de-serialization

loadLayout

public void loadLayout(Reader reader,
                       boolean newTab,
                       String flowName)
                throws Exception
Load a flow file from a reader. Only supports XML serialized flows.

Parameters:
reader - the reader to load from
newTab - whether to open a new tab in the UI for the flow
flowName - the name of the flow
Throws:
Exception - if a problem occurs during de-serialization

setFlow

public void setFlow(Vector v)
             throws Exception
Set the flow for the KnowledgeFlow to edit. Assumes that client has loaded a Vector of beans and a Vector of connections. the supplied beans and connections are deep-copied via serialization before being set in the layout. The beans get added to the flow at position 0.

Parameters:
v - a Vector containing a Vector of beans and a Vector of connections
Throws:
Exception - if something goes wrong

getFlow

public Vector getFlow()
               throws Exception
Gets the current flow being edited. The flow is returned as a single Vector containing two other Vectors: the beans and the connections. These two vectors are deep-copied via serialization before being returned.

Returns:
the current flow being edited
Throws:
Exception

saveLayout

public void saveLayout(File toFile,
                       int tabIndex)

saveLayout

public void saveLayout(OutputStream out,
                       int tabIndex)
Save the knowledge flow into the OutputStream passed at input. Only supports saving the layout data (no trained models) to XML.

Parameters:
out - the output stream to save the layout in

getGlobalInfo

public static String getGlobalInfo(Object tempBean)
Utility method for grabbing the global info help (if it exists) from an arbitrary object

Parameters:
tempBean - the object to grab global info from
Returns:
the global help info or null if global info does not exist

createSingleton

public static void createSingleton(String[] args)
Create the singleton instance of the KnowledgeFlow

Parameters:
args - can contain a file argument for loading a flow layout (format: "file=[path to layout file]") Modified by Zerbetto: you can specify the path of a knowledge flow layout file at input

disposeSingleton

public static void disposeSingleton()

getSingleton

public static KnowledgeFlowApp getSingleton()
Return the singleton instance of the KnowledgeFlow

Returns:
the singleton instance

addStartupListener

public static void addStartupListener(StartUpListener s)
Add a listener to be notified when startup is complete

Parameters:
s - a listener to add

setAllowMultipleTabs

public void setAllowMultipleTabs(boolean multiple)

getAllowMultipleTabs

public boolean getAllowMultipleTabs()

main

public static void main(String[] args)
Main method.

Parameters:
args - a String[] value


Copyright © 2012 University of Waikato, Hamilton, NZ. All Rights Reserved.