Package adams.flow.source
Class SelectDirectory
-
- All Implemented Interfaces:
AdditionalInformationHandler
,CleanUpHandler
,Destroyable
,GlobalInfoSupporter
,ForwardSlashSupporter
,LoggingLevelHandler
,LoggingSupporter
,OptionHandler
,QuickInfoSupporter
,ShallowCopySupporter<Actor>
,SizeOfHandler
,Stoppable
,StoppableWithFeedback
,VariablesInspectionHandler
,VariableChangeListener
,Actor
,AutomatableInteraction
,AutomatableInteractiveActor
,ErrorHandler
,InteractionDisplayLocationSupporter
,InteractiveActor
,InteractiveActorWithCustomParentComponent
,OutputProducer
,RestorableActor
,StopModeSupporter
,Serializable
,Comparable
public class SelectDirectory extends AbstractInteractiveSource implements AutomatableInteractiveActor, RestorableActor, ForwardSlashSupporter, InteractionDisplayLocationSupporter
Pops up a directory chooser dialog, prompting the user to select a directory. The directory then gets forwarded as string.
Input/output:
- generates:
java.lang.String
-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: SelectDirectory
-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
-stop-if-canceled <boolean> (property: stopFlowIfCanceled) If enabled, the flow gets stopped in case the user cancels the dialog. default: false
-custom-stop-message <java.lang.String> (property: customStopMessage) The custom stop message to use in case a user cancelation stops the flow (default is the full name of the actor) default:
-stop-mode <GLOBAL|STOP_RESTRICTOR> (property: stopMode) The stop mode to use. default: GLOBAL
-parent-component-actor <adams.flow.core.CallableActorReference> (property: parentComponentActor) The (optional) callable actor to use as parent component instead of the flow panel. default: unknown min-user-mode: Expert
-use-outer-window <boolean> (property: useOuterWindow) If enabled, the outer window (dialog/frame) is used instead of the component of the callable actor. default: false min-user-mode: Expert
-dir-chooser-title <java.lang.String> (property: directoryChooserTitle) The title for the directory chooser dialog. default:
-initial-dir <adams.core.io.PlaceholderDirectory> (property: initialDirectory) The initial directory for the directory chooser. default: ${CWD}
-absolute <boolean> (property: absoluteDirectoryName) If enabled, the directory name is output in absolute instead of relative form. default: false
-use-forward-slashes <boolean> (property: useForwardSlashes) If enabled, forward slashes are used in the output (but the '\\' prefix of UNC paths is not converted). default: false
-multi-selection-enabled <boolean> (property: multiSelectionEnabled) If enabled, multiple directories can be selected. default: false
-non-interactive <boolean> (property: nonInteractive) If enabled, the initial directory is forwarded without user interaction. default: false
-restoration-enabled <boolean> (property: restorationEnabled) If enabled, the state of the actor is being preserved and attempted to read in again next time this actor is executed. default: false
-restoration-file <adams.core.io.PlaceholderFile> (property: restorationFile) The file to store the restoration information in. default: ${CWD}
-display-location <DIALOG|NOTIFICATION_AREA> (property: displayLocation) Determines where the interaction is being displayed. default: DIALOG
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static String
KEY_INITIAL
protected boolean
m_AbsoluteDirectoryName
whether to use absolute file/dir names.protected GUIHelper.DialogCommunication
m_Comm
for communicating with the input dialog.protected String
m_DirectoryChooserTitle
the title of the directory chooser dialog.protected InteractionDisplayLocation
m_DisplayLocation
where to display the prompt.protected PlaceholderDirectory
m_InitialDirectory
the initial directory.protected boolean
m_MultiSelectionEnabled
whether to allow multi-selection.protected boolean
m_NonInteractive
whether to automate the actor.protected Token
m_OutputToken
for the chosen directory.protected boolean
m_RestorationEnabled
whether restoration is enabled.protected PlaceholderFile
m_RestorationFile
the file to store the restoration state in.protected boolean
m_UseForwardSlashes
whether to output forward slashes.-
Fields inherited from class adams.flow.source.AbstractInteractiveSource
m_CallableActor, m_CustomStopMessage, m_Helper, m_ParentComponentActor, m_ParentComponentActorConfigured, m_StopFlowIfCanceled, m_StopMode, m_UseOuterWindow
-
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
-
Fields inherited from interface adams.flow.core.InteractiveActor
INTERACTION_CANCELED
-
-
Constructor Summary
Constructors Constructor Description SelectDirectory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
absoluteDirectoryNameTipText()
Returns the tip text for this property.protected String
convert(File file)
Converts the file object into a string.protected String[]
convert(File[] files)
Converts the file objects into a string.protected String[]
convert(File[] files, boolean absolute, boolean forward)
Converts the file objects into a string.protected String
convert(File file, boolean absolute, boolean forward)
Converts the file object into a string.void
defineOptions()
Adds options to the internal list of options.String
directoryChooserTitleTipText()
Returns the tip text for this property.String
displayLocationTipText()
Returns the tip text for this property.String
doInteract()
Performs the interaction with the user.String
doInteractHeadless()
Performs the interaction with the user in a headless environment.protected File[]
doInteractInDialog(FileChooser dirChooser)
Performs the interaction with the user in a dialog.protected File[]
doInteractInNotificationArea(FileChooser dirChooser)
Performs the interaction with the user in the notification area.Class[]
generates()
Returns the class of objects that it generates.boolean
getAbsoluteDirectoryName()
Returns whether to output absolute directory name or not.String
getDirectoryChooserTitle()
Returns the title for the directory chooser dialog.InteractionDisplayLocation
getDisplayLocation()
Returns where the interaction is being displayed.PlaceholderDirectory
getInitialDirectory()
Returns the initial directory.protected Class
getItemClass()
Returns the base class of the items.boolean
getMultiSelectionEnabled()
Returns whether to allow selection of multiple directories.String
getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.PlaceholderFile
getRestorationFile()
Returns the file for storing the state.boolean
getUseForwardSlashes()
Returns whether to use forward slashes in the output.String
globalInfo()
Returns a string describing the object.boolean
hasPendingOutput()
Checks whether there is pending output to be collected after executing the flow item.String
initialDirectoryTipText()
Returns the tip text for this property.boolean
isNonInteractive()
Returns whether interactiveness is enabled/disabled.boolean
isRestorationEnabled()
Returns whether restoration is enabled.String
multiSelectionEnabledTipText()
Returns the tip text for this property.String
nonInteractiveTipText()
Returns the tip text for this property.Token
output()
Returns the generated token.protected void
reset()
Resets the actor.String
restorationEnabledTipText()
Returns the tip text for this property.String
restorationFileTipText()
Returns the tip text for this property.void
setAbsoluteDirectoryName(boolean value)
Sets whether to output absolute directory names or not.void
setDirectoryChooserTitle(String value)
Sets the title for the directory chooser dialog.void
setDisplayLocation(InteractionDisplayLocation value)
Sets where the interaction is being displayed.void
setInitialDirectory(PlaceholderDirectory value)
Sets the initial directory.void
setMultiSelectionEnabled(boolean value)
Sets whether to allow selection of multiple directories.void
setNonInteractive(boolean value)
Sets whether to enable/disable interactiveness.void
setRestorationEnabled(boolean value)
Sets whether to enable restoration.void
setRestorationFile(PlaceholderFile value)
Sets the file for storing the state.void
setUseForwardSlashes(boolean value)
Sets whether to use forward slashes in the output.void
stopExecution()
Stops the execution.boolean
supportsHeadlessInteraction()
Returns whether headless interaction is supported.String
useForwardSlashesTipText()
Returns the tip text for this property.-
Methods inherited from class adams.flow.source.AbstractInteractiveSource
customStopMessageTipText, deregisterWindow, doExecute, findCallableActor, getActualParentComponent, getCustomStopMessage, getParentComponentActor, getStopFlowIfCanceled, getStopMode, getUseOuterWindow, initialize, parentComponentActorTipText, registerWindow, setCustomStopMessage, setParentComponentActor, setStopFlowIfCanceled, setStopMode, setUseOuterWindow, stopFlowIfCanceledTipText, stopModeTipText, useOuterWindowTipText
-
Methods inherited from class adams.flow.core.AbstractActor
annotationsTipText, backupState, canInspectOptions, canPerformSetUpCheck, cleanUp, 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, restoreState, setAnnotations, setErrorHandler, setName, setParent, setSilent, setSkip, setStopFlowOnError, setUp, setVariables, shallowCopy, shallowCopy, silentTipText, sizeOf, skipTipText, stopExecution, stopFlowOnErrorTipText, updateDetectedVariables, updatePrefix, updateVariables, variableChanged, wrapUp
-
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
cleanUp, 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, toCommandLine, variableChanged, wrapUp
-
Methods inherited from interface adams.core.AdditionalInformationHandler
getAdditionalInformation
-
Methods inherited from interface adams.flow.core.InteractiveActor
customStopMessageTipText, getCustomStopMessage, getStopFlowIfCanceled, setCustomStopMessage, setStopFlowIfCanceled, stopFlowIfCanceledTipText
-
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.flow.core.StopModeSupporter
getStopMode, setStopMode, stopModeTipText
-
Methods inherited from interface adams.core.VariablesInspectionHandler
canInspectOptions
-
-
-
-
Field Detail
-
KEY_INITIAL
public static final String KEY_INITIAL
- See Also:
- Constant Field Values
-
m_DirectoryChooserTitle
protected String m_DirectoryChooserTitle
the title of the directory chooser dialog.
-
m_InitialDirectory
protected PlaceholderDirectory m_InitialDirectory
the initial directory.
-
m_AbsoluteDirectoryName
protected boolean m_AbsoluteDirectoryName
whether to use absolute file/dir names.
-
m_UseForwardSlashes
protected boolean m_UseForwardSlashes
whether to output forward slashes.
-
m_MultiSelectionEnabled
protected boolean m_MultiSelectionEnabled
whether to allow multi-selection.
-
m_NonInteractive
protected boolean m_NonInteractive
whether to automate the actor.
-
m_RestorationEnabled
protected boolean m_RestorationEnabled
whether restoration is enabled.
-
m_RestorationFile
protected PlaceholderFile m_RestorationFile
the file to store the restoration state in.
-
m_DisplayLocation
protected InteractionDisplayLocation m_DisplayLocation
where to display the prompt.
-
m_OutputToken
protected Token m_OutputToken
for the chosen directory.
-
m_Comm
protected GUIHelper.DialogCommunication m_Comm
for communicating with the input dialog.
-
-
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 classAbstractInteractiveSource
-
reset
protected void reset()
Resets the actor.- Overrides:
reset
in classAbstractInteractiveSource
-
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 classAbstractActor
- Returns:
- null if no info available, otherwise short string
-
setDirectoryChooserTitle
public void setDirectoryChooserTitle(String value)
Sets the title for the directory chooser dialog.- Parameters:
value
- the title
-
getDirectoryChooserTitle
public String getDirectoryChooserTitle()
Returns the title for the directory chooser dialog.- Returns:
- the title
-
directoryChooserTitleTipText
public String directoryChooserTitleTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setInitialDirectory
public void setInitialDirectory(PlaceholderDirectory value)
Sets the initial directory.- Parameters:
value
- the initial directory
-
getInitialDirectory
public PlaceholderDirectory getInitialDirectory()
Returns the initial directory.- Returns:
- the initial directory
-
initialDirectoryTipText
public String initialDirectoryTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setAbsoluteDirectoryName
public void setAbsoluteDirectoryName(boolean value)
Sets whether to output absolute directory names or not.- Parameters:
value
- if true absolute directory names are output
-
getAbsoluteDirectoryName
public boolean getAbsoluteDirectoryName()
Returns whether to output absolute directory name or not.- Returns:
- true if absolute directory name are output
-
absoluteDirectoryNameTipText
public String absoluteDirectoryNameTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setUseForwardSlashes
public void setUseForwardSlashes(boolean value)
Sets whether to use forward slashes in the output.- Specified by:
setUseForwardSlashes
in interfaceForwardSlashSupporter
- Parameters:
value
- if true then use forward slashes
-
getUseForwardSlashes
public boolean getUseForwardSlashes()
Returns whether to use forward slashes in the output.- Specified by:
getUseForwardSlashes
in interfaceForwardSlashSupporter
- Returns:
- true if forward slashes are used
-
useForwardSlashesTipText
public String useForwardSlashesTipText()
Returns the tip text for this property.- Specified by:
useForwardSlashesTipText
in interfaceForwardSlashSupporter
- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setMultiSelectionEnabled
public void setMultiSelectionEnabled(boolean value)
Sets whether to allow selection of multiple directories.- Parameters:
value
- if true to allow selection of multiple dirs
-
getMultiSelectionEnabled
public boolean getMultiSelectionEnabled()
Returns whether to allow selection of multiple directories.- Returns:
- true if multiple dirs can be selected
-
multiSelectionEnabledTipText
public String multiSelectionEnabledTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setNonInteractive
public void setNonInteractive(boolean value)
Sets whether to enable/disable interactiveness.- Specified by:
setNonInteractive
in interfaceAutomatableInteraction
- Specified by:
setNonInteractive
in interfaceAutomatableInteractiveActor
- Parameters:
value
- if true actor is not interactive, but automated
-
isNonInteractive
public boolean isNonInteractive()
Returns whether interactiveness is enabled/disabled.- Specified by:
isNonInteractive
in interfaceAutomatableInteraction
- Specified by:
isNonInteractive
in interfaceAutomatableInteractiveActor
- Returns:
- true if actor is not interactive i.e., automated
-
nonInteractiveTipText
public String nonInteractiveTipText()
Returns the tip text for this property.- Specified by:
nonInteractiveTipText
in interfaceAutomatableInteraction
- Specified by:
nonInteractiveTipText
in interfaceAutomatableInteractiveActor
- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setRestorationEnabled
public void setRestorationEnabled(boolean value)
Sets whether to enable restoration.- Specified by:
setRestorationEnabled
in interfaceRestorableActor
- Parameters:
value
- true if to enable restoration
-
isRestorationEnabled
public boolean isRestorationEnabled()
Returns whether restoration is enabled.- Specified by:
isRestorationEnabled
in interfaceRestorableActor
- Returns:
- true if restoration enabled
-
restorationEnabledTipText
public String restorationEnabledTipText()
Returns the tip text for this property.- Specified by:
restorationEnabledTipText
in interfaceRestorableActor
- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setRestorationFile
public void setRestorationFile(PlaceholderFile value)
Sets the file for storing the state.- Specified by:
setRestorationFile
in interfaceRestorableActor
- Parameters:
value
- the file
-
getRestorationFile
public PlaceholderFile getRestorationFile()
Returns the file for storing the state.- Specified by:
getRestorationFile
in interfaceRestorableActor
- Returns:
- the file
-
restorationFileTipText
public String restorationFileTipText()
Returns the tip text for this property.- Specified by:
restorationFileTipText
in interfaceRestorableActor
- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setDisplayLocation
public void setDisplayLocation(InteractionDisplayLocation value)
Sets where the interaction is being displayed.- Specified by:
setDisplayLocation
in interfaceInteractionDisplayLocationSupporter
- Parameters:
value
- the location
-
getDisplayLocation
public InteractionDisplayLocation getDisplayLocation()
Returns where the interaction is being displayed.- Specified by:
getDisplayLocation
in interfaceInteractionDisplayLocationSupporter
- Returns:
- the location
-
displayLocationTipText
public String displayLocationTipText()
Returns the tip text for this property.- Specified by:
displayLocationTipText
in interfaceInteractionDisplayLocationSupporter
- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
getItemClass
protected Class getItemClass()
Returns the base class of the items.- Returns:
- the class
-
convert
protected String convert(File file, boolean absolute, boolean forward)
Converts the file object into a string.- Parameters:
file
- the file to convertabsolute
- whether to generate absolute pathsforward
- whether to enforce forward slashes- Returns:
- the generated string
-
convert
protected String convert(File file)
Converts the file object into a string.- Parameters:
file
- the file to convert- Returns:
- the generated string
- See Also:
getAbsoluteDirectoryName()
,getUseForwardSlashes()
-
convert
protected String[] convert(File[] files, boolean absolute, boolean forward)
Converts the file objects into a string.- Parameters:
files
- the files to convertabsolute
- whether to generate absolute pathsforward
- whether to enforce forward slashes- Returns:
- the generated string
-
convert
protected String[] convert(File[] files)
Converts the file objects into a string.- Parameters:
files
- the files to convert- Returns:
- the generated string
- See Also:
getAbsoluteDirectoryName()
,getUseForwardSlashes()
-
doInteractInDialog
protected File[] doInteractInDialog(FileChooser dirChooser)
Performs the interaction with the user in a dialog.- Parameters:
dirChooser
- the directory chooser instance to use- Returns:
- the dirs, null if dialog cancelled
-
doInteractInNotificationArea
protected File[] doInteractInNotificationArea(FileChooser dirChooser)
Performs the interaction with the user in the notification area.- Parameters:
dirChooser
- the directory chooser instance to use- Returns:
- the dirs, null if cancelled or flow stopped
-
doInteract
public String doInteract()
Performs the interaction with the user.- Specified by:
doInteract
in interfaceInteractiveActor
- Specified by:
doInteract
in classAbstractInteractiveSource
- Returns:
- null if successfully interacted, otherwise error message
-
supportsHeadlessInteraction
public boolean supportsHeadlessInteraction()
Returns whether headless interaction is supported.- Specified by:
supportsHeadlessInteraction
in interfaceInteractiveActor
- Overrides:
supportsHeadlessInteraction
in classAbstractInteractiveSource
- Returns:
- true if interaction in headless environment is possible
-
doInteractHeadless
public String doInteractHeadless()
Performs the interaction with the user in a headless environment.- Specified by:
doInteractHeadless
in interfaceInteractiveActor
- Overrides:
doInteractHeadless
in classAbstractInteractiveSource
- Returns:
- true if successfully interacted
-
generates
public Class[] generates()
Returns the class of objects that it generates.- Specified by:
generates
in interfaceOutputProducer
- Returns:
- the Class of the generated tokens
-
output
public Token output()
Returns the generated token.- Specified by:
output
in interfaceOutputProducer
- Returns:
- the generated token
-
hasPendingOutput
public boolean hasPendingOutput()
Checks whether there is pending output to be collected after executing the flow item.- Specified by:
hasPendingOutput
in interfaceOutputProducer
- Returns:
- true if there is pending output
-
stopExecution
public void stopExecution()
Stops the execution. No message set.- Specified by:
stopExecution
in interfaceActor
- Specified by:
stopExecution
in interfaceStoppable
- Overrides:
stopExecution
in classAbstractActor
-
-