Package weka.gui.beans

# Class MetaBean

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
weka.gui.beans.MetaBean

All Implemented Interfaces:
  `ImageObserver`, `MenuContainer`, `Serializable`, `Accessible`, `BeanCommon`, `EventConstraints`, `Startable`, `UserRequestAcceptor`, `Visible`

public class MetaBean extends JPanel implements BeanCommon, Visible, EventConstraints, Serializable, UserRequestAcceptor, Startable
A meta bean that encapsulates several other regular beans, useful for grouping large KnowledgeFlows.

Version:
  $Revision: 10221 $
Author:
  Mark Hall (mhall at cs dot waikato dot ac dot nz)
See Also:
  - Serialized Form

- ## Nested Class Summary

  ## 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 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
  `MetaBean()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addPropertyChangeListenersSubFlow(PropertyChangeListener pcl)`
  `boolean`
  `canAcceptConnection(Class<?> listenerClass)`
  Checks to see if any of the inputs to this group implements the supplied listener class
  `boolean`
  `connectionAllowed(EventSetDescriptor esd)`
  Returns true if, at this time, the object will accept a connection with respect to the supplied EventSetDescriptor
  `boolean`
  `connectionAllowed(String eventName)`
  Returns true if, at this time, the object will accept a connection via the named event
  `void`
  `connectionNotification(String eventName, Object source)`
  Notify this object that it has been registered as a listener with a source with respect to the named event.
  `void`
  `disconnectionNotification(String eventName, Object source)`
  Notify this object that it has been deregistered as a listener with a source with respect to the supplied event name.
  `Enumeration<String>`
  `enumerateRequests()`
  Return an enumeration of requests that can be made by the user
  `boolean`
  `eventGeneratable(EventSetDescriptor esd)`
  Returns true, if at the current time, the event described by the supplied event descriptor could be generated.
  `boolean`
  `eventGeneratable(String eventName)`
  Returns true, if at the current time, the named event could be generated.
  `Vector<BeanConnection>`
  `getAssociatedConnections()`
  `Vector<BeanInfo>`
  `getBeanInfoInputs()`
  `Vector<BeanInfo>`
  `getBeanInfoOutputs()`
  `Vector<BeanInfo>`
  `getBeanInfoSubFlow()`
  `Vector<Object>`
  `getBeansInInputs()`
  Return all the beans in the inputs
  `Vector<Object>`
  `getBeansInOutputs()`
  Return all the beans in the outputs
  `Vector<Object>`
  `getBeansInSubFlow()`
  Return all the beans in the sub flow
  `String`
  `getCustomName()`
  Get the custom (descriptive) name for this bean (if one has been set)
  `Vector<Object>`
  `getInputs()`
  `Vector<Point>`
  `getOriginalCoords()`
  returns the vector containing the original coordinates (instances of class Point) for the inputs
  `Vector<Object>`
  `getOutputs()`
  `String`
  `getStartMessage()`
  Gets a string that describes the start action.
  `Vector<Object>`
  `getSubFlow()`
  `Vector<BeanInstance>`
  `getSuitableTargets(EventSetDescriptor esd)`
  Return a list of input beans capable of receiving the supplied event
  `BeanVisual`
  `getVisual()`
  Gets the visual appearance of this wrapper bean
  `boolean`
  `inputsContains(BeanInstance toCheck)`
  `boolean`
  `isBusy()`
  Returns true if.
  `boolean`
  `outputsContains(BeanInstance toCheck)`
  `void`
  `performRequest(String request)`
  Perform a particular request
  `void`
  `removePropertyChangeListenersSubFlow(PropertyChangeListener pcl)`
  `void`
  `restoreBeans(int x, int y)`
  `void`
  `setAssociatedConnections(Vector<BeanConnection> ac)`
  `void`
  `setCustomName(String name)`
  Set a custom (descriptive) name for this bean
  `void`
  `setInputs(Vector<Object> inputs)`
  `void`
  `setLog(Logger logger)`
  Set a logger
  `void`
  `setOriginalCoords(Vector<Point> value)`
  sets the vector containing the original coordinates (instances of class Point) for the inputs
  `void`
  `setOutputs(Vector<Object> outputs)`
  `void`
  `setSubFlow(Vector<Object> sub)`
  `void`
  `setSubFlowPreview(ImageIcon sfp)`
  `void`
  `setVisual(BeanVisual newVisual)`
  Sets the visual appearance of this wrapper bean
  `void`
  `shiftBeans(BeanInstance toShiftTo, boolean save)`
  Move coords of all inputs and outputs of this meta bean to the coords of the supplied BeanInstance.
  `void`
  `start()`
  Start the flow running
  `void`
  `stop()`
  Stop all encapsulated beans
  `boolean`
  `subFlowContains(BeanInstance toCheck)`
  `void`
  `useDefaultVisual()`
  Use the default visual appearance for this bean

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

- ## Constructor Details

  - ### MetaBean

    public MetaBean()

- ## Method Details

  - ### setCustomName

    public void setCustomName(String name)
    Set a custom (descriptive) name for this bean
    Specified by:
      `setCustomName` in interface `BeanCommon`
    Parameters:
      `name` - the name to use

  - ### getCustomName

    public String getCustomName()
    Get the custom (descriptive) name for this bean (if one has been set)
    Specified by:
      `getCustomName` in interface `BeanCommon`
    Returns:
      the custom name (or the default name)

  - ### setAssociatedConnections

    public void setAssociatedConnections(Vector<BeanConnection> ac)

  - ### getAssociatedConnections

    public Vector<BeanConnection> getAssociatedConnections()

  - ### setSubFlow

    public void setSubFlow(Vector<Object> sub)

  - ### getSubFlow

    public Vector<Object> getSubFlow()

  - ### setInputs

    public void setInputs(Vector<Object> inputs)

  - ### getInputs

    public Vector<Object> getInputs()

  - ### setOutputs

    public void setOutputs(Vector<Object> outputs)

  - ### getOutputs

    public Vector<Object> getOutputs()

  - ### subFlowContains

    public boolean subFlowContains(BeanInstance toCheck)

  - ### inputsContains

    public boolean inputsContains(BeanInstance toCheck)

  - ### outputsContains

    public boolean outputsContains(BeanInstance toCheck)

  - ### getBeansInSubFlow

    public Vector<Object> getBeansInSubFlow()
    Return all the beans in the sub flow
    Returns:
      a Vector of all the beans in the sub flow

  - ### getBeansInInputs

    public Vector<Object> getBeansInInputs()
    Return all the beans in the inputs
    Returns:
      a Vector of all the beans in the inputs

  - ### getBeansInOutputs

    public Vector<Object> getBeansInOutputs()
    Return all the beans in the outputs
    Returns:
      a Vector of all the beans in the outputs

  - ### getBeanInfoSubFlow

    public Vector<BeanInfo> getBeanInfoSubFlow()

  - ### getBeanInfoInputs

    public Vector<BeanInfo> getBeanInfoInputs()

  - ### getBeanInfoOutputs

    public Vector<BeanInfo> getBeanInfoOutputs()

  - ### getOriginalCoords

    public Vector<Point> getOriginalCoords()
    returns the vector containing the original coordinates (instances of class Point) for the inputs
    Returns:
      the containing the coord Points of the original inputs

  - ### setOriginalCoords

    public void setOriginalCoords(Vector<Point> value)
    sets the vector containing the original coordinates (instances of class Point) for the inputs
    Parameters:
      `value` - the vector containing the points of the coords of the original inputs

  - ### shiftBeans

    public void shiftBeans(BeanInstance toShiftTo, boolean save)
    Move coords of all inputs and outputs of this meta bean to the coords of the supplied BeanInstance. Typically the supplied BeanInstance is the BeanInstance that encapsulates this meta bean; the result in this case is that all inputs and outputs are shifted so that their coords coincide with the meta bean and all connections to them appear (visually) to go to/from the meta bean.
    Parameters:
      `toShiftTo` - the BeanInstance whos coordinates will be used.
      `save` - true if coordinates are to be saved.

  - ### restoreBeans

    public void restoreBeans(int x, int y)

  - ### eventGeneratable

    public boolean eventGeneratable(EventSetDescriptor esd)
    Returns true, if at the current time, the event described by the supplied event descriptor could be generated.
    Parameters:
      `esd` - an `EventSetDescriptor` value
    Returns:
      a `boolean` value

  - ### eventGeneratable

    public boolean eventGeneratable(String eventName)
    Returns true, if at the current time, the named event could be generated. Assumes that the supplied event name is an event that could be generated by this bean
    Specified by:
      `eventGeneratable` in interface `EventConstraints`
    Parameters:
      `eventName` - the name of the event in question
    Returns:
      true if the named event could be generated at this point in time

  - ### connectionAllowed

    public boolean connectionAllowed(EventSetDescriptor esd)
    Returns true if, at this time, the object will accept a connection with respect to the supplied EventSetDescriptor
    Specified by:
      `connectionAllowed` in interface `BeanCommon`
    Parameters:
      `esd` - the EventSetDescriptor
    Returns:
      true if the object will accept a connection

  - ### connectionAllowed

    public boolean connectionAllowed(String eventName)
    Description copied from interface: `BeanCommon`
    Returns true if, at this time, the object will accept a connection via the named event
    Specified by:
      `connectionAllowed` in interface `BeanCommon`
    Parameters:
      `eventName` - the name of the event
    Returns:
      true if the object will accept a connection

  - ### connectionNotification

    public void connectionNotification(String eventName, Object source)
    Notify this object that it has been registered as a listener with a source with respect to the named event. This is just a dummy method in this class to satisfy the interface. Specific code in BeanConnection takes care of this method for MetaBeans
    Specified by:
      `connectionNotification` in interface `BeanCommon`
    Parameters:
      `eventName` - the event
      `source` - the source with which this object has been registered as a listener

  - ### disconnectionNotification

    public void disconnectionNotification(String eventName, Object source)
    Notify this object that it has been deregistered as a listener with a source with respect to the supplied event name. This is just a dummy method in this class to satisfy the interface. Specific code in BeanConnection takes care of this method for MetaBeans
    Specified by:
      `disconnectionNotification` in interface `BeanCommon`
    Parameters:
      `eventName` - the event
      `source` - the source with which this object has been registered as a listener

  - ### stop

    public void stop()
    Stop all encapsulated beans
    Specified by:
      `stop` in interface `BeanCommon`

  - ### isBusy

    public boolean isBusy()
    Returns true if. at this time, the bean is busy with some (i.e. perhaps a worker thread is performing some calculation).
    Specified by:
      `isBusy` in interface `BeanCommon`
    Returns:
      true if the bean is busy.

  - ### setVisual

    public void setVisual(BeanVisual newVisual)
    Sets the visual appearance of this wrapper bean
    Specified by:
      `setVisual` in interface `Visible`
    Parameters:
      `newVisual` - a `BeanVisual` value

  - ### getVisual

    public BeanVisual getVisual()
    Gets the visual appearance of this wrapper bean
    Specified by:
      `getVisual` in interface `Visible`
    Returns:
      a `BeanVisual` value

  - ### useDefaultVisual

    public void useDefaultVisual()
    Use the default visual appearance for this bean
    Specified by:
      `useDefaultVisual` in interface `Visible`

  - ### getStartMessage

    public String getStartMessage()
    Description copied from interface: `Startable`
    Gets a string that describes the start action. The KnowledgeFlow uses this in the popup contextual menu for the component. The string can be proceeded by a '$' character to indicate that the component can't be started at present.
    Specified by:
      `getStartMessage` in interface `Startable`
    Returns:
      a string describing the start action.

  - ### start

    public void start()
    Description copied from interface: `Startable`
    Start the flow running
    Specified by:
      `start` in interface `Startable`

  - ### enumerateRequests

    public Enumeration<String> enumerateRequests()
    Return an enumeration of requests that can be made by the user
    Specified by:
      `enumerateRequests` in interface `UserRequestAcceptor`
    Returns:
      an `Enumeration` value

  - ### setSubFlowPreview

    public void setSubFlowPreview(ImageIcon sfp)

  - ### performRequest

    public void performRequest(String request)
    Perform a particular request
    Specified by:
      `performRequest` in interface `UserRequestAcceptor`
    Parameters:
      `request` - the request to perform
    Throws:
      `IllegalArgumentException` - if an error occurs

  - ### setLog

    public void setLog(Logger logger)
    Set a logger
    Specified by:
      `setLog` in interface `BeanCommon`
    Parameters:
      `logger` - a `Logger` value

  - ### removePropertyChangeListenersSubFlow

    public void removePropertyChangeListenersSubFlow(PropertyChangeListener pcl)

  - ### addPropertyChangeListenersSubFlow

    public void addPropertyChangeListenersSubFlow(PropertyChangeListener pcl)

  - ### canAcceptConnection

    public boolean canAcceptConnection(Class<?> listenerClass)
    Checks to see if any of the inputs to this group implements the supplied listener class
    Parameters:
      `listenerClass` - the listener to check for

  - ### getSuitableTargets

    public Vector<BeanInstance> getSuitableTargets(EventSetDescriptor esd)
    Return a list of input beans capable of receiving the supplied event
    Parameters:
      `esd` - the event in question
    Returns:
      a vector of beans capable of handling the event