Class StartupActionsManager

    • Method Detail

      • initialize

        public void initialize​(Profile profile)
                        throws InitializationException
        Initialize the PreferencesManager with preferences associated with the provided Profile.

        Implementing classes should throw an InitializationException with a user readable localized message, since it most likely be displayed to the user. Implementing classes will still want to ensure that PreferencesManager.isInitialized(jmri.profile.Profile) or PreferencesManager.isInitializedWithExceptions(jmri.profile.Profile) return true if throwing an InitializationException to ensure that the provider is not repeatedly initialized.

        Loads the startup action preferences and, if all required managers have initialized without exceptions, performs those actions. Startup actions are only performed if StartupModel.isValid() is true for the action. It is assumed that the action has retained an Exception that can be used to explain why isValid() is false.

        Parameters:
        profile - the configuration profile used for this initialization; may be null to initialize for this user regardless of profile
        Throws:
        InitializationException - if the user needs to be notified of an issue that prevents regular use of the application
      • getRequires

        @Nonnull
        public java.util.Set<java.lang.Class<? extends PreferencesManager>> getRequires()
        Description copied from class: AbstractPreferencesManager
        Get the set of PreferencesManagers that must be initialized prior to initializing this PreferencesManager. It is generally preferable to require an Interface or an abstract Class instead of a concrete Class, since that allows all (or any) concrete implementations of the required class to be initialized to provide required services for the requiring PreferencesManager instance.

        Note that for any set of PreferencesManagers with the same requirements, or with a circular dependency between each other, the order in which the PreferencesManagers in that set are initialized should be considered non-deterministic.

        This implementation includes a default dependency on the ConnectionConfigManager.

        Specified by:
        getRequires in interface PreferencesManager
        Overrides:
        getRequires in class AbstractPreferencesManager
        Returns:
        An set of classes; if there are no dependencies, return an empty set instead of null; overriding implementations may add to this set directly
      • savePreferences

        public void savePreferences​(Profile profile)
        Description copied from interface: PreferencesManager
        Save the preferences that this provider manages for the provided Profile.
        Parameters:
        profile - the profile associated with the preferences to save; may be null to save preferences that apply to the current user regardless of profile
      • setActions

        public void setActions​(int index,
                               StartupModel model)
        Insert a StartupModel at the given position. Triggers an IndexedPropertyChangeEvent where the old value is null and the new value is the inserted model.
        Parameters:
        index - The position where the model will be inserted
        model - The model to be inserted
      • moveAction

        public void moveAction​(int start,
                               int end)
        Move a StartupModel from position start to position end. Triggers an IndexedPropertyChangeEvent where the index is end, the old value is start and the new value is the moved model.
        Parameters:
        start - the original position
        end - the new position
      • removeAction

        public void removeAction​(StartupModel model)
        Remove a StartupModel. Triggers an IndexedPropertyChangeEvent where the index is the position of the removed model, the old value is the model, and the new value is null.
        Parameters:
        model - The startup action to remove
      • isDirty

        public boolean isDirty()
      • setRestartRequired

        public void setRestartRequired()
        Mark that a change requires a restart. As a side effect, marks this manager dirty.
      • isRestartRequired

        public boolean isRestartRequired()
        Indicate if a restart is required for preferences to be applied.
        Returns:
        true if a restart is required, false otherwise