Package weka.gui.beans

# Class KnowledgeFlowApp

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
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: 15103 $
Author:
  Mark Hall
See Also:
  - `JPanel`
  - `PropertyChangeListener`
  - Serialized Form

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `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

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `FILE_EXTENSION`
  the extension for the serialized setups (Java serialization)
  `static final String`
  `FILE_EXTENSION_XML`
  the extension for the serialized setups (Java serialization)
  `static Vector<StartUpListener>`
  `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

  Constructors
  Constructor
  Description
  `KnowledgeFlowApp(boolean showFileMenu)`
  Creates a new `KnowledgeFlowApp` instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static void`
  `addStartupListener(StartUpListener s)`
  Add a listener to be notified when startup is complete
  `static void`
  `addToPluginBeanProps(File beanPropsFile)`
  Add a plugin bean props file
  `void`
  `clearLayout()`
  `void`
  `closeAllTabs()`
  `StringBuffer`
  `copyToBuffer(Vector<Object> 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<Vector<?>>`
  `getFlow()`
  Gets the current flow being edited.
  `String`
  `getFlowXML()`
  Returns the current flow being edited in XML format.
  `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)`
  Remove a plugin bean props file
  `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<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, hide, 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### 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<StartUpListener> s_startupListeners

- ## Constructor Details

  - ### KnowledgeFlowApp

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

- ## Method Details

  - ### addToPluginBeanProps

    public static void addToPluginBeanProps(File beanPropsFile) throws Exception
    Add a plugin bean props file
    Parameters:
      `beanPropsFile` - the plugin properties to add
    Throws:
      `Exception` - if a problem occurs

  - ### removeFromPluginBeanProps

    public static void removeFromPluginBeanProps(File beanPropsFile) throws Exception
    Remove a plugin bean props file
    Parameters:
      `beanPropsFile` - the plugin properties to remove
    Throws:
      `Exception` - if a problem occurs

  - ### 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<Object> 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<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<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` - if a problem occurs

  - ### getFlowXML

    public String getFlowXML() throws Exception
    Returns the current flow being edited in XML format.
    Returns:
      the current flow as an XML string
    Throws:
      `Exception` - if a problem occurs

  - ### 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