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:00:43 UTC
svn commit: r1509355 - in
/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler:
./ action/ editor/ undo/
Author: aadamchik
Date: Thu Aug 1 18:00:42 2013
New Revision: 1509355
URL: http://svn.apache.org/r1509355
Log:
CAY-1846 Reworking of callback mapping
Jul 31 patch from Ilya Vasiuk
Added:
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjCallbackMethod.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/RemoveCallbackMethodUndoableEdit.java
- copied, changed from r1509353, cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateCallbackMethodUndoableEdit.java
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/AbstractCreateCallbackMethodAction.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/AbstractRemoveCallbackMethodAction.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAction.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyCallbackMethodAction.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateCallbackMethodAction.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateCallbackMethodForListenerAction.java
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/action/PasteAction.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveCallbackMethodAction.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveCallbackMethodForListenerAction.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/AbstractCallbackMethodsTab.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackType.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateCallbackMethodUndoableEdit.java
cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/PasteUndoableEdit.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=1509355&r1=1509354&r2=1509355&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:00:42 2013
@@ -80,6 +80,7 @@ import org.apache.cayenne.modeler.action
import org.apache.cayenne.modeler.action.RevertAction;
import org.apache.cayenne.modeler.action.SaveAction;
import org.apache.cayenne.modeler.editor.CallbackType;
+import org.apache.cayenne.modeler.editor.ObjCallbackMethod;
import org.apache.cayenne.modeler.event.AttributeDisplayEvent;
import org.apache.cayenne.modeler.event.CallbackMethodEvent;
import org.apache.cayenne.modeler.event.CallbackMethodListener;
@@ -170,7 +171,7 @@ public class ProjectController extends C
/**
* currently selected callback methods
*/
- private String[] callbackMethods;
+ private ObjCallbackMethod[] callbackMethods;
public ControllerState() {
@@ -182,7 +183,7 @@ public class ProjectController extends C
objAttrs = new ObjAttribute[0];
objRels = new ObjRelationship[0];
- callbackMethods = new String[0];
+ callbackMethods = new ObjCallbackMethod[0];
}
/*
@@ -1516,7 +1517,7 @@ public class ProjectController extends C
/**
* @return currently selected callback methods
*/
- public String[] getCurrentCallbackMethods() {
+ public ObjCallbackMethod[] getCurrentCallbackMethods() {
return currentState.callbackMethods;
}
@@ -1537,7 +1538,7 @@ public class ProjectController extends C
/**
* @return currently selected callback methods
*/
- public void setCurrentCallbackMethods(String[] callbackMethods) {
+ public void setCurrentCallbackMethods(ObjCallbackMethod[] callbackMethods) {
currentState.callbackMethods = callbackMethods;
}
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/AbstractCreateCallbackMethodAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/AbstractCreateCallbackMethodAction.java?rev=1509355&r1=1509354&r2=1509355&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/AbstractCreateCallbackMethodAction.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/AbstractCreateCallbackMethodAction.java Thu Aug 1 18:00:42 2013
@@ -1,121 +0,0 @@
-/*****************************************************************
- * 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 org.apache.cayenne.map.CallbackMap;
-import org.apache.cayenne.map.LifecycleEvent;
-import org.apache.cayenne.map.event.MapEvent;
-import org.apache.cayenne.modeler.Application;
-import org.apache.cayenne.modeler.editor.CallbackType;
-import org.apache.cayenne.modeler.event.CallbackMethodEvent;
-import org.apache.cayenne.modeler.undo.CreateCallbackMethodUndoableEdit;
-import org.apache.cayenne.modeler.util.CayenneAction;
-import org.apache.cayenne.util.NameConverter;
-
-/**
- * Base class for creating callback methods
- *
- * @version 1.0 Oct 28, 2007
- */
-public abstract class AbstractCreateCallbackMethodAction extends CayenneAction {
-
-
-
- /**
- * Constructor.
- *
- * @param actionName unique action name
- * @param application Application instance
- */
- public AbstractCreateCallbackMethodAction(String actionName, Application application) {
- super(actionName, application);
- }
-
- /**
- * @return CallbackMap instance where to create a method
- */
- public abstract CallbackMap getCallbackMap();
-
- /**
- * @return icon file name for button
- */
- public String getIconName() {
- return "icon-create-method.gif";
- }
-
- /**
- * performs adding new callback method
- *
- * @param e event
- */
- public final void performAction(ActionEvent e) {
- CallbackType callbackType = getProjectController().getCurrentCallbackType();
-
- // generate methodName
- String methodNamePrefix = toMethodName(callbackType.getType());
- String methodName;
- // now that we're generating the method names based on the callback type, check to
- // see if the
- // raw prefix, no numbers, is taken.
- if (!getCallbackMap()
- .getCallbackDescriptor(callbackType.getType())
- .getCallbackMethods()
- .contains(methodNamePrefix)) {
- methodName = methodNamePrefix;
- }
- else {
- int counter = 1;
- do {
- methodName = methodNamePrefix + counter;
- counter++;
- } while (getCallbackMap()
- .getCallbackDescriptor(callbackType.getType())
- .getCallbackMethods()
- .contains(methodName));
- }
-
- createCallbackMethod(getCallbackMap(), callbackType, methodName);
- application.getUndoManager().addEdit(
- new CreateCallbackMethodUndoableEdit(
- getCallbackMap(),
- callbackType,
- methodName));
- }
-
- public void createCallbackMethod(
- CallbackMap map,
- CallbackType callbackType,
- String methodName) {
- map.getCallbackDescriptor(callbackType.getType()).addCallbackMethod(methodName);
-
- CallbackMethodEvent ce = new CallbackMethodEvent(
- this,
- null,
- methodName,
- MapEvent.ADD);
-
- getProjectController().fireCallbackMethodEvent(ce);
- }
-
- private String toMethodName(LifecycleEvent event) {
- return "on" + NameConverter.underscoredToJava(event.name(), true);
- }
-}
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/AbstractRemoveCallbackMethodAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/AbstractRemoveCallbackMethodAction.java?rev=1509355&r1=1509354&r2=1509355&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/AbstractRemoveCallbackMethodAction.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/AbstractRemoveCallbackMethodAction.java Thu Aug 1 18:00:42 2013
@@ -1,114 +0,0 @@
-/*****************************************************************
- * 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 org.apache.cayenne.map.CallbackMap;
-import org.apache.cayenne.map.event.MapEvent;
-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.CallbackType;
-import org.apache.cayenne.modeler.event.CallbackMethodEvent;
-
-/**
- * Base class for removing callback methofs
- *
- * @version 1.0 Oct 28, 2007
- */
-public abstract class AbstractRemoveCallbackMethodAction extends RemoveAction {
-
-
-
- /**
- * Constructor.
- *
- * @param actionName unique action name
- * @param application Application instance
- */
- public AbstractRemoveCallbackMethodAction(String actionName, Application application) {
- super(actionName, application);
- }
-
- /**
- * @return CallbackMap instance where to create a method
- */
- public abstract CallbackMap getCallbackMap();
-
- /**
- * @return icon file name for button
- */
- @Override
- public String getIconName() {
- return "icon-trash.gif";
- }
-
- /**
- * performs callback method removing
- * @param e event
- */
- @Override
- public final void performAction(ActionEvent e, boolean allowAsking) {
- ConfirmRemoveDialog dialog = getConfirmDeleteDialog(allowAsking);
-
- String[] methods = getProjectController().getCurrentCallbackMethods();
-
- if (methods.length > 0) {
- if ((methods.length == 1 && dialog.shouldDelete("callback method", methods[0]))
- || (methods.length > 1 && dialog.shouldDelete("selected callback methods"))) {
- removeCallbackMethods(e);
- }
- }
- }
-
- /**
- * base logic for callback method removing
- * @param actionEvent event
- */
- private void removeCallbackMethods(ActionEvent actionEvent) {
- ProjectController mediator = getProjectController();
- CallbackType callbackType = mediator.getCurrentCallbackType();
-
- String[] callbackMethods = mediator.getCurrentCallbackMethods();
-
- for (String callbackMethod : callbackMethods) {
- removeCallbackMethod(getCallbackMap(), callbackType, callbackMethod);
- }
- }
-
- public void removeCallbackMethod(CallbackMap map, CallbackType callbackType, String method) {
- ProjectController mediator = getProjectController();
- map.getCallbackDescriptor(callbackType.getType()).removeCallbackMethod(method);
-
- CallbackMethodEvent e = new CallbackMethodEvent(
- this,
- null,
- method,
- MapEvent.REMOVE);
-
- mediator.fireCallbackMethodEvent(e);
- }
-
- /**
- * Returns action name, depending on count of selected rows
- */
- public abstract String getActionName(boolean multiple);
-}
-
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAction.java?rev=1509355&r1=1509354&r2=1509355&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAction.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyAction.java Thu Aug 1 18:00:42 2013
@@ -39,6 +39,7 @@ import org.apache.cayenne.map.Procedure;
import org.apache.cayenne.map.ProcedureParameter;
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.ProjectController;
+import org.apache.cayenne.modeler.editor.ObjCallbackMethod;
import org.apache.cayenne.modeler.util.CayenneAction;
import org.apache.cayenne.modeler.util.CayenneTransferable;
import org.apache.cayenne.query.Query;
@@ -131,6 +132,7 @@ public class CopyAction extends CayenneA
|| object instanceof DbRelationship
|| object instanceof ObjAttribute
|| object instanceof ObjRelationship
+ || object instanceof ObjCallbackMethod
|| object instanceof Procedure
|| object instanceof ProcedureParameter) {
return true;
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyCallbackMethodAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyCallbackMethodAction.java?rev=1509355&r1=1509354&r2=1509355&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyCallbackMethodAction.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyCallbackMethodAction.java Thu Aug 1 18:00:42 2013
@@ -5,6 +5,7 @@ import java.util.Arrays;
import org.apache.cayenne.configuration.ConfigurationNode;
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.ProjectController;
+import org.apache.cayenne.modeler.editor.ObjCallbackMethod;
public class CopyCallbackMethodAction extends CopyAction implements MultipleObjectsAction {
@@ -33,7 +34,11 @@ public class CopyCallbackMethodAction ex
*/
@Override
public boolean enableForPath(ConfigurationNode object) {
- return object != null;
+ if (object == null) {
+ return false;
+ }
+
+ return object instanceof ObjCallbackMethod;
}
@Override
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateCallbackMethodAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateCallbackMethodAction.java?rev=1509355&r1=1509354&r2=1509355&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateCallbackMethodAction.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateCallbackMethodAction.java Thu Aug 1 18:00:42 2013
@@ -18,20 +18,109 @@
****************************************************************/
package org.apache.cayenne.modeler.action;
+import java.awt.event.ActionEvent;
+
import org.apache.cayenne.map.CallbackMap;
+import org.apache.cayenne.map.LifecycleEvent;
+import org.apache.cayenne.map.event.MapEvent;
import org.apache.cayenne.modeler.Application;
+import org.apache.cayenne.modeler.editor.CallbackType;
+import org.apache.cayenne.modeler.event.CallbackMethodEvent;
+import org.apache.cayenne.modeler.undo.CreateCallbackMethodUndoableEdit;
+import org.apache.cayenne.modeler.util.CayenneAction;
+import org.apache.cayenne.util.NameConverter;
/**
* Action class for creating callback methods on ObjEntity
*
* @version 1.0 Oct 30, 2007
*/
-public class CreateCallbackMethodAction extends AbstractCreateCallbackMethodAction {
+public class CreateCallbackMethodAction extends CayenneAction {
/**
* unique action name
*/
public static final String ACTION_NAME = "Create callback method";
+
+ /**
+ * Constructor.
+ *
+ * @param actionName unique action name
+ * @param application Application instance
+ */
+ public CreateCallbackMethodAction(String actionName, Application application) {
+ super(actionName, application);
+ }
+
+ /**
+ * @return CallbackMap instance where to create a method
+ */
+ public CallbackMap getCallbackMap() {
+ return getProjectController().getCurrentObjEntity().getCallbackMap();
+ }
+
+ /**
+ * @return icon file name for button
+ */
+ public String getIconName() {
+ return "icon-create-method.gif";
+ }
+
+ /**
+ * performs adding new callback method
+ *
+ * @param e event
+ */
+ public final void performAction(ActionEvent e) {
+ CallbackType callbackType = getProjectController().getCurrentCallbackType();
+
+ // generate methodName
+ String methodNamePrefix = toMethodName(callbackType.getType());
+ String methodName;
+ // now that we're generating the method names based on the callback type, check to
+ // see if the
+ // raw prefix, no numbers, is taken.
+ if (!getCallbackMap()
+ .getCallbackDescriptor(callbackType.getType())
+ .getCallbackMethods()
+ .contains(methodNamePrefix)) {
+ methodName = methodNamePrefix;
+ }
+ else {
+ int counter = 1;
+ do {
+ methodName = methodNamePrefix + counter;
+ counter++;
+ } while (getCallbackMap()
+ .getCallbackDescriptor(callbackType.getType())
+ .getCallbackMethods()
+ .contains(methodName));
+ }
+
+ createCallbackMethod(callbackType, methodName);
+ application.getUndoManager().addEdit(
+ new CreateCallbackMethodUndoableEdit(
+ callbackType,
+ methodName));
+ }
+
+ public void createCallbackMethod(
+ CallbackType callbackType,
+ String methodName) {
+ getCallbackMap().getCallbackDescriptor(callbackType.getType()).addCallbackMethod(methodName);
+
+ CallbackMethodEvent ce = new CallbackMethodEvent(
+ this,
+ null,
+ methodName,
+ MapEvent.ADD);
+
+ getProjectController().fireCallbackMethodEvent(ce);
+ }
+
+ private String toMethodName(LifecycleEvent event) {
+ return "on" + NameConverter.underscoredToJava(event.name(), true);
+ }
public static String getActionName() {
return ACTION_NAME;
@@ -45,12 +134,5 @@ public class CreateCallbackMethodAction
public CreateCallbackMethodAction(Application application) {
super(ACTION_NAME, application);
}
-
- /**
- * @return CallbackMap instance where to create a method
- */
- public CallbackMap getCallbackMap() {
- return getProjectController().getCurrentObjEntity().getCallbackMap();
- }
}
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateCallbackMethodForListenerAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateCallbackMethodForListenerAction.java?rev=1509355&r1=1509354&r2=1509355&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateCallbackMethodForListenerAction.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateCallbackMethodForListenerAction.java Thu Aug 1 18:00:42 2013
@@ -1,55 +0,0 @@
-/*****************************************************************
- * 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 org.apache.cayenne.map.CallbackMap;
-import org.apache.cayenne.map.ObjEntity;
-import org.apache.cayenne.modeler.Application;
-
-
-/**
- * Action class for creating callback methods on ObjEntity entity listener
- *
- * @version 1.0 Oct 30, 2007
- */
-public class CreateCallbackMethodForListenerAction extends AbstractCreateCallbackMethodAction {
- /**
- * unique action name
- */
- public static final String ACTION_NAME = "Create callback method for entity listener";
-
- /**
- * Constructor.
- *
- * @param application Application instance
- */
- public CreateCallbackMethodForListenerAction(Application application) {
- super(ACTION_NAME, application);
- }
-
- /**
- * @return CallbackMap instance where to create a method
- */
- public CallbackMap getCallbackMap() {
- ObjEntity objEnt = getProjectController().getCurrentObjEntity();
- String listenerClass = getProjectController().getCurrentListenerClass();
- return objEnt.getEntityListener(listenerClass).getCallbackMap();
- }
-}
-
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=1509355&r1=1509354&r2=1509355&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 Thu Aug 1 18:00:42 2013
@@ -83,9 +83,7 @@ public class DefaultActionManager implem
registerAction(new RemoveRelationshipAction(application));
// start callback-related actions
registerAction(new CreateCallbackMethodAction(application)).setAlwaysOn(true);
- registerAction(new CreateCallbackMethodForListenerAction(application));
registerAction(new RemoveCallbackMethodAction(application));
- registerAction(new RemoveCallbackMethodForListenerAction(application));
registerAction(new CreateObjEntityListenerAction(application)).setAlwaysOn(true);
registerAction(new CreateDataMapEntityListenerAction(application)).setAlwaysOn(
true);
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/PasteAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/PasteAction.java?rev=1509355&r1=1509354&r2=1509355&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/PasteAction.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/PasteAction.java Thu Aug 1 18:00:42 2013
@@ -41,7 +41,6 @@ import org.apache.cayenne.map.DbRelation
import org.apache.cayenne.map.Embeddable;
import org.apache.cayenne.map.EmbeddableAttribute;
import org.apache.cayenne.map.EntityResolver;
-import org.apache.cayenne.map.LifecycleEvent;
import org.apache.cayenne.map.MappingNamespace;
import org.apache.cayenne.map.ObjAttribute;
import org.apache.cayenne.map.ObjEntity;
@@ -53,6 +52,7 @@ import org.apache.cayenne.modeler.Applic
import org.apache.cayenne.modeler.ProjectController;
import org.apache.cayenne.modeler.dialog.ErrorDebugDialog;
import org.apache.cayenne.modeler.dialog.query.QueryType;
+import org.apache.cayenne.modeler.editor.ObjCallbackMethod;
import org.apache.cayenne.modeler.event.CallbackMethodEvent;
import org.apache.cayenne.modeler.undo.PasteCompoundUndoableEdit;
import org.apache.cayenne.modeler.undo.PasteUndoableEdit;
@@ -366,7 +366,6 @@ public class PasteAction extends Cayenne
}
else if (where instanceof ObjEntity) {
final ObjEntity objEntity = (ObjEntity) where;
- final LifecycleEvent whereType = mediator.getCurrentCallbackType().getType();
// attrs and rels must be unique in entity namespace
FreeNameChecker checker = new FreeNameChecker() {
@@ -374,8 +373,10 @@ public class PasteAction extends Cayenne
public boolean isNameFree(String name) {
return objEntity.getAttribute(name) == null
&& objEntity.getRelationship(name) == null
- && !objEntity.getCallbackMap().getCallbackDescriptor(whereType)
- .getCallbackMethods().contains(name);
+ // uninitialized mediator.currentCallbackType should not affect a copying of rels or attrs
+ && (mediator.getCurrentCallbackType() == null ? true :
+ !objEntity.getCallbackMap().getCallbackDescriptor(mediator.getCurrentCallbackType().getType())
+ .getCallbackMethods().contains(name));
}
};
@@ -398,16 +399,16 @@ public class PasteAction extends Cayenne
objEntity,
rel);
}
- else if(content.getClass().equals(String.class)) {
- String methodName = (String) content;
- methodName = getFreeName(checker, methodName);
+ else if(content instanceof ObjCallbackMethod) {
+ ObjCallbackMethod method = (ObjCallbackMethod) content;
+ method.setName(getFreeName(checker, method.getName()));
- objEntity.getCallbackMap().getCallbackDescriptor(whereType).addCallbackMethod(methodName);
+ objEntity.getCallbackMap().getCallbackDescriptor(mediator.getCurrentCallbackType().getType()).addCallbackMethod(method.getName());
CallbackMethodEvent ce = new CallbackMethodEvent(
this,
null,
- methodName,
+ method.getName(),
MapEvent.ADD);
getProjectController().fireCallbackMethodEvent(ce);
@@ -544,7 +545,7 @@ public class PasteAction extends Cayenne
||
(currentObject instanceof ObjEntity && (content instanceof ObjAttribute
- || content instanceof ObjRelationship || content.getClass().equals(String.class) || isTreeLeaf(content)))
+ || content instanceof ObjRelationship || content instanceof ObjCallbackMethod || isTreeLeaf(content)))
||
(currentObject instanceof Embeddable && (content instanceof EmbeddableAttribute || isTreeLeaf(content)))
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveCallbackMethodAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveCallbackMethodAction.java?rev=1509355&r1=1509354&r2=1509355&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveCallbackMethodAction.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveCallbackMethodAction.java Thu Aug 1 18:00:42 2013
@@ -18,8 +18,17 @@
****************************************************************/
package org.apache.cayenne.modeler.action;
+import java.awt.event.ActionEvent;
+
import org.apache.cayenne.map.CallbackMap;
+import org.apache.cayenne.map.event.MapEvent;
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.CallbackType;
+import org.apache.cayenne.modeler.editor.ObjCallbackMethod;
+import org.apache.cayenne.modeler.event.CallbackMethodEvent;
+import org.apache.cayenne.modeler.undo.RemoveCallbackMethodUndoableEdit;
/**
@@ -27,10 +36,8 @@ import org.apache.cayenne.modeler.Applic
*
* @version 1.0 Oct 30, 2007
*/
-public class RemoveCallbackMethodAction extends AbstractRemoveCallbackMethodAction {
-
+public class RemoveCallbackMethodAction extends RemoveAction {
-
/**
* unique action name
*/
@@ -44,10 +51,65 @@ public class RemoveCallbackMethodAction
/**
* Constructor.
*
+ * @param actionName unique action name
* @param application Application instance
*/
public RemoveCallbackMethodAction(Application application) {
- super(ACTION_NAME, application);
+ super(getActionName(), application);
+ }
+
+ /**
+ * @return icon file name for button
+ */
+ @Override
+ public String getIconName() {
+ return "icon-trash.gif";
+ }
+
+ /**
+ * performs callback method removing
+ * @param e event
+ */
+ public void performAction(ActionEvent e, boolean allowAsking) {
+ ConfirmRemoveDialog dialog = getConfirmDeleteDialog(allowAsking);
+
+ ObjCallbackMethod[] methods = getProjectController().getCurrentCallbackMethods();
+
+ if ((methods.length == 1 && dialog.shouldDelete("callback method", methods[0].getName()))
+ || (methods.length > 1 && dialog.shouldDelete("selected callback methods"))) {
+ removeCallbackMethods(e);
+ }
+ }
+
+ /**
+ * base logic for callback method removing
+ * @param actionEvent event
+ */
+ private void removeCallbackMethods(ActionEvent actionEvent) {
+ ProjectController mediator = getProjectController();
+ CallbackType callbackType = mediator.getCurrentCallbackType();
+
+ ObjCallbackMethod[] callbackMethods = mediator.getCurrentCallbackMethods();
+
+ for (ObjCallbackMethod callbackMethod : callbackMethods) {
+ removeCallbackMethod(callbackType, callbackMethod.getName());
+ }
+
+ Application.getInstance().getUndoManager().addEdit(
+ new RemoveCallbackMethodUndoableEdit(callbackType, callbackMethods));
+ }
+
+ public void removeCallbackMethod(CallbackType callbackType, String method) {
+ ProjectController mediator = getProjectController();
+ getCallbackMap().getCallbackDescriptor(callbackType.getType()).removeCallbackMethod(method);
+
+ CallbackMethodEvent e = new CallbackMethodEvent(
+ this,
+ null,
+ method,
+ MapEvent.REMOVE);
+
+ mediator.fireCallbackMethodEvent(e);
}
/**
@@ -60,12 +122,10 @@ public class RemoveCallbackMethodAction
/**
* @return CallbackMap fom which remove callback method
*/
- @Override
public CallbackMap getCallbackMap() {
return getProjectController().getCurrentObjEntity().getCallbackMap();
}
- @Override
public String getActionName(boolean multiple) {
return multiple ? ACTION_NAME_MULTIPLE : ACTION_NAME;
}
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveCallbackMethodForListenerAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveCallbackMethodForListenerAction.java?rev=1509355&r1=1509354&r2=1509355&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveCallbackMethodForListenerAction.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveCallbackMethodForListenerAction.java Thu Aug 1 18:00:42 2013
@@ -1,66 +0,0 @@
-/*****************************************************************
- * 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 org.apache.cayenne.map.CallbackMap;
-import org.apache.cayenne.map.ObjEntity;
-import org.apache.cayenne.modeler.Application;
-
-
-/**
- * Action class for removing callback methods from ObjEntity's entity listener
- *
- * @version 1.0 Oct 30, 2007
- */
-public class RemoveCallbackMethodForListenerAction extends AbstractRemoveCallbackMethodAction{
- /**
- * unique action name
- */
- public final static String ACTION_NAME = "Remove callback method for entity listener";
-
- /**
- * action name for multiple selection
- */
- private final static String ACTION_NAME_MULTIPLE = "Remove callback methods for entity listener";
-
- /**
- * Constructor.
- *
- * @param application Application instance
- */
- public RemoveCallbackMethodForListenerAction(Application application) {
- super(ACTION_NAME, application);
- }
-
- /**
- * @return CallbackMap fom which remove callback method
- */
- @Override
- public CallbackMap getCallbackMap() {
- ObjEntity objEnt = getProjectController().getCurrentObjEntity();
- String listenerClass = getProjectController().getCurrentListenerClass();
- return objEnt.getEntityListener(listenerClass).getCallbackMap();
- }
-
- @Override
- public String getActionName(boolean multiple) {
- return multiple ? ACTION_NAME_MULTIPLE : ACTION_NAME;
- }
-}
-
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/AbstractCallbackMethodsTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/AbstractCallbackMethodsTab.java?rev=1509355&r1=1509354&r2=1509355&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/AbstractCallbackMethodsTab.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/AbstractCallbackMethodsTab.java Thu Aug 1 18:00:42 2013
@@ -52,7 +52,6 @@ import org.apache.cayenne.map.CallbackMa
import org.apache.cayenne.map.LifecycleEvent;
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.ProjectController;
-import org.apache.cayenne.modeler.action.AbstractRemoveCallbackMethodAction;
import org.apache.cayenne.modeler.action.CopyCallbackMethodAction;
import org.apache.cayenne.modeler.action.CreateCallbackMethodAction;
import org.apache.cayenne.modeler.action.CutCallbackMethodAction;
@@ -150,7 +149,7 @@ public abstract class AbstractCallbackMe
/**
* @return remove callback method action
*/
- protected AbstractRemoveCallbackMethodAction getRemoveCallbackMethodAction() {
+ protected RemoveCallbackMethodAction getRemoveCallbackMethodAction() {
Application app = Application.getInstance();
return app.getActionManager().getAction(RemoveCallbackMethodAction.class);
}
@@ -226,7 +225,26 @@ public abstract class AbstractCallbackMe
}
public void callbackMethodRemoved(CallbackMethodEvent e) {
- rebuildTables();
+ int row = -1, i;
+
+ for(i = 0; i < callbackTypes.length; i++) {
+ if(callbackTypes[i] == getSelectedCallbackType()) {
+ row = tables[i].getSelectedRow();
+ break;
+ }
+ }
+
+ rebuildTables();
+
+ if(row == tables[i].getRowCount()) {
+ row--;
+ }
+
+ if (row < 0) {
+ return;
+ }
+
+ tables[i].changeSelection(row, 0, false, false);
}
});
@@ -320,10 +338,11 @@ public abstract class AbstractCallbackMe
private JPopupMenu createPopup() {
JPopupMenu popup = new JPopupMenu();
+ popup.add(getRemoveCallbackMethodAction().buildMenu());
+ popup.addSeparator();
popup.add(getCopyCallbackMethodAction().buildMenu());
popup.add(getCutCallbackMethodAction().buildMenu());
popup.add(getPasteCallbackMethodAction().buildMenu());
- popup.add(getRemoveCallbackMethodAction().buildMenu());
return popup;
}
@@ -472,7 +491,7 @@ public abstract class AbstractCallbackMe
public void valueChanged(ListSelectionEvent e) {
if (!e.getValueIsAdjusting()) {
- String[] methods = new String[0];
+ ObjCallbackMethod[] methods = new ObjCallbackMethod[0];
if(!((ListSelectionModel)e.getSource()).isSelectionEmpty()) {
for(int i = 0; i < tables.length; i++) {
@@ -490,14 +509,17 @@ public abstract class AbstractCallbackMe
if (table.getSelectedRow() != -1) {
int[] sel = table.getSelectedRows();
- methods = new String[sel.length];
-
+ CallbackType callbackType = mediator.getCurrentCallbackType();
+
+ methods = new ObjCallbackMethod[sel.length];
+
for (int i = 0; i < sel.length; i++) {
- methods[i] = (String) table
+ String methodName = (String) table
.getValueAt(
sel[i],
table
.convertColumnIndexToView(CallbackDescriptorTableModel.METHOD_NAME));
+ methods[i] = new ObjCallbackMethod(methodName, callbackType);
}
}
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackType.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackType.java?rev=1509355&r1=1509354&r2=1509355&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackType.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackType.java Thu Aug 1 18:00:42 2013
@@ -18,8 +18,9 @@
****************************************************************/
package org.apache.cayenne.modeler.editor;
+import java.io.Serializable;
+
import org.apache.cayenne.map.LifecycleEvent;
-import org.apache.cayenne.util.ConversionUtil;
import org.apache.cayenne.util.NameConverter;
/**
@@ -28,7 +29,7 @@ import org.apache.cayenne.util.NameConve
* @version 1.0 Oct 26, 2007
*/
-public class CallbackType {
+public class CallbackType implements Serializable {
private LifecycleEvent type;
Added: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjCallbackMethod.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjCallbackMethod.java?rev=1509355&view=auto
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjCallbackMethod.java (added)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjCallbackMethod.java Thu Aug 1 18:00:42 2013
@@ -0,0 +1,65 @@
+package org.apache.cayenne.modeler.editor;
+
+import java.io.Serializable;
+
+import org.apache.cayenne.util.XMLEncoder;
+import org.apache.cayenne.util.XMLSerializable;
+
+public class ObjCallbackMethod implements XMLSerializable,
+ Serializable {
+
+ private String name;
+ private CallbackType callbackType;
+
+ public ObjCallbackMethod(String name, CallbackType callbackType) {
+ this.name = name;
+ this.callbackType = callbackType;
+ }
+
+ @Override
+ public void encodeAsXML(XMLEncoder encoder) {
+
+ encoder.print("<" + encodeCallbackTypeForXML(callbackType));
+ encoder.print(" name=\"" + getName());
+
+ encoder.println("\"/>");
+ }
+
+ private String encodeCallbackTypeForXML(CallbackType type) {
+ switch(type.getType()) {
+ case POST_ADD :
+ return "post-add";
+ case POST_LOAD :
+ return "post-load";
+ case POST_PERSIST :
+ return "post-persist";
+ case POST_REMOVE :
+ return "post-remove";
+ case POST_UPDATE :
+ return "post-update";
+ case PRE_PERSIST :
+ return "pre-persist";
+ case PRE_REMOVE :
+ return "pre-remove";
+ default:
+ return "pre-update";
+ }
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public CallbackType getCallbackType() {
+ return callbackType;
+ }
+
+ public void setCallbackType(CallbackType callbackType) {
+ this.callbackType = callbackType;
+ }
+
+}
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateCallbackMethodUndoableEdit.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateCallbackMethodUndoableEdit.java?rev=1509355&r1=1509354&r2=1509355&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateCallbackMethodUndoableEdit.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateCallbackMethodUndoableEdit.java Thu Aug 1 18:00:42 2013
@@ -21,14 +21,12 @@ package org.apache.cayenne.modeler.undo;
import javax.swing.undo.CannotRedoException;
import javax.swing.undo.CannotUndoException;
-import org.apache.cayenne.map.CallbackMap;
import org.apache.cayenne.modeler.action.CreateCallbackMethodAction;
import org.apache.cayenne.modeler.action.RemoveCallbackMethodAction;
import org.apache.cayenne.modeler.editor.CallbackType;
public class CreateCallbackMethodUndoableEdit extends CayenneUndoableEdit {
- private CallbackMap map;
private CallbackType callbackType;
private String methodName;
@@ -41,19 +39,18 @@ public class CreateCallbackMethodUndoabl
public void redo() throws CannotRedoException {
CreateCallbackMethodAction action = actionManager
.getAction(CreateCallbackMethodAction.class);
- action.createCallbackMethod(map, callbackType, methodName);
+ action.createCallbackMethod(callbackType, methodName);
}
@Override
public void undo() throws CannotUndoException {
RemoveCallbackMethodAction action = actionManager
.getAction(RemoveCallbackMethodAction.class);
- action.removeCallbackMethod(map, callbackType, methodName);
+ action.removeCallbackMethod(callbackType, methodName);
}
- public CreateCallbackMethodUndoableEdit(CallbackMap map, CallbackType callbackType,
+ public CreateCallbackMethodUndoableEdit(CallbackType callbackType,
String methodName) {
- this.map = map;
this.callbackType = callbackType;
this.methodName = methodName;
}
Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/PasteUndoableEdit.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/PasteUndoableEdit.java?rev=1509355&r1=1509354&r2=1509355&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/PasteUndoableEdit.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/PasteUndoableEdit.java Thu Aug 1 18:00:42 2013
@@ -36,8 +36,10 @@ import org.apache.cayenne.map.ProcedureP
import org.apache.cayenne.modeler.action.PasteAction;
import org.apache.cayenne.modeler.action.RemoveAction;
import org.apache.cayenne.modeler.action.RemoveAttributeAction;
+import org.apache.cayenne.modeler.action.RemoveCallbackMethodAction;
import org.apache.cayenne.modeler.action.RemoveProcedureParameterAction;
import org.apache.cayenne.modeler.action.RemoveRelationshipAction;
+import org.apache.cayenne.modeler.editor.ObjCallbackMethod;
import org.apache.cayenne.query.Query;
public class PasteUndoableEdit extends CayenneUndoableEdit {
@@ -82,6 +84,9 @@ public class PasteUndoableEdit extends C
RemoveRelationshipAction rRelationShipAction = actionManager
.getAction(RemoveRelationshipAction.class);
+ RemoveCallbackMethodAction rCallbackMethodAction = actionManager
+ .getAction(RemoveCallbackMethodAction.class);
+
RemoveProcedureParameterAction rProcedureParamAction = actionManager
.getAction(RemoveProcedureParameterAction.class);
@@ -150,6 +155,15 @@ public class PasteUndoableEdit extends C
(ObjRelationship) content
});
}
+ else if (content instanceof ObjCallbackMethod) {
+ ObjCallbackMethod[] methods = new ObjCallbackMethod[] {
+ (ObjCallbackMethod) content };
+ for(ObjCallbackMethod callbackMethod : methods) {
+ rCallbackMethodAction.removeCallbackMethod(
+ methods[0].getCallbackType(),
+ callbackMethod.getName());
+ }
+ }
}
else if (where instanceof Procedure) {
final Procedure procedure = (Procedure) where;
Copied: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/RemoveCallbackMethodUndoableEdit.java (from r1509353, cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateCallbackMethodUndoableEdit.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/RemoveCallbackMethodUndoableEdit.java?p2=cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/RemoveCallbackMethodUndoableEdit.java&p1=cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateCallbackMethodUndoableEdit.java&r1=1509353&r2=1509355&rev=1509355&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateCallbackMethodUndoableEdit.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/RemoveCallbackMethodUndoableEdit.java Thu Aug 1 18:00:42 2013
@@ -21,41 +21,42 @@ package org.apache.cayenne.modeler.undo;
import javax.swing.undo.CannotRedoException;
import javax.swing.undo.CannotUndoException;
-import org.apache.cayenne.map.CallbackMap;
import org.apache.cayenne.modeler.action.CreateCallbackMethodAction;
import org.apache.cayenne.modeler.action.RemoveCallbackMethodAction;
import org.apache.cayenne.modeler.editor.CallbackType;
+import org.apache.cayenne.modeler.editor.ObjCallbackMethod;
-public class CreateCallbackMethodUndoableEdit extends CayenneUndoableEdit {
+public class RemoveCallbackMethodUndoableEdit extends CayenneUndoableEdit {
- private CallbackMap map;
private CallbackType callbackType;
- private String methodName;
+ private ObjCallbackMethod[] methods;
+
+ public RemoveCallbackMethodUndoableEdit(CallbackType callbackType,
+ ObjCallbackMethod[] methods) {
+ this.callbackType = callbackType;
+ this.methods = methods;
+ }
@Override
public String getPresentationName() {
- return "Create Callback Method";
+ return "Remove Obj Callback Methods";
}
@Override
public void redo() throws CannotRedoException {
- CreateCallbackMethodAction action = actionManager
- .getAction(CreateCallbackMethodAction.class);
- action.createCallbackMethod(map, callbackType, methodName);
+ RemoveCallbackMethodAction action = actionManager
+ .getAction(RemoveCallbackMethodAction.class);
+ for (ObjCallbackMethod method : methods) {
+ action.removeCallbackMethod(callbackType, method.getName());
+ }
}
@Override
public void undo() throws CannotUndoException {
- RemoveCallbackMethodAction action = actionManager
- .getAction(RemoveCallbackMethodAction.class);
- action.removeCallbackMethod(map, callbackType, methodName);
- }
-
- public CreateCallbackMethodUndoableEdit(CallbackMap map, CallbackType callbackType,
- String methodName) {
- this.map = map;
- this.callbackType = callbackType;
- this.methodName = methodName;
+ CreateCallbackMethodAction action = actionManager
+ .getAction(CreateCallbackMethodAction.class);
+ for (ObjCallbackMethod method : methods) {
+ action.createCallbackMethod(callbackType, method.getName());
+ }
}
-
}