Class RatControl

  • 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.VariablesInspectionHandler, adams.event.FlowPauseStateListener, RatStateListener, adams.event.VariableChangeListener, adams.flow.core.Actor, adams.flow.core.DisplayTypeSupporter, adams.flow.core.ErrorHandler, adams.gui.event.ConsolePanelListener, Serializable, Comparable

    public class RatControl
    extends adams.flow.core.AbstractDisplay
    implements adams.event.FlowPauseStateListener, RatStateListener, adams.gui.event.ConsolePanelListener
    Control actor for Rats/Rat actors.

    -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: RatControl
     
    -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
     
    -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-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.DisplayInEditor
     
    -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
     
    -bulk-actions <boolean> (property: bulkActions)
        If enabled, bulk actions can be performed on the checked rats.
        default: false
     
    -console-line-limit <int> (property: consoleLineLimit)
        The line limit for the console output, <=0 for no limit.
        default: 10000
        minimum: -1
     
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static String BULKACTION_NONE
      Caption for no bulk action.
      static String BULKACTION_PAUSE
      Caption for "pause" bulk action.
      static String BULKACTION_RESUME
      Caption for "resume" bulk action.
      static String BULKACTION_START
      Caption for "start" bulk action.
      static String BULKACTION_STOP
      Caption for "stop" bulk action.
      protected boolean m_BulkActions
      whether to allow bulk actions.
      protected adams.gui.core.BaseButton m_ButtonApply
      the button for apply the bulk actions.
      protected adams.gui.core.BaseButton m_ButtonConsole
      the button for showing the console output.
      protected adams.gui.core.BaseButton m_ButtonStop
      the button for stopping.
      protected int m_ConsoleLineLimit
      the line limit for the console output.
      protected List<AbstractControlPanel> m_ControlPanels
      the control panels.
      protected Map<Rats,​List<AbstractControlPanel>> m_ControlPanelsPerRats
      the control panels per Rats actor.
      protected List<AbstractControlState> m_ControlStates
      the control states.
      protected JLabel m_LabelStatus
      the status label.
      protected boolean m_RatControlStopping
      whether the rat control is stopping.
      protected adams.gui.core.BaseTextArea m_TextAreaConsole
      the textarea with console output.
      • Fields inherited from class adams.flow.core.AbstractDisplay

        BACKUP_INPUT, m_CreateFrame, m_DisplayType, m_Frame, m_Height, m_InputToken, m_KeepOpen, 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
    • Constructor Summary

      Constructors 
      Constructor Description
      RatControl()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void applyBulkAction​(String action)
      Applies the bulk action.
      String bulkActionsTipText()
      Returns the tip text for this property.
      void cleanUp()
      Cleans up after the execution has finished.
      void clearPanel()
      Does nothing.
      String consoleLineLimitTipText()
      Returns the tip text for this property.
      void consolePanelMessageReceived​(adams.gui.event.ConsolePanelEvent e)
      Gets called when the ConsolePanel receives a message.
      void defineOptions()
      Adds options to the internal list of options.
      protected String doExecute()
      Executes the flow item.
      void flowPauseStateChanged​(adams.event.FlowPauseStateEvent e)
      Gets called when the pause state of the flow changes.
      boolean getBulkActions()
      Returns whether to enable bulk actions.
      int getConsoleLineLimit()
      Returns the line limit for the console output.
      List<AbstractControlPanel> getControlPanels()
      Returns the current control panels.
      Map<Rats,​List<AbstractControlPanel>> getControlPanelsPerRats()
      Returns the current control panels, grouped by RatControl actor.
      List<AbstractControlState> getControlStates()
      Returns the current control states.
      protected adams.flow.core.displaytype.AbstractDisplayType getDefaultDisplayType()
      Returns the default value for displaying the panel in the editor rather than in a separate frame.
      String globalInfo()
      Returns a string describing the object.
      protected void initialize()
      Initializes the members.
      protected Runnable newDisplayRunnable()
      Returns a runnable that displays frame, etc.
      protected adams.gui.core.BasePanel newPanel()
      Creates the panel to display in the dialog.
      void ratStateChanged​(RatStateEvent e)
      Gets called in case the state of a Rat actor changes.
      void setBulkActions​(boolean value)
      Sets whether to enable bulk actions.
      void setConsoleLineLimit​(int value)
      Sets the line limit for the console output.
      String setUp()
      Initializes the item for flow execution.
      protected void setUpControlStates()
      Configures the control states.
      protected void showConsole()
      Shows the text area with the console output.
      void stopExecution()
      Stops the execution.
      void stopRatControl()
      Stops the actor.
      • Methods inherited from class adams.flow.core.AbstractDisplay

        backupState, cleanUpGUI, cleanUpGUIKeepOpen, closeFrame, createFrame, createTitle, currentInput, deregisterInWrapUp, deregisterWindow, deregisterWithEditor, displayTypeTipText, doCreateFrame, getCreateFrame, getDefaultHeight, getDefaultShortTitle, getDefaultWidth, getDefaultX, getDefaultY, getDisplayType, getFrame, getFrameDefaultCloseOperation, getHeight, getKeepOpen, getPanel, getQuickInfo, getShortTitle, getWidth, getX, getY, hasInput, heightTipText, input, postCreateFrame, preCreateFrame, registerWindow, registerWithEditor, reset, restoreState, setCreateFrame, setDisplayType, setHeight, setKeepOpen, setShortTitle, setWidth, setX, setY, shortTitleTipText, widthTipText, wrapUp, 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, 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

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

        getAdditionalInformation
      • 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_BulkActions

        protected boolean m_BulkActions
        whether to allow bulk actions.
      • m_TextAreaConsole

        protected adams.gui.core.BaseTextArea m_TextAreaConsole
        the textarea with console output.
      • m_ConsoleLineLimit

        protected int m_ConsoleLineLimit
        the line limit for the console output.
      • m_ButtonStop

        protected adams.gui.core.BaseButton m_ButtonStop
        the button for stopping.
      • m_ButtonConsole

        protected adams.gui.core.BaseButton m_ButtonConsole
        the button for showing the console output.
      • m_ButtonApply

        protected adams.gui.core.BaseButton m_ButtonApply
        the button for apply the bulk actions.
      • m_LabelStatus

        protected JLabel m_LabelStatus
        the status label.
      • m_RatControlStopping

        protected boolean m_RatControlStopping
        whether the rat control is stopping.
    • Constructor Detail

      • RatControl

        public RatControl()
    • 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
      • initialize

        protected void initialize()
        Initializes the members.
        Overrides:
        initialize in class adams.flow.core.AbstractDisplay
      • 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.core.AbstractDisplay
      • setBulkActions

        public void setBulkActions​(boolean value)
        Sets whether to enable bulk actions.
        Parameters:
        value - true if to enable bulk actions
      • getBulkActions

        public boolean getBulkActions()
        Returns whether to enable bulk actions.
        Returns:
        true if bulk actions enabled
      • bulkActionsTipText

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

        public void setConsoleLineLimit​(int value)
        Sets the line limit for the console output.
        Parameters:
        value - the limit, <= 0 for unlimited
      • getConsoleLineLimit

        public int getConsoleLineLimit()
        Returns the line limit for the console output.
        Returns:
        the limit, <= 0 for unlimited
      • consoleLineLimitTipText

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

        protected adams.flow.core.displaytype.AbstractDisplayType getDefaultDisplayType()
        Returns the default value for displaying the panel in the editor rather than in a separate frame.
        Overrides:
        getDefaultDisplayType in class adams.flow.core.AbstractDisplay
        Returns:
        the default
      • getControlPanels

        public List<AbstractControlPanel> getControlPanels()
        Returns the current control panels.
        Returns:
        the panels
      • getControlPanelsPerRats

        public Map<Rats,​List<AbstractControlPanel>> getControlPanelsPerRats()
        Returns the current control panels, grouped by RatControl actor.
        Returns:
        the panels
      • getControlStates

        public List<AbstractControlState> getControlStates()
        Returns the current control states.
        Returns:
        the states
      • clearPanel

        public void clearPanel()
        Does nothing.
        Specified by:
        clearPanel in class adams.flow.core.AbstractDisplay
      • setUpControlStates

        protected void setUpControlStates()
        Configures the control states.
        See Also:
        m_ControlStates
      • applyBulkAction

        protected void applyBulkAction​(String action)
        Applies the bulk action.
        Parameters:
        action - the action to execute
      • newDisplayRunnable

        protected Runnable newDisplayRunnable()
        Returns a runnable that displays frame, etc. Must call notifyAll() on the m_Self object and set m_Updating to false.
        Specified by:
        newDisplayRunnable in class adams.flow.core.AbstractDisplay
        Returns:
        the runnable
        See Also:
        AbstractDisplay.m_Updating
      • setUp

        public String setUp()
        Initializes the item for flow execution.
        Specified by:
        setUp in interface adams.flow.core.Actor
        Overrides:
        setUp in class adams.flow.core.AbstractActor
        Returns:
        null if everything is fine, otherwise error message
      • doExecute

        protected String doExecute()
        Executes the flow item.
        Overrides:
        doExecute in class adams.flow.core.AbstractDisplay
        Returns:
        null if everything is fine, otherwise error message
      • flowPauseStateChanged

        public void flowPauseStateChanged​(adams.event.FlowPauseStateEvent e)
        Gets called when the pause state of the flow changes.
        Specified by:
        flowPauseStateChanged in interface adams.event.FlowPauseStateListener
        Parameters:
        e - the event
      • consolePanelMessageReceived

        public void consolePanelMessageReceived​(adams.gui.event.ConsolePanelEvent e)
        Gets called when the ConsolePanel receives a message.
        Specified by:
        consolePanelMessageReceived in interface adams.gui.event.ConsolePanelListener
        Parameters:
        e - the generated event
      • showConsole

        protected void showConsole()
        Shows the text area with the console output.
      • cleanUp

        public void cleanUp()
        Cleans up after the execution has finished. Also removes graphical components.
        Specified by:
        cleanUp in interface adams.flow.core.Actor
        Specified by:
        cleanUp in interface adams.core.CleanUpHandler
        Overrides:
        cleanUp in class adams.flow.core.AbstractDisplay
      • stopRatControl

        public void stopRatControl()
        Stops the actor.
      • stopExecution

        public void stopExecution()
        Stops the execution. No message set.
        Specified by:
        stopExecution in interface adams.flow.core.Actor
        Specified by:
        stopExecution in interface adams.core.Stoppable
        Overrides:
        stopExecution in class adams.flow.core.AbstractDisplay