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 2008/03/15 11:44:45 UTC

svn commit: r637388 - in /cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler: action/ dialog/ editor/ editor/dbentity/ event/

Author: aadamchik
Date: Sat Mar 15 03:44:43 2008
New Revision: 637388

URL: http://svn.apache.org/viewvc?rev=637388&view=rev
Log:
CAY-1010 Entity Tab switching on new entity creation

Modified:
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDbEntityAction.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/FindDialog.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ExistingSelectionProcessor.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTabbedView.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTabbedView.java
    cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/EntityDisplayEvent.java

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDbEntityAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDbEntityAction.java?rev=637388&r1=637387&r2=637388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDbEntityAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDbEntityAction.java Sat Mar 15 03:44:43 2008
@@ -66,6 +66,7 @@
         EntityDisplayEvent displayEvent = new EntityDisplayEvent(this, entity, mediator
                 .getCurrentDataMap(), mediator.getCurrentDataNode(), mediator
                 .getCurrentDataDomain());
+        displayEvent.setMainTabFocus(true);
         mediator.fireDbEntityDisplayEvent(displayEvent);
     }
 

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java?rev=637388&r1=637387&r2=637388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateObjEntityAction.java Sat Mar 15 03:44:43 2008
@@ -118,6 +118,7 @@
                 dataMap,
                 mediator.getCurrentDataNode(),
                 mediator.getCurrentDataDomain());
+        displayEvent.setMainTabFocus(true);
         mediator.fireObjEntityDisplayEvent(displayEvent);
     }
 

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/FindDialog.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/FindDialog.java?rev=637388&r1=637387&r2=637388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/FindDialog.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/FindDialog.java Sat Mar 15 03:44:43 2008
@@ -137,7 +137,7 @@
                         (Entity) path[path.length - 1],
                         (DataMap) path[path.length - 2],
                         (DataDomain) path[path.length - 3]);
-                event.setSearched(true);
+                event.setMainTabFocus(true);
 
                 if (path[path.length - 1] instanceof ObjEntity)
                     editor.getObjDetailView().currentObjEntityChanged(event);
@@ -161,7 +161,7 @@
                             (Entity) path[path.length - 2],
                             (DataMap) path[path.length - 3],
                             (DataDomain) path[path.length - 4]);
-                    event.setSearched(true);
+                    event.setMainTabFocus(true);
                     editor.getDbDetailView().currentDbAttributeChanged(event);
                 }
 
@@ -172,7 +172,7 @@
                             (Entity) path[path.length - 2],
                             (DataMap) path[path.length - 3],
                             (DataDomain) path[path.length - 4]);
-                    event.setSearched(true);
+                    event.setMainTabFocus(true);
                     editor.getObjDetailView().currentObjAttributeChanged(event);
                 }
 
@@ -184,7 +184,7 @@
                             (DataMap) path[path.length - 3],
                             (DataDomain) path[path.length - 4]
                     );
-                    event.setSearched(true);
+                    event.setMainTabFocus(true);
                     editor.getDbDetailView().currentDbRelationshipChanged(event);
                 }
             }
@@ -197,7 +197,7 @@
                             (DataMap) path[path.length - 3],
                             (DataDomain) path[path.length - 4]
                     );
-                    event.setSearched(true);
+                    event.setMainTabFocus(true);
                     editor.getObjDetailView().currentObjRelationshipChanged(event);
                 }
         }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ExistingSelectionProcessor.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ExistingSelectionProcessor.java?rev=637388&r1=637387&r2=637388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ExistingSelectionProcessor.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ExistingSelectionProcessor.java Sat Mar 15 03:44:43 2008
@@ -23,7 +23,7 @@
 import java.util.EventObject;
 
 /** 
- * Callback interface for panes of detail views to process existing 
+ * Callback interface for panels of detail views to process existing 
  * selections. When tab is selected processExistingSelection() is 
  * called to reset the state if the tab has any rows selected.
  * For example, this is useful when we want to reset the state of the 

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java?rev=637388&r1=637387&r2=637388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java Sat Mar 15 03:44:43 2008
@@ -17,7 +17,6 @@
  *  under the License.
  ****************************************************************/
 
-
 package org.apache.cayenne.modeler.editor;
 
 import java.awt.BorderLayout;
@@ -68,9 +67,6 @@
 
 /**
  * Detail view of the ObjEntity properties.
- * 
- * @author Michael Misha Shengaout
- * @author Andrus Adamchik
  */
 public class ObjEntityTab extends JPanel implements ObjEntityDisplayListener,
         ExistingSelectionProcessor {
@@ -205,7 +201,7 @@
         builder.append("Qualifier:", qualifier.getComponent(), 3);
         builder.append("Read-Only:", readOnly, 3);
         builder.append("Optimistic Locking:", optimisticLocking, 3);
-        //add callback-related stuff
+        // add callback-related stuff
         builder.append("Exclude superclass listeners:", excludeSuperclassListeners, 3);
         builder.append("Exclude default listeners:", excludeDefaultListeners, 3);
 
@@ -319,31 +315,29 @@
             }
         });
 
-        excludeSuperclassListeners.addActionListener(
-                new ActionListener() {
+        excludeSuperclassListeners.addActionListener(new ActionListener() {
+
+            public void actionPerformed(ActionEvent e) {
+                ObjEntity entity = mediator.getCurrentObjEntity();
+                if (entity != null) {
+                    entity.setExcludingSuperclassListeners(excludeSuperclassListeners
+                            .isSelected());
+                    mediator.fireObjEntityEvent(new EntityEvent(this, entity));
+                }
+            }
+        });
+
+        excludeDefaultListeners.addActionListener(new ActionListener() {
 
-                    public void actionPerformed(ActionEvent e) {
-                        ObjEntity entity = mediator.getCurrentObjEntity();
-                        if (entity != null) {
-                            entity.setExcludingSuperclassListeners(excludeSuperclassListeners.isSelected());
-                            mediator.fireObjEntityEvent(new EntityEvent(this, entity));
-                        }
-                    }
-                }
-        );
-
-        excludeDefaultListeners.addActionListener(
-                new ActionListener() {
-
-                    public void actionPerformed(ActionEvent e) {
-                        ObjEntity entity = mediator.getCurrentObjEntity();
-                        if (entity != null) {
-                            entity.setExcludingDefaultListeners(excludeDefaultListeners.isSelected());
-                            mediator.fireObjEntityEvent(new EntityEvent(this, entity));
-                        }
-                    }
+            public void actionPerformed(ActionEvent e) {
+                ObjEntity entity = mediator.getCurrentObjEntity();
+                if (entity != null) {
+                    entity.setExcludingDefaultListeners(excludeDefaultListeners
+                            .isSelected());
+                    mediator.fireObjEntityEvent(new EntityEvent(this, entity));
                 }
-        );
+            }
+        });
 
         serverOnly.addActionListener(new ActionListener() {
 
@@ -361,7 +355,7 @@
     /**
      * Updates the view from the current model state. Invoked when a currently displayed
      * ObjEntity is changed.
-     *
+     * 
      * @param entity current entity
      */
     private void initFromModel(final ObjEntity entity) {
@@ -544,7 +538,7 @@
             ClassNameUpdater nameUpdater = new ClassNameUpdater(Application
                     .getInstance()
                     .getFrameController(), entity);
-            
+
             if (nameUpdater.doNameUpdate()) {
                 className.setText(entity.getClassName());
                 clientClassName.setText(entity.getClientClassName());
@@ -587,6 +581,7 @@
     }
 
     public void processExistingSelection(EventObject e) {
+
         EntityDisplayEvent ede = new EntityDisplayEvent(this, mediator
                 .getCurrentObjEntity(), mediator.getCurrentDataMap(), mediator
                 .getCurrentDataDomain());
@@ -600,6 +595,7 @@
         }
 
         initFromModel(entity);
+        name.getComponent().requestFocusInWindow();
     }
 
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTabbedView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTabbedView.java?rev=637388&r1=637387&r2=637388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTabbedView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTabbedView.java Sat Mar 15 03:44:43 2008
@@ -129,7 +129,7 @@
 
     public void currentObjEntityChanged(EntityDisplayEvent e) {
         Entity entity = e.getEntity();
-        if (e.isSearched() && entity instanceof ObjEntity) {
+        if (e.isMainTabFocus() && entity instanceof ObjEntity) {
             if (getSelectedComponent() != entityPanel) {
                 setSelectedComponent(entityPanel);
                 entityPanel.setVisible(true);

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java?rev=637388&r1=637387&r2=637388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java Sat Mar 15 03:44:43 2008
@@ -24,7 +24,6 @@
 import java.awt.event.ItemEvent;
 import java.awt.event.ItemListener;
 import java.util.EventObject;
-import java.util.Iterator;
 
 import javax.swing.DefaultComboBoxModel;
 import javax.swing.JComboBox;
@@ -197,6 +196,7 @@
         }
 
         if (!e.isEntityChanged()) {
+            name.getComponent().requestFocusInWindow();
             return;
         }
 
@@ -209,9 +209,7 @@
             type = PK_CUSTOM_SEQUENCE_GENERATOR;
         }
         else {
-            Iterator it = entity.getPrimaryKeys().iterator();
-            while (it.hasNext()) {
-                DbAttribute a = (DbAttribute) it.next();
+            for (DbAttribute a : entity.getPrimaryKeys()) {
                 if (a.isGenerated()) {
                     type = PK_DB_GENERATOR;
                     break;
@@ -223,9 +221,11 @@
         schema.getComponent().setEnabled(true);
         pkGeneratorDetail.setVisible(true);
         pkGeneratorType.setVisible(true);
-        
+
         pkGeneratorType.setSelectedItem(type);
         pkGeneratorDetailLayout.show(pkGeneratorDetail, type);
+
+        name.getComponent().requestFocusInWindow();
     }
 
     void setEntityName(String newName) {

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTabbedView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTabbedView.java?rev=637388&r1=637387&r2=637388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTabbedView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTabbedView.java Sat Mar 15 03:44:43 2008
@@ -28,7 +28,9 @@
 
 import org.apache.cayenne.map.Attribute;
 import org.apache.cayenne.map.DbAttribute;
+import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.DbRelationship;
+import org.apache.cayenne.map.Entity;
 import org.apache.cayenne.map.Relationship;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.ProjectController;
@@ -48,7 +50,7 @@
 
     protected ProjectController mediator;
 
-    protected DbEntityTab entityPanel;
+    protected Component entityPanel;
     protected DbEntityAttributeTab attributesPanel;
     protected DbEntityRelationshipTab relationshipsPanel;
 
@@ -65,8 +67,8 @@
         // note that those panels that have no internal scrollable tables
         // must be wrapped in a scroll pane
 
-        entityPanel = new DbEntityTab(mediator);
-        addTab("Entity", new JScrollPane(entityPanel));
+        entityPanel = new JScrollPane(new DbEntityTab(mediator));
+        addTab("Entity", entityPanel);
         attributesPanel = new DbEntityAttributeTab(mediator);
         addTab("Attributes", attributesPanel);
         relationshipsPanel = new DbEntityRelationshipTab(mediator);
@@ -98,6 +100,14 @@
 
     /** If entity is null hides it's contents, otherwise makes it visible. */
     public void currentDbEntityChanged(EntityDisplayEvent e) {
+        Entity entity = e.getEntity();
+        if (e.isMainTabFocus() && entity instanceof DbEntity) {
+            if (getSelectedComponent() != entityPanel) {
+                setSelectedComponent(entityPanel);
+                entityPanel.setVisible(true);
+            }
+        }
+        
         resetRemoveButtons();
         setVisible(e.getEntity() != null);
     }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/EntityDisplayEvent.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/EntityDisplayEvent.java?rev=637388&r1=637387&r2=637388&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/EntityDisplayEvent.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/EntityDisplayEvent.java Sat Mar 15 03:44:43 2008
@@ -26,92 +26,72 @@
 
 /**
  * Represents a display event of an Entity.
- * 
- * @author Misha Shengaout
- * @author Andrus Adamchik
  */
 public class EntityDisplayEvent extends DataMapDisplayEvent {
-	protected Entity entity;
 
-    /** True if the event is generated when an entity is beeing searched for */
-    protected boolean searched;
+    protected Entity entity;
 
-	/** True if different from current entity */
-	protected boolean entityChanged = true;
-	protected boolean unselectAttributes;
-
-	public EntityDisplayEvent(Object src, Entity entity) {
-		this(src, entity, null, null, null);
-	}
-
-	public EntityDisplayEvent(
-		Object src,
-		Entity entity,
-		DataMap map,
-		DataDomain domain) {
-
-		this(src, entity, map, null, domain);
-	}
-
-	public EntityDisplayEvent(
-		Object src,
-		Entity entity,
-		DataMap map,
-		DataNode node,
-		DataDomain domain) {
-
-		super(src, map, domain, node);
-		this.entity = entity;
-		setDataMapChanged(false);
-	}
+    /**
+     * If true, the event causes entity editor to switch to the main entity tab.
+     */
+    protected boolean mainTabFocus;
 
-	/** 
-     * Returns entity associated with this event. 
+    /**
+     * True if different from current entity.
      */
-	public Entity getEntity() {
-		return entity;
-	}
-
-	/** True if entity different from current entity. */
-	public boolean isEntityChanged() {
-		return entityChanged;
-	}
-	public void setEntityChanged(boolean temp) {
-		entityChanged = temp;
-	}
-
-	/**
-	 * Returns the unselectAttributes.
-	 * @return boolean
-	 */
-	public boolean isUnselectAttributes() {
-		return unselectAttributes;
-	}
-
-	/**
-	 * Sets the unselectAttributes.
-	 * @param unselectAttributes The unselectAttributes to set
-	 */
-	public void setUnselectAttributes(boolean unselectAttributes) {
-		this.unselectAttributes = unselectAttributes;
-	}
-
-	/**
-	 * Sets the entity.
-	 * @param entity The entity to set
-	 */
-	public void setEntity(Entity entity) {
-		this.entity = entity;
-	}
+    protected boolean entityChanged = true;
+    protected boolean unselectAttributes;
+
+    public EntityDisplayEvent(Object src, Entity entity) {
+        this(src, entity, null, null, null);
+    }
+
+    public EntityDisplayEvent(Object src, Entity entity, DataMap map, DataDomain domain) {
+
+        this(src, entity, map, null, domain);
+    }
+
+    public EntityDisplayEvent(Object src, Entity entity, DataMap map, DataNode node,
+            DataDomain domain) {
+
+        super(src, map, domain, node);
+        this.entity = entity;
+        setDataMapChanged(false);
+    }
 
     /**
-     * Sets the searched.
-     * @param searched
+     * Returns entity associated with this event.
      */
-    public void setSearched(boolean searched) {
-        this.searched = searched;
+    public Entity getEntity() {
+        return entity;
+    }
+
+    /** True if entity different from current entity. */
+    public boolean isEntityChanged() {
+        return entityChanged;
+    }
+
+    public void setEntityChanged(boolean temp) {
+        entityChanged = temp;
+    }
+
+    public boolean isUnselectAttributes() {
+        return unselectAttributes;
+    }
+
+    public void setUnselectAttributes(boolean unselectAttributes) {
+        this.unselectAttributes = unselectAttributes;
+    }
+
+    public void setEntity(Entity entity) {
+        this.entity = entity;
     }
-    public boolean isSearched() {
-        return searched;
+
+    public void setMainTabFocus(boolean searched) {
+        this.mainTabFocus = searched;
+    }
+
+    public boolean isMainTabFocus() {
+        return mainTabFocus;
     }
 }