Class 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: 15104 $
Author:
Mark Hall
See Also:
  • Field Details

    • FILE_EXTENSION

      public static final String FILE_EXTENSION
      the extension for the serialized setups (Java serialization)
      See Also:
    • FILE_EXTENSION_XML

      public static final String FILE_EXTENSION_XML
      the extension for the serialized setups (Java serialization)
      See Also:
    • 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