Package adams.flow.sink
Class HistoryDisplay
-
- All Implemented Interfaces:
AdditionalInformationHandler,CleanUpHandler,Destroyable,GlobalInfoSupporter,LoggingLevelHandler,LoggingSupporter,OptionHandler,QuickInfoSupporter,ShallowCopySupporter<Actor>,SizeOfHandler,Stoppable,StoppableWithFeedback,TextSupporter,VariablesInspectionHandler,VariableChangeListener,Actor,ClearableDisplay,DisplayTypeSupporter,ErrorHandler,FlowControlSubMenuSupporter,HeadlessExecutionSupporter,InputConsumer,TextSupplier,MenuBarProvider,SendToActionSupporter,Serializable,Comparable
public class HistoryDisplay extends AbstractTextualDisplay
Actor that outputs any object that arrives at its input port via the 'toString()' method in a separate 'history' entry.
Input/output:
- accepts:
java.lang.Object
-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: HistoryDisplay
-annotation <adams.core.base.BaseText> (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
-short-title <boolean> (property: shortTitle) If enabled uses just the name for the title instead of the actor's full name. default: false
-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
-font <java.awt.Font> (property: font) The font of the dialog. default: Monospaced-PLAIN-12
-always-clear <boolean> (property: alwaysClear) If enabled, the display is always cleared before processing a token. default: false
-caret-at-start <boolean> (property: caretAtStart) If set to true, then the caret will be positioned by default at the start and not the end (can be changed in dialog: View -> Position caret at start ). default: false
-num-tokens <int> (property: numTokens) The number of tokens to accept per history entry. 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 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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classHistoryDisplay.HistorySplitPanelRepresents a panel with a history on the left and the displayed text on the right.
-
Field Summary
Fields Modifier and Type Field Description static StringBACKUP_CURRENTCOUNTthe key for storing the current count in the backup.protected booleanm_AllowMergewhether to allow merging of panel content.protected booleanm_AllowSearchwhether to allow searching.protected booleanm_CaretAtStartwhether to position the caret by default at the start or at the end.protected intm_CurrentCountthe current count of tokens.protected VariableNameNoUpdatem_EntryNameVariablethe variable to use for naming the entries.protected HistoryDisplay.HistorySplitPanelm_HistoryPanelthe history panel.protected booleanm_LineWrapuse line wrap.protected JMenuItemm_MenuItemEditCopythe copy menu item.protected JMenuItemm_MenuItemEditSelectAllthe select all menu item.protected JMenuItemm_MenuItemFilePrintthe print menu item.protected JCheckBoxMenuItemm_MenuItemViewCaretthe "caret position" menu item.protected JMenuItemm_MenuItemViewFontthe font menu item.protected JMenuItemm_MenuItemViewLineWrapthe line wrap menu item.protected JMenuItemm_MenuItemViewWrapStyleWordthe word wrap style menu item.protected intm_NumTokensthe number of tokens to accept for a single entry.protected booleanm_WrapStyleWorduse word wrap style.-
Fields inherited from class adams.flow.sink.AbstractTextualDisplay
m_AlwaysClear, m_FileChooser, m_Font, m_MenuBar, m_MenuItemFileClear, m_MenuItemFileClose, m_MenuItemFileSaveAs, m_MenuItemFlowPauseResume, m_MenuItemFlowStop, m_ShowFlowControlSubMenu, m_Writer
-
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_ResetGUIWaiting, 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 HistoryDisplay()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Class[]accepts()Returns the class that the consumer accepts.StringallowMergeTipText()Returns the tip text for this property.StringallowSearchTipText()Returns the tip text for this property.protected Hashtable<String,Object>backupState()Backs up the current state of the actor before update the variables.StringcaretAtStartTipText()Returns the tip text for this property.protected voidcleanUpGUI()Removes all graphical components.voidclear()Clears the display.voidclearPanel()Clears the content of the panel.protected JMenucreateEditMenu()Creates the "Edit" menu.protected JMenucreateFileMenu()Creates the "File" menu.protected JMenuBarcreateMenuBar()Assembles the menu bar.protected JMenucreateViewMenu()Creates the "Edit" menu.voiddefineOptions()Adds options to the internal list of options.protected voiddisplay(Token token)Displays the token (the panel and dialog have already been created at this stage).StringentryNameVariableTipText()Returns the tip text for this property.booleangetAllowMerge()Returns whether to enable merging of content in case of same name.booleangetAllowSearch()Returns whether to allow the user to search the entries.protected intgetDefaultHeight()Returns the default height for the dialog.protected intgetDefaultWidth()Returns the default width for the dialog.VariableNameNoUpdategetEntryNameVariable()Returns the variable name which value gets used to name the entries.booleangetLineWrap()Returns whether line wrap is enabled.intgetNumTokens()Returns the number of tokens to accept per entry before creating a new entry.StringgetQuickInfo()Returns a quick info about the actor, which will be displayed in the GUI.booleangetWrapStyleWord()Gets the style of wrapping used if the text area is wrapping lines.StringglobalInfo()Returns a string describing the object.booleanisCaretAtStart()Returns whether the caret is positioned at the start instead of the end.StringlineWrapTipText()Returns the tip text for this property.protected BasePanelnewPanel()Creates the panel to display in the dialog.StringnumTokensTipText()Returns the tip text for this property.protected voidpruneBackup()Removes entries from the backup.protected voidreset()Resets the object.protected voidrestoreState(Hashtable<String,Object> state)Restores the state of the actor before the variables got updated.voidsetAllowMerge(boolean value)Sets whether to enable merging of content in case of same name.voidsetAllowSearch(boolean value)Sets whether to allow the user to search the entries.voidsetCaretAtStart(boolean value)Sets whether to position the caret at the start or at the end (default).voidsetEntryNameVariable(VariableNameNoUpdate value)Sets the variable name which value gets used to name the entries.voidsetLineWrap(boolean value)Enables/disables line wrap.voidsetNumTokens(int value)Sets the number of tokens to accept per entry before creating a new entry.voidsetWrapStyleWord(boolean value)Sets the style of wrapping used if the text area is wrapping lines.StringsupplyText()Returns the text to save.booleansupportsClear()Whether "clear" is supported and shows up in the menu.protected voidupdateMenu()updates the enabled state of the menu items.StringwrapStyleWordTipText()Returns the tip text for this property.-
Methods inherited from class adams.flow.sink.AbstractTextualDisplay
alwaysClearTipText, canPauseOrResume, cleanUp, close, createFlowMenu, doExecuteHeadless, fontTipText, getAlwaysClear, getCustomSupplyTextMenuItemCaption, getCustomTextFileFilter, getDefaultFont, getFileChooser, getFont, getMenuBar, getSendToClasses, getSendToItem, getShowFlowControlSubMenu, getWriter, hasSendToItem, indexOfMenuItem, initialize, isPaused, pauseResumeFlow, preDisplay, saveAs, setAlwaysClear, setFont, setShowFlowControlSubMenu, setWriter, showFlowControlSubMenuTipText, stopFlow, supportsHeadlessExecution, wrapUp, writerTipText
-
Methods inherited from class adams.flow.sink.AbstractDisplay
newDisplayRunnable, postDisplay
-
Methods inherited from class adams.flow.core.AbstractDisplay
cleanUpGUIKeepOpen, closeDisplay, createFrame, createTitle, currentInput, deregisterInWrapUp, deregisterWindow, deregisterWithEditor, displayTypeTipText, doCreateFrame, doExecute, getCreateFrame, getDefaultDisplayType, getDefaultShortTitle, getDefaultX, getDefaultY, getDisplayType, getFrame, getFrameDefaultCloseOperation, getHeight, getKeepOpen, getPanel, getShortTitle, getWidth, getX, getY, hasInput, heightTipText, input, postCreateFrame, preCreateFrame, registerWindow, registerWithEditor, setCreateFrame, setDisplayType, setHeight, setKeepOpen, 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, 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 class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
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, 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
-
BACKUP_CURRENTCOUNT
public static final String BACKUP_CURRENTCOUNT
the key for storing the current count in the backup.- See Also:
- Constant Field Values
-
m_NumTokens
protected int m_NumTokens
the number of tokens to accept for a single entry.
-
m_HistoryPanel
protected HistoryDisplay.HistorySplitPanel m_HistoryPanel
the history panel.
-
m_MenuItemFilePrint
protected JMenuItem m_MenuItemFilePrint
the print menu item.
-
m_MenuItemEditCopy
protected JMenuItem m_MenuItemEditCopy
the copy menu item.
-
m_MenuItemEditSelectAll
protected JMenuItem m_MenuItemEditSelectAll
the select all menu item.
-
m_MenuItemViewFont
protected JMenuItem m_MenuItemViewFont
the font menu item.
-
m_MenuItemViewCaret
protected JCheckBoxMenuItem m_MenuItemViewCaret
the "caret position" menu item.
-
m_MenuItemViewLineWrap
protected JMenuItem m_MenuItemViewLineWrap
the line wrap menu item.
-
m_MenuItemViewWrapStyleWord
protected JMenuItem m_MenuItemViewWrapStyleWord
the word wrap style menu item.
-
m_LineWrap
protected boolean m_LineWrap
use line wrap.
-
m_WrapStyleWord
protected boolean m_WrapStyleWord
use word wrap style.
-
m_CurrentCount
protected int m_CurrentCount
the current count of tokens.
-
m_AllowMerge
protected boolean m_AllowMerge
whether to allow merging of panel content.
-
m_AllowSearch
protected boolean m_AllowSearch
whether to allow searching.
-
m_CaretAtStart
protected boolean m_CaretAtStart
whether to position the caret by default at the start or at the end.
-
m_EntryNameVariable
protected VariableNameNoUpdate m_EntryNameVariable
the variable to use for naming the entries.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfoin interfaceGlobalInfoSupporter- Specified by:
globalInfoin classAbstractOptionHandler- Returns:
- a description suitable for displaying in the gui
-
defineOptions
public void defineOptions()
Adds options to the internal list of options.- Specified by:
defineOptionsin interfaceOptionHandler- Overrides:
defineOptionsin classAbstractTextualDisplay
-
reset
protected void reset()
Resets the object.- Overrides:
resetin classAbstractDisplay
-
pruneBackup
protected void pruneBackup()
Removes entries from the backup.- Overrides:
pruneBackupin classAbstractActor- See Also:
AbstractActor.reset()
-
backupState
protected Hashtable<String,Object> backupState()
Backs up the current state of the actor before update the variables.- Overrides:
backupStatein classAbstractDisplay- Returns:
- the backup
- See Also:
AbstractActor.updateVariables(),AbstractActor.restoreState(Hashtable)
-
restoreState
protected void restoreState(Hashtable<String,Object> state)
Restores the state of the actor before the variables got updated.- Overrides:
restoreStatein classAbstractDisplay- Parameters:
state- the backup of the state to restore from- See Also:
AbstractActor.updateVariables(),AbstractActor.backupState()
-
getQuickInfo
public String getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.- Specified by:
getQuickInfoin interfaceActor- Specified by:
getQuickInfoin interfaceQuickInfoSupporter- Overrides:
getQuickInfoin classAbstractTextualDisplay- Returns:
- null if no info available, otherwise short string
-
getDefaultWidth
protected int getDefaultWidth()
Returns the default width for the dialog.- Overrides:
getDefaultWidthin classAbstractDisplay- Returns:
- the default width
-
getDefaultHeight
protected int getDefaultHeight()
Returns the default height for the dialog.- Overrides:
getDefaultHeightin classAbstractDisplay- Returns:
- the default height
-
setCaretAtStart
public void setCaretAtStart(boolean value)
Sets whether to position the caret at the start or at the end (default).- Parameters:
value- if true then the caret will be positioned at start
-
isCaretAtStart
public boolean isCaretAtStart()
Returns whether the caret is positioned at the start instead of the end.- Returns:
- true if caret positioned at start
-
caretAtStartTipText
public String caretAtStartTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setLineWrap
public void setLineWrap(boolean value)
Enables/disables line wrap.- Parameters:
value- if true line wrap gets enabled
-
getLineWrap
public boolean getLineWrap()
Returns whether line wrap is enabled.- Returns:
- true if line wrap enabled
-
lineWrapTipText
public String lineWrapTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setWrapStyleWord
public void setWrapStyleWord(boolean value)
Sets the style of wrapping used if the text area is wrapping lines. If set to true the lines will be wrapped at word boundaries (whitespace) if they are too long to fit within the allocated width. If set to false, the lines will be wrapped at character boundaries. By default this property is false.- Parameters:
value- indicates if word boundaries should be used for line wrapping
-
getWrapStyleWord
public boolean getWrapStyleWord()
Gets the style of wrapping used if the text area is wrapping lines. If set to true the lines will be wrapped at word boundaries (ie whitespace) if they are too long to fit within the allocated width. If set to false, the lines will be wrapped at character boundaries.- Returns:
- if the wrap style should be word boundaries instead of character boundaries
-
wrapStyleWordTipText
public String wrapStyleWordTipText()
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 entry before creating a new entry.- Parameters:
value- the panel provider to use
-
getNumTokens
public int getNumTokens()
Returns the number of tokens to accept per entry before creating a new entry.- 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 content in case of same name.- Parameters:
value- true if to allow merge- See Also:
setEntryNameVariable(VariableNameNoUpdate)
-
getAllowMerge
public boolean getAllowMerge()
Returns whether to enable merging of content in case of same name.- Returns:
- 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.
-
clearPanel
public void clearPanel()
Clears the content of the panel.- Specified by:
clearPanelin classAbstractDisplay
-
newPanel
protected BasePanel newPanel()
Creates the panel to display in the dialog.- Specified by:
newPanelin classAbstractDisplay- Returns:
- the panel
-
createFileMenu
protected JMenu createFileMenu()
Creates the "File" menu.- Overrides:
createFileMenuin classAbstractTextualDisplay- Returns:
- the generated menu
-
createEditMenu
protected JMenu createEditMenu()
Creates the "Edit" menu.- Returns:
- the menu
-
createViewMenu
protected JMenu createViewMenu()
Creates the "Edit" menu.- Returns:
- the menu
-
createMenuBar
protected JMenuBar createMenuBar()
Assembles the menu bar.- Overrides:
createMenuBarin classAbstractTextualDisplay- Returns:
- the menu bar
-
updateMenu
protected void updateMenu()
updates the enabled state of the menu items.- Overrides:
updateMenuin classAbstractTextualDisplay
-
supportsClear
public boolean supportsClear()
Whether "clear" is supported and shows up in the menu.- Specified by:
supportsClearin interfaceClearableDisplay- Overrides:
supportsClearin classAbstractTextualDisplay- Returns:
- always true
-
clear
public void clear()
Clears the display.- Specified by:
clearin interfaceClearableDisplay- Overrides:
clearin classAbstractTextualDisplay
-
supplyText
public String supplyText()
Returns the text to save.- Specified by:
supplyTextin interfaceTextSupplier- Specified by:
supplyTextin interfaceTextSupporter- Specified by:
supplyTextin classAbstractTextualDisplay- Returns:
- the text, null if no text available
-
accepts
public Class[] accepts()
Returns the class that the consumer accepts.- Returns:
- java.lang.Object.class
-
display
protected void display(Token token)
Displays the token (the panel and dialog have already been created at this stage).- Specified by:
displayin classAbstractDisplay- Parameters:
token- the token to display
-
cleanUpGUI
protected void cleanUpGUI()
Removes all graphical components.- Overrides:
cleanUpGUIin classAbstractTextualDisplay
-
-