Revision: 3386
Author: silva.josemanuel1
Date: Thu Mar 18 10:14:14 2010
Log: Implemented local user preference storage for zoom level of server projects (since they are not stored anywhere else)
http://code.google.com/p/power-architect/source/detail?r=3386

Modified:
 /trunk/src/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java
 /trunk/src/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java
 /trunk/src/ca/sqlpower/architect/swingui/PlayPen.java

=======================================
--- /trunk/src/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java Wed Mar 17 14:29:59 2010 +++ /trunk/src/ca/sqlpower/architect/enterprise/ArchitectClientSideSession.java Thu Mar 18 10:14:14 2010
@@ -825,4 +825,61 @@
             }
         }
     }
-}
+
+       // ----------- Preferences accessors and mutators -----------
+       // XXX Add different types, such as int or boolean, as needed
+
+       /**
+        * Enters a double value as a preference for this server session.
+        * It will be able to be loaded by this local user in the future.
+        */
+    public void putPref(String prefName, double pref) {
+        prefs.putDouble(projectLocation.getUUID() + "." + prefName, pref);
+    }
+
+    /**
+     * Enters a String as a preference for this server session.
+     * It will be able to be loaded by this local user in the future.
+     */
+    public void putPref(String prefName, String pref) {
+        prefs.put(projectLocation.getUUID() + "." + prefName, pref);
+    }
+
+    /**
+     * Retrieves a locally saved preference of type double.
+     * @param prefName The name of the previously saved preference
+     * @return The previously saved preference, or 0 if none exists yet
+     */
+    public double getPrefDouble(String prefName) {
+        return getPrefDouble(prefName, 0);
+    }
+
+    /**
+     * Retrieves a locally saved preference of type double.
+     * @param prefName The name of the previously saved preference
+     * @param def The value this function should return
+     * if no preference was previously saved
+     */
+    public double getPrefDouble(String prefName, double def) {
+ return prefs.getDouble(projectLocation.getUUID() + "." + prefName, def);
+    }
+
+    /**
+     * Retrieves a locally saved preference of type String.
+     * @param prefName The name of the previously saved preference
+     * @return The previously saved preference, or null if none exists yet
+     */
+    public String getPref(String prefName) {
+        return getPref(prefName, null);
+    }
+
+    /**
+     * Retrieves a locally saved preference of type String.
+     * @param prefName The name of the previously saved preference
+     * @param def The value this function should return
+     * if no preference was previously saved
+     */
+    public String getPref(String prefName, String def) {
+        return prefs.get(projectLocation.getUUID() + "." + prefName, def);
+    }
+}
=======================================
--- /trunk/src/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java Wed Mar 17 14:29:59 2010 +++ /trunk/src/ca/sqlpower/architect/swingui/ArchitectSwingSessionImpl.java Thu Mar 18 10:14:14 2010
@@ -625,6 +625,10 @@
                 return false;
             }
         }
+
+        if (delegateSession.isEnterpriseSession()) {
+            getEnterpriseSession().putPref("zoom", playPen.getZoom());
+        }

         if (!delegateSession.close()) {
             return false;
=======================================
--- /trunk/src/ca/sqlpower/architect/swingui/PlayPen.java Wed Mar 17 14:29:59 2010 +++ /trunk/src/ca/sqlpower/architect/swingui/PlayPen.java Thu Mar 18 10:14:14 2010
@@ -606,7 +606,11 @@
if (session == null) throw new NullPointerException("A null session is not allowed here."); //$NON-NLS-1$
                this.session = session;
                setDatabase(session.getTargetDatabase());
-        zoom = 1.0;
+               if (session.isEnterpriseSession()) {
+                   zoom = session.getEnterpriseSession().getPrefDouble("zoom", 
1.0);
+               } else {
+                   zoom = 1.0;
+               }
         viewportPosition = new Point(0, 0);
                this.setBackground(java.awt.Color.white);
                contentPane = new PlayPenContentPane(this);

Reply via email to