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 2013/08/01 20:20:41 UTC
svn commit: r1509364 - in
/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler:
ProjectController.java action/CopyAttributeAction.java
action/RemoveAction.java action/RemoveAttributeAction.java
Author: aadamchik
Date: Thu Aug 1 18:20:41 2013
New Revision: 1509364
URL: http://svn.apache.org/r1509364
Log:
CAY-1857 Problem with hotkeys
patch by Ilya Vasiuk
Modified:
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAttributeAction.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAttributeAction.java
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java?rev=1509364&r1=1509363&r2=1509364&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectController.java Thu Aug 1 18:20:41 2013
@@ -501,7 +501,7 @@ public class ProjectController extends C
/**
* @return Array of selected EmbeddableAttribute
*/
- public EmbeddableAttribute[] getCurrentEmbAttrs() {
+ public EmbeddableAttribute[] getCurrentEmbAttributes() {
return currentState.embAttrs;
}
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAttributeAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAttributeAction.java?rev=1509364&r1=1509363&r2=1509364&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAttributeAction.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAttributeAction.java Thu Aug 1 18:20:41 2013
@@ -74,7 +74,7 @@ public class CopyAttributeAction extends
attrs = getProjectController().getCurrentDbAttributes();
}
if (attrs == null || attrs.length == 0) {
- attrs = getProjectController().getCurrentEmbAttrs();
+ attrs = getProjectController().getCurrentEmbAttributes();
}
if (attrs != null && attrs.length > 0) {
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java?rev=1509364&r1=1509363&r2=1509364&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAction.java Thu Aug 1 18:20:41 2013
@@ -29,32 +29,47 @@ import javax.swing.KeyStroke;
import javax.swing.undo.CompoundEdit;
import javax.swing.undo.UndoableEdit;
+import org.apache.cayenne.configuration.ConfigurationNode;
+import org.apache.cayenne.configuration.DataChannelDescriptor;
+import org.apache.cayenne.configuration.DataNodeDescriptor;
import org.apache.cayenne.configuration.event.DataMapEvent;
import org.apache.cayenne.configuration.event.DataNodeEvent;
import org.apache.cayenne.configuration.event.ProcedureEvent;
+import org.apache.cayenne.configuration.event.ProcedureParameterEvent;
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;
+import org.apache.cayenne.map.CallbackMap;
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.Entity;
+import org.apache.cayenne.map.LifecycleEvent;
+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.map.Relationship;
+import org.apache.cayenne.map.event.AttributeEvent;
+import org.apache.cayenne.map.event.EmbeddableAttributeEvent;
import org.apache.cayenne.map.event.EmbeddableEvent;
import org.apache.cayenne.map.event.EntityEvent;
import org.apache.cayenne.map.event.MapEvent;
+import org.apache.cayenne.map.event.RelationshipEvent;
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.ProjectController;
import org.apache.cayenne.modeler.dialog.ConfirmRemoveDialog;
+import org.apache.cayenne.modeler.editor.ObjCallbackMethod;
+import org.apache.cayenne.modeler.event.CallbackMethodEvent;
+import org.apache.cayenne.modeler.undo.RemoveAttributeUndoableEdit;
import org.apache.cayenne.modeler.undo.RemoveCompoundUndoableEdit;
+import org.apache.cayenne.modeler.undo.RemoveRelationshipUndoableEdit;
import org.apache.cayenne.modeler.undo.RemoveUndoableEdit;
import org.apache.cayenne.modeler.util.CayenneAction;
+import org.apache.cayenne.modeler.util.ProjectUtil;
import org.apache.cayenne.query.AbstractQuery;
import org.apache.cayenne.query.Query;
@@ -113,7 +128,28 @@ public class RemoveAction extends Cayenn
ConfirmRemoveDialog dialog = getConfirmDeleteDialog(allowAsking);
- if (mediator.getCurrentObjEntity() != null) {
+ if(mediator.getCurrentCallbackMethods().length > 0) {
+ removeMethods(mediator, dialog, getProjectController().getCurrentCallbackMethods());
+ }
+ else if(mediator.getCurrentObjRelationships().length > 0) {
+ removeObjRelationships(mediator, dialog, getProjectController().getCurrentObjRelationships());
+ }
+ else if(mediator.getCurrentDbRelationships().length > 0) {
+ removeDBRelationships(mediator, dialog, getProjectController().getCurrentDbRelationships());
+ }
+ else if(mediator.getCurrentObjAttributes().length > 0) {
+ removeObjAttributes(mediator, dialog, getProjectController().getCurrentObjAttributes());
+ }
+ else if(mediator.getCurrentEmbAttributes().length > 0) {
+ removeEmbAttributes(mediator, dialog, getProjectController().getCurrentEmbAttributes());
+ }
+ else if(mediator.getCurrentDbAttributes().length > 0) {
+ removeDbAttributes(mediator, dialog, getProjectController().getCurrentDbAttributes());
+ }
+ else if(mediator.getCurrentProcedureParameters().length > 0) {
+ removeProcedureParameters(mediator.getCurrentProcedure(), mediator.getCurrentProcedureParameters());
+ }
+ else if (mediator.getCurrentObjEntity() != null) {
if (dialog
.shouldDelete("ObjEntity", mediator.getCurrentObjEntity().getName())) {
application.getUndoManager().addEdit(
@@ -220,7 +256,183 @@ public class RemoveAction extends Cayenn
}
- public void removeDataMap(DataMap map) {
+ private void removeProcedureParameters(
+ Procedure procedure,
+ ProcedureParameter[] parameters) {
+ ProjectController mediator = getProjectController();
+
+ for (ProcedureParameter parameter : parameters) {
+
+ procedure.removeCallParameter(parameter.getName());
+
+ ProcedureParameterEvent e = new ProcedureParameterEvent(Application
+ .getFrame(), parameter, MapEvent.REMOVE);
+
+ mediator.fireProcedureParameterEvent(e);
+ }
+ }
+
+ private void removeEmbAttributes(ProjectController mediator,
+ ConfirmRemoveDialog dialog,
+ EmbeddableAttribute[] embAttrs) {
+ if (embAttrs != null && embAttrs.length > 0) {
+ if ((embAttrs.length == 1 && dialog.shouldDelete("DbAttribute", embAttrs[0]
+ .getName()))
+ || (embAttrs.length > 1 && dialog.shouldDelete("selected DbAttributes"))) {
+
+ Embeddable embeddable = mediator.getCurrentEmbeddable();
+
+ application.getUndoManager().addEdit(
+ new RemoveAttributeUndoableEdit(
+ embeddable,
+ embAttrs));
+
+ for (EmbeddableAttribute attrib : embAttrs) {
+ embeddable.removeAttribute(attrib.getName());
+ EmbeddableAttributeEvent e = new EmbeddableAttributeEvent(Application
+ .getFrame(), attrib, embeddable, MapEvent.REMOVE);
+ mediator.fireEmbeddableAttributeEvent(e);
+ }
+
+ ProjectUtil.cleanObjMappings(mediator.getCurrentDataMap());
+ }
+ }
+ }
+
+ private void removeObjAttributes(ProjectController mediator,
+ ConfirmRemoveDialog dialog, ObjAttribute[] objAttrs) {
+ if (objAttrs != null && objAttrs.length > 0) {
+ if ((objAttrs.length == 1 && dialog.shouldDelete("DbAttribute", objAttrs[0]
+ .getName()))
+ || (objAttrs.length > 1 && dialog.shouldDelete("selected DbAttributes"))) {
+
+ ObjEntity entity = mediator.getCurrentObjEntity();
+
+ application.getUndoManager().addEdit(
+ new RemoveAttributeUndoableEdit(
+ (DataChannelDescriptor)mediator.getProject().getRootNode(),
+ mediator.getCurrentDataMap(),
+ entity,
+ objAttrs));
+
+ for (ObjAttribute attrib : objAttrs) {
+ entity.removeAttribute(attrib.getName());
+
+ AttributeEvent e = new AttributeEvent(
+ Application.getFrame(),
+ attrib,
+ entity,
+ MapEvent.REMOVE);
+
+ mediator.fireObjAttributeEvent(e);
+ }
+
+ ProjectUtil.cleanObjMappings(mediator.getCurrentDataMap());
+ }
+ }
+ }
+
+ private void removeDbAttributes(ProjectController mediator,
+ ConfirmRemoveDialog dialog,
+ DbAttribute[] dbAttrs) {
+ if (dbAttrs != null && dbAttrs.length > 0) {
+ if ((dbAttrs.length == 1 && dialog.shouldDelete("DbAttribute", dbAttrs[0]
+ .getName()))
+ || (dbAttrs.length > 1 && dialog.shouldDelete("selected DbAttributes"))) {
+
+ DbEntity entity = mediator.getCurrentDbEntity();
+
+ application.getUndoManager().addEdit(
+ new RemoveAttributeUndoableEdit(
+ (DataChannelDescriptor)mediator.getProject().getRootNode(),
+ mediator.getCurrentDataMap(),
+ entity,
+ dbAttrs));
+
+ for (DbAttribute attrib : dbAttrs) {
+ entity.removeAttribute(attrib.getName());
+
+ AttributeEvent e = new AttributeEvent(
+ Application.getFrame(),
+ attrib,
+ entity,
+ MapEvent.REMOVE);
+
+ mediator.fireDbAttributeEvent(e);
+ }
+
+ ProjectUtil.cleanObjMappings(mediator.getCurrentDataMap());
+ }
+ }
+ }
+
+ private void removeDBRelationships(ProjectController mediator,
+ ConfirmRemoveDialog dialog,
+ DbRelationship[] dbRels) {
+ if (dbRels != null && dbRels.length > 0) {
+ if ((dbRels.length == 1 && dialog.shouldDelete(
+ "DbRelationship", dbRels[0].getName()))
+ || (dbRels.length > 1 && dialog
+ .shouldDelete("selected DbRelationships"))) {
+ DbEntity entity = mediator.getCurrentDbEntity();
+
+ for (DbRelationship rel : dbRels) {
+ entity.removeRelationship(rel.getName());
+
+ RelationshipEvent e = new RelationshipEvent(Application.getFrame(),
+ rel, entity, MapEvent.REMOVE);
+ mediator.fireDbRelationshipEvent(e);
+ }
+
+ ProjectUtil.cleanObjMappings(mediator.getCurrentDataMap());
+
+ Application.getInstance().getUndoManager().addEdit(
+ new RemoveRelationshipUndoableEdit(entity, dbRels));
+ }
+ }
+ }
+
+ private void removeObjRelationships(ProjectController mediator,
+ ConfirmRemoveDialog dialog,
+ ObjRelationship[] rels) {
+ if ((rels.length == 1 && dialog.shouldDelete("ObjRelationship",
+ rels[0].getName()))
+ || (rels.length > 1 && dialog
+ .shouldDelete("selected ObjRelationships"))) {
+ ObjEntity entity = mediator.getCurrentObjEntity();
+ for (ObjRelationship rel : rels) {
+ entity.removeRelationship(rel.getName());
+ RelationshipEvent e = new RelationshipEvent(Application.getFrame(),
+ rel, entity, MapEvent.REMOVE);
+ mediator.fireObjRelationshipEvent(e);
+ }
+ Application.getInstance().getUndoManager().addEdit(
+ new RemoveRelationshipUndoableEdit(entity, rels));
+ }
+ }
+
+ private void removeMethods(ProjectController mediator,
+ ConfirmRemoveDialog dialog, ObjCallbackMethod[] methods) {
+ CallbackMap callbackMap = mediator.getCurrentObjEntity().getCallbackMap();
+ LifecycleEvent callbackType = mediator.getCurrentCallbackType().getType();
+
+ if ((methods.length == 1 && dialog.shouldDelete("callback method", methods[0].getName()))
+ || (methods.length > 1 && dialog.shouldDelete("selected callback methods"))) {
+ for (ObjCallbackMethod callbackMethod : methods) {
+ callbackMap.getCallbackDescriptor(callbackType).removeCallbackMethod(callbackMethod.getName());
+
+ CallbackMethodEvent ce = new CallbackMethodEvent(
+ this,
+ null,
+ callbackMethod.getName(),
+ MapEvent.REMOVE);
+
+ mediator.fireCallbackMethodEvent(ce);
+ }
+ }
+ }
+
+ public void removeDataMap(DataMap map) {
ProjectController mediator = getProjectController();
DataChannelDescriptor domain = (DataChannelDescriptor) mediator
.getProject()
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAttributeAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAttributeAction.java?rev=1509364&r1=1509363&r2=1509364&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAttributeAction.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAttributeAction.java Thu Aug 1 18:20:41 2013
@@ -85,10 +85,11 @@ public class RemoveAttributeAction exten
ConfirmRemoveDialog dialog = getConfirmDeleteDialog(allowAsking);
ProjectController mediator = getProjectController();
- EmbeddableAttribute[] embAttrs = getProjectController().getCurrentEmbAttrs();
-
- ObjAttribute[] attrs = getProjectController().getCurrentObjAttributes();
+ EmbeddableAttribute[] embAttrs = getProjectController().getCurrentEmbAttributes();
+ ObjAttribute[] objAttrs = getProjectController().getCurrentObjAttributes();
+ DbAttribute[] dbAttrs = getProjectController().getCurrentDbAttributes();
+
if (embAttrs != null && embAttrs.length > 0) {
if ((embAttrs.length == 1 && dialog.shouldDelete(
"Embeddable Attribute",
@@ -98,55 +99,46 @@ public class RemoveAttributeAction exten
Embeddable embeddable = mediator.getCurrentEmbeddable();
- EmbeddableAttribute[] eAttrs = getProjectController()
- .getCurrentEmbAttrs();
-
application.getUndoManager().addEdit(
- new RemoveAttributeUndoableEdit(embeddable, eAttrs));
+ new RemoveAttributeUndoableEdit(embeddable, embAttrs));
- removeEmbeddableAttributes(embeddable, eAttrs);
+ removeEmbeddableAttributes(embeddable, embAttrs);
}
}
- else if (attrs != null && attrs.length > 0) {
- if ((attrs.length == 1 && dialog.shouldDelete("ObjAttribute", attrs[0]
+ else if (objAttrs != null && objAttrs.length > 0) {
+ if ((objAttrs.length == 1 && dialog.shouldDelete("ObjAttribute", objAttrs[0]
.getName()))
- || (attrs.length > 1 && dialog.shouldDelete("selected ObjAttributes"))) {
+ || (objAttrs.length > 1 && dialog.shouldDelete("selected ObjAttributes"))) {
ObjEntity entity = mediator.getCurrentObjEntity();
- ObjAttribute[] attribs = mediator.getCurrentObjAttributes();
application.getUndoManager().addEdit(
new RemoveAttributeUndoableEdit(
(DataChannelDescriptor)mediator.getProject().getRootNode(),
mediator.getCurrentDataMap(),
entity,
- attribs));
+ objAttrs));
- removeObjAttributes(entity, attribs);
+ removeObjAttributes(entity, objAttrs);
}
}
- else {
- DbAttribute[] dbAttrs = getProjectController().getCurrentDbAttributes();
- if (dbAttrs != null && dbAttrs.length > 0) {
- if ((dbAttrs.length == 1 && dialog.shouldDelete("DbAttribute", dbAttrs[0]
- .getName()))
- || (dbAttrs.length > 1 && dialog
- .shouldDelete("selected DbAttributes"))) {
-
- DbEntity entity = mediator.getCurrentDbEntity();
- DbAttribute[] attribs = mediator.getCurrentDbAttributes();
-
- application.getUndoManager().addEdit(
- new RemoveAttributeUndoableEdit(
- (DataChannelDescriptor)mediator.getProject().getRootNode(),
- mediator.getCurrentDataMap(),
- entity,
- attribs));
+ else if (dbAttrs != null && dbAttrs.length > 0) {
+ if ((dbAttrs.length == 1 && dialog.shouldDelete("DbAttribute", dbAttrs[0]
+ .getName()))
+ || (dbAttrs.length > 1 && dialog.shouldDelete("selected DbAttributes"))) {
- removeDbAttributes(mediator.getCurrentDataMap(), entity, attribs);
- }
- }
+ DbEntity entity = mediator.getCurrentDbEntity();
+
+ application.getUndoManager().addEdit(
+ new RemoveAttributeUndoableEdit(
+ (DataChannelDescriptor)mediator.getProject().getRootNode(),
+ mediator.getCurrentDataMap(),
+ entity,
+ dbAttrs));
+
+ removeDbAttributes(mediator.getCurrentDataMap(), entity, dbAttrs);
+ }
}
}