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/17 14:11:41 UTC

svn commit: r924267 [2/2] - in /cayenne/main/trunk/framework: cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ ca...

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java?rev=924267&r1=924266&r2=924267&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java Wed Mar 17 13:11:38 2010
@@ -32,6 +32,7 @@ import org.apache.cayenne.configuration.
 import org.apache.cayenne.configuration.event.DataNodeEvent;
 import org.apache.cayenne.configuration.event.ProcedureEvent;
 import org.apache.cayenne.configuration.event.QueryEvent;
+import org.apache.cayenne.configuration.ConfigurationNode;
 import org.apache.cayenne.configuration.DataChannelDescriptor;
 import org.apache.cayenne.configuration.DataNodeDescriptor;
 import org.apache.cayenne.map.Attribute;
@@ -53,7 +54,6 @@ import org.apache.cayenne.modeler.dialog
 import org.apache.cayenne.modeler.undo.RemoveCompoundUndoableEdit;
 import org.apache.cayenne.modeler.undo.RemoveUndoableEdit;
 import org.apache.cayenne.modeler.util.CayenneAction;
-import org.apache.cayenne.project.ProjectPath;
 import org.apache.cayenne.query.AbstractQuery;
 import org.apache.cayenne.query.Query;
 
@@ -63,7 +63,6 @@ import org.apache.cayenne.query.Query;
  */
 public class RemoveAction extends CayenneAction {
 
-
     public static String getActionName() {
         return "Remove";
     }
@@ -181,11 +180,9 @@ public class RemoveAction extends Cayenn
                 }
                 else {
                     // Not under Data Node, remove completely
-                    application
-                            .getUndoManager()
-                            .addEdit(
-                                    new RemoveUndoableEdit(application, mediator
-                                            .getCurrentDataMap()));
+                    application.getUndoManager().addEdit(
+                            new RemoveUndoableEdit(application, mediator
+                                    .getCurrentDataMap()));
 
                     removeDataMap(mediator.getCurrentDataMap());
 
@@ -194,21 +191,23 @@ public class RemoveAction extends Cayenn
         }
         else if (mediator.getCurrentDataNode() != null) {
             if (dialog.shouldDelete("data node", mediator.getCurrentDataNode().getName())) {
-                application.getUndoManager().addEdit(
-                        new RemoveUndoableEdit(application, mediator.getCurrentDataNode()));
+                application
+                        .getUndoManager()
+                        .addEdit(
+                                new RemoveUndoableEdit(application, mediator
+                                        .getCurrentDataNode()));
 
-                removeDataNode(mediator
-                        .getCurrentDataNode());
+                removeDataNode(mediator.getCurrentDataNode());
             }
         }
 
         else if (mediator.getCurrentPaths() != null) { // multiple deletion
             if (dialog.shouldDelete("selected objects")) {
-                ProjectPath[] paths = mediator.getCurrentPaths();
+                Object[] paths = mediator.getCurrentPaths();
 
                 CompoundEdit compoundEdit = new RemoveCompoundUndoableEdit();
 
-                for (ProjectPath path : paths) {
+                for (Object path : paths) {
                     compoundEdit.addEdit(removeLastPathComponent(path));
                 }
 
@@ -221,9 +220,11 @@ public class RemoveAction extends Cayenn
 
     public void removeDataMap(DataMap map) {
         ProjectController mediator = getProjectController();
-        DataChannelDescriptor domain =  (DataChannelDescriptor)mediator.getProject().getRootNode();
+        DataChannelDescriptor domain = (DataChannelDescriptor) mediator
+                .getProject()
+                .getRootNode();
         DataMapEvent e = new DataMapEvent(Application.getFrame(), map, MapEvent.REMOVE);
-        e.setDomain((DataChannelDescriptor)mediator.getProject().getRootNode());
+        e.setDomain((DataChannelDescriptor) mediator.getProject().getRootNode());
 
         domain.getDataMaps().remove(map);
         mediator.fireDataMapEvent(e);
@@ -231,9 +232,11 @@ public class RemoveAction extends Cayenn
 
     public void removeDataNode(DataNodeDescriptor node) {
         ProjectController mediator = getProjectController();
-        DataChannelDescriptor domain =  (DataChannelDescriptor)mediator.getProject().getRootNode();
+        DataChannelDescriptor domain = (DataChannelDescriptor) mediator
+                .getProject()
+                .getRootNode();
         DataNodeEvent e = new DataNodeEvent(Application.getFrame(), node, MapEvent.REMOVE);
-        e.setDomain((DataChannelDescriptor)mediator.getProject().getRootNode());
+        e.setDomain((DataChannelDescriptor) mediator.getProject().getRootNode());
 
         domain.getNodeDescriptors().remove(node);
         mediator.fireDataNodeEvent(e);
@@ -246,7 +249,7 @@ public class RemoveAction extends Cayenn
         ProjectController mediator = getProjectController();
 
         EntityEvent e = new EntityEvent(Application.getFrame(), ent, MapEvent.REMOVE);
-        e.setDomain((DataChannelDescriptor)mediator.getProject().getRootNode());
+        e.setDomain((DataChannelDescriptor) mediator.getProject().getRootNode());
 
         map.removeDbEntity(ent.getName(), true);
         mediator.fireDbEntityEvent(e);
@@ -259,7 +262,7 @@ public class RemoveAction extends Cayenn
         ProjectController mediator = getProjectController();
 
         QueryEvent e = new QueryEvent(Application.getFrame(), query, MapEvent.REMOVE, map);
-        e.setDomain((DataChannelDescriptor)mediator.getProject().getRootNode());
+        e.setDomain((DataChannelDescriptor) mediator.getProject().getRootNode());
 
         map.removeQuery(query.getName());
         mediator.fireQueryEvent(e);
@@ -275,7 +278,7 @@ public class RemoveAction extends Cayenn
                 Application.getFrame(),
                 procedure,
                 MapEvent.REMOVE);
-        e.setDomain((DataChannelDescriptor)mediator.getProject().getRootNode());
+        e.setDomain((DataChannelDescriptor) mediator.getProject().getRootNode());
 
         map.removeProcedure(procedure.getName());
         mediator.fireProcedureEvent(e);
@@ -288,7 +291,7 @@ public class RemoveAction extends Cayenn
         ProjectController mediator = getProjectController();
 
         EntityEvent e = new EntityEvent(Application.getFrame(), entity, MapEvent.REMOVE);
-        e.setDomain((DataChannelDescriptor)mediator.getProject().getRootNode());
+        e.setDomain((DataChannelDescriptor) mediator.getProject().getRootNode());
 
         map.removeObjEntity(entity.getName(), true);
         mediator.fireObjEntityEvent(e);
@@ -301,11 +304,10 @@ public class RemoveAction extends Cayenn
             if (query instanceof AbstractQuery) {
                 AbstractQuery next = (AbstractQuery) query;
                 Object root = next.getRoot();
-    
+
                 if (root == entity
-                        || (root instanceof String && root
-                                .toString()
-                                .equals(entity.getName()))) {
+                        || (root instanceof String && root.toString().equals(
+                                entity.getName()))) {
                     removeQuery(map, next);
                 }
             }
@@ -319,7 +321,7 @@ public class RemoveAction extends Cayenn
                 Application.getFrame(),
                 embeddable,
                 MapEvent.REMOVE);
-        e.setDomain((DataChannelDescriptor)mediator.getProject().getRootNode());
+        e.setDomain((DataChannelDescriptor) mediator.getProject().getRootNode());
 
         map.removeEmbeddable(embeddable.getClassName());
         mediator.fireEmbeddableEvent(e, map);
@@ -329,7 +331,7 @@ public class RemoveAction extends Cayenn
         ProjectController mediator = getProjectController();
 
         DataNodeEvent e = new DataNodeEvent(Application.getFrame(), node);
-        e.setDomain( (DataChannelDescriptor)mediator.getProject().getRootNode());
+        e.setDomain((DataChannelDescriptor) mediator.getProject().getRootNode());
 
         node.getDataMapNames().remove(map.getName());
 
@@ -341,42 +343,39 @@ public class RemoveAction extends Cayenn
      * Returns <code>true</code> if last object in the path contains a removable object.
      */
     @Override
-    public boolean enableForPath(ProjectPath path) {
-        if (path == null) {
+    public boolean enableForPath(ConfigurationNode object) {
+        if (object == null) {
             return false;
         }
 
-        Object lastObject = path.getObject();
-
-        if (lastObject instanceof DataChannelDescriptor) {
+        if (object instanceof DataChannelDescriptor) {
             return true;
         }
-        else 
-        if (lastObject instanceof DataMap) {
+        else if (object instanceof DataMap) {
             return true;
         }
-        else if (lastObject instanceof DataNodeDescriptor) {
+        else if (object instanceof DataNodeDescriptor) {
             return true;
         }
-        else if (lastObject instanceof Entity) {
+        else if (object instanceof Entity) {
             return true;
         }
-        else if (lastObject instanceof Attribute) {
+        else if (object instanceof Attribute) {
             return true;
         }
-        else if (lastObject instanceof Relationship) {
+        else if (object instanceof Relationship) {
             return true;
         }
-        else if (lastObject instanceof Procedure) {
+        else if (object instanceof Procedure) {
             return true;
         }
-        else if (lastObject instanceof ProcedureParameter) {
+        else if (object instanceof ProcedureParameter) {
             return true;
         }
-        else if (lastObject instanceof Embeddable) {
+        else if (object instanceof Embeddable) {
             return true;
         }
-        else if (lastObject instanceof EmbeddableAttribute) {
+        else if (object instanceof EmbeddableAttribute) {
             return true;
         }
         else {
@@ -387,68 +386,50 @@ public class RemoveAction extends Cayenn
     /**
      * Removes an object, depending on its type
      */
-    private UndoableEdit removeLastPathComponent(ProjectPath path) {
-        Object lastObject = path.getObject();
+    private UndoableEdit removeLastPathComponent(Object object) {
 
         UndoableEdit undo = null;
 
-        if (lastObject instanceof DataMap) {
-            Object parent = path.getObjectParent();
-
-            if (parent instanceof DataChannelDescriptor) {
-                undo = new RemoveUndoableEdit(
-                        application,
-                        (DataMap) lastObject);
-
-                removeDataMap((DataMap) lastObject);
-            }
-            else { // if(parent instanceof DataNode)
-                undo = new RemoveUndoableEdit(
-                        application,
-                        (DataNodeDescriptor) parent,
-                        (DataMap) lastObject);
-
-                removeDataMapFromDataNode((DataNodeDescriptor) parent, (DataMap) lastObject);
-            }
+        if (object instanceof DataMap) {
+            undo = new RemoveUndoableEdit(application, (DataMap) object);
+            removeDataMap((DataMap) object);
         }
-        else if (lastObject instanceof DataNodeDescriptor) {
-            undo = new RemoveUndoableEdit(application, (DataNodeDescriptor) lastObject);
+        else if (object instanceof DataNodeDescriptor) {
+            undo = new RemoveUndoableEdit(application, (DataNodeDescriptor) object);
 
-            removeDataNode((DataNodeDescriptor) lastObject);
+            removeDataNode((DataNodeDescriptor) object);
         }
-        else if (lastObject instanceof DbEntity) {
+        else if (object instanceof DbEntity) {
             undo = new RemoveUndoableEdit(
-                    (DataMap) path.getObjectParent(),
-                    (DbEntity) lastObject);
+                    ((DbEntity) object).getDataMap(),
+                    (DbEntity) object);
 
-            removeDbEntity((DataMap) path.getObjectParent(), (DbEntity) lastObject);
+            removeDbEntity(((DbEntity) object).getDataMap(), (DbEntity) object);
         }
-        else if (lastObject instanceof ObjEntity) {
+        else if (object instanceof ObjEntity) {
             undo = new RemoveUndoableEdit(
-                    (DataMap) path.getObjectParent(),
-                    (ObjEntity) lastObject);
+                    ((ObjEntity) object).getDataMap(),
+                    (ObjEntity) object);
 
-            removeObjEntity((DataMap) path.getObjectParent(), (ObjEntity) lastObject);
+            removeObjEntity(((ObjEntity) object).getDataMap(), (ObjEntity) object);
         }
-        else if (lastObject instanceof Query) {
-            undo = new RemoveUndoableEdit(
-                    (DataMap) path.getObjectParent(),
-                    (Query) lastObject);
+        else if (object instanceof Query) {
+            undo = new RemoveUndoableEdit(((Query) object).getDataMap(), (Query) object);
 
-            removeQuery((DataMap) path.getObjectParent(), (Query) lastObject);
+            removeQuery(((Query) object).getDataMap(), (Query) object);
         }
-        else if (lastObject instanceof Procedure) {
+        else if (object instanceof Procedure) {
             undo = new RemoveUndoableEdit(
-                    (DataMap) path.getObjectParent(),
-                    (Procedure) lastObject);
+                    ((Procedure) object).getDataMap(),
+                    (Procedure) object);
 
-            removeProcedure((DataMap) path.getObjectParent(), (Procedure) lastObject);
+            removeProcedure(((Procedure) object).getDataMap(), (Procedure) object);
         }
-        else if (lastObject instanceof Embeddable) {
+        else if (object instanceof Embeddable) {
             undo = new RemoveUndoableEdit(
-                    (DataMap) path.getObjectParent(),
-                    (Embeddable) lastObject);
-            removeEmbeddable((DataMap) path.getObjectParent(), (Embeddable) lastObject);
+                    ((Embeddable) object).getDataMap(),
+                    (Embeddable) object);
+            removeEmbeddable(((Embeddable) object).getDataMap(), (Embeddable) object);
         }
 
         return undo;

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAttributeAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAttributeAction.java?rev=924267&r1=924266&r2=924267&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAttributeAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAttributeAction.java Wed Mar 17 13:11:38 2010
@@ -21,6 +21,7 @@ package org.apache.cayenne.modeler.actio
 
 import java.awt.event.ActionEvent;
 
+import org.apache.cayenne.configuration.ConfigurationNode;
 import org.apache.cayenne.configuration.DataChannelDescriptor;
 import org.apache.cayenne.map.Attribute;
 import org.apache.cayenne.map.DataMap;
@@ -38,7 +39,6 @@ import org.apache.cayenne.modeler.Projec
 import org.apache.cayenne.modeler.dialog.ConfirmRemoveDialog;
 import org.apache.cayenne.modeler.undo.RemoveAttributeUndoableEdit;
 import org.apache.cayenne.modeler.util.ProjectUtil;
-import org.apache.cayenne.project.ProjectPath;
 
 /**
  * Removes currently selected attribute from either the DbEntity or ObjEntity.
@@ -72,12 +72,12 @@ public class RemoveAttributeAction exten
      * attribute.
      */
     @Override
-    public boolean enableForPath(ProjectPath path) {
-        if (path == null) {
+    public boolean enableForPath(ConfigurationNode object) {
+        if (object == null) {
             return false;
         }
 
-        return path.getObject() instanceof Attribute;
+        return object instanceof Attribute;
     }
 
     @Override
@@ -137,8 +137,6 @@ public class RemoveAttributeAction exten
                     DbEntity entity = mediator.getCurrentDbEntity();
                     DbAttribute[] attribs = mediator.getCurrentDbAttributes();
 
-                    ProjectPath[] paths = getProjectController().getCurrentPaths();
-
                     application.getUndoManager().addEdit(
                             new RemoveAttributeUndoableEdit(
                                     (DataChannelDescriptor)mediator.getProject().getRootNode(),

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveProcedureParameterAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveProcedureParameterAction.java?rev=924267&r1=924266&r2=924267&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveProcedureParameterAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveProcedureParameterAction.java Wed Mar 17 13:11:38 2010
@@ -21,6 +21,7 @@ package org.apache.cayenne.modeler.actio
 
 import java.awt.event.ActionEvent;
 
+import org.apache.cayenne.configuration.ConfigurationNode;
 import org.apache.cayenne.configuration.event.ProcedureParameterEvent;
 import org.apache.cayenne.map.Procedure;
 import org.apache.cayenne.map.ProcedureParameter;
@@ -28,7 +29,6 @@ import org.apache.cayenne.map.event.MapE
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.ProjectController;
 import org.apache.cayenne.modeler.dialog.ConfirmRemoveDialog;
-import org.apache.cayenne.project.ProjectPath;
 
 /**
  * Removes currently selected parameter from the current procedure.
@@ -60,12 +60,12 @@ public class RemoveProcedureParameterAct
      * parameter.
      */
     @Override
-    public boolean enableForPath(ProjectPath path) {
-        if (path == null) {
+    public boolean enableForPath(ConfigurationNode object) {
+        if (object == null) {
             return false;
         }
 
-        return path.getObject() instanceof ProcedureParameter;
+        return object instanceof ProcedureParameter;
     }
 
     @Override

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveRelationshipAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveRelationshipAction.java?rev=924267&r1=924266&r2=924267&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveRelationshipAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveRelationshipAction.java Wed Mar 17 13:11:38 2010
@@ -21,6 +21,7 @@ package org.apache.cayenne.modeler.actio
 
 import java.awt.event.ActionEvent;
 
+import org.apache.cayenne.configuration.ConfigurationNode;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.DbRelationship;
 import org.apache.cayenne.map.ObjEntity;
@@ -33,7 +34,6 @@ import org.apache.cayenne.modeler.Projec
 import org.apache.cayenne.modeler.dialog.ConfirmRemoveDialog;
 import org.apache.cayenne.modeler.undo.RemoveRelationshipUndoableEdit;
 import org.apache.cayenne.modeler.util.ProjectUtil;
-import org.apache.cayenne.project.ProjectPath;
 
 /**
  * Removes currently selected relationship from either the DbEntity or
@@ -69,12 +69,12 @@ public class RemoveRelationshipAction ex
 	 * relationship.
 	 */
 	@Override
-	public boolean enableForPath(ProjectPath path) {
-		if (path == null) {
+	public boolean enableForPath(ConfigurationNode object) {
+		if (object == null) {
 			return false;
 		}
 
-		return path.getObject() instanceof Relationship;
+		return object instanceof Relationship;
 	}
 
 	@Override

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=924267&r1=924266&r2=924267&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 Wed Mar 17 13:11:38 2010
@@ -30,12 +30,12 @@ import javax.swing.JOptionPane;
 import javax.swing.KeyStroke;
 
 import org.apache.cayenne.CayenneRuntimeException;
+import org.apache.cayenne.configuration.ConfigurationNode;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.dialog.validator.ValidationDisplayHandler;
 import org.apache.cayenne.modeler.dialog.validator.ValidatorDialog;
 import org.apache.cayenne.modeler.util.CayenneAction;
 import org.apache.cayenne.pref.RenamedPreferences;
-import org.apache.cayenne.project.ProjectPath;
 import org.apache.cayenne.project2.Project;
 import org.apache.cayenne.project2.ProjectSaver;
 import org.apache.cayenne.project2.validation.ProjectValidator;
@@ -176,12 +176,12 @@ public class SaveAsAction extends Cayenn
      * Returns <code>true</code> if path contains a Project object and the project is
      * modified.
      */
-    public boolean enableForPath(ProjectPath path) {
-        if (path == null) {
+    public boolean enableForPath(ConfigurationNode object) {
+        if (object == null) {
             return false;
         }
 
-        Project project = path.firstInstanceOf(Project.class);
+        Project project = getApplication().getProject();
         return project != null && project.isModified();
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ValidateAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ValidateAction.java?rev=924267&r1=924266&r2=924267&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ValidateAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ValidateAction.java Wed Mar 17 13:11:38 2010
@@ -28,8 +28,6 @@ import javax.swing.KeyStroke;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.dialog.validator.ValidatorDialog;
 import org.apache.cayenne.modeler.util.CayenneAction;
-import org.apache.cayenne.project.ProjectPath;
-import org.apache.cayenne.project2.Project;
 import org.apache.cayenne.project2.validation.ProjectValidator;
 import org.apache.cayenne.validation.ValidationResult;
 
@@ -73,17 +71,4 @@ public class ValidateAction extends Caye
             ValidatorDialog.showValidationSuccess(Application.getFrame());
         }
     }
-
-    /**
-     * Returns <code>true</code> if path contains a Project object and the project is
-     * modified.
-     */
-    public boolean enableForPath(ProjectPath path) {
-        if (path == null) {
-            return false;
-        }
-
-        Project project = path.firstInstanceOf(Project.class);
-        return project != null;
-    }
-}
+}
\ No newline at end of file

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=924267&r1=924266&r2=924267&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 Wed Mar 17 13:11:38 2010
@@ -30,6 +30,7 @@ import javax.swing.JScrollPane;
 import javax.swing.JSplitPane;
 import javax.swing.JTabbedPane;
 
+import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.ProjectController;
 import org.apache.cayenne.modeler.ProjectTreeView;
 import org.apache.cayenne.modeler.editor.datanode.DataNodeEditor;
@@ -86,7 +87,7 @@ public class EditorView extends JPanel i
     protected Container detailPanel;
     protected CardLayout detailLayout;
     private ProjectTreeView treePanel;
-    
+
     private DbEntityTabbedView dbDetailView;
     private ObjEntityTabbedView objDetailView;
     private EmbeddableTabbedView embeddableView;
@@ -98,17 +99,14 @@ public class EditorView extends JPanel i
     private EjbqlTabbedView ejbqlQueryView;
     private JTabbedPane dataNodeView;
 
-    
     public SelectQueryTabbedView getSelectQueryView() {
         return selectQueryView;
     }
 
-    
     public SQLTemplateTabbedView getSqlTemplateView() {
         return sqlTemplateView;
     }
 
-    
     public EjbqlTabbedView getEjbqlQueryView() {
         return ejbqlQueryView;
     }
@@ -124,7 +122,7 @@ public class EditorView extends JPanel i
     public EmbeddableTabbedView getEmbeddableView() {
         return embeddableView;
     }
-    
+
     public DbEntityTabbedView getDbDetailView() {
         return dbDetailView;
     }
@@ -132,15 +130,15 @@ public class EditorView extends JPanel i
     public ObjEntityTabbedView getObjDetailView() {
         return objDetailView;
     }
-    
+
     public DataDomainTabbedView getDataDomainView() {
         return dataDomainView;
     }
-    
+
     public DataMapTabbedView getDataMapView() {
         return dataMapView;
     }
-    
+
     public JTabbedPane getDataNodeView() {
         return dataNodeView;
     }
@@ -176,7 +174,7 @@ public class EditorView extends JPanel i
 
         DataNodeEditor nodeController = new DataNodeEditor(eventController);
         detailPanel.add(nodeController.getView(), NODE_VIEW);
-        
+
         dataNodeView = nodeController.getTabComponent();
 
         dataMapView = new DataMapTabbedView(eventController);
@@ -228,7 +226,9 @@ public class EditorView extends JPanel i
          * Moving this to try-catch block per CAY-940. Exception will be stack-traced
          */
         try {
-            ComponentGeometry geometry = new ComponentGeometry(this.getClass(), "splitPane/divider");
+            ComponentGeometry geometry = new ComponentGeometry(
+                    this.getClass(),
+                    "splitPane/divider");
 
             geometry
                     .bindIntProperty(splitPane, JSplitPane.DIVIDER_LOCATION_PROPERTY, 150);
@@ -300,7 +300,9 @@ public class EditorView extends JPanel i
         }
     }
 
-    public void currentObjectsChanged(MultipleObjectsDisplayEvent e) {
+    public void currentObjectsChanged(
+            MultipleObjectsDisplayEvent e,
+            Application application) {
         detailLayout.show(detailPanel, EMPTY_VIEW);
     }
 

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DisplayEvent.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DisplayEvent.java?rev=924267&r1=924266&r2=924267&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DisplayEvent.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/DisplayEvent.java Wed Mar 17 13:11:38 2010
@@ -21,14 +21,12 @@ package org.apache.cayenne.modeler.event
 
 import java.util.EventObject;
 
-import org.apache.cayenne.project.ProjectPath;
-
 /**
  */
 public class DisplayEvent extends EventObject {
     protected boolean refired;
     protected boolean changed;
-    protected ProjectPath path;
+    protected Object pathObject;
 
     /**
      * Constructor for DisplayEvent.
@@ -44,26 +42,18 @@ public class DisplayEvent extends EventO
      * Constructor for DisplayEvent.
      * @param source
      */
-    public DisplayEvent(Object source, ProjectPath path) {
+    public DisplayEvent(Object source, Object pathObject) {
         super(source);
         refired = false;
         changed = true;
-        this.path = path;
-    }
-
-    public ProjectPath getPath() {
-        return path;
-    }
-
-    public void setPath(ProjectPath path) {
-        this.path = path;
+        this.pathObject = pathObject;
     }
 
     /**
     * Returns the last object in the path.
     */
-    public Object getObject() {
-        return (path != null) ? path.getObject() : null;
+    public Object getPathObject() {
+        return (pathObject != null) ? pathObject : null;
     }
 
     /**
@@ -93,7 +83,7 @@ public class DisplayEvent extends EventO
             return false;
         }
 
-        Object last = getObject();
+        Object last = getPathObject();
         return (last != null) ? last.getClass() == nodeClass : false;
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/MultipleObjectsDisplayEvent.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/MultipleObjectsDisplayEvent.java?rev=924267&r1=924266&r2=924267&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/MultipleObjectsDisplayEvent.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/MultipleObjectsDisplayEvent.java Wed Mar 17 13:11:38 2010
@@ -20,23 +20,23 @@ package org.apache.cayenne.modeler.event
 
 import java.util.EventObject;
 
-import org.apache.cayenne.project.ProjectPath;
+import org.apache.cayenne.configuration.ConfigurationNode;
 
 /**
  * Display event for several selected objects
  */
 public class MultipleObjectsDisplayEvent extends EventObject {
-    private ProjectPath[] paths;
+    private ConfigurationNode[] nodes;
     
-    public MultipleObjectsDisplayEvent(Object src, ProjectPath[] paths) {
+    public MultipleObjectsDisplayEvent(Object src, ConfigurationNode[] objects) {
         super(src);
-        this.paths = paths;
+        this.nodes = (ConfigurationNode[]) objects;
     }
     
     /**
      * @return all paths of this event
      */
-    public ProjectPath[] getPaths() {
-        return paths;
+    public ConfigurationNode[] getNodes() {
+        return nodes;
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/MultipleObjectsDisplayListener.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/MultipleObjectsDisplayListener.java?rev=924267&r1=924266&r2=924267&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/MultipleObjectsDisplayListener.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/MultipleObjectsDisplayListener.java Wed Mar 17 13:11:38 2010
@@ -20,12 +20,15 @@ package org.apache.cayenne.modeler.event
 
 import java.util.EventListener;
 
+import org.apache.cayenne.modeler.Application;
+
 /**
  * Listener for multiple objects selections 
  */
 public interface MultipleObjectsDisplayListener extends EventListener {
     /**
      * Invoked when a new set of objects was displayed
+     * @param application 
      */
-    public void currentObjectsChanged(MultipleObjectsDisplayEvent e);
+    public void currentObjectsChanged(MultipleObjectsDisplayEvent e, Application application);
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/EntityDisplayAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/EntityDisplayAction.java?rev=924267&r1=924266&r2=924267&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/EntityDisplayAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/EntityDisplayAction.java Wed Mar 17 13:11:38 2010
@@ -23,6 +23,7 @@ import java.awt.event.ActionEvent;
 import javax.swing.Action;
 import javax.swing.Icon;
 
+import org.apache.cayenne.configuration.ConfigurationNode;
 import org.apache.cayenne.configuration.DataChannelDescriptor;
 import org.apache.cayenne.map.Entity;
 import org.apache.cayenne.modeler.Application;
@@ -30,7 +31,6 @@ import org.apache.cayenne.modeler.Projec
 import org.apache.cayenne.modeler.dialog.FindDialog;
 import org.apache.cayenne.modeler.graph.GraphBuilder;
 import org.apache.cayenne.modeler.util.CayenneAction;
-import org.apache.cayenne.project.ProjectPath;
 
 /**
  * Action that displays one of the objects in main tree, 
@@ -103,7 +103,7 @@ public class EntityDisplayAction extends
     }
 
     @Override
-    public boolean enableForPath(ProjectPath obj) {
+    public boolean enableForPath(ConfigurationNode object) {
         return builder.getSelectedEntity() != null;
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/ShowGraphEntityAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/ShowGraphEntityAction.java?rev=924267&r1=924266&r2=924267&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/ShowGraphEntityAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/ShowGraphEntityAction.java Wed Mar 17 13:11:38 2010
@@ -20,6 +20,7 @@ package org.apache.cayenne.modeler.graph
 
 import java.awt.event.ActionEvent;
 
+import org.apache.cayenne.configuration.ConfigurationNode;
 import org.apache.cayenne.configuration.DataChannelDescriptor;
 import org.apache.cayenne.map.Entity;
 import org.apache.cayenne.modeler.Application;
@@ -29,16 +30,16 @@ import org.apache.cayenne.modeler.editor
 import org.apache.cayenne.modeler.event.DomainDisplayEvent;
 import org.apache.cayenne.modeler.event.EntityDisplayEvent;
 import org.apache.cayenne.modeler.util.CayenneAction;
-import org.apache.cayenne.project.ProjectPath;
 
 /**
  * Action that shows entity on the graph
  */
 public class ShowGraphEntityAction extends CayenneAction {
+
     public static String getActionName() {
         return "ShowGraphEntity";
     }
-    
+
     public ShowGraphEntityAction(Application application) {
         super(getActionName(), application, "Show on Graph");
         setEnabled(true);
@@ -48,11 +49,11 @@ public class ShowGraphEntityAction exten
     public String getIconName() {
         return "icon-save-as-image.png";
     }
-    
+
     @Override
     public void performAction(ActionEvent e) {
         Entity entity = null;
-        
+
         ProjectController mediator = getProjectController();
         if (mediator.getCurrentDbEntity() != null) {
             entity = mediator.getCurrentDbEntity();
@@ -60,30 +61,35 @@ public class ShowGraphEntityAction exten
         else if (mediator.getCurrentObjEntity() != null) {
             entity = mediator.getCurrentObjEntity();
         }
-        
+
         if (entity != null) {
             showEntity(entity);
         }
     }
-    
+
     @Override
-    public boolean enableForPath(ProjectPath obj) {
-        return obj.getObject() instanceof Entity;
+    public boolean enableForPath(ConfigurationNode object) {
+        return object instanceof Entity;
     }
-    
+
     void showEntity(Entity entity) {
-        //we're always in same domain
-        EditorView editor = ((CayenneModelerFrame) Application.getInstance()
+        // we're always in same domain
+        EditorView editor = ((CayenneModelerFrame) Application
+                .getInstance()
                 .getFrameController()
                 .getView()).getView();
-        
+
         editor.getProjectTreeView().getSelectionModel().setSelectionPath(
-                editor.getProjectTreeView().getSelectionPath().getParentPath().getParentPath());
+                editor
+                        .getProjectTreeView()
+                        .getSelectionPath()
+                        .getParentPath()
+                        .getParentPath());
         DomainDisplayEvent event = new EntityDisplayEvent(
                 editor.getProjectTreeView(),
                 entity,
                 entity.getDataMap(),
-                (DataChannelDescriptor)getProjectController().getProject().getRootNode());
+                (DataChannelDescriptor) getProjectController().getProject().getRootNode());
         getProjectController().fireDomainDisplayEvent(event);
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneAction.java?rev=924267&r1=924266&r2=924267&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneAction.java Wed Mar 17 13:11:38 2010
@@ -30,10 +30,10 @@ import javax.swing.JCheckBoxMenuItem;
 import javax.swing.JMenuItem;
 import javax.swing.KeyStroke;
 
+import org.apache.cayenne.configuration.ConfigurationNode;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.ProjectController;
 import org.apache.cayenne.modeler.dialog.ErrorDebugDialog;
-import org.apache.cayenne.project.ProjectPath;
 import org.apache.cayenne.project2.Project;
 import org.apache.cayenne.util.Util;
 
@@ -143,7 +143,7 @@ public abstract class CayenneAction exte
      * path" - a path on the project tree to a currently selected object. Default
      * implementation simply returns <code>false</code>.
      */
-    public boolean enableForPath(ProjectPath obj) {
+    public boolean enableForPath(ConfigurationNode object) {
         return false;
     }
 

Modified: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/CayenneProjectModule.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/CayenneProjectModule.java?rev=924267&r1=924266&r2=924267&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/CayenneProjectModule.java (original)
+++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/CayenneProjectModule.java Wed Mar 17 13:11:38 2010
@@ -41,5 +41,6 @@ public class CayenneProjectModule implem
         binder.bind(ProjectUpgrader.class).to(ProjectUpgrader_V6.class).in(
                 Scopes.SINGLETON);
         binder.bind(ProjectValidator.class).to(DefaultProjectValidator.class).in(Scopes.SINGLETON);
+        binder.bind(ConfigurationNodeParentGetter.class).to(DefaultConfigurationNodeParentGetter.class).in(Scopes.SINGLETON);
     }
 }

Copied: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/ConfigurationNodeParentGetter.java (from r923185, cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/MultipleObjectsDisplayListener.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/ConfigurationNodeParentGetter.java?p2=cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/ConfigurationNodeParentGetter.java&p1=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/MultipleObjectsDisplayListener.java&r1=923185&r2=924267&rev=924267&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/MultipleObjectsDisplayListener.java (original)
+++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/ConfigurationNodeParentGetter.java Wed Mar 17 13:11:38 2010
@@ -16,16 +16,12 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.modeler.event;
+package org.apache.cayenne.project2;
 
-import java.util.EventListener;
+import org.apache.cayenne.configuration.ConfigurationNode;
+
+public interface ConfigurationNodeParentGetter {
+
+    ConfigurationNode getParent(ConfigurationNode node);
 
-/**
- * Listener for multiple objects selections 
- */
-public interface MultipleObjectsDisplayListener extends EventListener {
-    /**
-     * Invoked when a new set of objects was displayed
-     */
-    public void currentObjectsChanged(MultipleObjectsDisplayEvent e);
 }

Added: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/DefaultConfigurationNodeParentGetter.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/DefaultConfigurationNodeParentGetter.java?rev=924267&view=auto
==============================================================================
--- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/DefaultConfigurationNodeParentGetter.java (added)
+++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project2/DefaultConfigurationNodeParentGetter.java Wed Mar 17 13:11:38 2010
@@ -0,0 +1,117 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+package org.apache.cayenne.project2;
+
+import org.apache.cayenne.configuration.BaseConfigurationNodeVisitor;
+import org.apache.cayenne.configuration.ConfigurationNode;
+import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
+import org.apache.cayenne.configuration.DataNodeDescriptor;
+import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.DbAttribute;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.DbRelationship;
+import org.apache.cayenne.map.Embeddable;
+import org.apache.cayenne.map.EmbeddableAttribute;
+import org.apache.cayenne.map.ObjAttribute;
+import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.map.ObjRelationship;
+import org.apache.cayenne.map.Procedure;
+import org.apache.cayenne.map.ProcedureParameter;
+import org.apache.cayenne.query.Query;
+
+public class DefaultConfigurationNodeParentGetter implements ConfigurationNodeParentGetter {
+
+    private ConfigurationNodeVisitor<ConfigurationNode> parentGetter;
+
+    public DefaultConfigurationNodeParentGetter() {
+        parentGetter = new ParentGetter();
+    }
+
+    public ConfigurationNode getParent(ConfigurationNode node) {
+        return node.acceptVisitor(parentGetter);
+    }
+
+    class ParentGetter extends BaseConfigurationNodeVisitor<ConfigurationNode> {
+
+        @Override
+        public ConfigurationNode visitDataMap(DataMap dataMap) {
+            return dataMap.getDataChannelDescriptor();
+        }
+
+        @Override
+        public ConfigurationNode visitDataNodeDescriptor(DataNodeDescriptor nodeDescriptor) {
+            return nodeDescriptor.getDataChannelDescriptor();
+        }
+
+        @Override
+        public ConfigurationNode visitDbAttribute(DbAttribute attribute) {
+            return (ConfigurationNode) attribute.getParent();
+        }
+
+        @Override
+        public ConfigurationNode visitDbEntity(DbEntity entity) {
+            return entity.getDataMap();
+        }
+
+        @Override
+        public ConfigurationNode visitDbRelationship(DbRelationship relationship) {
+            return (ConfigurationNode) relationship.getParent();
+        }
+
+        @Override
+        public ConfigurationNode visitEmbeddable(Embeddable embeddable) {
+            return embeddable.getDataMap();
+        }
+
+        @Override
+        public ConfigurationNode visitEmbeddableAttribute(EmbeddableAttribute attribute) {
+            return attribute.getEmbeddable();
+        }
+
+        @Override
+        public ConfigurationNode visitObjAttribute(ObjAttribute attribute) {
+            return (ConfigurationNode) attribute.getParent();
+        }
+
+        @Override
+        public ConfigurationNode visitObjEntity(ObjEntity entity) {
+            return (ConfigurationNode) entity.getParent();
+        }
+
+        @Override
+        public ConfigurationNode visitObjRelationship(ObjRelationship relationship) {
+            return (ConfigurationNode) relationship.getParent();
+        }
+
+        @Override
+        public ConfigurationNode visitProcedure(Procedure procedure) {
+            return (ConfigurationNode) procedure.getParent();
+        }
+
+        @Override
+        public ConfigurationNode visitProcedureParameter(ProcedureParameter parameter) {
+            return (ConfigurationNode) parameter.getParent();
+        }
+
+        @Override
+        public ConfigurationNode visitQuery(Query query) {
+            return query.getDataMap();
+        }
+    }
+}