Author: johnthuss
Date: Sun Jul 15 20:16:43 2012
New Revision: 1361783

URL: http://svn.apache.org/viewvc?rev=1361783&view=rev
Log:
CAY-1647 Easily switch to/from ObjEntity and DbEntity in Modeler

Added:
    
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DbEntityCounterpartAction.java
    
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntityCounterpartAction.java
Modified:
    cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
    
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DefaultActionManager.java
    
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeTab.java
    
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipTab.java
    
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java
    
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityAttributeTab.java
    
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityRelationshipTab.java
    
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java

Modified: cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt?rev=1361783&r1=1361782&r2=1361783&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt Sun Jul 15 
20:16:43 2012
@@ -17,6 +17,7 @@ CAY-1717 [PATCH] Implement JDBC compatib
 CAY-1718 Remove everything deprecated in 3.1
 CAY-1724 Add 'Property' class for easier and better Expression creation
 CAY-1646 Synchronize tabs in Modeler between ObjEntity and DbEntity editor 
panes
+CAY-1647 Easily switch to/from ObjEntity and DbEntity in Modeler
 
 Bug Fixes:
 

Added: 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DbEntityCounterpartAction.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DbEntityCounterpartAction.java?rev=1361783&view=auto
==============================================================================
--- 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DbEntityCounterpartAction.java
 (added)
+++ 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DbEntityCounterpartAction.java
 Sun Jul 15 20:16:43 2012
@@ -0,0 +1,126 @@
+/*****************************************************************
+ *   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.modeler.action;
+
+import java.awt.event.ActionEvent;
+import java.util.Iterator;
+
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.TreePath;
+
+import org.apache.cayenne.configuration.ConfigurationNode;
+import org.apache.cayenne.configuration.DataChannelDescriptor;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.Entity;
+import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.modeler.Application;
+import org.apache.cayenne.modeler.CayenneModelerFrame;
+import org.apache.cayenne.modeler.ProjectController;
+import org.apache.cayenne.modeler.ProjectTreeModel;
+import org.apache.cayenne.modeler.editor.EditorView;
+import org.apache.cayenne.modeler.event.EntityDisplayEvent;
+import org.apache.cayenne.modeler.util.CayenneAction;
+
+public class DbEntityCounterpartAction extends CayenneAction {
+
+    public static String getActionName() {
+        return "View related ObjEntity";
+    }
+
+    public DbEntityCounterpartAction(Application application) {
+        super(getActionName(), application);
+    }
+
+    public String getIconName() {
+        return "icon-move_up.gif";
+    }
+
+    /**
+     * @see 
org.apache.cayenne.modeler.util.CayenneAction#performAction(ActionEvent)
+     */
+    public void performAction(ActionEvent e) {
+        viewCounterpartEntity();
+    }
+
+    protected void viewCounterpartEntity() {
+        ProjectController mediator = getProjectController();
+
+        DbEntity dbEntity = mediator.getCurrentDbEntity();
+
+        if (dbEntity == null) {
+            return;
+        }
+        
+        Iterator<ObjEntity> it = 
dbEntity.getDataMap().getMappedEntities(dbEntity).iterator();
+        if (!it.hasNext()) {
+            return;
+        }
+
+        ObjEntity entity = it.next();
+        
+        TreePath path = buildTreePath(entity);
+        
editor().getProjectTreeView().getSelectionModel().setSelectionPath(path);
+        
+        EntityDisplayEvent event = new EntityDisplayEvent(
+                editor().getProjectTreeView(),
+                entity,
+                entity.getDataMap(),
+                (DataChannelDescriptor) 
getProjectController().getProject().getRootNode());
+        getProjectController().fireObjEntityDisplayEvent(event);
+    }
+    
+    public static EditorView editor() {
+        return ((CayenneModelerFrame) Application
+                .getInstance()
+                .getFrameController()
+                .getView()).getView();
+    }
+    
+    /**
+     * Builds a tree path for a given path. Urgent for later selection.
+     * 
+     * @param path
+     * @return tree path
+     */
+    public static TreePath buildTreePath(Entity entity) {
+        DataChannelDescriptor domain = (DataChannelDescriptor) Application
+                .getInstance()
+                .getProject()
+                .getRootNode();
+        
+        Object[] path = new Object[] {domain, entity.getDataMap(), entity};
+
+        Object[] mutableTreeNodes = new Object[path.length];
+        mutableTreeNodes[0] = ((ProjectTreeModel) 
editor().getProjectTreeView().getModel())
+                .getRootNode();
+
+        Object[] helper;
+        for (int i = 1; i < path.length; i++) {
+            helper = new Object[i];
+            for (int j = 0; j < i;) {
+                helper[j] = path[++j];
+            }
+            mutableTreeNodes[i] = ((ProjectTreeModel) editor()
+                    .getProjectTreeView()
+                    .getModel()).getNodeForObjectPath(helper);
+        }
+        return new TreePath(mutableTreeNodes);
+    }
+}

Modified: 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DefaultActionManager.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DefaultActionManager.java?rev=1361783&r1=1361782&r2=1361783&view=diff
==============================================================================
--- 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DefaultActionManager.java
 (original)
+++ 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DefaultActionManager.java
 Sun Jul 15 20:16:43 2012
@@ -94,6 +94,8 @@ public class DefaultActionManager implem
         // end callback-related actions
         registerAction(new DbEntitySyncAction(application));
         registerAction(new ObjEntitySyncAction(application));
+        registerAction(new DbEntityCounterpartAction(application));
+        registerAction(new ObjEntityCounterpartAction(application));
         registerAction(new ImportDBAction(application));
         registerAction(new InferRelationshipsAction(application));
         registerAction(new ImportEOModelAction(application));
@@ -178,6 +180,7 @@ public class DefaultActionManager implem
                 ObjEntitySyncAction.class.getName(),
                 CreateAttributeAction.class.getName(),
                 CreateRelationshipAction.class.getName(),
+                ObjEntityCounterpartAction.class.getName(),
                 ShowGraphEntityAction.class.getName()));
 
         DB_ENTITY_ACTIONS = new HashSet<String>(DATA_MAP_ACTIONS);
@@ -186,6 +189,7 @@ public class DefaultActionManager implem
                 CreateAttributeAction.class.getName(),
                 CreateRelationshipAction.class.getName(),
                 DbEntitySyncAction.class.getName(),
+                DbEntityCounterpartAction.class.getName(),
                 ShowGraphEntityAction.class.getName()));
 
         EMBEDDABLE_ACTIONS = new HashSet<String>(DATA_MAP_ACTIONS);

Added: 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntityCounterpartAction.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntityCounterpartAction.java?rev=1361783&view=auto
==============================================================================
--- 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntityCounterpartAction.java
 (added)
+++ 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntityCounterpartAction.java
 Sun Jul 15 20:16:43 2012
@@ -0,0 +1,84 @@
+/*****************************************************************
+ *   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.modeler.action;
+
+import java.awt.event.ActionEvent;
+import java.util.Iterator;
+
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.TreePath;
+
+import org.apache.cayenne.configuration.ConfigurationNode;
+import org.apache.cayenne.configuration.DataChannelDescriptor;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.Entity;
+import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.modeler.Application;
+import org.apache.cayenne.modeler.CayenneModelerFrame;
+import org.apache.cayenne.modeler.ProjectController;
+import org.apache.cayenne.modeler.ProjectTreeModel;
+import org.apache.cayenne.modeler.editor.EditorView;
+import org.apache.cayenne.modeler.event.EntityDisplayEvent;
+import org.apache.cayenne.modeler.util.CayenneAction;
+
+public class ObjEntityCounterpartAction extends CayenneAction {
+
+    public static String getActionName() {
+        return "View related DbEntity";
+    }
+
+    public ObjEntityCounterpartAction(Application application) {
+        super(getActionName(), application);
+    }
+
+    public String getIconName() {
+        return "icon-move_down.gif";
+    }
+
+    /**
+     * @see 
org.apache.cayenne.modeler.util.CayenneAction#performAction(ActionEvent)
+     */
+    public void performAction(ActionEvent e) {
+        viewCounterpartEntity();
+    }
+
+    protected void viewCounterpartEntity() {
+        ProjectController mediator = getProjectController();
+
+        ObjEntity objEntity = mediator.getCurrentObjEntity();
+
+        if (objEntity == null) {
+            return;
+        }
+        
+        DbEntity entity = objEntity.getDbEntity();
+        
+        TreePath path = DbEntityCounterpartAction.buildTreePath(entity);
+        
DbEntityCounterpartAction.editor().getProjectTreeView().getSelectionModel().setSelectionPath(path);
+        
+        EntityDisplayEvent event = new EntityDisplayEvent(
+                DbEntityCounterpartAction.editor().getProjectTreeView(),
+                entity,
+                entity.getDataMap(),
+                (DataChannelDescriptor) 
getProjectController().getProject().getRootNode());
+        getProjectController().fireDbEntityDisplayEvent(event);
+    }
+    
+}

Modified: 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeTab.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeTab.java?rev=1361783&r1=1361782&r2=1361783&view=diff
==============================================================================
--- 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeTab.java
 (original)
+++ 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeTab.java
 Sun Jul 15 20:16:43 2012
@@ -63,6 +63,7 @@ import org.apache.cayenne.modeler.action
 import org.apache.cayenne.modeler.action.CopyAttributeAction;
 import org.apache.cayenne.modeler.action.CreateAttributeAction;
 import org.apache.cayenne.modeler.action.CutAttributeAction;
+import org.apache.cayenne.modeler.action.ObjEntityCounterpartAction;
 import org.apache.cayenne.modeler.action.ObjEntitySyncAction;
 import org.apache.cayenne.modeler.action.PasteAction;
 import org.apache.cayenne.modeler.action.RemoveAttributeAction;
@@ -105,6 +106,7 @@ public class ObjEntityAttributeTab exten
 
         
toolBar.add(actionManager.getAction(CreateAttributeAction.class).buildButton());
         
toolBar.add(actionManager.getAction(ObjEntitySyncAction.class).buildButton());
+        
toolBar.add(actionManager.getAction(ObjEntityCounterpartAction.class).buildButton());
         toolBar.addSeparator();
 
         Icon ico = ModelerUtil.buildIcon("icon-info.gif");

Modified: 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipTab.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipTab.java?rev=1361783&r1=1361782&r2=1361783&view=diff
==============================================================================
--- 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipTab.java
 (original)
+++ 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipTab.java
 Sun Jul 15 20:16:43 2012
@@ -62,6 +62,7 @@ import org.apache.cayenne.modeler.action
 import org.apache.cayenne.modeler.action.CopyRelationshipAction;
 import org.apache.cayenne.modeler.action.CreateRelationshipAction;
 import org.apache.cayenne.modeler.action.CutRelationshipAction;
+import org.apache.cayenne.modeler.action.ObjEntityCounterpartAction;
 import org.apache.cayenne.modeler.action.ObjEntitySyncAction;
 import org.apache.cayenne.modeler.action.PasteAction;
 import org.apache.cayenne.modeler.action.RemoveRelationshipAction;
@@ -125,6 +126,7 @@ public class ObjEntityRelationshipTab ex
                         .getAction(CreateRelationshipAction.class)
                         .buildButton());
         
toolBar.add(actionManager.getAction(ObjEntitySyncAction.class).buildButton());
+        
toolBar.add(actionManager.getAction(ObjEntityCounterpartAction.class).buildButton());
 
         toolBar.addSeparator();
 

Modified: 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java?rev=1361783&r1=1361782&r2=1361783&view=diff
==============================================================================
--- 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java
 (original)
+++ 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java
 Sun Jul 15 20:16:43 2012
@@ -53,6 +53,7 @@ import org.apache.cayenne.modeler.Projec
 import org.apache.cayenne.modeler.action.ActionManager;
 import org.apache.cayenne.modeler.action.CreateAttributeAction;
 import org.apache.cayenne.modeler.action.CreateRelationshipAction;
+import org.apache.cayenne.modeler.action.ObjEntityCounterpartAction;
 import org.apache.cayenne.modeler.action.ObjEntitySyncAction;
 import org.apache.cayenne.modeler.dialog.objentity.ClassNameUpdater;
 import org.apache.cayenne.modeler.dialog.validator.DuplicatedAttributesDialog;
@@ -141,6 +142,7 @@ public class ObjEntityTab extends JPanel
                         .buildButton());
         toolBar.addSeparator();
         
toolBar.add(actionManager.getAction(ShowGraphEntityAction.class).buildButton());
+        
toolBar.add(actionManager.getAction(ObjEntityCounterpartAction.class).buildButton());
         add(toolBar, BorderLayout.NORTH);
 
         // create widgets

Modified: 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityAttributeTab.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityAttributeTab.java?rev=1361783&r1=1361782&r2=1361783&view=diff
==============================================================================
--- 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityAttributeTab.java
 (original)
+++ 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityAttributeTab.java
 Sun Jul 15 20:16:43 2012
@@ -45,6 +45,7 @@ import org.apache.cayenne.modeler.action
 import org.apache.cayenne.modeler.action.CreateAttributeAction;
 import org.apache.cayenne.modeler.action.CreateObjEntityAction;
 import org.apache.cayenne.modeler.action.CutAttributeAction;
+import org.apache.cayenne.modeler.action.DbEntityCounterpartAction;
 import org.apache.cayenne.modeler.action.DbEntitySyncAction;
 import org.apache.cayenne.modeler.action.PasteAction;
 import org.apache.cayenne.modeler.action.RemoveAttributeAction;
@@ -55,7 +56,6 @@ import org.apache.cayenne.modeler.event.
 import org.apache.cayenne.modeler.event.TablePopupHandler;
 import org.apache.cayenne.modeler.pref.TableColumnPreferences;
 import org.apache.cayenne.modeler.util.CayenneTable;
-import org.apache.cayenne.modeler.util.WidgetFactory;
 import org.apache.cayenne.modeler.util.ModelerUtil;
 import org.apache.cayenne.modeler.util.PanelFactory;
 import org.apache.cayenne.modeler.util.UIUtil;
@@ -99,7 +99,10 @@ public class DbEntityAttributeTab extend
                 .getActionManager()
                 .getAction(DbEntitySyncAction.class)
                 .buildButton());
-
+        toolBar.add(app
+                .getActionManager()
+                .getAction(DbEntityCounterpartAction.class)
+                .buildButton());
         toolBar.addSeparator();
 
         toolBar.addSeparator();

Modified: 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityRelationshipTab.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityRelationshipTab.java?rev=1361783&r1=1361782&r2=1361783&view=diff
==============================================================================
--- 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityRelationshipTab.java
 (original)
+++ 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityRelationshipTab.java
 Sun Jul 15 20:16:43 2012
@@ -57,6 +57,7 @@ import org.apache.cayenne.modeler.action
 import org.apache.cayenne.modeler.action.CreateObjEntityAction;
 import org.apache.cayenne.modeler.action.CreateRelationshipAction;
 import org.apache.cayenne.modeler.action.CutRelationshipAction;
+import org.apache.cayenne.modeler.action.DbEntityCounterpartAction;
 import org.apache.cayenne.modeler.action.DbEntitySyncAction;
 import org.apache.cayenne.modeler.action.PasteAction;
 import org.apache.cayenne.modeler.action.RemoveRelationshipAction;
@@ -129,6 +130,7 @@ public class DbEntityRelationshipTab ext
                         .getAction(CreateRelationshipAction.class)
                         .buildButton());
         
toolBar.add(actionManager.getAction(DbEntitySyncAction.class).buildButton());
+        
toolBar.add(actionManager.getAction(DbEntityCounterpartAction.class).buildButton());
 
         toolBar.addSeparator();
 

Modified: 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java?rev=1361783&r1=1361782&r2=1361783&view=diff
==============================================================================
--- 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java
 (original)
+++ 
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java
 Sun Jul 15 20:16:43 2012
@@ -43,6 +43,7 @@ import org.apache.cayenne.modeler.action
 import org.apache.cayenne.modeler.action.CreateAttributeAction;
 import org.apache.cayenne.modeler.action.CreateObjEntityAction;
 import org.apache.cayenne.modeler.action.CreateRelationshipAction;
+import org.apache.cayenne.modeler.action.DbEntityCounterpartAction;
 import org.apache.cayenne.modeler.action.DbEntitySyncAction;
 import org.apache.cayenne.modeler.editor.ExistingSelectionProcessor;
 import org.apache.cayenne.modeler.event.DbEntityDisplayListener;
@@ -105,6 +106,7 @@ public class DbEntityTab extends JPanel 
                         .buildButton());
         toolBar.addSeparator();
         
toolBar.add(actionManager.getAction(ShowGraphEntityAction.class).buildButton());
+        
toolBar.add(actionManager.getAction(DbEntityCounterpartAction.class).buildButton());
 
         // create widgets
         name = new TextAdapter(new JTextField()) {


Reply via email to