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;
}
}