Package weka.gui

# Class AbstractPerspective

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

All Implemented Interfaces:
  `ImageObserver`, `MenuContainer`, `Serializable`, `Accessible`, `Perspective`

Direct Known Subclasses:
  `AssociationsPanel`, `AttributeSelectionPanel`, `AttributeSummaryPerspective`, `ClassifierPanel`, `ClustererPanel`, `Experimenter`, `MainKFPerspective`, `PreprocessPanel`, `ScatterPlotMatrixPerspective`, `SQLViewerPerspective`, `VisualizePanel`

public abstract class AbstractPerspective extends JPanel implements Perspective
Base classes for GUI perspectives to extend. Clients that extend this class and make use of the `@PerspectiveInfo` annotation will only need to override/implement a few methods.

Version:
  $Revision: $
Author:
  Mark Hall (mhall{[at]}pentaho{[dot]}com)
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
  `AbstractPerspective()`
  Constructor
  `AbstractPerspective(String ID, String title)`
  Constructor

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `acceptsInstances()`
  Returns true if this perspective can do something meaningful with a set of instances
  `Defaults`
  `getDefaultSettings()`
  Get the default settings for this perspective (or null if there are none)
  `GUIApplication`
  `getMainApplication()`
  Get the main application that this perspective belongs to
  `List<JMenu>`
  `getMenus()`
  Get an ordered list of menus to appear in the main menu bar.
  `Icon`
  `getPerspectiveIcon()`
  Get the icon for this perspective
  `String`
  `getPerspectiveID()`
  Get the ID of this perspective
  `String`
  `getPerspectiveTipText()`
  Get the tool tip text for this perspective
  `String`
  `getPerspectiveTitle()`
  Get the title of this perspective
  `void`
  `instantiationComplete()`
  No-opp implementation.
  `boolean`
  `okToBeActive()`
  Returns true if the perspective is usable at this time.
  `boolean`
  `requiresLog()`
  Whether this perspective requires a graphical log to write to
  `void`
  `setActive(boolean active)`
  Set active status of this perspective.
  `void`
  `setInstances(Instances instances)`
  Set instances (if this perspective can use them)
  `void`
  `setLoaded(boolean loaded)`
  Set whether this perspective is "loaded" - i.e.
  `void`
  `setLog(Logger log)`
  Set a log to use (if required by the perspective)
  `void`
  `setMainApplication(GUIApplication main)`
  Set the main application.
  `void`
  `settingsChanged()`
  Called when the user alters settings.
  `void`
  `terminate()`
  Subclasses should override this to free any additional resources (e.g., JFrames and threads) when the perspective is no longer needed.
  `String`
  `toString()`
  Returns the perspective's title

  ### 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, transferFocus, transferFocusBackward, transferFocusUpCycle`

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

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

- ## Constructor Details

  - ### AbstractPerspective

    public AbstractPerspective()
    Constructor

  - ### AbstractPerspective

    public AbstractPerspective(String ID, String title)
    Constructor
    Parameters:
      `ID` - the ID of the perspective
      `title` - the title of the the perspective

- ## Method Details

  - ### terminate

    public void terminate()
    Subclasses should override this to free any additional resources (e.g., JFrames and threads) when the perspective is no longer needed. This default method removes all menus that a perspective might have because references to various components may be included in the event handlers of these menus.

  - ### instantiationComplete

    public void instantiationComplete()
    No-opp implementation. Subclasses should override if they can only complete initialization by accessing the main application and/or the PerspectiveManager. References to these two things are guaranteed to be available when this method is called during the startup process
    Specified by:
      `instantiationComplete` in interface `Perspective`

  - ### okToBeActive

    public boolean okToBeActive()
    Returns true if the perspective is usable at this time. This is a no-opp implementation that always returns true. Subclasses should override if there are specific conditions that need to be met (e.g. can't operate if there are no instances set).
    Specified by:
      `okToBeActive` in interface `Perspective`
    Returns:
      true if this perspective is usable at this time

  - ### setActive

    public void setActive(boolean active)
    Set active status of this perspective. True indicates that this perspective is the visible active perspective in the application
    Specified by:
      `setActive` in interface `Perspective`
    Parameters:
      `active` - true if this perspective is the active one

  - ### setLoaded

    public void setLoaded(boolean loaded)
    Set whether this perspective is "loaded" - i.e. whether or not the user has opted to have it available in the perspective toolbar. The perspective can make the decision as to allocating or freeing resources on the basis of this. Note that the main application and perspective manager instances are not available to the perspective until the instantiationComplete() method has been called.
    Specified by:
      `setLoaded` in interface `Perspective`
    Parameters:
      `loaded` - true if the perspective is available in the perspective toolbar of the KnowledgeFlow

  - ### setMainApplication

    public void setMainApplication(GUIApplication main)
    Set the main application. Gives other perspectives access to information provided by the main application
    Specified by:
      `setMainApplication` in interface `Perspective`
    Parameters:
      `main` - the main application

  - ### getMainApplication

    public GUIApplication getMainApplication()
    Get the main application that this perspective belongs to
    Specified by:
      `getMainApplication` in interface `Perspective`
    Returns:
      the main application that this perspective belongs to

  - ### getPerspectiveID

    public String getPerspectiveID()
    Get the ID of this perspective
    Specified by:
      `getPerspectiveID` in interface `Perspective`
    Returns:
      the ID of this perspective

  - ### getPerspectiveTitle

    public String getPerspectiveTitle()
    Get the title of this perspective
    Specified by:
      `getPerspectiveTitle` in interface `Perspective`
    Returns:
      the title of this perspective

  - ### getPerspectiveTipText

    public String getPerspectiveTipText()
    Get the tool tip text for this perspective
    Specified by:
      `getPerspectiveTipText` in interface `Perspective`
    Returns:
      the tool tip text for this perspective

  - ### getPerspectiveIcon

    public Icon getPerspectiveIcon()
    Get the icon for this perspective
    Specified by:
      `getPerspectiveIcon` in interface `Perspective`
    Returns:
      the icon for this perspective

  - ### getMenus

    public List<JMenu> getMenus()
    Get an ordered list of menus to appear in the main menu bar. Return null for no menus
    Specified by:
      `getMenus` in interface `Perspective`
    Returns:
      a list of menus to appear in the main menu bar or null for no menus

  - ### setInstances

    public void setInstances(Instances instances)
    Set instances (if this perspective can use them)
    Specified by:
      `setInstances` in interface `Perspective`
    Parameters:
      `instances` - the instances

  - ### acceptsInstances

    public boolean acceptsInstances()
    Returns true if this perspective can do something meaningful with a set of instances
    Specified by:
      `acceptsInstances` in interface `Perspective`
    Returns:
      true if this perspective accepts instances

  - ### requiresLog

    public boolean requiresLog()
    Whether this perspective requires a graphical log to write to
    Specified by:
      `requiresLog` in interface `Perspective`
    Returns:
      true if a log is needed by this perspective

  - ### getDefaultSettings

    public Defaults getDefaultSettings()
    Get the default settings for this perspective (or null if there are none)
    Specified by:
      `getDefaultSettings` in interface `Perspective`
    Returns:
      the default settings for this perspective, or null if the perspective does not have any settings

  - ### settingsChanged

    public void settingsChanged()
    Called when the user alters settings. The settings altered by the user are not necessarily ones related to this perspective
    Specified by:
      `settingsChanged` in interface `Perspective`

  - ### setLog

    public void setLog(Logger log)
    Set a log to use (if required by the perspective)
    Specified by:
      `setLog` in interface `Perspective`
    Parameters:
      `log` - the graphical log to use

  - ### toString

    public String toString()
    Returns the perspective's title
    Overrides:
      `toString` in class `Component`
    Returns:
      the title of the perspective