Class DisplayPanelGrid

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

    public class DisplayPanelGrid
    extends AbstractDisplay
    implements MenuBarProvider, ComponentSupplier, SendToActionSupporter
    Sink that places a panel in the grid for each each arriving token.
    Uses the user-defined panel provider for creating the panels.

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


    Valid options are:

    -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: DisplayPanelGrid
     
    -annotation <adams.core.base.BaseText> (property: annotations)
        The annotations to attach to this actor.
        default: 
     
    -skip (property: skip)
        If set to true, transformation is skipped and the input token is just forwarded 
        as it is.
     
    -stop-flow-on-error (property: stopFlowOnError)
        If set to true, the flow gets stopped in case this actor encounters an error;
         useful for critical actors.
     
    -short-title (property: shortTitle)
        If enabled uses just the name for the title instead of the actor's full 
        name.
     
    -width <int> (property: width)
        The width of the dialog.
        default: 800
        minimum: -1
     
    -height <int> (property: height)
        The height of the dialog.
        default: 600
        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
     
    -provider <adams.flow.sink.DisplayPanelProvider> (property: panelProvider)
        The actor for generating the display panels.
        default: adams.flow.sink.ImageViewer -writer adams.gui.print.NullWriter
     
    -num-columns <int> (property: numColumns)
        The number of columns to use in the grid.
        default: 2
        minimum: 1
     
    -panel-width <int> (property: panelWidth)
        The width of the individual panels.
        default: 400
        minimum: 1
     
    -panel-height <int> (property: panelHeight)
        The height of the individual panels.
        default: 300
        minimum: 1
     
    -title-variable <adams.core.VariableNameNoUpdate> (property: titleVariable)
        The variable to use for the panel title; gets ignored if variable not available 
        and the index of the panel is used instead.
        default: titleVariable
     
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Detail

      • m_NumColumns

        protected int m_NumColumns
        the number of columns to use.
      • m_PanelProvider

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

        protected int m_PanelWidth
        the width of the individual panels.
      • m_PanelHeight

        protected int m_PanelHeight
        the height of the individual panels.
      • m_TitleVariable

        protected VariableNameNoUpdate m_TitleVariable
        the variable to use for naming the entries.
      • 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_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_DisplayPanels

        protected List<DisplayPanel> m_DisplayPanels
        the panels to display.
    • Constructor Detail

      • DisplayPanelGrid

        public DisplayPanelGrid()
    • 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
      • 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.
      • setNumColumns

        public void setNumColumns​(int value)
        Sets the number of columns in the grid.
        Parameters:
        value - the number of columns
      • getNumColumns

        public int getNumColumns()
        Returns the number of columns in the grid.
        Returns:
        the number of columns
      • numColumnsTipText

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

        public void setPanelWidth​(int value)
        Sets the width of the individual panels.
        Parameters:
        value - the width
      • getPanelWidth

        public int getPanelWidth()
        Returns the currently set width of the individual panels.
        Returns:
        the width
      • panelWidthTipText

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

        public void setPanelHeight​(int value)
        Sets the height of the individual panels.
        Parameters:
        value - the height
      • getPanelHeight

        public int getPanelHeight()
        Returns the currently set height of the individual panels.
        Returns:
        the height
      • panelHeightTipText

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

        public void setTitleVariable​(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
      • getTitleVariable

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

        public String titleVariableTipText()
        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.
      • 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.AbstractImage.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.
      • getComponentFileChooser

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

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

        protected void saveAs()
        Saves the setups.
      • 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