You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2006/06/08 14:59:49 UTC
svn commit: r412739 - in
/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne:
modeler/dialog/codegen/ modeler/dialog/pref/ swing/ swing/control/
Author: aadamchik
Date: Thu Jun 8 05:59:48 2006
New Revision: 412739
URL: http://svn.apache.org/viewvc?rev=412739&view=rev
Log:
CAY-562
Modified:
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/codegen/GeneratorController.java
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/pref/TemplateCreator.java
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/swing/BindingFactory.java
incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/swing/control/FileChooser.java
Modified: incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/codegen/GeneratorController.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/codegen/GeneratorController.java?rev=412739&r1=412738&r2=412739&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/codegen/GeneratorController.java (original)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/codegen/GeneratorController.java Thu Jun 8 05:59:48 2006
@@ -366,17 +366,39 @@
* Returns a predicate for default entity selection in a given mode.
*/
public Predicate getDefaultEntityFilter() {
- return new Predicate() {
+ final ObjEntity selectedEntity = Application
+ .getInstance()
+ .getFrameController()
+ .getProjectController()
+ .getCurrentObjEntity();
- public boolean evaluate(Object object) {
- if (object instanceof ObjEntity) {
- return getParentController().getProblem(
- ((ObjEntity) object).getName()) == null;
+ // select a single entity
+ if (selectedEntity != null) {
+ final boolean hasProblem = getParentController().getProblem(
+ selectedEntity.getName()) != null;
+
+ return new Predicate() {
+
+ public boolean evaluate(Object object) {
+ return !hasProblem && object == selectedEntity;
}
+ };
+ }
+ // select all entities
+ else {
+
+ return new Predicate() {
- return false;
- }
- };
+ public boolean evaluate(Object object) {
+ if (object instanceof ObjEntity) {
+ return getParentController().getProblem(
+ ((ObjEntity) object).getName()) == null;
+ }
+
+ return false;
+ }
+ };
+ }
}
public File getOutputDir() {
Modified: incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/pref/TemplateCreator.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/pref/TemplateCreator.java?rev=412739&r1=412738&r2=412739&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/pref/TemplateCreator.java (original)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/modeler/dialog/pref/TemplateCreator.java Thu Jun 8 05:59:48 2006
@@ -56,6 +56,8 @@
package org.objectstyle.cayenne.modeler.dialog.pref;
import java.awt.Component;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import java.io.File;
import java.util.HashSet;
import java.util.Iterator;
@@ -70,6 +72,7 @@
import org.objectstyle.cayenne.pref.Domain;
import org.objectstyle.cayenne.pref.PreferenceEditor;
import org.objectstyle.cayenne.swing.BindingBuilder;
+import org.objectstyle.cayenne.swing.control.FileChooser;
import org.objectstyle.cayenne.util.Util;
public class TemplateCreator extends CayenneController {
@@ -103,6 +106,21 @@
return view;
}
+ FSPath getLastTemplateDirectory() {
+ // find start directory in preferences
+
+ FSPath path = (FSPath) getViewDomain().getDetail(
+ "lastTemplate",
+ FSPath.class,
+ true);
+
+ if (path.getPath() == null) {
+ path.setPath(getLastDirectory().getPath());
+ }
+
+ return path;
+ }
+
protected void initBindings() {
BindingBuilder builder = new BindingBuilder(
getApplication().getBindingFactory(),
@@ -110,6 +128,18 @@
builder.bindToAction(view.getCancelButton(), "cancelAction()");
builder.bindToAction(view.getOkButton(), "okAction()");
+
+ final FSPath path = getLastTemplateDirectory();
+ view.getTemplateChooser().setCurrentDirectory(path.getExistingDirectory(false));
+ view.getTemplateChooser().addPropertyChangeListener(
+ FileChooser.CURRENT_DIRECTORY_PROPERTY,
+ new PropertyChangeListener() {
+
+ public void propertyChange(PropertyChangeEvent evt) {
+ File directory = view.getTemplateChooser().getCurrentDirectory();
+ path.setDirectory(directory);
+ }
+ });
}
public void okAction() {
Modified: incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/swing/BindingFactory.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/swing/BindingFactory.java?rev=412739&r1=412738&r2=412739&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/swing/BindingFactory.java (original)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/swing/BindingFactory.java Thu Jun 8 05:59:48 2006
@@ -66,7 +66,7 @@
/**
* A factory for a number of common bindings.
*
- * @author Andrei Adamchik
+ * @author Andrus Adamchik
*/
public class BindingFactory {
Modified: incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/swing/control/FileChooser.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/swing/control/FileChooser.java?rev=412739&r1=412738&r2=412739&view=diff
==============================================================================
--- incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/swing/control/FileChooser.java (original)
+++ incubator/cayenne/main/trunk/cayenne/cayenne-java/src/modeler/java/org/objectstyle/cayenne/swing/control/FileChooser.java Thu Jun 8 05:59:48 2006
@@ -72,17 +72,22 @@
import com.jgoodies.forms.layout.FormLayout;
/**
- * A control that renders as a text field and a button to choose a file.
+ * A control that renders as a text field and a button to choose a file. Fires a property
+ * change event when a current directory is changed, either explictly or during a file
+ * selection by the user.
*
* @author Andrus Adamchik
*/
public class FileChooser extends JPanel {
+ public static final String CURRENT_DIRECTORY_PROPERTY = "currentDirectory";
+
protected boolean existingOnly;
protected boolean allowFiles;
protected boolean allowDirectories;
protected FileFilter fileFilter;
protected String title;
+ protected File currentDirectory;
protected JTextField fileName;
protected JButton chooseButton;
@@ -144,7 +149,9 @@
chooser.setFileFilter(fileFilter);
}
- // getLastDirectory().updateChooser(chooser);
+ if (currentDirectory != null) {
+ chooser.setCurrentDirectory(currentDirectory);
+ }
chooser.setDialogTitle(makeTitle(mode));
@@ -153,6 +160,8 @@
File selected = chooser.getSelectedFile();
fileName.setText(selected != null ? selected.getAbsolutePath() : "");
}
+
+ setCurrentDirectory(chooser.getCurrentDirectory());
}
protected String makeTitle(int selectionMode) {
@@ -232,5 +241,20 @@
public int getColumns() {
return fileName.getColumns();
+ }
+
+ /**
+ * Returns the last directory visited when picking a file.
+ */
+ public File getCurrentDirectory() {
+ return currentDirectory;
+ }
+
+ public void setCurrentDirectory(File currentDirectory) {
+ if (!Util.nullSafeEquals(this.currentDirectory, currentDirectory)) {
+ File oldValue = this.currentDirectory;
+ this.currentDirectory = currentDirectory;
+ firePropertyChange(CURRENT_DIRECTORY_PROPERTY, oldValue, currentDirectory);
+ }
}
}