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);