Class WekaInstanceViewer

  • All Implemented Interfaces:
    adams.core.AdditionalInformationHandler, adams.core.CleanUpHandler, adams.core.Destroyable, adams.core.GlobalInfoSupporter, adams.core.logging.LoggingLevelHandler, adams.core.logging.LoggingSupporter, adams.core.option.OptionHandler, adams.core.QuickInfoSupporter, adams.core.ShallowCopySupporter<adams.flow.core.Actor>, adams.core.SizeOfHandler, adams.core.Stoppable, adams.core.StoppableWithFeedback, adams.core.TextSupporter, adams.core.VariablesInspectionHandler, adams.event.VariableChangeListener, adams.flow.core.Actor, adams.flow.core.ClearableDisplay, adams.flow.core.DisplayTypeSupporter, adams.flow.core.ErrorHandler, adams.flow.core.InputConsumer, adams.flow.sink.ComponentSupplier, adams.flow.sink.DisplayPanelProvider, adams.flow.sink.TextSupplier, adams.gui.core.MenuBarProvider, adams.gui.sendto.SendToActionSupporter, adams.gui.visualization.core.ColorProviderHandler, Serializable, Comparable

    public class WekaInstanceViewer
    extends adams.flow.sink.AbstractGraphicalDisplay
    implements adams.flow.sink.DisplayPanelProvider, adams.flow.sink.TextSupplier, adams.gui.visualization.core.ColorProviderHandler
    Actor for displaying adams.data.instance.Instance objects in a graphical way (using the internal format), like the 'Instance Explorer' tool.

    Input/output:
    - accepts:
       weka.core.Instance
       adams.data.instance.Instance


    -logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel)
        The logging level for outputting errors and debugging output.
        default: WARNING
     
    -name <java.lang.String> (property: name)
        The name of the actor.
        default: WekaInstanceViewer
     
    -annotation <adams.core.base.BaseAnnotation> (property: annotations)
        The annotations to attach to this actor.
        default:
     
    -skip <boolean> (property: skip)
        If set to true, transformation is skipped and the input token is just forwarded
        as it is.
        default: false
     
    -stop-flow-on-error <boolean> (property: stopFlowOnError)
        If set to true, the flow gets stopped in case this actor encounters an error;
         useful for critical actors.
        default: false
     
    -silent <boolean> (property: silent)
        If enabled, then no errors are output in the console; Note: the enclosing
        actor handler must have this enabled as well.
        default: false
     
    -short-title <boolean> (property: shortTitle)
        If enabled uses just the name for the title instead of the actor's full
        name.
        default: false
     
    -display-in-editor <boolean> (property: displayInEditor)
        If enabled displays the panel in a tab in the flow editor rather than in
        a separate frame.
        default: false
     
    -width <int> (property: width)
        The width of the dialog.
        default: 800
        minimum: -1
     
    -height <int> (property: height)
        The height of the dialog.
        default: 500
        minimum: -1
     
    -x <int> (property: x)
        The X position of the dialog (>=0: absolute, -1: left, -2: center, -3: right
        ).
        default: -1
        minimum: -3
     
    -y <int> (property: y)
        The Y position of the dialog (>=0: absolute, -1: top, -2: center, -3: bottom
        ).
        default: -1
        minimum: -3
     
    -writer <adams.gui.print.JComponentWriter> (property: writer)
        The writer to use for generating the graphics output.
        default: adams.gui.print.NullWriter
     
    -color-provider <adams.gui.visualization.core.ColorProvider> (property: colorProvider)
        The color provider in use for coloring the instances.
        default: adams.gui.visualization.core.DefaultColorProvider
     
    -paintlet <adams.gui.visualization.instance.AbstractInstancePaintlet> (property: paintlet)
        The paintlet to use for drawing the instances.
        default: adams.gui.visualization.instance.InstanceLinePaintlet
     
    -zoom-overview <boolean> (property: zoomOverview)
        If enabled, a zoom overview panel gets displayed as well.
        default: false
     
    -id <java.lang.String> (property: ID)
        The name of the attribute/field to use as the ID in the display.
        default:
     
    -updater <adams.gui.visualization.instance.AbstractInstancePanelUpdater> (property: updater)
        The updater in use for updating the visualization.
        default: adams.gui.visualization.instance.SimpleInstancePanelUpdater
     
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected adams.gui.visualization.core.ColorProvider m_ColorProvider
      the color provider to use.
      protected String m_ID
      the name of the attribute/field to use as ID.
      protected InstancePanel m_InstancePanel
      the panel with the instances.
      protected AbstractInstancePaintlet m_Paintlet
      the paintlet to use.
      protected AbstractInstancePanelUpdater m_Updater
      the updater to use.
      protected boolean m_ZoomOverview
      whether to display the zoom overview.
      • Fields inherited from class adams.flow.sink.AbstractGraphicalDisplay

        m_GraphicFileChooser, m_MenuBar, m_MenuItemFileClear, m_MenuItemFileClose, m_MenuItemFileSaveAs, m_MenuItemFileSaveTextAs, m_MenuItemFlowPauseResume, m_MenuItemFlowStop, m_ShowFlowControlSubMenu, m_TextFileChooser, m_Writer
      • Fields inherited from class adams.flow.core.AbstractDisplay

        BACKUP_INPUT, m_CreateFrame, m_DisplayType, m_Frame, m_Height, m_InputToken, m_Panel, m_ShortTitle, m_Updating, m_Width, m_X, m_Y
      • Fields inherited from class adams.flow.core.AbstractActor

        m_Annotations, m_BackupState, m_DetectedObjectVariables, m_DetectedVariables, m_ErrorHandler, m_Executed, m_Executing, m_ExecutionListeningSupporter, m_FullName, m_LoggingPrefix, m_Name, m_Parent, m_ScopeHandler, m_Self, m_Silent, m_Skip, m_StopFlowOnError, m_StopMessage, m_Stopped, m_StorageHandler, m_VariablesUpdated
      • Fields inherited from class adams.core.option.AbstractOptionHandler

        m_OptionManager
      • Fields inherited from class adams.core.logging.LoggingObject

        m_Logger, m_LoggingIsEnabled, m_LoggingLevel
      • Fields inherited from interface adams.flow.core.Actor

        FILE_EXTENSION, FILE_EXTENSION_GZ
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Class[] accepts()
      Returns the class that the consumer accepts.
      protected void cleanUpGUI()
      Removes all graphical components.
      void clearPanel()
      Clears the content of the panel.
      String colorProviderTipText()
      Returns the tip text for this property.
      adams.flow.sink.AbstractDisplayPanel createDisplayPanel​(adams.flow.core.Token token)
      Creates a new panel for the token.
      void defineOptions()
      Adds options to the internal list of options.
      protected void display​(adams.flow.core.Token token)
      Displays the token (the panel and dialog have already been created at this stage).
      boolean displayPanelRequiresScrollPane()
      Returns whether the created display panel requires a scroll pane or not.
      adams.gui.visualization.core.ColorProvider getColorProvider()
      Returns the color provider in use.
      String getCustomSupplyTextMenuItemCaption()
      Returns the text for the menu item.
      adams.gui.core.ExtensionFileFilter getCustomTextFileFilter()
      Returns a custom file filter for the file chooser.
      protected int getDefaultHeight()
      Returns the default height for the dialog.
      protected int getDefaultWidth()
      Returns the default width for the dialog.
      String getID()
      Returns the name of the attribute/field to use as ID in the display.
      AbstractInstancePaintlet getPaintlet()
      Returns the paintlet in use.
      AbstractInstancePanelUpdater getUpdater()
      Returns the updater in use.
      boolean getZoomOverview()
      Returns whether the zoom overview gets displayed.
      String globalInfo()
      Returns a string describing the object.
      String IDTipText()
      Returns the tip text for this property.
      protected adams.gui.core.BasePanel newPanel()
      Creates the panel to display in the dialog.
      String paintletTipText()
      Returns the tip text for this property.
      void setColorProvider​(adams.gui.visualization.core.ColorProvider value)
      Sets the color provider to use.
      void setID​(String value)
      Sets the name of the attribute/field to use as ID in the display.
      void setPaintlet​(AbstractInstancePaintlet value)
      Sets the paintlet to use.
      void setUpdater​(AbstractInstancePanelUpdater value)
      Sets the updater to use.
      void setZoomOverview​(boolean value)
      Sets whether to display the zoom overview.
      String supplyText()
      Supplies the text.
      protected static String supplyText​(InstancePanel panel)
      Returns the displayed instances as ARFF.
      boolean supportsClear()
      Whether "clear" is supported and shows up in the menu.
      String updaterTipText()
      Returns the tip text for this property.
      void wrapUp()
      Cleans up after the execution has finished.
      String zoomOverviewTipText()
      Returns the tip text for this property.
      • Methods inherited from class adams.flow.sink.AbstractGraphicalDisplay

        canPauseOrResume, clear, close, createMenuBar, getGraphicFileChooser, getMenuBar, getSendToClasses, getSendToItem, getShowFlowControlSubMenu, getTextFileChooser, getWriter, hasPanel, hasSendToItem, isPaused, pauseResumeFlow, saveAs, saveTextAs, setShowFlowControlSubMenu, setWriter, showFlowControlSubMenuTipText, stopFlow, supplyComponent, updateMenu, writerTipText
      • Methods inherited from class adams.flow.sink.AbstractDisplay

        newDisplayRunnable, postDisplay, preDisplay
      • Methods inherited from class adams.flow.core.AbstractDisplay

        backupState, cleanUp, closeFrame, createFrame, createTitle, currentInput, deregisterInWrapUp, deregisterWindow, deregisterWithEditor, displayTypeTipText, doCreateFrame, doExecute, getCreateFrame, getDefaultDisplayType, getDefaultShortTitle, getDefaultX, getDefaultY, getDisplayType, getFrame, getFrameDefaultCloseOperation, getHeight, getPanel, getQuickInfo, getShortTitle, getWidth, getX, getY, hasInput, heightTipText, initialize, input, postCreateFrame, preCreateFrame, registerWindow, registerWithEditor, reset, restoreState, setCreateFrame, setDisplayType, setHeight, setShortTitle, setWidth, setX, setY, shortTitleTipText, stopExecution, widthTipText, xTipText, yTipText
      • Methods inherited from class adams.flow.core.AbstractActor

        annotationsTipText, canInspectOptions, canPerformSetUpCheck, compareTo, configureLogger, destroy, equals, execute, finalUpdateVariables, findVariables, findVariables, forceVariables, forCommandLine, forName, forName, getAdditionalInformation, getAnnotations, getDefaultName, getDetectedVariables, getErrorHandler, getFlowActors, getFlowExecutionListeningSupporter, getFullName, getName, getNextSibling, getParent, getParentComponent, getPreviousSibling, getRoot, getScopeHandler, getSilent, getSkip, getStopFlowOnError, getStopMessage, getStorageHandler, getVariables, handleError, handleException, hasErrorHandler, hasStopMessage, index, isBackedUp, isExecuted, isExecuting, isFinished, isHeadless, isStopped, nameTipText, performSetUpChecks, performVariableChecks, postExecute, preExecute, pruneBackup, pruneBackup, setAnnotations, setErrorHandler, setName, setParent, setSilent, setSkip, setStopFlowOnError, setUp, setVariables, shallowCopy, shallowCopy, silentTipText, sizeOf, skipTipText, stopExecution, stopFlowOnErrorTipText, updateDetectedVariables, updatePrefix, updateVariables, variableChanged
      • Methods inherited from class adams.core.option.AbstractOptionHandler

        cleanUpOptions, finishInit, getDefaultLoggingLevel, getOptionManager, loggingLevelTipText, newOptionManager, setLoggingLevel, toCommandLine, toString
      • Methods inherited from class adams.core.logging.LoggingObject

        getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled
      • Methods inherited from interface adams.flow.core.Actor

        cleanUp, compareTo, destroy, equals, execute, findVariables, getAnnotations, getDefaultName, getDetectedVariables, getErrorHandler, getFlowExecutionListeningSupporter, getFullName, getName, getNextSibling, getParent, getParentComponent, getPreviousSibling, getQuickInfo, getRoot, getScopeHandler, getSilent, getSkip, getStopFlowOnError, getStopMessage, getStorageHandler, getVariables, handleError, hasErrorHandler, hasStopMessage, index, isExecuted, isFinished, isHeadless, isStopped, setAnnotations, setErrorHandler, setName, setParent, setSilent, setSkip, setStopFlowOnError, setUp, setVariables, shallowCopy, shallowCopy, sizeOf, stopExecution, stopExecution, toCommandLine, variableChanged
      • Methods inherited from interface adams.core.AdditionalInformationHandler

        getAdditionalInformation
      • Methods inherited from interface adams.flow.core.InputConsumer

        currentInput, hasInput, input
      • Methods inherited from interface adams.core.logging.LoggingLevelHandler

        getLoggingLevel, setLoggingLevel
      • Methods inherited from interface adams.core.logging.LoggingSupporter

        getLogger, isLoggingEnabled
      • Methods inherited from interface adams.core.option.OptionHandler

        cleanUpOptions, getOptionManager
      • Methods inherited from interface adams.core.VariablesInspectionHandler

        canInspectOptions
    • Field Detail

      • m_InstancePanel

        protected InstancePanel m_InstancePanel
        the panel with the instances.
      • m_ColorProvider

        protected adams.gui.visualization.core.ColorProvider m_ColorProvider
        the color provider to use.
      • m_ZoomOverview

        protected boolean m_ZoomOverview
        whether to display the zoom overview.
      • m_ID

        protected String m_ID
        the name of the attribute/field to use as ID.
    • Constructor Detail

      • WekaInstanceViewer

        public WekaInstanceViewer()
    • Method Detail

      • globalInfo

        public String globalInfo()
        Returns a string describing the object.
        Specified by:
        globalInfo in interface adams.core.GlobalInfoSupporter
        Specified by:
        globalInfo in class adams.core.option.AbstractOptionHandler
        Returns:
        a description suitable for displaying in the gui
      • defineOptions

        public void defineOptions()
        Adds options to the internal list of options.
        Specified by:
        defineOptions in interface adams.core.option.OptionHandler
        Overrides:
        defineOptions in class adams.flow.sink.AbstractGraphicalDisplay
      • getDefaultWidth

        protected int getDefaultWidth()
        Returns the default width for the dialog.
        Overrides:
        getDefaultWidth in class adams.flow.core.AbstractDisplay
        Returns:
        the default width
      • getDefaultHeight

        protected int getDefaultHeight()
        Returns the default height for the dialog.
        Overrides:
        getDefaultHeight in class adams.flow.core.AbstractDisplay
        Returns:
        the default height
      • setColorProvider

        public void setColorProvider​(adams.gui.visualization.core.ColorProvider value)
        Sets the color provider to use.
        Specified by:
        setColorProvider in interface adams.gui.visualization.core.ColorProviderHandler
        Parameters:
        value - the color provider
      • getColorProvider

        public adams.gui.visualization.core.ColorProvider getColorProvider()
        Returns the color provider in use.
        Specified by:
        getColorProvider in interface adams.gui.visualization.core.ColorProviderHandler
        Returns:
        the color provider
      • colorProviderTipText

        public String colorProviderTipText()
        Returns the tip text for this property.
        Specified by:
        colorProviderTipText in interface adams.gui.visualization.core.ColorProviderHandler
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setPaintlet

        public void setPaintlet​(AbstractInstancePaintlet value)
        Sets the paintlet to use.
        Parameters:
        value - the paintlet
      • paintletTipText

        public String paintletTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setZoomOverview

        public void setZoomOverview​(boolean value)
        Sets whether to display the zoom overview.
        Parameters:
        value - if true then the zoom overview will get displayed
      • getZoomOverview

        public boolean getZoomOverview()
        Returns whether the zoom overview gets displayed.
        Returns:
        true if the zoom overview gets displayed
      • zoomOverviewTipText

        public String zoomOverviewTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setID

        public void setID​(String value)
        Sets the name of the attribute/field to use as ID in the display.
        Parameters:
        value - the attribute/field name
      • getID

        public String getID()
        Returns the name of the attribute/field to use as ID in the display.
        Returns:
        the attribute/field name
      • IDTipText

        public String IDTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • updaterTipText

        public String updaterTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • supportsClear

        public boolean supportsClear()
        Whether "clear" is supported and shows up in the menu.
        Specified by:
        supportsClear in interface adams.flow.core.ClearableDisplay
        Overrides:
        supportsClear in class adams.flow.sink.AbstractGraphicalDisplay
        Returns:
        true if supported
      • clearPanel

        public void clearPanel()
        Clears the content of the panel.
        Specified by:
        clearPanel in class adams.flow.core.AbstractDisplay
      • newPanel

        protected adams.gui.core.BasePanel newPanel()
        Creates the panel to display in the dialog.
        Specified by:
        newPanel in class adams.flow.core.AbstractDisplay
        Returns:
        the panel
      • accepts

        public Class[] accepts()
        Returns the class that the consumer accepts.
        Specified by:
        accepts in interface adams.flow.core.InputConsumer
        Returns:
        weka.core.Instance.class, adams.data.instance.Instance.class
      • display

        protected void display​(adams.flow.core.Token token)
        Displays the token (the panel and dialog have already been created at this stage).
        Specified by:
        display in class adams.flow.sink.AbstractDisplay
        Parameters:
        token - the token to display
      • cleanUpGUI

        protected void cleanUpGUI()
        Removes all graphical components.
        Overrides:
        cleanUpGUI in class adams.flow.sink.AbstractGraphicalDisplay
      • createDisplayPanel

        public adams.flow.sink.AbstractDisplayPanel createDisplayPanel​(adams.flow.core.Token token)
        Creates a new panel for the token.
        Specified by:
        createDisplayPanel in interface adams.flow.sink.DisplayPanelProvider
        Parameters:
        token - the token to display in a new panel, can be null
        Returns:
        the generated panel
      • getCustomSupplyTextMenuItemCaption

        public String getCustomSupplyTextMenuItemCaption()
        Returns the text for the menu item.
        Specified by:
        getCustomSupplyTextMenuItemCaption in interface adams.flow.sink.TextSupplier
        Returns:
        the menu item text, null for default
      • getCustomTextFileFilter

        public adams.gui.core.ExtensionFileFilter getCustomTextFileFilter()
        Returns a custom file filter for the file chooser.
        Specified by:
        getCustomTextFileFilter in interface adams.flow.sink.TextSupplier
        Returns:
        the file filter, null if to use default one
      • supplyText

        public String supplyText()
        Supplies the text.
        Specified by:
        supplyText in interface adams.flow.sink.TextSupplier
        Specified by:
        supplyText in interface adams.core.TextSupporter
        Returns:
        the text, null if none available
      • supplyText

        protected static String supplyText​(InstancePanel panel)
        Returns the displayed instances as ARFF.
        Parameters:
        panel - the panel to obtain the data form
        Returns:
        the generated ARFF content or null if no data available
      • displayPanelRequiresScrollPane

        public boolean displayPanelRequiresScrollPane()
        Returns whether the created display panel requires a scroll pane or not.
        Specified by:
        displayPanelRequiresScrollPane in interface adams.flow.sink.DisplayPanelProvider
        Returns:
        true if the display panel requires a scroll pane
      • wrapUp

        public void wrapUp()
        Cleans up after the execution has finished.
        Specified by:
        wrapUp in interface adams.flow.core.Actor
        Overrides:
        wrapUp in class adams.flow.sink.AbstractGraphicalDisplay