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/03/05 16:37:09 UTC

svn commit: r919452 - in /cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne: modeler/ modeler/action/ modeler/dialog/ modeler/dialog/codegen/ modeler/dialog/pref/ modeler/pref/ pref/

Author: oltka
Date: Fri Mar  5 15:37:08 2010
New Revision: 919452

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

* Remove Domain, DomainPreference, PreferenceService

Removed:
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/PreferencesDataSourceFactory.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreferenceService.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/Domain.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/DomainPreference.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/HSQLEmbeddedPreferenceEditor.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/HSQLEmbeddedPreferenceService.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/PrefDetail.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/PreferenceService.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/_Domain.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/_DomainPreference.java
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/CayenneModelerController.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAction.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAsAction.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/ConfirmRemoveDialog.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/dialog/pref/CayenneModelerPreferenceEditor.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferencesView.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreferenceEditor.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/PreferenceDetail.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/PreferenceEditor.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=919452&r1=919451&r2=919452&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 Fri Mar  5 15:37:08 2010
@@ -29,7 +29,6 @@
 import java.util.prefs.Preferences;
 
 import javax.swing.JFrame;
-import javax.swing.JOptionPane;
 import javax.swing.JRootPane;
 import javax.swing.SwingUtilities;
 
@@ -47,10 +46,6 @@
 import org.apache.cayenne.modeler.util.CayenneUserDir;
 import org.apache.cayenne.pref.CayennePreference;
 import org.apache.cayenne.pref.CayenneProjectPreferences;
-import org.apache.cayenne.pref.Domain;
-import org.apache.cayenne.pref.HSQLEmbeddedPreferenceEditor;
-import org.apache.cayenne.pref.HSQLEmbeddedPreferenceService;
-import org.apache.cayenne.pref.PreferenceService;
 import org.apache.cayenne.project2.CayenneProjectModule;
 import org.apache.cayenne.project2.Project;
 import org.apache.cayenne.swing.BindingFactory;
@@ -87,7 +82,6 @@
     protected static Application instance;
 
     protected FileClassLoadingService modelerClassLoader;
-    protected HSQLEmbeddedPreferenceService preferenceService;
     protected ActionManager actionManager;
     protected CayenneModelerController frameController;
 
@@ -239,24 +233,10 @@
         return bindingFactory;
     }
 
-    /**
-     * Returns Application preferences service.
-     */
-    public PreferenceService getPreferenceService() {
-        return preferenceService;
-    }
-
     public CayenneProjectPreferences getCayenneProjectPreferences() {
         return cayenneProjectPreferences;
     }
 
-    /**
-     * Returns top preferences Domain for the application.
-     */
-    public Domain getPreferenceDomain() {
-        return getPreferenceService().getDomain(getName(), true);
-    }
-
     public static Preferences getMainPreferenceForProject() {
         String path = CayennePreference
                 .filePathToPrefereceNodePath(((DataChannelDescriptor) getProject()
@@ -332,40 +312,7 @@
     }
 
     protected void initPreferences() {
-        HSQLEmbeddedPreferenceService service = new HSQLEmbeddedPreferenceService(
-                preferencesDB,
-                PREFERENCES_MAP_PACKAGE,
-                getName());
         this.cayenneProjectPreferences = new CayenneProjectPreferences();
-        service.stopOnShutdown();
-        this.preferenceService = service;
-        this.preferenceService.startService();
-
-        // test service
-        getPreferenceDomain();
-    }
-
-    static final class PreferencesDelegate implements
-            HSQLEmbeddedPreferenceEditor.Delegate {
-
-        static final String message = "Preferences Database is locked by another application. "
-                + "Do you want to remove the lock?";
-        static final String failureMessage = "Failed to remove database lock. "
-                + "Preferences will we saved for this session only.";
-
-        static final HSQLEmbeddedPreferenceEditor.Delegate sharedInstance = new PreferencesDelegate();
-
-        public boolean deleteMasterLock(File lock) {
-            int result = JOptionPane.showConfirmDialog(null, message);
-            if (result == JOptionPane.YES_OPTION || result == JOptionPane.OK_OPTION) {
-                if (!lock.delete()) {
-                    JOptionPane.showMessageDialog(null, failureMessage);
-                    return false;
-                }
-            }
-
-            return true;
-        }
     }
 
     final class ModelerContext extends SwingContext {

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerController.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerController.java?rev=919452&r1=919451&r2=919452&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerController.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerController.java Fri Mar  5 15:37:08 2010
@@ -42,7 +42,6 @@
 import org.apache.cayenne.modeler.dialog.validator.ValidatorDialog;
 import org.apache.cayenne.modeler.editor.EditorView;
 import org.apache.cayenne.modeler.pref.ComponentGeometry;
-import org.apache.cayenne.modeler.pref.DataMapDefaults;
 import org.apache.cayenne.modeler.pref.FSPath;
 import org.apache.cayenne.modeler.util.CayenneController;
 import org.apache.cayenne.project2.Project;

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java?rev=919452&r1=919451&r2=919452&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java Fri Mar  5 15:37:08 2010
@@ -116,7 +116,6 @@
 import org.apache.cayenne.modeler.util.CayenneController;
 import org.apache.cayenne.modeler.util.CircularArray;
 import org.apache.cayenne.modeler.util.Comparators;
-import org.apache.cayenne.pref.Domain;
 import org.apache.cayenne.project.ProjectPath;
 import org.apache.cayenne.project2.Project;
 import org.apache.cayenne.query.Query;
@@ -263,7 +262,6 @@
     protected boolean dirty;
 
     protected Project project;
-    protected Domain projectPreferences;
 
     protected Preferences projectControllerPreferences;
 
@@ -306,7 +304,6 @@
         {
 
             this.project = currentProject;
-            this.projectPreferences = null;
             this.projectControllerPreferences = null;
 
             if (project == null) // null project -> no files to watch
@@ -342,13 +339,6 @@
         }
     }
 
-    /**
-     * Returns top preferences Domain for the application.
-     */
-    public Domain getApplicationPreferenceDomain() {
-        return getApplication().getPreferenceDomain();
-    }
-
     public void updateEntityResolver() {
 
         entityResolver.clearCache();
@@ -362,29 +352,6 @@
         }
     }
 
-    /**
-     * Returns top preferences Domain for the current project, throwing an exception if no
-     * project is selected.
-     */
-    public Domain getPreferenceDomainForProject() {
-        if (getProject() == null) {
-            throw new CayenneRuntimeException("No Project selected");
-        }
-
-        if (projectPreferences == null) {
-            String key = getProject().getConfigurationResource() == null ? new String(
-                    IDUtil.pseudoUniqueByteSequence16()) : project
-                    .getConfigurationResource()
-                    .getURL()
-                    .getPath();
-
-            projectPreferences = getApplicationPreferenceDomain().getSubdomain(
-                    Project.class).getSubdomain(key);
-        }
-
-        return projectPreferences;
-    }
-
     public Preferences getPreferenceForProject() {
         if (getProject() == null) {
             throw new CayenneRuntimeException("No Project selected");

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAction.java?rev=919452&r1=919451&r2=919452&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAction.java Fri Mar  5 15:37:08 2010
@@ -26,7 +26,6 @@
 
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.pref.CayennePreferenceForProject;
-import org.apache.cayenne.pref.Domain;
 import org.apache.cayenne.project2.Project;
 import org.apache.cayenne.project2.ProjectSaver;
 
@@ -63,8 +62,6 @@
         else {
 
             String oldPath = p.getConfigurationResource().getURL().getPath();
-            // obtain preference object before save, when the project path may change.....
-            Domain preference = getProjectController().getPreferenceDomainForProject();
 
             getProjectController().getProjectWatcher().pauseWatching();
 
@@ -72,8 +69,6 @@
                     ProjectSaver.class);
             saver.save(p);
 
-            preference.rename(p.getConfigurationResource().getURL().getPath());
-
             CayennePreferenceForProject.removeOldPreferences();
 
             // if change DataChanelDescriptor name - as result change name of xml file

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAsAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAsAction.java?rev=919452&r1=919451&r2=919452&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAsAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/SaveAsAction.java Fri Mar  5 15:37:08 2010
@@ -35,7 +35,6 @@
 import org.apache.cayenne.modeler.dialog.validator.ValidatorDialog;
 import org.apache.cayenne.modeler.util.CayenneAction;
 import org.apache.cayenne.pref.CayennePreferenceForProject;
-import org.apache.cayenne.pref.Domain;
 import org.apache.cayenne.project.ProjectPath;
 import org.apache.cayenne.project2.Project;
 import org.apache.cayenne.project2.ProjectSaver;
@@ -83,9 +82,6 @@
             oldPath = p.getConfigurationResource().getURL().getPath();
         }
 
-        // obtain preference object before save, when the project path may change.....
-        Domain preference = getProjectController().getPreferenceDomainForProject();
-
         File projectDir = fileChooser.newProjectDir(Application.getFrame(), p);
         if (projectDir == null) {
             return false;
@@ -112,9 +108,6 @@
                 ProjectSaver.class);
         saver.saveAs(p, res);
 
-        // update preferences domain key
-        preference.rename(projectDir.getPath());
-
         if (oldPath != null
                 && oldPath.length() != 0
                 && !oldPath.equals(p.getConfigurationResource().getURL().getPath())) {

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/ConfirmRemoveDialog.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/ConfirmRemoveDialog.java?rev=919452&r1=919451&r2=919452&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/ConfirmRemoveDialog.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/ConfirmRemoveDialog.java Fri Mar  5 15:37:08 2010
@@ -62,7 +62,6 @@
         if (shouldDelete) {
             Preferences pref = Application.getInstance().getPreferencesNode(ClassGenerationAction.class, "");
             pref.putBoolean(GeneralPreferences.DELETE_PROMPT_PREFERENCE, neverPromptAgainBox.isSelected());
-            Application.getInstance().getPreferenceService().savePreferences();
         }
     }
     

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=919452&r1=919451&r2=919452&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 Fri Mar  5 15:37:08 2010
@@ -26,7 +26,7 @@
 import org.apache.cayenne.gen.ClassGenerationAction;
 import org.apache.cayenne.modeler.util.CayenneController;
 import org.apache.cayenne.pref.CayenneProjectPreferences;
-import org.apache.cayenne.pref.PrefDetail;
+import org.apache.cayenne.pref.PreferenceDetail;
 import org.apache.cayenne.swing.BindingBuilder;
 import org.apache.cayenne.util.Util;
 
@@ -46,7 +46,7 @@
 
     protected GeneratorTabPanel view;
     protected Map controllers;
-    protected PrefDetail preferences;
+    protected PreferenceDetail preferences;
 
     public GeneratorTabController(CodeGeneratorControllerBase parent) {
         super(parent);
@@ -85,7 +85,7 @@
         
         CayenneProjectPreferences cayPrPref = application.getCayenneProjectPreferences();
         
-        this.preferences = (PrefDetail) cayPrPref.getProjectDetailObject(PrefDetail.class, getViewPreferences().node("controller"));
+        this.preferences = (PreferenceDetail) cayPrPref.getProjectDetailObject(PreferenceDetail.class, getViewPreferences().node("controller"));
         
         if (Util.isEmptyString(preferences.getProperty("mode"))) {
             preferences.setProperty("mode", STANDARD_OBJECTS_MODE);
@@ -99,7 +99,7 @@
     }
 
     
-    public PrefDetail getPreferences() {
+    public PreferenceDetail getPreferences() {
         return preferences;
     }
 

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/CayenneModelerPreferenceEditor.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/CayenneModelerPreferenceEditor.java?rev=919452&r1=919451&r2=919452&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/CayenneModelerPreferenceEditor.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/CayenneModelerPreferenceEditor.java Fri Mar  5 15:37:08 2010
@@ -20,23 +20,19 @@
 package org.apache.cayenne.modeler.dialog.pref;
 
 import org.apache.cayenne.modeler.Application;
-import org.apache.cayenne.modeler.FileClassLoadingService;
-import org.apache.cayenne.pref.Domain;
-import org.apache.cayenne.pref.HSQLEmbeddedPreferenceEditor;
-import org.apache.cayenne.pref.HSQLEmbeddedPreferenceService;
-import org.apache.cayenne.pref.PreferenceDetail;
+import org.apache.cayenne.pref.CayennePreferenceEditor;
 
 /**
  * Specialized preferences editor for CayenneModeler.
  * 
  */
-public class CayenneModelerPreferenceEditor extends HSQLEmbeddedPreferenceEditor {
+public class CayenneModelerPreferenceEditor extends CayennePreferenceEditor {
 
     protected boolean refreshingClassLoader;
     protected Application application;
 
     public CayenneModelerPreferenceEditor(Application application) {
-        super((HSQLEmbeddedPreferenceService) application.getPreferenceService(), application.getCayenneProjectPreferences());
+        super(application.getCayenneProjectPreferences());
         this.application = application;
     }
 
@@ -57,21 +53,7 @@
         }
     }
 
-    public PreferenceDetail createDetail(Domain domain, String key) {
-        changeInDomain(domain);
-        return super.createDetail(domain, key);
-    }
-
-    public PreferenceDetail deleteDetail(Domain domain, String key) {
-        changeInDomain(domain);
-        return super.deleteDetail(domain, key);
-    }
-
-    protected void changeInDomain(Domain domain) {
-        if (!refreshingClassLoader
-                && domain != null
-                && FileClassLoadingService.class.getName().equals(domain.getName())) {
-            refreshingClassLoader = true;
-        }
+    @Override
+    protected void restart() {
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java?rev=919452&r1=919451&r2=919452&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java Fri Mar  5 15:37:08 2010
@@ -27,11 +27,9 @@
 import org.apache.cayenne.gen.ClassGenerationAction;
 import org.apache.cayenne.modeler.util.CayenneController;
 import org.apache.cayenne.pref.CayennePreferenceEditor;
-import org.apache.cayenne.pref.CayennePreferenceService;
 import org.apache.cayenne.pref.PreferenceEditor;
 import org.apache.cayenne.swing.BindingBuilder;
 import org.apache.cayenne.swing.ObjectBinding;
-import org.apache.cayenne.validation.ValidationException;
 
 /**
  */
@@ -50,7 +48,6 @@
 
     protected Preferences preferences;
 
-    protected ObjectBinding saveIntervalBinding;
     protected ObjectBinding encodingBinding;
     protected ObjectBinding autoLoadProjectBinding;
     protected ObjectBinding deletePromptBinding;
@@ -65,7 +62,6 @@
             this.view.setEnabled(true);
             initBindings();
 
-            saveIntervalBinding.updateView();
             encodingBinding.updateView();
             autoLoadProjectBinding.updateView();
             deletePromptBinding.updateView();
@@ -101,10 +97,6 @@
                 getApplication().getBindingFactory(),
                 this);
 
-        this.saveIntervalBinding = builder.bindToTextField(
-                view.getSaveInterval(),
-                "timeInterval");
-
         this.encodingBinding = builder.bindToProperty(
                 encodingSelector,
                 "encoding",
@@ -119,10 +111,6 @@
                 "deletePrompt");
     }
 
-    public double getTimeInterval() {
-        return this.editor.getSaveInterval() / 1000.0;
-    }
-
     public String getEncoding() {
         return encoding;
     }
@@ -132,17 +120,6 @@
         this.encoding = encoding;
     }
 
-    public void setTimeInterval(double d) {
-        int ms = (int) (d * 1000.0);
-        if (ms < CayennePreferenceService.MIN_SAVE_INTERVAL) {
-            throw new ValidationException(
-                    "Time interval is too small, minimum allowed is "
-                            + (CayennePreferenceService.MIN_SAVE_INTERVAL / 1000.0));
-        }
-
-        this.editor.setSaveInterval(ms);
-    }
-
     public boolean getAutoLoadProject() {
         return autoLoadProjectPreference;
     }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferencesView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferencesView.java?rev=919452&r1=919451&r2=919452&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferencesView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferencesView.java Fri Mar  5 15:37:08 2010
@@ -30,17 +30,13 @@
  */
 public class GeneralPreferencesView extends JPanel {
 
-    protected JTextField saveInterval;
-    protected JLabel saveIntervalLabel;
     protected EncodingSelectorView encodingSelector;
     protected JLabel encodingSelectorLabel;
     protected JCheckBox autoLoadProjectBox;
     protected JCheckBox deletePromptBox;
 
     public GeneralPreferencesView() {
-        this.saveInterval = new JTextField();
         this.encodingSelector = new EncodingSelectorView();
-        this.saveIntervalLabel = new JLabel("Preferences Save Interval (sec):");
         this.encodingSelectorLabel = new JLabel("File Encoding:");
         this.autoLoadProjectBox = new JCheckBox("Automatically Load Last Opened Project");
         this.deletePromptBox = new JCheckBox("Always Delete Items Without Prompt");
@@ -53,8 +49,7 @@
         PanelBuilder builder = new PanelBuilder(layout);
         builder.setDefaultDialogBorder();
         builder.addSeparator("General Preferences", cc.xyw(1, 1, 5));
-        builder.add(saveIntervalLabel, cc.xy(1, 3));
-        builder.add(saveInterval, cc.xy(3, 3));
+
         builder.add(encodingSelectorLabel, cc.xy(1, 5));
         builder.add(encodingSelector, cc.xywh(3, 5, 3, 3));
         builder.add(autoLoadProjectBox, cc.xy(1, 7, CellConstraints.LEFT, CellConstraints.DEFAULT));
@@ -68,18 +63,13 @@
 
     public void setEnabled(boolean b) {
         super.setEnabled(b);
-        saveInterval.setEnabled(b);
-        saveIntervalLabel.setEnabled(b);
+
         encodingSelector.setEnabled(b);
         encodingSelectorLabel.setEnabled(b);
         autoLoadProjectBox.setEnabled(b);
         deletePromptBox.setEnabled(b);
     }
 
-    public JTextField getSaveInterval() {
-        return saveInterval;
-    }
-
     public EncodingSelectorView getEncodingSelector() {
         return encodingSelector;
     }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreferenceEditor.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreferenceEditor.java?rev=919452&r1=919451&r2=919452&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreferenceEditor.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreferenceEditor.java Fri Mar  5 15:37:08 2010
@@ -27,40 +27,28 @@
 import java.util.prefs.BackingStoreException;
 import java.util.prefs.Preferences;
 
-import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.pref.DBConnectionInfo;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-
 /**
  * An editor for modifying CayennePreferenceService.
  * 
  */
 public abstract class CayennePreferenceEditor implements PreferenceEditor {
 
-    protected CayennePreferenceService service;
-    protected DataContext editingContext;
     protected boolean restartRequired;
-    protected int saveInterval;
     protected CayenneProjectPreferences cayenneProjectPreferences;
     private Map<Preferences, Map<String, String>> changedPreferences;
     private Map<Preferences, Map<String, String>> removedPreferences;
     private Map<Preferences, Map<String, Boolean>> changedBooleanPreferences;
     private List<Preferences> removedNode;
     private List<Preferences> addedNode;
-    
+
     private static Log logger = LogFactory.getLog(CayennePreferenceEditor.class);
 
-    public CayennePreferenceEditor(CayennePreferenceService service,
-            CayenneProjectPreferences cayenneProjectPreferences) {
-        this.service = service;
-        this.editingContext = service
-                .getDataContext()
-                .getParentDataDomain()
-                .createDataContext();
-        this.saveInterval = service.getSaveInterval();
+    public CayennePreferenceEditor(CayenneProjectPreferences cayenneProjectPreferences) {
         this.cayenneProjectPreferences = cayenneProjectPreferences;
         this.changedPreferences = new HashMap<Preferences, Map<String, String>>();
         this.removedPreferences = new HashMap<Preferences, Map<String, String>>();
@@ -68,12 +56,11 @@
         this.removedNode = new ArrayList<Preferences>();
         this.addedNode = new ArrayList<Preferences>();
     }
-    
-    
+
     public List<Preferences> getAddedNode() {
         return addedNode;
     }
-    
+
     public List<Preferences> getRemovedNode() {
         return removedNode;
     }
@@ -82,7 +69,6 @@
         return removedPreferences;
     }
 
-
     public Map<Preferences, Map<String, String>> getChangedPreferences() {
         return changedPreferences;
     }
@@ -99,75 +85,8 @@
         this.restartRequired = restartOnSave;
     }
 
-    protected DataContext getEditingContext() {
-        return editingContext;
-    }
-
-    public Domain editableInstance(Domain object) {
-        if (object.getObjectContext() == getEditingContext()) {
-            return object;
-        }
-
-        return (Domain) getEditingContext().localObject(object.getObjectId(), null);
-    }
-
-    public PreferenceDetail createDetail(Domain domain, String key) {
-        domain = editableInstance(domain);
-        DomainPreference preference = getEditingContext().newObject(
-                DomainPreference.class);
-        preference.setDomain(domain);
-        preference.setKey(key);
-
-        return preference.getPreference();
-    }
-
-    public PreferenceDetail createDetail(Domain domain, String key, Class javaClass) {
-        domain = editableInstance(domain);
-        DomainPreference preferenceLink = getEditingContext().newObject(
-                DomainPreference.class);
-        preferenceLink.setDomain(domain);
-        preferenceLink.setKey(key);
-
-        PreferenceDetail detail = (PreferenceDetail) getEditingContext().newObject(
-                javaClass);
-
-        detail.setDomainPreference(preferenceLink);
-        return detail;
-    }
-
-    public PreferenceDetail deleteDetail(Domain domain, String key) {
-        domain = editableInstance(domain);
-        PreferenceDetail detail = domain.getDetail(key, false);
-
-        if (detail != null) {
-            DomainPreference preference = detail.getDomainPreference();
-            preference.setDomain(null);
-            getEditingContext().deleteObject(preference);
-            getEditingContext().deleteObject(detail);
-        }
-
-        return detail;
-    }
-
-    public int getSaveInterval() {
-        return saveInterval;
-    }
-
-    public void setSaveInterval(int ms) {
-        if (saveInterval != ms) {
-            saveInterval = ms;
-            restartRequired = true;
-        }
-    }
-
-    public PreferenceService getService() {
-        return service;
-    }
-
     public void save() {
         cayenneProjectPreferences.getDetailObject(DBConnectionInfo.class).save();
-        service.setSaveInterval(saveInterval);
-        editingContext.commitChanges();
 
         if (restartRequired) {
             restart();
@@ -178,41 +97,41 @@
         while (it.hasNext()) {
             Map.Entry entry = (Map.Entry) it.next();
             Preferences pref = (Preferences) entry.getKey();
-            Map<String, Boolean> map =  (Map<String, Boolean>) entry.getValue();
+            Map<String, Boolean> map = (Map<String, Boolean>) entry.getValue();
 
             Iterator iterator = map.entrySet().iterator();
             while (iterator.hasNext()) {
                 Map.Entry en = (Map.Entry) iterator.next();
                 String key = (String) en.getKey();
                 Boolean value = (Boolean) en.getValue();
-                
+
                 pref.putBoolean(key, value);
             }
         }
-        
+
         // update string preferences
         Iterator iter = changedPreferences.entrySet().iterator();
         while (iter.hasNext()) {
             Map.Entry entry = (Map.Entry) iter.next();
             Preferences pref = (Preferences) entry.getKey();
-            Map<String, String> map =  (Map<String, String>) entry.getValue();
+            Map<String, String> map = (Map<String, String>) entry.getValue();
 
             Iterator iterator = map.entrySet().iterator();
             while (iterator.hasNext()) {
                 Map.Entry en = (Map.Entry) iterator.next();
                 String key = (String) en.getKey();
                 String value = (String) en.getValue();
-                
+
                 pref.put(key, value);
             }
         }
-        
+
         // remove string preferences
         Iterator iterator = removedPreferences.entrySet().iterator();
         while (iterator.hasNext()) {
             Map.Entry entry = (Map.Entry) iterator.next();
             Preferences pref = (Preferences) entry.getKey();
-            Map<String, String> map =  (Map<String, String>) entry.getValue();
+            Map<String, String> map = (Map<String, String>) entry.getValue();
 
             Iterator itRem = map.entrySet().iterator();
             while (itRem.hasNext()) {
@@ -221,38 +140,37 @@
                 pref.remove(key);
             }
         }
-        
+
         // remove preferences node
         Iterator<Preferences> iteratorNode = removedNode.iterator();
         while (iteratorNode.hasNext()) {
-             Preferences pref = iteratorNode.next();
-             try {
+            Preferences pref = iteratorNode.next();
+            try {
                 pref.removeNode();
             }
             catch (BackingStoreException e) {
                 logger.warn("Error removing preferences");
             }
         }
-        
+
         Application.getInstance().initClassLoader();
     }
 
     public void revert() {
-        
+
         // remove added preferences node
         Iterator<Preferences> iteratorNode = addedNode.iterator();
         while (iteratorNode.hasNext()) {
-             Preferences pref = iteratorNode.next();
-             try {
+            Preferences pref = iteratorNode.next();
+            try {
                 pref.removeNode();
             }
             catch (BackingStoreException e) {
                 // do nothing
             }
         }
-        
+
         cayenneProjectPreferences.getDetailObject(DBConnectionInfo.class).cancel();
-        editingContext.rollbackChanges();
         restartRequired = false;
     }
 

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/PreferenceDetail.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/PreferenceDetail.java?rev=919452&r1=919451&r2=919452&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/PreferenceDetail.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/PreferenceDetail.java Fri Mar  5 15:37:08 2010
@@ -16,198 +16,24 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-
 package org.apache.cayenne.pref;
 
-import java.util.Properties;
-
-import org.apache.cayenne.Cayenne;
-import org.apache.cayenne.CayenneDataObject;
-import org.apache.cayenne.ObjectContext;
-import org.apache.cayenne.ObjectId;
-import org.apache.cayenne.access.DataContext;
-import org.apache.cayenne.access.DataNode;
-import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.util.Util;
-
-/**
- * A superclass of concrete preference classes.
- * <p>
- * Complete preference descriptor is composed out of two classes - DomainPreference that
- * defines how the preference is located with in domain, and a GenericPreference.
- * GenericPreference API is designed for the application use, while internal
- * DomainPreference is managed behind the scenes. Note that there is no real Cayenne
- * relationship from concrete preference entity to the preference framework entities, so
- * this class handles all needed wiring...
- * 
- */
-public class PreferenceDetail extends CayenneDataObject {
-
-    protected DomainPreference domainPreference;
-
-    /**
-     * Changes the key of this preference. If there is a sibling prefrence with same key,
-     * such sibling is renamed using generated unique name. This operation essentially
-     * substitutes one prefrence entry with another.
-     */
-    public void rename(String newKey) {
-        if (Util.nullSafeEquals(getKey(), newKey)) {
-            return;
-        }
-
-        DomainPreference domainPrefrence = getDomainPreference();
-        Domain parent = domainPrefrence.getDomain();
-
-        if (parent == null) {
-            domainPrefrence.setKey(newKey);
-            return;
-        }
-
-        DomainPreference other = parent.getDomainPreference(newKey);
-        if (other != null && other != domainPrefrence) {
-            String otherName = null;
-            for (int i = 1; i < 1000; i++) {
-                if (parent.getDomainPreference(newKey + i) == null) {
-                    otherName = newKey + i;
-                    break;
-                }
-            }
-
-            if (otherName == null) {
-                throw new PreferenceException("Can't rename an existing preference '"
-                        + newKey
-                        + "'.");
-            }
-
-            other.setKey(otherName);
-        }
+import java.util.prefs.Preferences;
 
-        domainPrefrence.setKey(newKey);
-    }
-
-    public int getIntProperty(String key, int defaultValue) {
-        String value = getProperty(key);
-
-        if (value == null) {
-            return defaultValue;
-        }
-
-        try {
-            return Integer.parseInt(value);
-        }
-        catch (NumberFormatException ex) {
-            throw new PreferenceException("Error converting to int: " + value);
-        }
-    }
-
-    public String getKey() {
-        if (getDomainPreference() == null) {
-            throw new PreferenceException(
-                    "Preference not initialized, can't work with properties.");
-        }
+public class PreferenceDetail extends CayennePreference {
 
-        return domainPreference.getKey();
-    }
-
-    public void setIntProperty(String key, int value) {
-        setProperty(key, String.valueOf(value));
+    public PreferenceDetail(Preferences node) {
+        setCurrentPreference(node);
     }
 
     /**
      * Returns a named property for a given key.
      */
     public String getProperty(String key) {
-        return getProperties().getProperty(key);
+        return getCurrentPreference().get(key, null);
     }
 
     public void setProperty(String key, String value) {
-        getProperties().setProperty(key, value);
-    }
-
-    public boolean getBooleanProperty(String key) {
-        return "true".equalsIgnoreCase(getProperty(key));
-    }
-
-    public void setBooleanProperty(String key, boolean value) {
-        setProperty(key, "" + value);
-    }
-
-    public DomainPreference getDomainPreference() {
-        if (domainPreference == null) {
-            // try to fetch..
-
-            ObjectContext context = getObjectContext();
-
-            if (context != null && getObjectId() != null) {
-                int pk = Cayenne.intPKForObject(this);
-
-                domainPreference = Cayenne.objectForPK(
-                        context,
-                        DomainPreference.class,
-                        pk);
-            }
-        }
-
-        return domainPreference;
-    }
-
-    /**
-     * Initializes internal DomainPreference object.
-     */
-    public void setDomainPreference(DomainPreference domainPreference) {
-        if (this.domainPreference != domainPreference) {
-            this.domainPreference = domainPreference;
-
-            ObjectId oid = getObjectId();
-            if (oid != null && oid.isTemporary()) {
-                oid.getReplacementIdMap().put("id", new Integer(buildPermanentId()));
-            }
-        }
-    }
-
-    /**
-     * Returns initialized non-null properties map.
-     */
-    protected Properties getProperties() {
-        if (getDomainPreference() == null) {
-            throw new PreferenceException(
-                    "Preference not initialized, can't work with properties.");
-        }
-
-        return domainPreference.getProperties();
-    }
-
-    /**
-     * Creates permanent ID based on DomainPreference id.
-     */
-    protected int buildPermanentId() {
-        ObjectId otherId = getDomainPreference().getObjectId();
-        if (otherId == null) {
-            throw new PreferenceException(
-                    "Can't persist preference. DomainPreference has no ObjectId");
-        }
-
-        // force creation of otherId
-        if (otherId.isTemporary() && !otherId.isReplacementIdAttached()) {
-            DbEntity entity = getObjectContext().getEntityResolver().lookupObjEntity(
-                    domainPreference).getDbEntity();
-
-            DataNode node = ((DataContext) getObjectContext())
-                    .getParentDataDomain()
-                    .lookupDataNode(entity.getDataMap());
-
-            try {
-                Object pk = node.getAdapter().getPkGenerator().generatePk(
-                        node,
-                        entity.getPrimaryKeys().iterator().next());
-                otherId.getReplacementIdMap().put(DomainPreference.ID_PK_COLUMN, pk);
-            }
-            catch (Throwable th) {
-                throw new PreferenceException("Error creating primary key", Util
-                        .unwindException(th));
-            }
-        }
-
-        return Cayenne.intPKForObject(domainPreference);
+        getCurrentPreference().put(key, value);
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/PreferenceEditor.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/PreferenceEditor.java?rev=919452&r1=919451&r2=919452&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/PreferenceEditor.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/PreferenceEditor.java Fri Mar  5 15:37:08 2010
@@ -26,25 +26,6 @@
  */
 public interface PreferenceEditor {
 
-    /**
-     * Returns an underlying PreferenceService which is a parent of this editor.
-     */
-    public PreferenceService getService();
-
-    /**
-     * Creates a generic PreferenceDetail.
-     */
-    public PreferenceDetail createDetail(Domain domain, String key);
-
-    /**
-     * Creates PreferenceDetail of specified class.
-     */
-    public PreferenceDetail createDetail(Domain domain, String key, Class javaClass);
-
-    public PreferenceDetail deleteDetail(Domain domain, String key);
-
-    public Domain editableInstance(Domain domain);
-
     public void save();
 
     public void revert();