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:44:49 UTC

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

Author: aadamchik
Date: Mon Aug 26 17:44:49 2013
New Revision: 1517618

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

refactoring, no change

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=1517618&r1=1517617&r2=1517618&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:44:49 2013
@@ -23,7 +23,6 @@ import java.awt.Component;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.io.File;
-import java.util.Arrays;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -39,11 +38,13 @@ import org.apache.cayenne.modeler.util.C
 import org.apache.cayenne.modeler.util.FileFilters;
 import org.apache.cayenne.pref.CayennePreferenceEditor;
 import org.apache.cayenne.pref.PreferenceEditor;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
-/**
- */
 public class ClasspathPreferences extends CayenneController {
 
+    private static final Log logger = LogFactory.getLog(ClasspathPreferences.class);
+
     protected ClasspathPreferencesView view;
     protected List<String> classPathEntries;
     protected ClasspathTableModel tableModel;
@@ -61,41 +62,57 @@ public class ClasspathPreferences extend
             this.editor = (CayennePreferenceEditor) editor;
         }
 
-        ArrayList<String> cpEntries = new ArrayList<String>();
-        ArrayList<String> cpEntryKeys = new ArrayList<String>();
-        this.counter = 0;
-        try {
-        	String[] cpKeys = getClassLoader().keys();
-        	for (String cpKey : cpKeys) {
-        		
-        		try {
-        			int c = Integer.parseInt(cpKey);
-        			if (c > this.counter) {
-        				this.counter = c;
-        			}
-        			String tempValue = getClassLoader().get(cpKey, "");
-            		if (!"".equals(tempValue)) {
-            			cpEntries.add(tempValue);
-            			cpEntryKeys.add(cpKey);
-            		}
-        		} catch (NumberFormatException e) {
-        			
-        			//remove wrong entry (key must be number)
-        			addRemovedPreferences(cpKey);
-        		}
-        		
-        	}
-        }
-        catch (BackingStoreException e) {
-        }
-        this.classPathEntries = cpEntries;
-        this.classPathKeys = cpEntryKeys;
+        List<String> classPathEntries = new ArrayList<String>();
+        List<String> classPathKeys = new ArrayList<String>();
+
+        this.counter = loadPreferences(classPathEntries, classPathKeys);
+
+        this.classPathEntries = classPathEntries;
+        this.classPathKeys = classPathKeys;
 
         this.tableModel = new ClasspathTableModel();
 
         initBindings();
     }
 
+    private int loadPreferences(List<String> classPathEntries, List<String> classPathKeys) {
+        String[] cpKeys;
+        try {
+            cpKeys = getClassLoader().keys();
+        } catch (BackingStoreException e) {
+            logger.info("Error loading preferences", e);
+            return 0;
+        }
+
+        int max = 0;
+
+        for (String cpKey : cpKeys) {
+
+            int c;
+
+            try {
+                c = Integer.parseInt(cpKey);
+            } catch (NumberFormatException e) {
+
+                // remove wrong entry (key must be number)
+                addRemovedPreferences(cpKey);
+                continue;
+            }
+
+            if (c > max) {
+                max = c;
+            }
+
+            String tempValue = getClassLoader().get(cpKey, "");
+            if (!"".equals(tempValue)) {
+                classPathEntries.add(tempValue);
+                classPathKeys.add(cpKey);
+            }
+        }
+
+        return max;
+    }
+
     public Component getView() {
         return view;
     }
@@ -130,17 +147,11 @@ public class ClasspathPreferences extend
     }
 
     protected void addJarOrZipAction() {
-        chooseClassEntry(
-                FileFilters.getClassArchiveFilter(),
-                "Select JAR or ZIP File.",
-                JFileChooser.FILES_ONLY);
+        chooseClassEntry(FileFilters.getClassArchiveFilter(), "Select JAR or ZIP File.", JFileChooser.FILES_ONLY);
     }
 
     protected void addClassDirectoryAction() {
-        chooseClassEntry(
-                null,
-                "Select Java Class Directory.",
-                JFileChooser.DIRECTORIES_ONLY);
+        chooseClassEntry(null, "Select Java Class Directory.", JFileChooser.DIRECTORIES_ONLY);
     }
 
     protected void removeEntryAction() {
@@ -148,11 +159,11 @@ public class ClasspathPreferences extend
         if (selected < 0) {
             return;
         }
-  
+
         addRemovedPreferences(classPathKeys.get(selected));
         classPathEntries.remove(selected);
         classPathKeys.remove(selected);
-        
+
         tableModel.fireTableRowsDeleted(selected, selected);
     }
 
@@ -177,20 +188,20 @@ public class ClasspathPreferences extend
         }
 
         if (selected != null) {
-        	if (!classPathEntries.contains(selected.getAbsolutePath())) {
-        		// store last dir in preferences
-        		getLastDirectory().updateFromChooser(chooser);
-
-        		int len = classPathEntries.size();
-        		int key = ++counter;
-        		
-        		String value = selected.getAbsolutePath();
-        		addChangedPreferences(Integer.toString(key), value);
-        		classPathEntries.add(value);
-        		classPathKeys.add(Integer.toString(key));
-        		
-        		tableModel.fireTableRowsInserted(len, len);
-        	}
+            if (!classPathEntries.contains(selected.getAbsolutePath())) {
+                // store last dir in preferences
+                getLastDirectory().updateFromChooser(chooser);
+
+                int len = classPathEntries.size();
+                int key = ++counter;
+
+                String value = selected.getAbsolutePath();
+                addChangedPreferences(Integer.toString(key), value);
+                classPathEntries.add(value);
+                classPathKeys.add(Integer.toString(key));
+
+                tableModel.fireTableRowsInserted(len, len);
+            }
         }
     }
 
@@ -202,7 +213,7 @@ public class ClasspathPreferences extend
         map.put(key, value);
         editor.getChangedPreferences().put(getClassLoader(), map);
     }
-    
+
     public void addRemovedPreferences(String key) {
         Map<String, String> map = editor.getRemovedPreferences().get(getClassLoader());
         if (map == null) {