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:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, Perspective
  Direct Known Subclasses:
    AssociationsPanel, AttributeSelectionPanel, AttributeSummaryPerspective, ClassifierPanel, ClustererPanel, Experimenter, MainKFPerspective, PreprocessPanel, ScatterPlotMatrixPerspective, SQLViewerPerspective, VisualizePanel

      public abstract class AbstractPerspective
      extends javax.swing.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

      `javax.swing.JComponent.AccessibleJComponent`

    - ### Nested classes/interfaces inherited from class java.awt.Component

      `java.awt.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 and Description
    `AbstractPerspective()` Constructor
    `AbstractPerspective(java.lang.String ID, java.lang.String title)` Constructor

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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
    `java.util.List<javax.swing.JMenu>` | `getMenus()` Get an ordered list of menus to appear in the main menu bar.
    `javax.swing.Icon` | `getPerspectiveIcon()` Get the icon for this perspective
    `java.lang.String` | `getPerspectiveID()` Get the ID of this perspective
    `java.lang.String` | `getPerspectiveTipText()` Get the tool tip text for this perspective
    `java.lang.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.
    `java.lang.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, getPeer, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, 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 Detail

    - #### AbstractPerspective

          public AbstractPerspective()

      Constructor

    - #### AbstractPerspective

          public AbstractPerspective(java.lang.String ID,
                                     java.lang.String title)

      Constructor
      Parameters:
        `ID` - the ID of the perspective
        `title` - the title of the the perspective

  - ### Method Detail

    - #### 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 java.lang.String getPerspectiveID()

      Get the ID of this perspective
      Specified by:
        `getPerspectiveID` in interface `Perspective`
      Returns:
        the ID of this perspective

    - #### getPerspectiveTitle

          public java.lang.String getPerspectiveTitle()

      Get the title of this perspective
      Specified by:
        `getPerspectiveTitle` in interface `Perspective`
      Returns:
        the title of this perspective

    - #### getPerspectiveTipText

          public java.lang.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 javax.swing.Icon getPerspectiveIcon()

      Get the icon for this perspective
      Specified by:
        `getPerspectiveIcon` in interface `Perspective`
      Returns:
        the icon for this perspective

    - #### getMenus

          public java.util.List<javax.swing.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 java.lang.String toString()

      Returns the perspective's title
      Overrides:
        `toString` in class `java.awt.Component`
      Returns:
        the title of the perspective