Class StartupActionsManager
- All Implemented Interfaces:
BeanInterface,PropertyChangeFirer,PropertyChangeProvider,JmriServiceProviderInterface,PreferencesManager
-
Field Summary
FieldsFields inherited from class jmri.beans.Bean
propertyChangeSupport -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAction(StartupModel model) getActions(int index) <T extends StartupModel>
List<T>getActions(Class<T> type) getActionsForConnection(String systemPrefix) Get the startup actions that belong to a system connection.static List<SystemConnectionMemo>getConnectionsOffering(AbstractActionModel model, String excludedPrefix) Get the running connections that offer the action of a startup action, so the action could be moved to one of them.HashMap<Class<? extends StartupModel>,StartupModelFactory> getFactories(Class<? extends StartupModel> model) Set<Class<? extends PreferencesManager>>Get the set of PreferencesManagers that must be initialized prior to initializing this PreferencesManager.voidinitialize(Profile profile) Initialize the PreferencesManager with preferences associated with the provided Profile.booleanisDirty()booleanIndicate if a restart is required for preferences to be applied.voidmoveAction(int start, int end) Move aStartupModelfrom position start to position end.voidreassignAction(AbstractActionModel model, String systemPrefix) Move a startup action to a different system connection.voidremoveAction(StartupModel model) Remove aStartupModel.voidsavePreferences(Profile profile) Save the preferences that this provider manages for the provided Profile.voidsetActions(int index, StartupModel model) Insert aStartupModelat the given position.voidMark that a change requires a restart.Methods inherited from class jmri.util.prefs.AbstractPreferencesManager
addInitializationException, getInitializationExceptions, getProvides, isInitialized, isInitializedWithExceptions, isInitializing, requireAllOther, requiresNoInitializedWithExceptions, requiresNoInitializedWithExceptions, setInitialized, setInitializingMethods inherited from class jmri.beans.Bean
addPropertyChangeListener, addPropertyChangeListener, fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getPropertyChangeListeners, getPropertyChangeListeners, isNotifyOnEDT, removePropertyChangeListener, removePropertyChangeListenerMethods inherited from class jmri.beans.UnboundBean
getIndexedProperty, getProperty, getPropertyNames, hasIndexedProperty, hasProperty, setIndexedProperty, setProperty
-
Field Details
-
STARTUP
- See Also:
-
NAMESPACE
- See Also:
-
NAMESPACE_OLD
- See Also:
-
-
Constructor Details
-
StartupActionsManager
public StartupActionsManager()
-
-
Method Details
-
initialize
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)orPreferencesManager.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
Description copied from class:AbstractPreferencesManagerGet 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:
getRequiresin interfacePreferencesManager- Overrides:
getRequiresin classAbstractPreferencesManager- 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
Description copied from interface:PreferencesManagerSave 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
-
getActions
-
getActions
-
getActions
-
setActions
Insert aStartupModelat the given position. Triggers anIndexedPropertyChangeEventwhere the old value is null and the new value is the inserted model.- Parameters:
index- The position where the model will be insertedmodel- The model to be inserted
-
moveAction
Move aStartupModelfrom position start to position end. Triggers anIndexedPropertyChangeEventwhere the index is end, the old value is start and the new value is the moved model.- Parameters:
start- the original positionend- the new position
-
addAction
-
removeAction
Remove aStartupModel. Triggers anIndexedPropertyChangeEventwhere 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
-
getActionsForConnection
Get the startup actions that belong to a system connection.- Parameters:
systemPrefix- the system prefix of the connection- Returns:
- the actions for that connection, in Start Up order; empty if none
-
getConnectionsOffering
@Nonnull public static List<SystemConnectionMemo> getConnectionsOffering(@Nonnull AbstractActionModel model, @CheckForNull String excludedPrefix) Get the running connections that offer the action of a startup action, so the action could be moved to one of them.- Parameters:
model- the startup actionexcludedPrefix- the system prefix of a connection to leave out, usually the one being deleted; may be null- Returns:
- the connections offering the action; empty if none
-
reassignAction
Move a startup action to a different system connection. Triggers anIndexedPropertyChangeEventwhere the index, and the old value, are the position of the model, and the new value is the model.- Parameters:
model- the startup action to movesystemPrefix- the system prefix of the connection to move it to
-
getFactories
-
getFactories
-
isDirty
-
setRestartRequired
Mark that a change requires a restart. As a side effect, marks this manager dirty. -
isRestartRequired
Indicate if a restart is required for preferences to be applied.- Returns:
- true if a restart is required, false otherwise
-