You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by ol...@apache.org on 2010/02/16 15:43:30 UTC

svn commit: r910538 - in /cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler: Application.java dialog/codegen/GeneratorTabController.java util/CayenneController.java util/NamingStrategyPreferences.java

Author: oltka
Date: Tue Feb 16 14:43:30 2010
New Revision: 910538

URL: http://svn.apache.org/viewvc?rev=910538&view=rev
Log:
CAY-1327 Migrate HSQLDB modeler preferences to Java preferences API

Modified:
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabController.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneController.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NamingStrategyPreferences.java

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java?rev=910538&r1=910537&r2=910538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/Application.java Tue Feb 16 14:43:30 2010
@@ -32,6 +32,7 @@
 import javax.swing.SwingUtilities;
 
 import org.apache.cayenne.configuration.CayenneServerModule;
+import org.apache.cayenne.configuration.DataChannelDescriptor;
 import org.apache.cayenne.di.DIBootstrap;
 import org.apache.cayenne.di.Injector;
 import org.apache.cayenne.di.Module;
@@ -91,19 +92,19 @@
     protected File initialProject;
     protected String name;
     protected String preferencesDB;
-    
+
     protected BindingFactory bindingFactory;
     protected AdapterMapping adapterMapping;
 
     protected CayenneUndoManager undoManager;
 
     protected CayenneProjectPreferences cayenneProjectPreferences;
-    
+
     // This is for OS X support
     private boolean isQuittingApplication = false;
 
     protected CayennePreference cayennePreference;
-    
+
     protected Injector injector;
 
     public static Application getInstance() {
@@ -115,7 +116,6 @@
         return (CayenneModelerFrame) getInstance().getFrameController().getView();
     }
 
-    
     public Injector getInjector() {
         return injector;
     }
@@ -131,7 +131,7 @@
         Module moduleSer = new CayenneServerModule("CayenneModeler");
 
         injector = DIBootstrap.createInjector(module, moduleSer);
-        
+
         // configure startup settings
         String configuredName = System.getProperty(APPLICATION_NAME_PROPERTY);
         this.name = (configuredName != null) ? configuredName : DEFAULT_APPLICATION_NAME;
@@ -247,7 +247,7 @@
     public CayenneProjectPreferences getCayenneProjectPreferences() {
         return cayenneProjectPreferences;
     }
-    
+
     /**
      * Returns top preferences Domain for the application.
      */
@@ -255,6 +255,16 @@
         return getPreferenceService().getDomain(getName(), true);
     }
 
+    public static Preferences getMainPreferenceForProject() {
+        String path = CayennePreference
+                .filePathToPrefereceNodePath(((DataChannelDescriptor) getProject()
+                        .getRootNode()).getConfigurationSource().getURL().getPath());
+        Preferences pref = Application.getInstance().getPreferencesNode(
+                getProject().getClass(),
+                "");
+        return pref.node(pref.absolutePath() + path);
+    }
+
     /**
      * Returns a new instance of CodeTemplateManager.
      */

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabController.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabController.java?rev=910538&r1=910537&r2=910538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabController.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorTabController.java Tue Feb 16 14:43:30 2010
@@ -22,10 +22,11 @@
 import java.awt.Component;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.prefs.Preferences;
 
 import org.apache.cayenne.gen.ClassGenerationAction;
 import org.apache.cayenne.modeler.util.CayenneController;
-import org.apache.cayenne.pref.PreferenceDetail;
+import org.apache.cayenne.pref.CayennePreference;
 import org.apache.cayenne.swing.BindingBuilder;
 import org.apache.cayenne.util.Util;
 
@@ -45,7 +46,7 @@
 
     protected GeneratorTabPanel view;
     protected Map controllers;
-    protected PreferenceDetail preferences;
+    protected PrefDetail preferences;
 
     public GeneratorTabController(CodeGeneratorControllerBase parent) {
         super(parent);
@@ -79,10 +80,10 @@
         BindingBuilder builder = new BindingBuilder(
                 getApplication().getBindingFactory(),
                 this);
-
+        
         builder.bindToAction(view.getGenerationMode(), "updateModeAction()");
-
-        this.preferences = getViewDomain().getDetail("controller", true);
+        
+        this.preferences = new PrefDetail(getViewPreferences().node("controller"));
 
         if (Util.isEmptyString(preferences.getProperty("mode"))) {
             preferences.setProperty("mode", STANDARD_OBJECTS_MODE);
@@ -95,6 +96,11 @@
         updateModeAction();
     }
 
+    
+    public PrefDetail getPreferences() {
+        return preferences;
+    }
+
     /**
      * Resets selection to default values for a given controller.
      */
@@ -111,8 +117,22 @@
         GeneratorController modeController = getGeneratorController();
         return (modeController != null) ? modeController.createGenerator() : null;
     }
+}
 
-    public PreferenceDetail getPreferences() {
-        return preferences;
+class PrefDetail extends CayennePreference {
+
+    public PrefDetail(Preferences node) {
+        setCurrentPreference(node);
+    }
+
+    /**
+     * Returns a named property for a given key.
+     */
+    public String getProperty(String key) {
+        return getCurrentPreference().get(key, null);
+    }
+
+    public void setProperty(String key, String value) {
+        getCurrentPreference().put(key, value);
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneController.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneController.java?rev=910538&r1=910537&r2=910538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneController.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneController.java Tue Feb 16 14:43:30 2010
@@ -28,6 +28,7 @@
 import java.awt.event.KeyEvent;
 import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
+import java.util.prefs.Preferences;
 
 import javax.swing.JComponent;
 import javax.swing.JDialog;
@@ -105,6 +106,17 @@
     }
 
     /**
+     * Returns preference for this component view.
+     */
+    protected Preferences getViewPreferences() {
+        Preferences pref = getApplication().getMainPreferenceForProject();
+        String pathToProject = pref.absolutePath();
+        String path = pathToProject +"/"+ getView().getClass().getName().replace(".", "/");
+        
+        return pref.node(path);
+    }
+    
+    /**
      * Utility method to provide a visual indication an execution error. This
      * implementation logs an error and pops up a dialog window with error message.
      */

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NamingStrategyPreferences.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NamingStrategyPreferences.java?rev=910538&r1=910537&r2=910538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NamingStrategyPreferences.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/NamingStrategyPreferences.java Tue Feb 16 14:43:30 2010
@@ -49,14 +49,7 @@
     }
 
     Preferences getPreference() {
-        String path = CayennePreference
-                .filePathToPrefereceNodePath(((DataChannelDescriptor) Application
-                        .getProject()
-                        .getRootNode()).getConfigurationSource().getURL().getPath());
-        Preferences pref = Application.getInstance().getPreferencesNode(
-                Application.getProject().getClass(),
-                "");
-        return pref.node(pref.absolutePath() + path);
+        return Application.getMainPreferenceForProject();
     }
 
     /**