Class KnowledgeFlowApp

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, BeanCustomizer.ModifyListener

    public class KnowledgeFlowApp
    extends javax.swing.JPanel
    implements java.beans.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

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.BaselineResizeBehavior
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String FILE_EXTENSION
      the extension for the serialized setups (Java serialization)
      static java.lang.String FILE_EXTENSION_XML
      the extension for the serialized setups (Java serialization)
      static java.util.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

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static void addStartupListener​(StartUpListener s)
      Add a listener to be notified when startup is complete
      static void addToPluginBeanProps​(java.io.File beanPropsFile)
      Add a plugin bean props file
      void clearLayout()  
      void closeAllTabs()  
      java.lang.StringBuffer copyToBuffer​(java.util.Vector<java.lang.Object> selectedBeans)
      Utility routine that serializes the supplied Vector of BeanInstances to XML
      static void createSingleton​(java.lang.String[] args)
      Create the singleton instance of the KnowledgeFlow
      static void disposeSingleton()  
      boolean getAllowMultipleTabs()  
      java.util.Vector<java.util.Vector<?>> getFlow()
      Gets the current flow being edited.
      java.lang.String getFlowXML()
      Returns the current flow being edited in XML format.
      static java.lang.String getGlobalInfo​(java.lang.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
      java.lang.StringBuffer getPasteBuffer()
      Get the contents of the paste buffer
      static KnowledgeFlowApp getSingleton()
      Return the singleton instance of the KnowledgeFlow
      void loadLayout​(java.io.File oFile, boolean newTab)
      Load a layout from a file.
      void loadLayout​(java.io.InputStream is, boolean newTab, java.lang.String flowName)
      Load a flow file from an input stream.
      void loadLayout​(java.io.Reader reader, boolean newTab, java.lang.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​(java.lang.String[] args)
      Main method.
      void propertyChange​(java.beans.PropertyChangeEvent e)
      Accept property change events
      static void reInitialize()  
      static void removeFromPluginBeanProps​(java.io.File beanPropsFile)
      Remove a plugin bean props file
      void saveLayout​(java.io.File toFile, int tabIndex)  
      void saveLayout​(java.io.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​(java.util.Vector<java.util.Vector<?>> v)
      Set the flow for the KnowledgeFlow to edit.
      void setModifiedStatus​(java.lang.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​(java.lang.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 Detail

      • FILE_EXTENSION

        public static final java.lang.String FILE_EXTENSION
        the extension for the serialized setups (Java serialization)
        See Also:
        Constant Field Values
      • FILE_EXTENSION_XML

        public static final java.lang.String FILE_EXTENSION_XML
        the extension for the serialized setups (Java serialization)
        See Also:
        Constant Field Values
      • s_startupListeners

        public static java.util.Vector<StartUpListener> s_startupListeners
    • Constructor Detail

      • KnowledgeFlowApp

        public KnowledgeFlowApp​(boolean showFileMenu)
        Creates a new KnowledgeFlowApp instance.
    • Method Detail

      • addToPluginBeanProps

        public static void addToPluginBeanProps​(java.io.File beanPropsFile)
                                         throws java.lang.Exception
        Add a plugin bean props file
        Parameters:
        beanPropsFile - the plugin properties to add
        Throws:
        java.lang.Exception - if a problem occurs
      • removeFromPluginBeanProps

        public static void removeFromPluginBeanProps​(java.io.File beanPropsFile)
                                              throws java.lang.Exception
        Remove a plugin bean props file
        Parameters:
        beanPropsFile - the plugin properties to remove
        Throws:
        java.lang.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​(java.lang.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​(java.lang.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 java.lang.StringBuffer getPasteBuffer()
        Get the contents of the paste buffer
        Returns:
        the contents of the paste buffer
      • copyToBuffer

        public java.lang.StringBuffer copyToBuffer​(java.util.Vector<java.lang.Object> selectedBeans)
                                            throws java.lang.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:
        java.lang.Exception - if a problem occurs
      • propertyChange

        public void propertyChange​(java.beans.PropertyChangeEvent e)
        Accept property change events
        Specified by:
        propertyChange in interface java.beans.PropertyChangeListener
        Parameters:
        e - a PropertyChangeEvent value
      • loadLayout

        public void loadLayout​(java.io.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​(java.io.InputStream is,
                               boolean newTab,
                               java.lang.String flowName)
                        throws java.lang.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:
        java.lang.Exception - if a problem occurs during de-serialization
      • loadLayout

        public void loadLayout​(java.io.Reader reader,
                               boolean newTab,
                               java.lang.String flowName)
                        throws java.lang.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:
        java.lang.Exception - if a problem occurs during de-serialization
      • setFlow

        public void setFlow​(java.util.Vector<java.util.Vector<?>> v)
                     throws java.lang.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:
        java.lang.Exception - if something goes wrong
      • getFlow

        public java.util.Vector<java.util.Vector<?>> getFlow()
                                                      throws java.lang.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:
        java.lang.Exception - if a problem occurs
      • getFlowXML

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

        public void saveLayout​(java.io.File toFile,
                               int tabIndex)
      • saveLayout

        public void saveLayout​(java.io.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 java.lang.String getGlobalInfo​(java.lang.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​(java.lang.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​(java.lang.String[] args)
        Main method.
        Parameters:
        args - a String[] value