Gridarta Editor
AbstractEditorSettings.java
Go to the documentation of this file.
1 /*
2  * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3  * Copyright (C) 2000-2023 The Gridarta Developers.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 package net.sf.gridarta.model.settings;
21 
22 import java.util.Collection;
23 import java.util.concurrent.CopyOnWriteArrayList;
24 import org.jetbrains.annotations.NotNull;
25 
30 public abstract class AbstractEditorSettings implements EditorSettings {
31 
36  @NotNull
37  private final Collection<EditorSettingsListener> listenerList = new CopyOnWriteArrayList<>();
38 
39  @Override
40  public void addEditorSettingsListener(@NotNull final EditorSettingsListener listener) {
41  listenerList.add(listener);
42  }
43 
44  @Override
45  public void removeEditorSettingsListener(@NotNull final EditorSettingsListener listener) {
46  listenerList.remove(listener);
47  }
48 
52  protected void fireShowMainToolbarChanged() {
53  final boolean visible = isShowMainToolbar();
54  for (final EditorSettingsListener listener : listenerList) {
55  listener.showMainToolbarChanged(visible);
56  }
57  }
58 
59 }
net.sf.gridarta.model.settings.AbstractEditorSettings.listenerList
final Collection< EditorSettingsListener > listenerList
The EditorSettingsListeners to inform of changes.
Definition: AbstractEditorSettings.java:37
net.sf.gridarta.model.settings.EditorSettingsListener
Interface for listeners interested in EditorSettings events.
Definition: EditorSettingsListener.java:28
net.sf.gridarta.model.settings.EditorSettings.isShowMainToolbar
boolean isShowMainToolbar()
Returns whether the main toolbar should be shown.
net.sf.gridarta.model.settings.AbstractEditorSettings.removeEditorSettingsListener
void removeEditorSettingsListener(@NotNull final EditorSettingsListener listener)
Removes a EditorSettingsListener to be notified of changes.
Definition: AbstractEditorSettings.java:45
net.sf.gridarta.model.settings.EditorSettings
Settings that apply to the editor.
Definition: EditorSettings.java:29
net.sf.gridarta.model.settings.AbstractEditorSettings
Abstract base class for EditorSettings implementations.
Definition: AbstractEditorSettings.java:30
net.sf.gridarta.model.settings.AbstractEditorSettings.fireShowMainToolbarChanged
void fireShowMainToolbarChanged()
Notifies all listeners about a changed visibility of the main toolbar.
Definition: AbstractEditorSettings.java:52
net.sf.gridarta.model.settings.AbstractEditorSettings.addEditorSettingsListener
void addEditorSettingsListener(@NotNull final EditorSettingsListener listener)
Adds a EditorSettingsListener to be notified of changes.
Definition: AbstractEditorSettings.java:40