Package jmri.beans
Class PreferencesBean
java.lang.Object
jmri.beans.UnboundBean
jmri.beans.Bean
jmri.beans.PreferencesBean
- All Implemented Interfaces:
BeanInterface
,PropertyChangeFirer
,PropertyChangeProvider
- Direct Known Subclasses:
CbusPreferences
,LnTcpPreferences
,WebServerPreferences
,ZeroConfPreferences
public abstract class PreferencesBean extends Bean
Bean that implements some common code for preferences objects.
-
Field Summary
Fields Modifier and Type Field Description static String
DIRTY
Property indicating preferences item do/do not need to be saved.static String
RESTART_REQUIRED
Property indicating preferences item requires restart to be applied. -
Constructor Summary
Constructors Constructor Description PreferencesBean(Profile profile)
Create the PreferencesBean. -
Method Summary
Modifier and Type Method Description void
firePropertyChange(PropertyChangeEvent evt)
Fire a property change.void
firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
Fire a property change.void
firePropertyChange(String propertyName, int oldValue, int newValue)
Fire a property change.void
firePropertyChange(String propertyName, Object oldValue, Object newValue)
Fire a property change.Profile
getProfile()
Get the profile associated with this PreferencesBean.boolean
isDirty()
Check if this preferences bean has a state that needs to be saved.boolean
isRestartRequired()
Check if this preferences bean requires the application to be restarted to take effect.protected void
setIsDirty(boolean value)
Set if preferences need to be saved.protected void
setRestartRequired()
Set if restart needs to be required for some preferences to take effect.Methods inherited from class jmri.beans.Bean
addPropertyChangeListener, addPropertyChangeListener, fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, getPropertyChangeListeners, getPropertyChangeListeners, isNotifyOnEDT, removePropertyChangeListener, removePropertyChangeListener
Methods inherited from class jmri.beans.UnboundBean
getIndexedProperty, getProperty, getPropertyNames, hasIndexedProperty, hasProperty, setIndexedProperty, setProperty
-
Field Details
-
DIRTY
Property indicating preferences item do/do not need to be saved. "dirty"- See Also:
- Constant Field Values
-
RESTART_REQUIRED
Property indicating preferences item requires restart to be applied. "restartRequired"- See Also:
- Constant Field Values
-
-
Constructor Details
-
PreferencesBean
Create the PreferencesBean.- Parameters:
profile
- the Profile this PreferencesBean is associated with; if null is not associated with a Profile, but applies application wide
-
-
Method Details
-
getProfile
Get the profile associated with this PreferencesBean.- Returns:
- the profile
-
isDirty
Check if this preferences bean has a state that needs to be saved.- Returns:
- true if unsaved; false otherwise
-
isRestartRequired
Check if this preferences bean requires the application to be restarted to take effect.- Returns:
- true if a restart is required; false otherwise
-
setRestartRequired
Set if restart needs to be required for some preferences to take effect. -
setIsDirty
Set if preferences need to be saved.- Parameters:
value
- true to indicate need to save; false otherwise
-
firePropertyChange
Fire a property change. Despite being public due to limitations in Java 8, this method should only be called by the subclasses of implementing classes, as this will become a protected class when JMRI requires Java 11 or newer.As a side effect, calls to
isDirty
will returntrue
if oldValue and newValue differ or are null.- Specified by:
firePropertyChange
in interfacePropertyChangeFirer
- Overrides:
firePropertyChange
in classBean
- Parameters:
propertyName
- the programmatic name of the property that was changedoldValue
- the old value of the propertynewValue
- the new value of the property
-
firePropertyChange
Fire a property change. Despite being public due to limitations in Java 8, this method should only be called by the subclasses of implementing classes, as this will become a protected class when JMRI requires Java 11 or newer.As a side effect, calls to
isDirty
will returntrue
if oldValue and newValue differ and propertyName is not "dirty".- Specified by:
firePropertyChange
in interfacePropertyChangeFirer
- Overrides:
firePropertyChange
in classBean
- Parameters:
propertyName
- the programmatic name of the property that was changedoldValue
- the old value of the propertynewValue
- the new value of the property
-
firePropertyChange
Fire a property change. Despite being public due to limitations in Java 8, this method should only be called by the subclasses of implementing classes, as this will become a protected class when JMRI requires Java 11 or newer.As a side effect, calls to
isDirty
will returntrue
if oldValue and newValue differ.- Specified by:
firePropertyChange
in interfacePropertyChangeFirer
- Overrides:
firePropertyChange
in classBean
- Parameters:
propertyName
- the programmatic name of the property that was changedoldValue
- the old value of the propertynewValue
- the new value of the property
-
firePropertyChange
Fire a property change. Despite being public due to limitations in Java 8, this method should only be called by the subclasses of implementing classes, as this will become a protected class when JMRI requires Java 11 or newer.As a side effect, calls to
isDirty
will returntrue
. To avoid that side effect, callPropertyChangeSupport.firePropertyChange(java.beans.PropertyChangeEvent)
onBean.propertyChangeSupport
directly.- Specified by:
firePropertyChange
in interfacePropertyChangeFirer
- Overrides:
firePropertyChange
in classBean
- Parameters:
evt
- the PropertyChangeEvent to be fired
-