72
69
// Build default patterns catalog
73
70
List<TextureImage> patterns = new ArrayList<TextureImage>();
74
71
patterns.add(new DefaultPatternTexture("foreground"));
72
patterns.add(new DefaultPatternTexture("reversedHatchUp"));
73
patterns.add(new DefaultPatternTexture("reversedHatchDown"));
74
patterns.add(new DefaultPatternTexture("reversedCrossHatch"));
75
patterns.add(new DefaultPatternTexture("background"));
75
76
patterns.add(new DefaultPatternTexture("hatchUp"));
76
77
patterns.add(new DefaultPatternTexture("hatchDown"));
77
78
patterns.add(new DefaultPatternTexture("crossHatch"));
78
patterns.add(new DefaultPatternTexture("background"));
79
79
PatternsCatalog patternsCatalog = new PatternsCatalog(patterns);
80
80
setPatternsCatalog(patternsCatalog);
81
81
// Read other preferences from resource bundle
82
82
setFurnitureCatalogViewedInTree(Boolean.parseBoolean(
83
83
localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "furnitureCatalogViewedInTree")));
84
setNavigationPanelVisible(Boolean.parseBoolean(localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "navigationPanelVisible")));
84
setNavigationPanelVisible(Boolean.parseBoolean(localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "navigationPanelVisible")));
85
setAerialViewCenteredOnSelectionEnabled(Boolean.parseBoolean(getOptionalLocalizedString(localizedPreferences, "aerialViewCenteredOnSelectionEnabled", "false")));
85
86
setUnit(LengthUnit.valueOf(localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "unit").toUpperCase(Locale.ENGLISH)));
86
87
setRulersVisible(Boolean.parseBoolean(localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "rulersVisible")));
87
88
setGridVisible(Boolean.parseBoolean(localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "gridVisible")));
88
setFurnitureViewedFromTop(Boolean.parseBoolean(localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "furnitureViewedFromTop")));
89
setFloorColoredOrTextured(Boolean.parseBoolean(localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "roomFloorColoredOrTextured")));
89
// Allow furnitureViewedFromTop and roomFloorColoredOrTextured to be different according to the running OS
90
String osName = System.getProperty("os.name");
91
setFurnitureViewedFromTop(Boolean.parseBoolean(getOptionalLocalizedString(localizedPreferences, "furnitureViewedFromTop." + osName,
92
localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "furnitureViewedFromTop"))));
93
setFloorColoredOrTextured(Boolean.parseBoolean(getOptionalLocalizedString(localizedPreferences, "roomFloorColoredOrTextured." + osName,
94
localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "roomFloorColoredOrTextured"))));
90
95
setWallPattern(patternsCatalog.getPattern(localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "wallPattern")));
96
String newWallPattern = localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "wallPattern");
97
if (newWallPattern != null) {
98
setNewWallPattern(patternsCatalog.getPattern(newWallPattern));
91
100
setNewWallThickness(Float.parseFloat(localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "newWallThickness")));
92
101
setNewWallHeight(Float.parseFloat(localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "newHomeWallHeight")));
94
setNewFloorThickness(Float.parseFloat(localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "newFloorThickness")));
95
} catch (IllegalArgumentException ex) {
96
setNewFloorThickness(12);
99
setAutoSaveDelayForRecovery(Integer.parseInt(localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "autoSaveDelayForRecovery")));
100
} catch (IllegalArgumentException ex) {
102
setAutoSaveDelayForRecovery(0);
102
setNewFloorThickness(Float.parseFloat(getOptionalLocalizedString(localizedPreferences, "newFloorThickness", "12")));
103
setCheckUpdatesEnabled(Boolean.parseBoolean(getOptionalLocalizedString(localizedPreferences, "checkUpdatesEnabled", "false")));
104
setAutoSaveDelayForRecovery(Integer.parseInt(getOptionalLocalizedString(localizedPreferences, "autoSaveDelayForRecovery", "0")));
104
105
setRecentHomes(new ArrayList<String>());
106
setCurrency(localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "currency"));
107
} catch (IllegalArgumentException ex) {
108
// Don't use currency and prices in program
106
setRecentColors(new ArrayList<Integer>());
107
setCurrency(getOptionalLocalizedString(localizedPreferences, "currency", null));
110
108
for (String property : new String [] {"LevelName", "HomePieceOfFurnitureName", "RoomName", "LabelText"}) {
112
String [] autoCompletionStrings = localizedPreferences.getLocalizedString(DefaultUserPreferences.class, "autoCompletionStrings#" + property).trim().split(",");
109
String autoCompletionStringsList = getOptionalLocalizedString(localizedPreferences, "autoCompletionStrings#" + property, null);
110
if (autoCompletionStringsList != null) {
111
String [] autoCompletionStrings = autoCompletionStringsList.trim().split(",");
113
112
if (autoCompletionStrings.length > 0) {
114
113
for (int i = 0; i < autoCompletionStrings.length; i++) {
115
114
autoCompletionStrings [i] = autoCompletionStrings [i].trim();
117
116
setAutoCompletionStrings(property, Arrays.asList(autoCompletionStrings));
119
} catch (IllegalArgumentException ex) {
120
// No default auto completion strings
122
private String getOptionalLocalizedString(UserPreferences localizedPreferences,
124
String defaultValue) {
126
return localizedPreferences.getLocalizedString(DefaultUserPreferences.class, resourceKey);
127
} catch (IllegalArgumentException ex) {
126
133
* Throws an exception because default user preferences can't be written
178
185
public void addTexturesLibrary(String name) throws RecorderException {
179
throw new RecorderException("Default user preferences can't manage textures libraries");
184
* A pattern built from resources.
187
class DefaultPatternTexture implements TextureImage {
188
private static final long serialVersionUID = 1L;
190
private final String name;
191
private transient Content image;
193
public DefaultPatternTexture(String name) {
195
this.image = new ResourceURLContent(DefaultPatternTexture.class, "resources/patterns/" + this.name + ".png");
199
* Initializes transient fields and reads pattern from <code>in</code> stream with default reading method.
201
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
202
in.defaultReadObject();
204
this.image = new ResourceURLContent(DefaultPatternTexture.class, "resources/patterns/" + this.name + ".png");
205
} catch (IllegalArgumentException ex) {
206
this.image = new ResourceURLContent(DefaultPatternTexture.class, "resources/patterns/foreground.png");
210
public String getName() {
214
public Content getImage() {
218
public float getWidth() {
222
public float getHeight() {
227
* Returns <code>true</code> if the object in parameter is equal to this pattern.
230
public boolean equals(Object obj) {
233
} else if (obj instanceof DefaultPatternTexture) {
234
DefaultPatternTexture pattern = (DefaultPatternTexture)obj;
235
return pattern.name.equals(this.name);
242
* Returns a hash code for this pattern.
245
public int hashCode() {
246
return this.name.hashCode();
186
throw new UnsupportedOperationException("Default user preferences can't manage textures libraries");
190
* Throws an exception because default user preferences don't support libraries.
194
public List<Library> getLibraries() {
195
throw new UnsupportedOperationException();