diff --git a/.gitattributes b/.gitattributes index 8bc21f871ff..17fba4bff81 100644 --- a/.gitattributes +++ b/.gitattributes @@ -12512,6 +12512,7 @@ res/pics_product/tournamentpacks/TMP.jpg -text res/pics_product/tournamentpacks/TSP.jpg -text res/pics_product/tournamentpacks/USG.jpg -text res/preferences/.project -text +res/preferences/editor.default.preferences -text svneol=native#application/xml res/preferences/editor.preferences -text res/preferences/main.properties -text res/product-images.txt -text diff --git a/res/preferences/editor.default.preferences b/res/preferences/editor.default.preferences new file mode 100644 index 00000000000..b44db0a2864 --- /dev/null +++ b/res/preferences/editor.default.preferences @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/forge/gui/deckeditor/SEditorIO.java b/src/main/java/forge/gui/deckeditor/SEditorIO.java index 59bdc3dba62..9429f5cb41b 100644 --- a/src/main/java/forge/gui/deckeditor/SEditorIO.java +++ b/src/main/java/forge/gui/deckeditor/SEditorIO.java @@ -16,6 +16,7 @@ import javax.xml.stream.XMLEventReader; import javax.xml.stream.XMLEventWriter; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamException; import javax.xml.stream.events.Attribute; import javax.xml.stream.events.StartElement; import javax.xml.stream.events.XMLEvent; @@ -268,12 +269,20 @@ public class SEditorIO { } // END TEMPORARY CONSOLIDATION FACILITATION final XMLInputFactory inputFactory = XMLInputFactory.newInstance(); - final String fileAddress = NewConstants.PREFS_EDITOR_FILE; - final XMLEventReader reader = inputFactory.createXMLEventReader(new FileInputStream(fileAddress)); PREFS.clear(); COLS.clear(); + // read in defaults + loadPrefs(inputFactory.createXMLEventReader(new FileInputStream(NewConstants.PREFS_DEFAULT_EDITOR_FILE))); + + // overwrite defaults with user preferences + loadPrefs(inputFactory.createXMLEventReader(new FileInputStream(NewConstants.PREFS_EDITOR_FILE))); + + SColumnUtil.attachSortAndDisplayFunctions(); + } + + private static void loadPrefs(final XMLEventReader reader) throws XMLStreamException { XMLEvent event; StartElement element; Iterator attributes; @@ -309,7 +318,7 @@ public class SEditorIO { attribute = (Attribute) attributes.next(); if (attribute.getName().toString().equals(ColumnProperty.enumval.toString())) { try { COLS.put(ColumnName.valueOf(attribute.getValue()), tempcol); } - catch (final Exception e) { } + catch (final Exception e) { /* ignore invalid entries */ } tempcol.setEnumValue(attribute.getValue()); } @@ -333,7 +342,5 @@ public class SEditorIO { } } } - - SColumnUtil.attachSortAndDisplayFunctions(); } } diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorPreferences.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorPreferences.java index 4f611eb9f75..5f034096ef9 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorPreferences.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorPreferences.java @@ -72,7 +72,6 @@ public enum CEditorPreferences implements ICDoc { final ColumnName name = prefsDict.get(key); key.setSelected(SColumnUtil.getColumn(name).isShowing()); key.addItemListener(new ItemListener() { - @Override public void itemStateChanged(ItemEvent arg0) { SColumnUtil.toggleColumn(SColumnUtil.getColumn(name)); diff --git a/src/main/java/forge/properties/NewConstants.java b/src/main/java/forge/properties/NewConstants.java index d1142e2d8e5..4fcb78e0ffe 100644 --- a/src/main/java/forge/properties/NewConstants.java +++ b/src/main/java/forge/properties/NewConstants.java @@ -47,6 +47,7 @@ public final class NewConstants { public static final String PREFS_GLOBAL_FILE = "res/preferences/forge.preferences"; /** Constant PREFS_GLOBAL_FILE = "editor.preferences". */ public static final String PREFS_EDITOR_FILE = "res/preferences/editor.preferences"; + public static final String PREFS_DEFAULT_EDITOR_FILE = "res/preferences/editor.default.preferences"; /** */ public static final String PREFS_MAIN_PROPERTIES_FILE = "res/preferences/main.properties";