SettingsComponent

abstract class SettingsComponent<S : Settings<S, T>, T : Scheme<T>>(settings: S) : SettingsManager<S> (source)

A component that allows the user to edit settings and its corresponding schemes.

Subclasses MUST call loadSettings in their constructor.

There are multiple settings S instances at any time. The settings given in the constructor is read when the component is created and is written to when the user saves its changes. The currently-selected scheme is loaded into the component's inputs. When the user selects a different scheme of which to change its values, the values in the input fields are stored in a copy of settings. This way, the local changes are not lost when switching between schemes, and the user can still revert all unsaved changes if desired.

Parameters

S

the type of settings to manage

T

the type of scheme to manage

Inheritors

Constructors

Link copied to clipboard
constructor(settings: S)

Properties

Link copied to clipboard
abstract val rootPane: JPanel?

The panel containing the settings.

Link copied to clipboard
abstract val schemesPanel: SchemesPanel<T>

The panel containing the dropdown box of schemes and action buttons to rename, delete, etc. schemes.

Link copied to clipboard
abstract val unsavedSettings: S

The local copy that represents the currently-unsaved settings that are being edited by the user.

Functions

Link copied to clipboard
abstract fun doValidate(): ValidationInfo?

Validates all input fields.

Link copied to clipboard
fun isModified(): Boolean
open fun isModified(settings: S): Boolean

Returns true if this component contains unsaved changes.

Link copied to clipboard
abstract fun loadScheme(scheme: T)

Loads the given scheme into the component's state.

Link copied to clipboard
override fun loadSettings()

Loads the default settings object.

override fun loadSettings(settings: S)

Loads settings.

Link copied to clipboard
fun reset()

Discards unsaved changes.

Link copied to clipboard
abstract fun saveScheme(scheme: T)

Saves the component's state into the given scheme.

Link copied to clipboard
override fun saveSettings()

Saves settings to the default settings object.

override fun saveSettings(settings: S)

Saves settings to settings.