Class SelectFile

  • All Implemented Interfaces:
    AdditionalInformationHandler, ArrayProvider, CleanUpHandler, Destroyable, GlobalInfoSupporter, ForwardSlashSupporter, LoggingLevelHandler, LoggingSupporter, OptionHandler, QuickInfoSupporter, ShallowCopySupporter<Actor>, SizeOfHandler, Stoppable, StoppableWithFeedback, VariablesInspectionHandler, VariableChangeListener, Actor, ArrayProvider, AutomatableInteraction, AutomatableInteractiveActor, ErrorHandler, InteractionDisplayLocationSupporter, InteractiveActor, InteractiveActorWithCustomParentComponent, OutputProducer, RestorableActor, StopModeSupporter, Serializable, Comparable

    public class SelectFile
    extends AbstractArrayProvider
    implements InteractiveActorWithCustomParentComponent, AutomatableInteractiveActor, RestorableActor, ForwardSlashSupporter, InteractionDisplayLocationSupporter
    Pops up a file chooser dialog, prompting the user to select one or more files. The files then get forwarded as strings.

    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: SelectFile
     
    -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
     
    -output-array <boolean> (property: outputArray)
        Whether to output the files as array or one-by-one.
        default: false
     
    -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
     
    -file-chooser-title <java.lang.String> (property: fileChooserTitle)
        The title for the file chooser dialog.
        default:
     
    -initial-dir <adams.core.io.PlaceholderDirectory> (property: initialDirectory)
        The initial directory for the file chooser.
        default: ${CWD}
     
    -extension <adams.core.base.BaseString> [-extension ...] (property: extensions)
        The extensions available through the file chooser (no dot; use comma to
        use multiple extensions per file filter).
        default:
     
    -initial-file <adams.core.io.PlaceholderFile> [-initial-file ...] (property: initialFiles)
        The initial files for the file chooser.
        default:
     
    -absolute <boolean> (property: absoluteFileNames)
        If enabled, absolute file names instead of relative ones are output.
        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
     
    -non-interactive <boolean> (property: nonInteractive)
        If enabled, the initial value 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
     
    -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
     
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Detail

      • m_FileChooserTitle

        protected String m_FileChooserTitle
        the title of the file chooser dialog.
      • m_Extensions

        protected BaseString[] m_Extensions
        the extensions to offer in the file chooser.
      • m_InitialFiles

        protected PlaceholderFile[] m_InitialFiles
        the initial files to use.
      • m_AbsoluteFileNames

        protected boolean m_AbsoluteFileNames
        whether to use absolute file/dir names.
      • m_UseForwardSlashes

        protected boolean m_UseForwardSlashes
        whether to output forward slashes.
      • m_StopFlowIfCanceled

        protected boolean m_StopFlowIfCanceled
        whether to stop the flow if canceled.
      • m_CustomStopMessage

        protected String m_CustomStopMessage
        the custom stop message to use if flow gets stopped due to cancelation.
      • m_StopMode

        protected StopMode m_StopMode
        how to perform the stop.
      • 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_ParentComponentActor

        protected CallableActorReference m_ParentComponentActor
        the (optional) parent component to use.
      • m_CallableActor

        protected Actor m_CallableActor
        the callable actor.
      • m_ParentComponentActorConfigured

        protected boolean m_ParentComponentActorConfigured
        whether the callable actor has been configured.
      • m_UseOuterWindow

        protected boolean m_UseOuterWindow
        whether to use the outer window as parent.
    • Constructor Detail

      • SelectFile

        public SelectFile()
    • Method Detail

      • setFileChooserTitle

        public void setFileChooserTitle​(String value)
        Sets the title for the file chooser dialog.
        Parameters:
        value - the title
      • getFileChooserTitle

        public String getFileChooserTitle()
        Returns the title for the file chooser dialog.
        Returns:
        the title
      • fileChooserTitleTipText

        public String fileChooserTitleTipText()
        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.
      • setExtensions

        public void setExtensions​(BaseString[] value)
        Sets the extensions to offer in the file chooser.
        Parameters:
        value - the extensions
      • getExtensions

        public BaseString[] getExtensions()
        Returns the extension on offer in the file chooser.
        Returns:
        the extensions
      • extensionsTipText

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

        public void setInitialFiles​(PlaceholderFile[] value)
        Sets the initial files.
        Parameters:
        value - the initial files
      • getInitialFiles

        public PlaceholderFile[] getInitialFiles()
        Returns the initial files.
        Returns:
        the initial files
      • initialFilesTipText

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

        public void setAbsoluteFileNames​(boolean value)
        Sets whether to output absolute file names or not.
        Parameters:
        value - if true absolute file names are output
      • getAbsoluteFileNames

        public boolean getAbsoluteFileNames()
        Returns whether to output absolute file names or not.
        Returns:
        true if absolute files are output
      • absoluteFileNamesTipText

        public String absoluteFileNamesTipText()
        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 interface ForwardSlashSupporter
        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 interface ForwardSlashSupporter
        Returns:
        true if forward slashes are used
      • useForwardSlashesTipText

        public String useForwardSlashesTipText()
        Returns the tip text for this property.
        Specified by:
        useForwardSlashesTipText in interface ForwardSlashSupporter
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setStopFlowIfCanceled

        public void setStopFlowIfCanceled​(boolean value)
        Sets whether to stop the flow if dialog canceled.
        Specified by:
        setStopFlowIfCanceled in interface InteractiveActor
        Parameters:
        value - if true flow gets stopped if dialog canceled
      • getStopFlowIfCanceled

        public boolean getStopFlowIfCanceled()
        Returns whether to stop the flow if dialog canceled.
        Specified by:
        getStopFlowIfCanceled in interface InteractiveActor
        Returns:
        true if the flow gets stopped if dialog canceled
      • stopFlowIfCanceledTipText

        public String stopFlowIfCanceledTipText()
        Returns the tip text for this property.
        Specified by:
        stopFlowIfCanceledTipText in interface InteractiveActor
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setCustomStopMessage

        public void setCustomStopMessage​(String value)
        Sets the custom message to use when stopping the flow.
        Specified by:
        setCustomStopMessage in interface InteractiveActor
        Parameters:
        value - the stop message
      • getCustomStopMessage

        public String getCustomStopMessage()
        Returns the custom message to use when stopping the flow.
        Specified by:
        getCustomStopMessage in interface InteractiveActor
        Returns:
        the stop message
      • customStopMessageTipText

        public String customStopMessageTipText()
        Returns the tip text for this property.
        Specified by:
        customStopMessageTipText in interface InteractiveActor
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • stopModeTipText

        public String stopModeTipText()
        Returns the tip text for this property.
        Specified by:
        stopModeTipText in interface StopModeSupporter
        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 interface RestorableActor
        Parameters:
        value - true if to enable restoration
      • isRestorationEnabled

        public boolean isRestorationEnabled()
        Returns whether restoration is enabled.
        Specified by:
        isRestorationEnabled in interface RestorableActor
        Returns:
        true if restoration enabled
      • restorationEnabledTipText

        public String restorationEnabledTipText()
        Returns the tip text for this property.
        Specified by:
        restorationEnabledTipText in interface RestorableActor
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • restorationFileTipText

        public String restorationFileTipText()
        Returns the tip text for this property.
        Specified by:
        restorationFileTipText in interface RestorableActor
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • findCallableActor

        protected Actor findCallableActor()
        Tries to find the callable actor referenced by its callable name.
        Returns:
        the callable actor or null if not found
      • doInteractInDialog

        protected File[] doInteractInDialog​(BaseFileChooser fileChooser)
        Performs the interaction with the user in a dialog.
        Parameters:
        fileChooser - the file chooser instance to use
        Returns:
        the files, null if dialog cancelled
      • doInteractInNotificationArea

        protected File[] doInteractInNotificationArea​(BaseFileChooser fileChooser)
        Performs the interaction with the user in the notification area.
        Parameters:
        fileChooser - the file chooser instance to use
        Returns:
        the files, null if cancelled or flow stopped
      • doInteract

        public String doInteract()
        Performs the interaction with the user.
        Specified by:
        doInteract in interface InteractiveActor
        Returns:
        null if successfully interacted, otherwise error message
      • supportsHeadlessInteraction

        public boolean supportsHeadlessInteraction()
        Returns whether headless interaction is supported.
        Specified by:
        supportsHeadlessInteraction in interface InteractiveActor
        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 interface InteractiveActor
        Returns:
        true if successfully interacted
      • doExecute

        protected String doExecute()
        Executes the flow item.
        Specified by:
        doExecute in class AbstractActor
        Returns:
        null if everything is fine, otherwise error message