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 2009/12/11 15:30:08 UTC
svn commit: r889634 - in
/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne:
modeler/ modeler/dialog/ modeler/editor/ modeler/pref/ pref/
Author: oltka
Date: Fri Dec 11 14:30:07 2009
New Revision: 889634
URL: http://svn.apache.org/viewvc?rev=889634&view=rev
Log:
CAY-1327
* ComponentGeometry switched to Java preferences API
Added:
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/UpgradeCayennePreference.java
- copied, changed from r889607, cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/UpgradeCayennePreferenceDecorator.java
Removed:
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/_ComponentGeometry.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/UpgradeCayennePreferenceDecorator.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/CayenneModelerFrame.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ModelerPreferences.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/LogConsole.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EditorView.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/ComponentGeometry.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreference.java
cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/Preference.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=889634&r1=889633&r2=889634&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 Dec 11 14:30:07 2009
@@ -24,18 +24,19 @@
import java.awt.Window;
import java.io.File;
import java.util.Collection;
+import java.util.prefs.Preferences;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JRootPane;
import javax.swing.SwingUtilities;
-import javax.swing.undo.UndoManager;
import org.apache.cayenne.modeler.dialog.LogConsole;
import org.apache.cayenne.modeler.undo.CayenneUndoManager;
import org.apache.cayenne.modeler.util.AdapterMapping;
import org.apache.cayenne.modeler.util.CayenneAction;
import org.apache.cayenne.modeler.util.CayenneDialog;
+import org.apache.cayenne.pref.CayennePreference;
import org.apache.cayenne.pref.Domain;
import org.apache.cayenne.pref.DomainPreference;
import org.apache.cayenne.pref.HSQLEmbeddedPreferenceEditor;
@@ -86,12 +87,14 @@
protected String preferencesDB;
protected BindingFactory bindingFactory;
protected AdapterMapping adapterMapping;
-
+
protected CayenneUndoManager undoManager;
// This is for OS X support
private boolean isQuittingApplication = false;
+ protected CayennePreference cayennePreference;
+
public static Application getInstance() {
return instance;
}
@@ -122,9 +125,15 @@
File dbDir = new File(CayenneUserDir.getInstance().resolveFile(
PREFERENCES_DB_SUBDIRECTORY), subdir);
dbDir.mkdirs();
+ this.cayennePreference = new CayennePreference();
+
this.preferencesDB = new File(dbDir, "db").getAbsolutePath();
}
+ public Preferences getPreferencesNode(Class className, String path) {
+ return cayennePreference.getNode(className, path);
+ }
+
public String getName() {
return name;
}
@@ -150,7 +159,7 @@
public ActionManager getActionManager() {
return actionManager;
}
-
+
/**
* Returns undo-edits controller.
*/
@@ -196,7 +205,7 @@
// open up
frameController.startupAction();
-
+
/**
* After prefs have been loaded, we can now show the console if needed
*/
@@ -221,7 +230,7 @@
public Domain getPreferenceDomain() {
return getPreferenceService().getDomain(getName(), true);
}
-
+
/**
* Returns a new instance of CodeTemplateManager.
*/
@@ -382,12 +391,10 @@
}
}
-
public boolean isQuittingApplication() {
return isQuittingApplication;
}
-
public void setQuittingApplication(boolean isQuittingApplication) {
this.isQuittingApplication = isQuittingApplication;
}
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=889634&r1=889633&r2=889634&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 Dec 11 14:30:07 2009
@@ -43,7 +43,6 @@
import org.apache.cayenne.modeler.pref.ComponentGeometry;
import org.apache.cayenne.modeler.pref.FSPath;
import org.apache.cayenne.modeler.util.CayenneController;
-import org.apache.cayenne.pref.Domain;
import org.apache.cayenne.project.ApplicationProject;
import org.apache.cayenne.project.validator.Validator;
@@ -107,9 +106,7 @@
}
});
- Domain prefDomain = application.getPreferenceDomain().getSubdomain(
- frame.getClass());
- ComponentGeometry geometry = ComponentGeometry.getPreference(prefDomain);
+ ComponentGeometry geometry = new ComponentGeometry(frame.getClass(), null);
geometry.bind(frame, 650, 550, 0);
}
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java?rev=889634&r1=889633&r2=889634&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/CayenneModelerFrame.java Fri Dec 11 14:30:07 2009
@@ -17,7 +17,6 @@
* under the License.
****************************************************************/
-
package org.apache.cayenne.modeler;
import java.awt.AWTEvent;
@@ -114,44 +113,44 @@
*/
public class CayenneModelerFrame extends JFrame implements DataNodeDisplayListener,
DataMapDisplayListener, ObjEntityDisplayListener, DbEntityDisplayListener,
- QueryDisplayListener, ProcedureDisplayListener, MultipleObjectsDisplayListener,
- EmbeddableDisplayListener{
+ QueryDisplayListener, ProcedureDisplayListener, MultipleObjectsDisplayListener,
+ EmbeddableDisplayListener {
protected EditorView view;
protected RecentFileMenu recentFileMenu;
protected ActionManager actionManager;
protected JLabel status;
-
+
/**
* Menu which shows/hides log console
*/
protected JCheckBoxMenuItem logMenu;
-
+
/**
- * Split panel, where main project editor and external component, like log console,
- * are located
+ * Split panel, where main project editor and external component, like log console,
+ * are located
*/
protected JSplitPane splitPane;
-
+
/**
* Component, plugged into this frame
*/
protected Component dockComponent;
-
+
/**
* Listeners for changes in recent file menu
*/
protected List<RecentFileListListener> recentFileListeners;
-
+
/**
* Welcome screen, shown when no project is open
*/
protected WelcomeScreen welcomeScreen;
-
+
public CayenneModelerFrame(ActionManager actionManager) {
super(ModelerConstants.TITLE);
this.actionManager = actionManager;
-
+
recentFileListeners = new Vector<RecentFileListListener>();
setIconImage(ModelerUtil.buildIcon("CayenneModeler.jpg").getImage());
@@ -159,9 +158,9 @@
initToolbar();
initStatusBar();
initWelcome();
-
- fireRecentFileListChanged(); //start filling list in welcome screen and in menu
-
+
+ fireRecentFileListChanged(); // start filling list in welcome screen and in menu
+
setView(null);
}
@@ -198,7 +197,7 @@
fileMenu.add(getAction(SaveAsAction.getActionName()).buildMenu());
fileMenu.add(getAction(RevertAction.getActionName()).buildMenu());
fileMenu.addSeparator();
-
+
editMenu.add(getAction(UndoAction.getActionName()).buildMenu());
editMenu.add(getAction(RedoAction.getActionName()).buildMenu());
editMenu.add(getAction(CutAction.getActionName()).buildMenu());
@@ -224,10 +223,10 @@
projectMenu.add(getAction(CreateObjEntityAction.getActionName()).buildMenu());
projectMenu.add(getAction(CreateEmbeddableAction.getActionName()).buildMenu());
projectMenu.add(getAction(CreateDbEntityAction.getActionName()).buildMenu());
-
+
projectMenu.add(getAction(CreateProcedureAction.getActionName()).buildMenu());
projectMenu.add(getAction(CreateQueryAction.getActionName()).buildMenu());
-
+
projectMenu.addSeparator();
projectMenu.add(getAction(ObjEntitySyncAction.getActionName()).buildMenu());
projectMenu.addSeparator();
@@ -240,27 +239,38 @@
toolMenu.add(getAction(GenerateCodeAction.getActionName()).buildMenu());
toolMenu.add(getAction(GenerateDBAction.getActionName()).buildMenu());
toolMenu.add(getAction(MigrateAction.getActionName()).buildMenu());
-
+
/**
* Menu for opening Log console
*/
toolMenu.addSeparator();
-
+
logMenu = getAction(ShowLogConsoleAction.getActionName()).buildCheckBoxMenu();
+
+ if (!LogConsole.getInstance().getConsoleProperty(LogConsole.DOCKED_PROPERTY)
+ && LogConsole.getInstance().getConsoleProperty(
+ LogConsole.SHOW_CONSOLE_PROPERTY)) {
+ LogConsole.getInstance().setConsoleProperty(
+ LogConsole.SHOW_CONSOLE_PROPERTY,
+ false);
+ }
+
updateLogConsoleMenu();
toolMenu.add(logMenu);
-
+
// Mac OS X has it's own Preferences menu item under the application menu
if (OperatingSystem.getOS() != OperatingSystem.MAC_OS_X) {
toolMenu.addSeparator();
- toolMenu.add(getAction(ConfigurePreferencesAction.getActionName()).buildMenu());
+ toolMenu.add(getAction(ConfigurePreferencesAction.getActionName())
+ .buildMenu());
}
- // Mac OS X "About CayenneModeler" appears under the application menu, per Apple GUI standards
+ // Mac OS X "About CayenneModeler" appears under the application menu, per Apple
+ // GUI standards
if (OperatingSystem.getOS() != OperatingSystem.MAC_OS_X)
helpMenu.add(getAction(AboutAction.getActionName()).buildMenu());
helpMenu.add(getAction(DocumentationAction.getActionName()).buildMenu());
-
+
JMenuBar menuBar = new JMenuBar();
menuBar.add(fileMenu);
@@ -271,9 +281,9 @@
setJMenuBar(menuBar);
}
-
+
/**
- * Selects/deselects menu item, depending on status of log console
+ * Selects/deselects menu item, depending on status of log console
*/
public void updateLogConsoleMenu() {
logMenu.setSelected(LogConsole.getInstance().getConsoleProperty(
@@ -283,25 +293,22 @@
protected void initStatusBar() {
status = new JLabel();
status.setFont(status.getFont().deriveFont(Font.PLAIN, 10));
-
+
splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
splitPane.getInsets().left = 5;
splitPane.getInsets().right = 5;
-
+
splitPane.setResizeWeight(0.7);
-
+
/**
- * Moving this to try-catch block per CAY-940.
- * Exception will be stack-traced
+ * Moving this to try-catch block per CAY-940. Exception will be stack-traced
*/
try {
- Domain domain = Application.getInstance().getPreferenceDomain().getSubdomain(
- this.getClass());
- ComponentGeometry geometry = (ComponentGeometry) domain.getDetail(
- "splitPane.divider",
- ComponentGeometry.class,
- true);
- geometry.bindIntProperty(splitPane, JSplitPane.DIVIDER_LOCATION_PROPERTY, 400);
+ ComponentGeometry geometry = new ComponentGeometry(
+ this.getClass(),
+ "splitPane/divider");
+ geometry
+ .bindIntProperty(splitPane, JSplitPane.DIVIDER_LOCATION_PROPERTY, 400);
}
catch (Exception ex) {
LogFactory.getLog(getClass()).error("Cannot bind divider property", ex);
@@ -315,7 +322,7 @@
getContentPane().add(splitPane, BorderLayout.CENTER);
getContentPane().add(statusBar, BorderLayout.SOUTH);
}
-
+
/**
* Initializes welcome screen
*/
@@ -323,7 +330,7 @@
welcomeScreen = new WelcomeScreen();
addRecentFileListListener(welcomeScreen);
}
-
+
/**
* Plugs a component in the frame, between main area and status bar
*/
@@ -331,20 +338,20 @@
if (dockComponent == c) {
return;
}
-
+
if (dockComponent != null) {
splitPane.setBottomComponent(null);
}
-
+
dockComponent = c;
-
+
if (dockComponent != null) {
splitPane.setBottomComponent(dockComponent);
}
-
+
splitPane.validate();
}
-
+
/**
* @return Dock component
*/
@@ -359,21 +366,21 @@
toolBar.add(getAction(NewProjectAction.getActionName()).buildButton());
toolBar.add(getAction(OpenProjectAction.getActionName()).buildButton());
toolBar.add(getAction(SaveAction.getActionName()).buildButton());
-
+
toolBar.addSeparator();
toolBar.add(getAction(RemoveAction.getActionName()).buildButton());
-
+
toolBar.addSeparator();
-
+
toolBar.add(getAction(CutAction.getActionName()).buildButton());
toolBar.add(getAction(CopyAction.getActionName()).buildButton());
toolBar.add(getAction(PasteAction.getActionName()).buildButton());
toolBar.addSeparator();
-
+
toolBar.add(getAction(UndoAction.getActionName()).buildButton());
toolBar.add(getAction(RedoAction.getActionName()).buildButton());
-
+
toolBar.addSeparator();
toolBar.add(getAction(CreateDomainAction.getActionName()).buildButton());
@@ -387,23 +394,24 @@
toolBar.addSeparator();
-
toolBar.add(getAction(CreateObjEntityAction.getActionName()).buildButton());
toolBar.add(getAction(CreateEmbeddableAction.getActionName()).buildButton());
toolBar.add(getAction(CreateQueryAction.getActionName()).buildButton());
-
+
toolBar.addSeparator();
toolBar.add(getAction(NavigateBackwardAction.getActionName()).buildButton());
toolBar.add(getAction(NavigateForwardAction.getActionName()).buildButton());
- JPanel east = new JPanel(new BorderLayout()); // is used to place search feature components the most right on a toolbar
+ JPanel east = new JPanel(new BorderLayout()); // is used to place search feature
+ // components the most right on a
+ // toolbar
final JTextField findField = new JTextField(10);
- findField.addKeyListener(new KeyListener(){
+ findField.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) {
- if (e.getKeyCode() != KeyEvent.VK_ENTER){
- findField.setBackground(Color.white);
+ if (e.getKeyCode() != KeyEvent.VK_ENTER) {
+ findField.setBackground(Color.white);
}
}
@@ -412,28 +420,30 @@
public void keyTyped(KeyEvent e) {
}
-
+
});
findField.setAction(getAction(FindAction.getActionName()));
JLabel findLabel = new JLabel("Search:");
findLabel.setLabelFor(findField);
Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
+
public void eventDispatched(AWTEvent event) {
-
-
+
if (event instanceof KeyEvent) {
-
- if (((KeyEvent) event).getModifiers() == Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
- && ((KeyEvent) event).getKeyCode() == KeyEvent.VK_F){
- findField.requestFocus();
- }
- }
- }
-
- }, AWTEvent.KEY_EVENT_MASK);
-
-
- JPanel box = new JPanel(); // is used to place label and text field one after another
+
+ if (((KeyEvent) event).getModifiers() == Toolkit
+ .getDefaultToolkit()
+ .getMenuShortcutKeyMask()
+ && ((KeyEvent) event).getKeyCode() == KeyEvent.VK_F) {
+ findField.requestFocus();
+ }
+ }
+ }
+
+ },
+ AWTEvent.KEY_EVENT_MASK);
+
+ JPanel box = new JPanel(); // is used to place label and text field one after another
box.setLayout(new BoxLayout(box, BoxLayout.X_AXIS));
box.add(findLabel);
box.add(findField);
@@ -466,11 +476,11 @@
public void currentProcedureChanged(ProcedureDisplayEvent e) {
actionManager.procedureSelected();
}
-
+
public void currentObjectsChanged(MultipleObjectsDisplayEvent e) {
actionManager.multipleObjectsSelected(e.getPaths());
}
-
+
public void currentEmbeddableChanged(EmbeddableDisplayEvent e) {
actionManager.embeddableSelected();
}
@@ -502,7 +512,7 @@
*/
public void setView(EditorView view) {
int oldLocation = splitPane.getDividerLocation();
-
+
this.view = view;
if (view != null) {
@@ -515,14 +525,14 @@
validate();
splitPane.setDividerLocation(oldLocation);
}
-
+
/**
* Adds listener for recent menu changes
*/
public void addRecentFileListListener(RecentFileListListener listener) {
recentFileListeners.add(listener);
}
-
+
/**
* Notifies all listeners that recent file list has changed
*/
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ModelerPreferences.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ModelerPreferences.java?rev=889634&r1=889633&r2=889634&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ModelerPreferences.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ModelerPreferences.java Fri Dec 11 14:30:07 2009
@@ -28,7 +28,7 @@
import org.apache.cayenne.pref.CayennePreference;
import org.apache.cayenne.pref.Preference;
-import org.apache.cayenne.pref.UpgradeCayennePreferenceDecorator;
+import org.apache.cayenne.pref.UpgradeCayennePreference;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -69,8 +69,8 @@
*/
public static Preferences getPreferences() {
if(cayennePrefs==null){
- Preference decoratedPref = new UpgradeCayennePreferenceDecorator(new CayennePreference());
- cayennePrefs = decoratedPref.getRootPreference();
+ Preference decoratedPref = new UpgradeCayennePreference(new CayennePreference());
+ cayennePrefs = decoratedPref.getCayennePreference();
cayennePrefs.addPreferenceChangeListener(new ModelerPreferences());
}
return cayennePrefs;
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/LogConsole.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/LogConsole.java?rev=889634&r1=889633&r2=889634&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/LogConsole.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/LogConsole.java Fri Dec 11 14:30:07 2009
@@ -21,7 +21,6 @@
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.pref.ComponentGeometry;
import org.apache.cayenne.modeler.util.CayenneController;
-import org.apache.cayenne.pref.Domain;
import org.apache.cayenne.util.Util;
import javax.swing.text.*;
@@ -181,8 +180,7 @@
if (logWindow == null) {
logWindow = new LogConsoleWindow(this);
- Domain prefDomain = getDomain();
- ComponentGeometry geometry = ComponentGeometry.getPreference(prefDomain);
+ ComponentGeometry geometry = new ComponentGeometry(getClass(), null);
geometry.bind(logWindow, 600, 300, 0);
}
@@ -264,15 +262,14 @@
* Sets the property, depending on last user's choice
*/
public void setConsoleProperty(String prop, boolean b) {
- getDomain().getDetail(prop, true).
- setBooleanProperty(prop, b);
+ Application.getInstance().getPreferencesNode(getClass(), null).putBoolean(prop, b);
}
/**
* @return a boolean property
*/
public boolean getConsoleProperty(String prop) {
- return getDomain().getDetail(prop, true).getBooleanProperty(prop);
+ return Application.getInstance().getPreferencesNode(getClass(), null).getBoolean(prop, false);
}
/**
@@ -346,14 +343,13 @@
return view;
}
- protected Domain getDomain() {
- return Application.getInstance().getPreferenceDomain().getSubdomain(getClass());
- }
-
/**
* Stop logging and don't print any more messages to text area
*/
public void stopLogging() {
+ if(!getConsoleProperty(DOCKED_PROPERTY)){
+ setConsoleProperty(SHOW_CONSOLE_PROPERTY, false);
+ }
loggingStopped = true;
}
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EditorView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EditorView.java?rev=889634&r1=889633&r2=889634&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EditorView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EditorView.java Fri Dec 11 14:30:07 2009
@@ -52,7 +52,6 @@
import org.apache.cayenne.modeler.event.QueryDisplayEvent;
import org.apache.cayenne.modeler.event.QueryDisplayListener;
import org.apache.cayenne.modeler.pref.ComponentGeometry;
-import org.apache.cayenne.pref.Domain;
import org.apache.cayenne.query.EJBQLQuery;
import org.apache.cayenne.query.ProcedureQuery;
import org.apache.cayenne.query.Query;
@@ -229,13 +228,7 @@
* Moving this to try-catch block per CAY-940. Exception will be stack-traced
*/
try {
- Domain domain = eventController
- .getApplicationPreferenceDomain()
- .getSubdomain(this.getClass());
- ComponentGeometry geometry = (ComponentGeometry) domain.getDetail(
- "splitPane.divider",
- ComponentGeometry.class,
- true);
+ ComponentGeometry geometry = new ComponentGeometry(this.getClass(), "splitPane/divider");
geometry
.bindIntProperty(splitPane, JSplitPane.DIVIDER_LOCATION_PROPERTY, 150);
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/ComponentGeometry.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/ComponentGeometry.java?rev=889634&r1=889633&r2=889634&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/ComponentGeometry.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/pref/ComponentGeometry.java Fri Dec 11 14:30:07 2009
@@ -19,7 +19,7 @@
package org.apache.cayenne.modeler.pref;
-import org.apache.cayenne.pref.Domain;
+import org.apache.cayenne.pref.CayennePreference;
import org.apache.cayenne.pref.PreferenceException;
import org.apache.cayenne.reflect.PropertyUtils;
@@ -28,16 +28,26 @@
import java.awt.event.ComponentEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.util.prefs.Preferences;
-public class ComponentGeometry extends _ComponentGeometry {
+public class ComponentGeometry extends CayennePreference {
public static final String GEOMETRY_PREF_KEY = "geometry";
-
- public static ComponentGeometry getPreference(Domain domain) {
- return (ComponentGeometry) domain.getDetail(
- ComponentGeometry.GEOMETRY_PREF_KEY,
- ComponentGeometry.class,
- true);
+
+ public static final String HEIGHT_PROPERTY = "height";
+ public static final String WIDTH_PROPERTY = "width";
+ public static final String X_PROPERTY = "x";
+ public static final String Y_PROPERTY = "y";
+
+ public ComponentGeometry(Class className, String path) {
+ setCurrentNodeForPreference(className, path);
+ };
+
+ public Preferences getPreference() {
+ if (currentPreference == null) {
+ setCurrentNodeForPreference(this.getClass(), GEOMETRY_PREF_KEY);
+ }
+ return currentPreference;
}
/**
@@ -101,13 +111,13 @@
public void propertyChange(PropertyChangeEvent e) {
Object value = e.getNewValue();
- setProperty(property, value != null ? value.toString() : null);
+ getPreference().put(property, value != null ? value.toString() : null);
}
});
}
void updateIntProperty(Component c, String property, int defaultValue) {
- int i = getIntProperty(property, defaultValue);
+ int i = getPreference().getInt(property, defaultValue);
try {
PropertyUtils.setProperty(c, property, new Integer(i));
}
@@ -117,9 +127,9 @@
}
void updateSize(Component c, int initialWidth, int initialHeight) {
- int w = getIntWidth(initialWidth);
- int h = getIntHeight(initialHeight);
-
+ int w = getWidth(initialWidth);
+ int h = getHeight(initialHeight);
+
if (w > 0 && h > 0) {
c.setSize(w, h);
}
@@ -133,8 +143,8 @@
changeY(yOffset);
}
- int x = getIntX(-1);
- int y = getIntY(-1);
+ int x = getX(-1);
+ int y = getY(-1);
if (x > 0 && y > 0) {
c.setLocation(x, y);
@@ -143,30 +153,47 @@
public void changeX(int xOffset) {
if (xOffset != 0) {
- setX(new Integer(getIntX(0) + xOffset));
+ setX(new Integer(getX(0) + xOffset));
}
}
public void changeY(int yOffset) {
if (yOffset != 0) {
- setY(new Integer(getIntY(0) + yOffset));
+ setY(new Integer(getY(0) + yOffset));
}
}
- public int getIntWidth(int defaultValue) {
- return (getWidth() != null) ? getWidth().intValue() : defaultValue;
+ private void setY(Integer y) {
+ getPreference().putInt(Y_PROPERTY, y);
}
-
- public int getIntHeight(int defaultValue) {
- return (getHeight() != null) ? getHeight().intValue() : defaultValue;
+
+ private void setX(Integer x) {
+ getPreference().putInt(X_PROPERTY, x);
}
-
- public int getIntX(int defaultValue) {
- return (getX() != null) ? getX().intValue() : defaultValue;
+
+ private void setHeight(Integer height) {
+ getPreference().putInt(HEIGHT_PROPERTY, height);
+ }
+
+
+ private void setWidth(Integer width) {
+ getPreference().putInt(WIDTH_PROPERTY, width);
+ }
+
+ public int getWidth(int defaultValue) {
+ return getPreference().getInt(WIDTH_PROPERTY, defaultValue);
+ }
+
+ public int getHeight(int defaultValue) {
+ return getPreference().getInt(HEIGHT_PROPERTY, defaultValue);
}
- public int getIntY(int defaultValue) {
- return (getY() != null) ? getY().intValue() : defaultValue;
+ public int getX(int defaultValue) {
+ return getPreference().getInt(X_PROPERTY, defaultValue);
+ }
+
+ public int getY(int defaultValue) {
+ return getPreference().getInt(Y_PROPERTY, defaultValue);
}
}
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreference.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreference.java?rev=889634&r1=889633&r2=889634&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreference.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/CayennePreference.java Fri Dec 11 14:30:07 2009
@@ -20,10 +20,35 @@
import java.util.prefs.Preferences;
-
public class CayennePreference implements Preference {
+ private Preferences rootPreference;
+ private Preferences cayennePreference;
+
+ protected Preferences currentPreference;
+
public Preferences getRootPreference() {
- return Preferences.userRoot().node(CAYENNE_PREFERENCES);
+ if (rootPreference == null) {
+ rootPreference = Preferences.userRoot();
+ }
+ return rootPreference;
+ }
+
+ public Preferences getCayennePreference() {
+ if (cayennePreference == null) {
+ cayennePreference = getRootPreference().node(CAYENNE_PREFERENCE);
+ }
+ return cayennePreference;
+ }
+
+ public Preferences getNode(Class className, String path) {
+ if (path == null || path.length() == 0) {
+ return Preferences.userNodeForPackage(className);
+ }
+ return Preferences.userNodeForPackage(className).node(path);
+ }
+
+ public void setCurrentNodeForPreference(Class className, String path) {
+ currentPreference = getNode(className, path);
}
}
Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/Preference.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/Preference.java?rev=889634&r1=889633&r2=889634&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/Preference.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/Preference.java Fri Dec 11 14:30:07 2009
@@ -24,7 +24,7 @@
public interface Preference {
/** Key for preferences. */
- public static final String CAYENNE_PREFERENCES = "org/apache/cayenne";
+ public static final String CAYENNE_PREFERENCE = "org/apache/cayenne";
/** node name for editor */
public static final String EDITOR = "editor";
@@ -33,4 +33,6 @@
public static final String LAST_PROJ_FILES = "lastSeveralProjectFiles";
public Preferences getRootPreference();
+
+ public Preferences getCayennePreference();
}
Copied: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/UpgradeCayennePreference.java (from r889607, cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/UpgradeCayennePreferenceDecorator.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/UpgradeCayennePreference.java?p2=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/UpgradeCayennePreference.java&p1=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/UpgradeCayennePreferenceDecorator.java&r1=889607&r2=889634&rev=889634&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/UpgradeCayennePreferenceDecorator.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/pref/UpgradeCayennePreference.java Fri Dec 11 14:30:07 2009
@@ -30,7 +30,7 @@
import org.apache.cayenne.project.CayenneUserDir;
import org.apache.commons.collections.ExtendedProperties;
-public class UpgradeCayennePreferenceDecorator extends CayennePreferenceDecorator {
+public class UpgradeCayennePreference extends CayennePreferenceDecorator {
/** Name of the preferences file. */
public static final String PREFERENCES_NAME_OLD = "modeler.preferences";
@@ -45,14 +45,14 @@
public static final String EDITOR_LOGFILE_ENABLED_OLD = "Editor.logfileEnabled";
public static final String EDITOR_LOGFILE_OLD = "Editor.logfile";
- public UpgradeCayennePreferenceDecorator(Preference decoratedPreference) {
+ public UpgradeCayennePreference(Preference decoratedPreference) {
super(decoratedPreference);
}
public void upgrade() {
try {
- if (!Preferences.userRoot().nodeExists(CAYENNE_PREFERENCES)) {
+ if (!Preferences.userRoot().nodeExists(CAYENNE_PREFERENCE)) {
File prefsFile = new File(preferencesDirectory(), PREFERENCES_NAME_OLD);
if (prefsFile.exists()) {
@@ -61,7 +61,7 @@
ep.load(new FileInputStream(prefsFile));
Preferences prefEditor = Preferences.userRoot().node(
- CAYENNE_PREFERENCES).node(EDITOR);
+ CAYENNE_PREFERENCE).node(EDITOR);
prefEditor.putBoolean(ModelerPreferences.EDITOR_LOGFILE_ENABLED, ep.getBoolean(EDITOR_LOGFILE_ENABLED_OLD));
prefEditor.put(ModelerPreferences.EDITOR_LOGFILE, ep.getString(EDITOR_LOGFILE_OLD));
@@ -110,4 +110,9 @@
return decoratedPreference.getRootPreference();
}
+ public Preferences getCayennePreference() {
+ upgrade();
+ return decoratedPreference.getCayennePreference();
+ }
+
}