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
,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 class
HistoryDisplay.HistorySplitPanel
Represents a panel with a history on the left and the displayed text on the right.
-
Field Summary
Fields Modifier and Type Field Description static String
BACKUP_CURRENTCOUNT
the key for storing the current count in the backup.protected boolean
m_AllowMerge
whether to allow merging of panel content.protected boolean
m_AllowSearch
whether to allow searching.protected boolean
m_CaretAtStart
whether to position the caret by default at the start or at the end.protected int
m_CurrentCount
the current count of tokens.protected VariableNameNoUpdate
m_EntryNameVariable
the variable to use for naming the entries.protected HistoryDisplay.HistorySplitPanel
m_HistoryPanel
the history panel.protected boolean
m_LineWrap
use line wrap.protected JMenuItem
m_MenuItemEditCopy
the copy menu item.protected JMenuItem
m_MenuItemEditSelectAll
the select all menu item.protected JMenuItem
m_MenuItemFilePrint
the print menu item.protected JCheckBoxMenuItem
m_MenuItemViewCaret
the "caret position" menu item.protected JMenuItem
m_MenuItemViewFont
the font menu item.protected JMenuItem
m_MenuItemViewLineWrap
the line wrap menu item.protected JMenuItem
m_MenuItemViewWrapStyleWord
the word wrap style menu item.protected int
m_NumTokens
the number of tokens to accept for a single entry.protected boolean
m_WrapStyleWord
use 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_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.String
allowMergeTipText()
Returns the tip text for this property.String
allowSearchTipText()
Returns the tip text for this property.protected Hashtable<String,Object>
backupState()
Backs up the current state of the actor before update the variables.String
caretAtStartTipText()
Returns the tip text for this property.protected void
cleanUpGUI()
Removes all graphical components.void
clear()
Clears the display.void
clearPanel()
Clears the content of the panel.protected JMenu
createEditMenu()
Creates the "Edit" menu.protected JMenu
createFileMenu()
Creates the "File" menu.protected JMenuBar
createMenuBar()
Assembles the menu bar.protected JMenu
createViewMenu()
Creates the "Edit" menu.void
defineOptions()
Adds options to the internal list of options.protected void
display(Token token)
Displays the token (the panel and dialog have already been created at this stage).String
entryNameVariableTipText()
Returns the tip text for this property.boolean
getAllowMerge()
Returns whether to enable merging of content in case of same name.boolean
getAllowSearch()
Returns whether to allow the user to search the entries.protected int
getDefaultHeight()
Returns the default height for the dialog.protected int
getDefaultWidth()
Returns the default width for the dialog.VariableNameNoUpdate
getEntryNameVariable()
Returns the variable name which value gets used to name the entries.boolean
getLineWrap()
Returns whether line wrap is enabled.int
getNumTokens()
Returns the number of tokens to accept per entry before creating a new entry.String
getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.boolean
getWrapStyleWord()
Gets the style of wrapping used if the text area is wrapping lines.String
globalInfo()
Returns a string describing the object.boolean
isCaretAtStart()
Returns whether the caret is positioned at the start instead of the end.String
lineWrapTipText()
Returns the tip text for this property.protected BasePanel
newPanel()
Creates the panel to display in the dialog.String
numTokensTipText()
Returns the tip text for this property.protected void
pruneBackup()
Removes entries from the backup.protected void
reset()
Resets the object.protected void
restoreState(Hashtable<String,Object> state)
Restores the state of the actor before the variables got updated.void
setAllowMerge(boolean value)
Sets whether to enable merging of content in case of same name.void
setAllowSearch(boolean value)
Sets whether to allow the user to search the entries.void
setCaretAtStart(boolean value)
Sets whether to position the caret at the start or at the end (default).void
setEntryNameVariable(VariableNameNoUpdate value)
Sets the variable name which value gets used to name the entries.void
setLineWrap(boolean value)
Enables/disables line wrap.void
setNumTokens(int value)
Sets the number of tokens to accept per entry before creating a new entry.void
setWrapStyleWord(boolean value)
Sets the style of wrapping used if the text area is wrapping lines.String
supplyText()
Returns the text to save.boolean
supportsClear()
Whether "clear" is supported and shows up in the menu.protected void
updateMenu()
updates the enabled state of the menu items.String
wrapStyleWordTipText()
Returns the tip text for this property.-
Methods inherited from class adams.flow.sink.AbstractTextualDisplay
alwaysClearTipText, canPauseOrResume, cleanUp, close, createFlowMenu, doExecute, 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, wrapUp, writerTipText
-
Methods inherited from class adams.flow.sink.AbstractDisplay
newDisplayRunnable, postDisplay
-
Methods inherited from class adams.flow.core.AbstractDisplay
cleanUpGUIKeepOpen, closeFrame, createFrame, createTitle, currentInput, deregisterInWrapUp, deregisterWindow, deregisterWithEditor, displayTypeTipText, doCreateFrame, 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:
globalInfo
in interfaceGlobalInfoSupporter
- Specified by:
globalInfo
in classAbstractOptionHandler
- 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 interfaceOptionHandler
- Overrides:
defineOptions
in classAbstractTextualDisplay
-
reset
protected void reset()
Resets the object.- Overrides:
reset
in classAbstractDisplay
-
pruneBackup
protected void pruneBackup()
Removes entries from the backup.- Overrides:
pruneBackup
in classAbstractActor
- See Also:
AbstractActor.reset()
-
backupState
protected Hashtable<String,Object> backupState()
Backs up the current state of the actor before update the variables.- Overrides:
backupState
in 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:
restoreState
in 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:
getQuickInfo
in interfaceActor
- Specified by:
getQuickInfo
in interfaceQuickInfoSupporter
- Overrides:
getQuickInfo
in classAbstractTextualDisplay
- Returns:
- null if no info available, otherwise short string
-
getDefaultWidth
protected int getDefaultWidth()
Returns the default width for the dialog.- Overrides:
getDefaultWidth
in classAbstractDisplay
- Returns:
- the default width
-
getDefaultHeight
protected int getDefaultHeight()
Returns the default height for the dialog.- Overrides:
getDefaultHeight
in 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:
clearPanel
in classAbstractDisplay
-
newPanel
protected BasePanel newPanel()
Creates the panel to display in the dialog.- Specified by:
newPanel
in classAbstractDisplay
- Returns:
- the panel
-
createFileMenu
protected JMenu createFileMenu()
Creates the "File" menu.- Overrides:
createFileMenu
in 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:
createMenuBar
in classAbstractTextualDisplay
- Returns:
- the menu bar
-
updateMenu
protected void updateMenu()
updates the enabled state of the menu items.- Overrides:
updateMenu
in classAbstractTextualDisplay
-
supportsClear
public boolean supportsClear()
Whether "clear" is supported and shows up in the menu.- Specified by:
supportsClear
in interfaceClearableDisplay
- Overrides:
supportsClear
in classAbstractTextualDisplay
- Returns:
- always true
-
clear
public void clear()
Clears the display.- Specified by:
clear
in interfaceClearableDisplay
- Overrides:
clear
in classAbstractTextualDisplay
-
supplyText
public String supplyText()
Returns the text to save.- Specified by:
supplyText
in interfaceTextSupplier
- Specified by:
supplyText
in interfaceTextSupporter
- Specified by:
supplyText
in 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:
display
in classAbstractDisplay
- Parameters:
token
- the token to display
-
cleanUpGUI
protected void cleanUpGUI()
Removes all graphical components.- Overrides:
cleanUpGUI
in classAbstractTextualDisplay
-
-