Gridarta Editor
AbstractDefaultProjectSettings.java
Go to the documentation of this file.
1 /*
2  * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3  * Copyright (C) 2000-2015 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.io.File;
23 import java.util.prefs.PreferenceChangeEvent;
24 import java.util.prefs.PreferenceChangeListener;
25 import java.util.prefs.Preferences;
26 import net.sf.gridarta.MainControl;
27 import net.sf.gridarta.utils.IOUtils;
28 import org.jetbrains.annotations.NotNull;
29 
35 
39  @NotNull
40  private static final String MAP_DIRECTORY_KEY = "mapDirectory";
41 
45  @NotNull
46  private static final String ARCH_DIRECTORY_KEY = "archDirectory";
47 
51  @NotNull
52  private static final String MEDIA_DIRECTORY_KEY = "mediaDirectory";
53 
57  @NotNull
58  private static final String IMAGE_SET_KEY = "useImageSet";
59 
63  @NotNull
64  private static final String PREFERENCES_USER_NAME = "username";
65 
69  @NotNull
70  private static final String CONFIG_SOURCE_KEY = "configSource";
71 
75  @NotNull
76  private static final Preferences PREFERENCES = Preferences.userNodeForPackage(MainControl.class);
77 
81  @NotNull
83 
87  @NotNull
88  private File archDirectory;
89 
93  @NotNull
94  private File mapsDirectory;
95 
99  @NotNull
100  private File mediaDirectory;
101 
105  @NotNull
106  private String imageSet;
107 
111  @NotNull
112  private String configSourceName;
113 
119  this.editorSettings = editorSettings;
120 
121  final PreferenceChangeListener preferenceChangeListener = new PreferenceChangeListener() {
122 
123  @Override
124  public void preferenceChange(final PreferenceChangeEvent evt) {
125  switch (evt.getKey()) {
126  case ARCH_DIRECTORY_KEY:
128  break;
129 
130  case MAP_DIRECTORY_KEY:
132  break;
133 
134  case MEDIA_DIRECTORY_KEY:
136  break;
137 
138  case IMAGE_SET_KEY:
140  break;
141 
142  case CONFIG_SOURCE_KEY:
144  break;
145  }
146  }
147 
148  };
149  PREFERENCES.addPreferenceChangeListener(preferenceChangeListener);
150 
156  }
157 
158  @NotNull
159  @Override
160  public File getArchDirectory() {
161  return archDirectory;
162  }
163 
164  @Override
165  public void setArchDirectory(@NotNull final File archDirectory) {
166  final File effectiveArchDirectory = IOUtils.getCanonicalFile(archDirectory);
167  if (this.archDirectory.equals(effectiveArchDirectory)) {
168  return;
169  }
170 
171  this.archDirectory = effectiveArchDirectory;
172  PREFERENCES.put(ARCH_DIRECTORY_KEY, effectiveArchDirectory.toString());
173  }
174 
175  @NotNull
176  @Override
177  public File getMapsDirectory() {
178  return mapsDirectory;
179  }
180 
181  @Override
182  public void setMapsDirectory(@NotNull final File mapsDirectory) {
184  }
185 
191  private void setMapsDirectoryInt(@NotNull final File mapsDirectory, final boolean updatePreferences) {
192  final File effectiveMapsDirectory = IOUtils.getCanonicalFile(mapsDirectory);
193  if (this.mapsDirectory.equals(effectiveMapsDirectory)) {
194  return;
195  }
196 
197  this.mapsDirectory = effectiveMapsDirectory;
198  if (updatePreferences) {
199  PREFERENCES.put(MAP_DIRECTORY_KEY, effectiveMapsDirectory.toString());
200  }
202  }
203 
204  @NotNull
205  @Override
206  public File getMediaDirectory() {
207  return mediaDirectory;
208  }
209 
210  @Override
211  public void setMediaDirectory(@NotNull final File mediaDirectory) {
212  final File effectiveMediaDirectory = IOUtils.getCanonicalFile(mediaDirectory);
214  return;
215  }
216  if (this.mediaDirectory.equals(effectiveMediaDirectory)) {
217  return;
218  }
219 
220  this.mediaDirectory = effectiveMediaDirectory;
221  PREFERENCES.put(MEDIA_DIRECTORY_KEY, effectiveMediaDirectory.getPath());
222  }
223 
224  @NotNull
225  @Override
226  public String getImageSet() {
227  return imageSet;
228  }
229 
230  @Override
231  public void setImageSet(@NotNull final String imageSet) {
232  if (!editorSettings.hasImageSet()) {
233  return;
234  }
235  if (this.imageSet.equals(imageSet)) {
236  return;
237  }
238 
239  this.imageSet = imageSet;
241  }
242 
243  @NotNull
244  @Override
245  public String getConfigSourceName() {
246  return configSourceName;
247  }
248 
249  @Override
250  public void setConfigSourceName(@NotNull final String configSourceName) {
251  if (this.configSourceName.equals(configSourceName)) {
252  return;
253  }
254 
255  this.configSourceName = configSourceName;
257  }
258 
259  @NotNull
260  @Override
261  public String getUserName() {
263  }
264 
265  @Override
266  public void setUserName(@NotNull final String userName) {
267  PREFERENCES.put(PREFERENCES_USER_NAME, userName);
268  }
269 
270  @Override
271  public boolean saveIndices() {
272  return true;
273  }
274 
275 }
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.mediaDirectory
File mediaDirectory
Definition: AbstractDefaultProjectSettings.java:100
net.sf.gridarta.model.settings.EditorSettings.hasMediaDirectory
boolean hasMediaDirectory()
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.editorSettings
final EditorSettings editorSettings
Definition: AbstractDefaultProjectSettings.java:82
net.sf.gridarta
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.configSourceName
String configSourceName
Definition: AbstractDefaultProjectSettings.java:112
net.sf.gridarta.model.settings.EditorSettings.hasImageSet
boolean hasImageSet()
net.sf
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.archDirectory
File archDirectory
Definition: AbstractDefaultProjectSettings.java:88
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.getMediaDirectory
File getMediaDirectory()
Definition: AbstractDefaultProjectSettings.java:206
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.MEDIA_DIRECTORY_KEY
static final String MEDIA_DIRECTORY_KEY
Definition: AbstractDefaultProjectSettings.java:52
net.sf.gridarta.model.settings.AbstractProjectSettings.fireMapsDirectoryChanged
void fireMapsDirectoryChanged()
Definition: AbstractProjectSettings.java:53
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.getImageSet
String getImageSet()
Definition: AbstractDefaultProjectSettings.java:226
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.getMapsDirectory
File getMapsDirectory()
Definition: AbstractDefaultProjectSettings.java:177
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.getConfigSourceName
String getConfigSourceName()
Definition: AbstractDefaultProjectSettings.java:245
net.sf.gridarta.model.settings.EditorSettings
Definition: EditorSettings.java:29
net
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.setMapsDirectoryInt
void setMapsDirectoryInt(@NotNull final File mapsDirectory, final boolean updatePreferences)
Definition: AbstractDefaultProjectSettings.java:191
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.setMediaDirectory
void setMediaDirectory(@NotNull final File mediaDirectory)
Definition: AbstractDefaultProjectSettings.java:211
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.setArchDirectory
void setArchDirectory(@NotNull final File archDirectory)
Definition: AbstractDefaultProjectSettings.java:165
net.sf.gridarta.model.settings.EditorSettings.getImageSetDefault
String getImageSetDefault()
net.sf.gridarta.model.settings.EditorSettings.getArchDirectoryDefault
File getArchDirectoryDefault()
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.getUserName
String getUserName()
Definition: AbstractDefaultProjectSettings.java:261
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.ARCH_DIRECTORY_KEY
static final String ARCH_DIRECTORY_KEY
Definition: AbstractDefaultProjectSettings.java:46
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings
Definition: AbstractDefaultProjectSettings.java:34
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.MAP_DIRECTORY_KEY
static final String MAP_DIRECTORY_KEY
Definition: AbstractDefaultProjectSettings.java:40
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.saveIndices
boolean saveIndices()
Definition: AbstractDefaultProjectSettings.java:271
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.setMapsDirectory
void setMapsDirectory(@NotNull final File mapsDirectory)
Definition: AbstractDefaultProjectSettings.java:182
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.PREFERENCES
static final Preferences PREFERENCES
Definition: AbstractDefaultProjectSettings.java:76
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.getArchDirectory
File getArchDirectory()
Definition: AbstractDefaultProjectSettings.java:160
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.mapsDirectory
File mapsDirectory
Definition: AbstractDefaultProjectSettings.java:94
net.sf.gridarta.utils.IOUtils.getCanonicalFile
static File getCanonicalFile(@NotNull final File file)
Definition: IOUtils.java:209
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.imageSet
String imageSet
Definition: AbstractDefaultProjectSettings.java:106
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.setConfigSourceName
void setConfigSourceName(@NotNull final String configSourceName)
Definition: AbstractDefaultProjectSettings.java:250
net.sf.gridarta.model.settings.EditorSettings.getMapsDirectoryDefault
File getMapsDirectoryDefault()
net.sf.gridarta.utils.IOUtils
Definition: IOUtils.java:40
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.PREFERENCES_USER_NAME
static final String PREFERENCES_USER_NAME
Definition: AbstractDefaultProjectSettings.java:64
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.CONFIG_SOURCE_KEY
static final String CONFIG_SOURCE_KEY
Definition: AbstractDefaultProjectSettings.java:70
net.sf.gridarta.model.settings.AbstractProjectSettings
Definition: AbstractProjectSettings.java:31
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.setImageSet
void setImageSet(@NotNull final String imageSet)
Definition: AbstractDefaultProjectSettings.java:231
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.AbstractDefaultProjectSettings
AbstractDefaultProjectSettings(@NotNull final EditorSettings editorSettings)
Definition: AbstractDefaultProjectSettings.java:118
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.IMAGE_SET_KEY
static final String IMAGE_SET_KEY
Definition: AbstractDefaultProjectSettings.java:58
net.sf.gridarta.model.settings.EditorSettings.getMediaDirectoryDefault
File getMediaDirectoryDefault()
net.sf.gridarta.model.settings.EditorSettings.getUserNameDefault
String getUserNameDefault()
net.sf.gridarta.utils
Definition: ActionBuilderUtils.java:20
net.sf.gridarta.model.settings.AbstractDefaultProjectSettings.setUserName
void setUserName(@NotNull final String userName)
Definition: AbstractDefaultProjectSettings.java:266
net.sf.gridarta.MainControl
Definition: MainControl.java:27