You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2013/08/26 19:51:11 UTC

svn commit: r1517621 - /cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/ClasspathPreferences.java

Author: aadamchik
Date: Mon Aug 26 17:51:11 2013
New Revision: 1517621

URL: http://svn.apache.org/r1517621
Log:
CAY-1866 Change in General Modeler Preferences reverts old settings to default value

skipping non-numeric pref keys (same as suggested by Miłosz Pigłas)

Modified:
    cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/ClasspathPreferences.java

Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/ClasspathPreferences.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/ClasspathPreferences.java?rev=1517621&r1=1517620&r2=1517621&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/ClasspathPreferences.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/ClasspathPreferences.java Mon Aug 26 17:51:11 2013
@@ -50,6 +50,7 @@ public class ClasspathPreferences extend
     protected ClasspathTableModel tableModel;
     protected CayennePreferenceEditor editor;
     protected List<String> classPathKeys;
+    private Preferences preferences;
     private int counter;
 
     public ClasspathPreferences(PreferenceDialog parentController) {
@@ -57,6 +58,10 @@ public class ClasspathPreferences extend
 
         this.view = new ClasspathPreferencesView();
 
+        // this prefs node is shared with other dialog panels... be aware of
+        // that when accessing the keys
+        this.preferences = getApplication().getPreferencesNode(this.getClass(), "");
+
         PreferenceEditor editor = parentController.getEditor();
         if (editor instanceof CayennePreferenceEditor) {
             this.editor = (CayennePreferenceEditor) editor;
@@ -76,9 +81,10 @@ public class ClasspathPreferences extend
     }
 
     private int loadPreferences(List<String> classPathEntries, List<String> classPathKeys) {
+
         String[] cpKeys;
         try {
-            cpKeys = getClassLoader().keys();
+            cpKeys = preferences.keys();
         } catch (BackingStoreException e) {
             logger.info("Error loading preferences", e);
             return 0;
@@ -93,9 +99,12 @@ public class ClasspathPreferences extend
             try {
                 c = Integer.parseInt(cpKey);
             } catch (NumberFormatException e) {
+                // we are sharing the 'preferences' node with other dialogs, and
+                // this is a rather poor way of telling our preference keys from
+                // other dialog keys ... ours are numeric, the rest are
+                // string..
 
-                // remove wrong entry (key must be number)
-                addRemovedPreferences(cpKey);
+                // TODO: better key namespacing...
                 continue;
             }
 
@@ -103,7 +112,7 @@ public class ClasspathPreferences extend
                 max = c;
             }
 
-            String tempValue = getClassLoader().get(cpKey, "");
+            String tempValue = preferences.get(cpKey, "");
             if (!"".equals(tempValue)) {
                 classPathEntries.add(tempValue);
                 classPathKeys.add(cpKey);
@@ -117,10 +126,6 @@ public class ClasspathPreferences extend
         return view;
     }
 
-    protected Preferences getClassLoader() {
-        return getApplication().getPreferencesNode(this.getClass(), "");
-    }
-
     protected void initBindings() {
         view.getTable().setModel(tableModel);
 
@@ -206,21 +211,21 @@ public class ClasspathPreferences extend
     }
 
     public void addChangedPreferences(String key, String value) {
-        Map<String, String> map = editor.getChangedPreferences().get(getClassLoader());
+        Map<String, String> map = editor.getChangedPreferences().get(preferences);
         if (map == null) {
             map = new HashMap<String, String>();
         }
         map.put(key, value);
-        editor.getChangedPreferences().put(getClassLoader(), map);
+        editor.getChangedPreferences().put(preferences, map);
     }
 
     public void addRemovedPreferences(String key) {
-        Map<String, String> map = editor.getRemovedPreferences().get(getClassLoader());
+        Map<String, String> map = editor.getRemovedPreferences().get(preferences);
         if (map == null) {
             map = new HashMap<String, String>();
         }
         map.put(key, "");
-        editor.getRemovedPreferences().put(getClassLoader(), map);
+        editor.getRemovedPreferences().put(preferences, map);
     }
 
     class ClasspathTableModel extends AbstractTableModel {