Class DisplayPanelManager

  • All Implemented Interfaces:
    AdditionalInformationHandler, CleanUpHandler, Destroyable, GlobalInfoSupporter, LoggingLevelHandler, LoggingSupporter, OptionHandler, QuickInfoSupporter, ShallowCopySupporter<Actor>, SizeOfHandler, Stoppable, StoppableWithFeedback, TextSupporter, VariablesInspectionHandler, VariableChangeListener, Actor, DisplayTypeSupporter, ErrorHandler, InputConsumer, ComponentSupplier, TextSupplier, MenuBarProvider, SendToActionSupporter, Serializable, Comparable

    public class DisplayPanelManager
    extends AbstractDisplay
    implements MenuBarProvider, ComponentSupplier, TextSupplier, SendToActionSupporter
    Actor that displays a 'history' of panels created by the selected panel provider. The provider can be an actor that generates classifier errors, for instance.

    Input/output:
    - accepts:
       java.lang.String
       java.io.File
       java.awt.image.BufferedImage
       adams.data.image.AbstractImageContainer
       adams.data.image.BufferedImageSupporter


    -logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel)
        The logging level for outputting errors and debugging output.
        default: WARNING
        min-user-mode: Expert
     
    -name <java.lang.String> (property: name)
        The name of the actor.
        default: DisplayPanelManager
     
    -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 execution at this level gets stopped in case this
        actor encounters an error; the error gets propagated; useful for critical
        actors.
        default: false
        min-user-mode: Expert
     
    -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
        min-user-mode: Expert
     
    -short-title <boolean> (property: shortTitle)
        If enabled uses just the name for the title instead of the actor's full
        name.
        default: false
     
    -display-type <adams.flow.core.displaytype.AbstractDisplayType> (property: displayType)
        Determines how to show the display, eg as standalone frame (default) or
        in the Flow editor window.
        default: adams.flow.core.displaytype.Default
     
    -width <int> (property: width)
        The width of the dialog.
        default: 640
        minimum: -1
     
    -height <int> (property: height)
        The height of the dialog.
        default: 480
        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
     
    -divider-location <int> (property: dividerLocation)
        The position for the divider in pixels.
        default: -1
        minimum: -1
     
    -provider <adams.flow.sink.DisplayPanelProvider> (property: panelProvider)
        The actor for generating the display panels.
        default: adams.flow.sink.ImageViewer -display-type adams.flow.core.displaytype.Default -writer adams.gui.print.NullWriter -selection-processor adams.gui.visualization.image.selection.NullProcessor -left-click-processor adams.gui.visualization.image.leftclick.NullProcessor -selection-shape-painter adams.gui.visualization.image.selectionshape.RectanglePainter -image-overlay adams.gui.visualization.image.NullOverlay
     
    -num-tokens <int> (property: numTokens)
        The number of tokens to accept per created panel.
        default: 1
        minimum: -1
     
    -entry-name-variable <adams.core.VariableNameNoUpdate> (property: entryNameVariable)
        The variable to use for naming the entries; gets ignored if variable not
        available; an existing history entry gets replaced if a new one with the
        same name gets added.
        default: entryNameVariable
     
    -allow-merge <boolean> (property: allowMerge)
        If enabled and the display panel is derived from adams.flow.sink.MergeableDisplayPanel
        then entries with the same name (ie when using 'entryNameVariable') get
        merged.
        default: false
     
    -allow-search <boolean> (property: allowSearch)
        Whether to allow the user to search the entries.
        default: false
     
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Detail

      • BACKUP_CURRENTCOUNT

        public static final String BACKUP_CURRENTCOUNT
        the key for storing the current count in the backup.
        See Also:
        Constant Field Values
      • BACKUP_CURRENTPANEL

        public static final String BACKUP_CURRENTPANEL
        the key for storing the current panel in the backup.
        See Also:
        Constant Field Values
      • m_DividerLocation

        protected int m_DividerLocation
        the position for the left divider.
      • m_PanelProvider

        protected DisplayPanelProvider m_PanelProvider
        the actor to use for generating panels.
      • m_EntryNameVariable

        protected VariableNameNoUpdate m_EntryNameVariable
        the variable to use for naming the entries.
      • m_NumTokens

        protected int m_NumTokens
        the number of tokens to accept for a single panel.
      • m_ShowFlowControlSubMenu

        protected boolean m_ShowFlowControlSubMenu
        whether to show flow control sub-menu.
      • m_MenuBar

        protected JMenuBar m_MenuBar
        the menu bar, if used.
      • m_MenuItemFileClear

        protected JMenuItem m_MenuItemFileClear
        the "clear" menu item.
      • m_MenuItemFileSaveAs

        protected JMenuItem m_MenuItemFileSaveAs
        the "save as" menu item.
      • m_MenuItemFileClose

        protected JMenuItem m_MenuItemFileClose
        the "exit" menu item.
      • m_MenuItemFlowPauseResume

        protected JMenuItem m_MenuItemFlowPauseResume
        the "pause/resume" menu item.
      • m_MenuItemFlowStop

        protected JMenuItem m_MenuItemFlowStop
        the "stop" menu item.
      • m_ComponentFileChooser

        protected transient JComponentWriterFileChooser m_ComponentFileChooser
        the filedialog for loading/saving flows.
      • m_TextFileChooser

        protected transient TextFileChooser m_TextFileChooser
        the filedialog for loading/saving flows.
      • m_CurrentCount

        protected int m_CurrentCount
        the current count of tokens.
      • m_CurrentPanel

        protected DisplayPanel m_CurrentPanel
        the current panel, if any.
      • m_AllowMerge

        protected boolean m_AllowMerge
        whether to allow merging of panel content.
      • m_AllowSearch

        protected boolean m_AllowSearch
        whether to allow searching.
    • Constructor Detail

      • DisplayPanelManager

        public DisplayPanelManager()
    • Method Detail

      • getDefaultWidth

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

        protected int getDefaultHeight()
        Returns the default height for the dialog.
        Overrides:
        getDefaultHeight in class AbstractDisplay
        Returns:
        the default height
      • setDividerLocation

        public void setDividerLocation​(int value)
        Sets the position for the left divider in pixels.
        Parameters:
        value - the position
      • getDividerLocation

        public int getDividerLocation()
        Returns the position for the left divider in pixels.
        Returns:
        the position
      • dividerLocationTipText

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

        public void setPanelProvider​(DisplayPanelProvider value)
        Sets the panel provider to use for generating the panels.
        Parameters:
        value - the panel provider to use
      • getPanelProvider

        public DisplayPanelProvider getPanelProvider()
        Returns the panel provider in use for generating the panels.
        Returns:
        the panel provider in use
      • panelProviderTipText

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

        public void setNumTokens​(int value)
        Sets the number of tokens to accept per panel before creating a new panel.
        Parameters:
        value - the panel provider to use
      • getNumTokens

        public int getNumTokens()
        Returns the number of tokens to accept per panel before creating a new panel.
        Returns:
        the number of tokens
      • numTokensTipText

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

        public void setEntryNameVariable​(VariableNameNoUpdate value)
        Sets the variable name which value gets used to name the entries. Gets ignored if variable does not exist.
        Parameters:
        value - the variable name
      • getEntryNameVariable

        public VariableNameNoUpdate getEntryNameVariable()
        Returns the variable name which value gets used to name the entries. Gets ignored if variable does not exist.
        Returns:
        the variable name
      • entryNameVariableTipText

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

        public void setAllowMerge​(boolean value)
        Sets whether to enable merging of panel content in case of same name.
        Parameters:
        value - true if to allow merge
        See Also:
        setEntryNameVariable(VariableNameNoUpdate)
      • allowMergeTipText

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

        public void setAllowSearch​(boolean value)
        Sets whether to allow the user to search the entries.
        Parameters:
        value - true if to allow search
      • getAllowSearch

        public boolean getAllowSearch()
        Returns whether to allow the user to search the entries.
        Returns:
        true if to allow search
      • allowSearchTipText

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

        public void setShowFlowControlSubMenu​(boolean value)
        Sets whether to show a flow control sub-menu in the menubar.
        Parameters:
        value - true if to show
      • getShowFlowControlSubMenu

        public boolean getShowFlowControlSubMenu()
        Returns whether to show a flow control sub-menu in the menubar.
        Returns:
        true if to show
      • showFlowControlSubMenuTipText

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

        protected void forceVariables​(Variables value)
        Updates the Variables instance in use.

        Use with caution!
        Overrides:
        forceVariables in class AbstractActor
        Parameters:
        value - the instance to use
      • getSelectedPanel

        protected JPanel getSelectedPanel()
        Returns the currently selected panel.
        Returns:
        the panel or null if none selected
      • doCreateFrame

        protected BaseFrame doCreateFrame​(BasePanel panel)
        Creates the actual frame.
        Overrides:
        doCreateFrame in class AbstractDisplay
        Parameters:
        panel - the panel to display in the frame
        Returns:
        the created frame
      • getComponentFileChooser

        protected JComponentWriterFileChooser getComponentFileChooser()
        Returns (and initializes if necessary) the file chooser for the components.
        Returns:
        the file chooser
      • getTextFileChooser

        protected TextFileChooser getTextFileChooser()
        Returns (and initializes if necessary) the file chooser for the text.
        Returns:
        the file chooser
      • accepts

        public Class[] accepts()
        Returns the class that the consumer accepts.
        Specified by:
        accepts in interface InputConsumer
        Returns:
        java.lang.String.class, java.io.File.class, java.awt.image.BufferedImage.class, adams.data.image.AbstractImageContainer.class, adams.data.image.BufferedImageSupporter.class
      • display

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

        protected JMenuBar createMenuBar()
        Assembles the menu bar.
        Returns:
        the menu bar
      • getMenuBar

        public JMenuBar getMenuBar()
        Creates a menu bar (singleton per panel object). Can be used in frames.
        Specified by:
        getMenuBar in interface MenuBarProvider
        Returns:
        the menu bar
      • updateMenu

        protected void updateMenu()
        updates the enabled state of the menu items.
      • clear

        protected void clear()
        Clears the display.
      • saveAs

        protected void saveAs()
        Saves the setups.
      • close

        protected void close()
        Closes the dialog or frame.
      • canPauseOrResume

        protected boolean canPauseOrResume()
        Returns whether the flow can be paused/resumed.
        Returns:
        true if pause/resume available
      • isPaused

        protected boolean isPaused()
        Returns whether the flow is currently paused.
        Returns:
        true if currently paused
      • pauseResumeFlow

        protected void pauseResumeFlow()
        Pauses or resumes the flow.
      • stopFlow

        protected void stopFlow()
        Stops the flow.
      • cleanUpGUI

        protected void cleanUpGUI()
        Removes all graphical components.
        Overrides:
        cleanUpGUI in class AbstractDisplay
      • hasSendToItem

        public boolean hasSendToItem​(Class[] cls)
        Checks whether something to send is available.
        Specified by:
        hasSendToItem in interface SendToActionSupporter
        Parameters:
        cls - the classes to retrieve the item for
        Returns:
        true if an object is available for sending
      • getSendToItem

        public Object getSendToItem​(Class[] cls)
        Returns the object to send.
        Specified by:
        getSendToItem in interface SendToActionSupporter
        Parameters:
        cls - the classes to retrieve the item for
        Returns:
        the item to send
      • wrapUp

        public void wrapUp()
        Cleans up after the execution has finished.
        Specified by:
        wrapUp in interface Actor
        Overrides:
        wrapUp in class AbstractDisplay