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/07/28 17:34:12 UTC

svn commit: r1507804 - in /cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler: action/ editor/

Author: aadamchik
Date: Sun Jul 28 15:34:11 2013
New Revision: 1507804

URL: http://svn.apache.org/r1507804
Log:
CAY-1846  Reworking of callback mapping

patch by Ilya Vasiuk

Added:
    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/CutCallbackMethodAction.java
Modified:
    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/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/editor/AbstractCallbackMethodsTab.java
    cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java
    cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackType.java

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=1507804&r1=1507803&r2=1507804&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 Sun Jul 28 15:34:11 2013
@@ -57,7 +57,7 @@ public abstract class AbstractRemoveCall
      */
     @Override
     public String getIconName() {
-        return "icon-remove-method.gif";
+        return "icon-trash.gif";
     }
 
     /**

Added: 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=1507804&view=auto
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyCallbackMethodAction.java (added)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CopyCallbackMethodAction.java Sun Jul 28 15:34:11 2013
@@ -0,0 +1,49 @@
+package org.apache.cayenne.modeler.action;
+
+import java.util.Arrays;
+
+import org.apache.cayenne.configuration.ConfigurationNode;
+import org.apache.cayenne.modeler.Application;
+import org.apache.cayenne.modeler.ProjectController;
+
+public class CopyCallbackMethodAction extends CopyAction implements MultipleObjectsAction {
+
+    private final static String ACTION_NAME = "Copy Callback Method";
+
+    /**
+     * Name of action if multiple attrs are selected
+     */
+    private final static String ACTION_NAME_MULTIPLE = "Copy Callback Methods";
+
+    public static String getActionName() {
+        return ACTION_NAME;
+    }
+
+    public String getActionName(boolean multiple) {
+        return multiple ? ACTION_NAME_MULTIPLE : ACTION_NAME;
+    }
+
+    public CopyCallbackMethodAction(Application application) {
+        super(ACTION_NAME, application);
+    }
+
+    /**
+     * Returns <code>true</code> if last object in the path contains a removable
+     * attribute.
+     */
+    @Override
+    public boolean enableForPath(ConfigurationNode object) {
+        return object != null;
+    }
+
+    @Override
+    public Object copy(ProjectController mediator) {
+        Object[] methods = getProjectController().getCurrentCallbackMethods();
+
+        if (methods != null && methods.length > 0) {
+            return Arrays.asList(methods);
+        }
+
+        return null;
+    }
+}

Added: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CutCallbackMethodAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CutCallbackMethodAction.java?rev=1507804&view=auto
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CutCallbackMethodAction.java (added)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CutCallbackMethodAction.java Sun Jul 28 15:34:11 2013
@@ -0,0 +1,52 @@
+package org.apache.cayenne.modeler.action;
+
+import java.awt.event.ActionEvent;
+
+import org.apache.cayenne.configuration.ConfigurationNode;
+import org.apache.cayenne.modeler.Application;
+
+public class CutCallbackMethodAction extends CutAction implements MultipleObjectsAction {
+
+    private final static String ACTION_NAME = "Cut Callback method";
+
+    /**
+     * Name of action if multiple attrs are selected
+     */
+    private final static String ACTION_NAME_MULTIPLE = "Cut Callback methods";
+
+    public static String getActionName() {
+        return ACTION_NAME;
+    }
+
+    public String getActionName(boolean multiple) {
+        return multiple ? ACTION_NAME_MULTIPLE : ACTION_NAME;
+    }
+
+    public CutCallbackMethodAction(Application application) {
+        super(ACTION_NAME, application);
+    }
+
+    /**
+     * Returns <code>true</code> if last object in the path contains a removable
+     * attribute.
+     */
+    @Override
+    public boolean enableForPath(ConfigurationNode object) {
+         return object != null;
+    }
+
+    /**
+     * Performs cutting of items
+     */
+    @Override
+    public void performAction(ActionEvent e) {
+        application
+                .getActionManager()
+                .getAction(CopyCallbackMethodAction.class)
+                .performAction(e);
+        application
+                .getActionManager()
+                .getAction(RemoveCallbackMethodAction.class)
+                .performAction(e, false);
+    }
+}

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=1507804&r1=1507803&r2=1507804&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DefaultActionManager.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DefaultActionManager.java Sun Jul 28 15:34:11 2013
@@ -116,9 +116,11 @@ public class DefaultActionManager implem
         registerAction(new CutAttributeAction(application));
         registerAction(new CutRelationshipAction(application));
         registerAction(new CutProcedureParameterAction(application));
+        registerAction(new CutCallbackMethodAction(application));
         registerAction(new CopyAction(application));
         registerAction(new CopyAttributeAction(application));
         registerAction(new CopyRelationshipAction(application));
+        registerAction(new CopyCallbackMethodAction(application));
         registerAction(new CopyProcedureParameterAction(application));
         registerAction(new PasteAction(application));
 

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=1507804&r1=1507803&r2=1507804&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 Sun Jul 28 15:34:11 2013
@@ -41,16 +41,19 @@ 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;
 import org.apache.cayenne.map.ObjRelationship;
 import org.apache.cayenne.map.Procedure;
 import org.apache.cayenne.map.ProcedureParameter;
+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.ErrorDebugDialog;
 import org.apache.cayenne.modeler.dialog.query.QueryType;
+import org.apache.cayenne.modeler.event.CallbackMethodEvent;
 import org.apache.cayenne.modeler.undo.PasteCompoundUndoableEdit;
 import org.apache.cayenne.modeler.undo.PasteUndoableEdit;
 import org.apache.cayenne.modeler.util.CayenneAction;
@@ -363,13 +366,16 @@ 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() {
 
                 public boolean isNameFree(String name) {
                     return objEntity.getAttribute(name) == null
-                            && objEntity.getRelationship(name) == null;
+                            && objEntity.getRelationship(name) == null
+                            && !objEntity.getCallbackMap().getCallbackDescriptor(whereType)
+                            		.getCallbackMethods().contains(name);
                 }
             };
 
@@ -392,6 +398,20 @@ public class PasteAction extends Cayenne
                         objEntity,
                         rel);
             }
+            else if(content.getClass().equals(String.class)) {
+                String methodName = (String) content;
+                methodName = getFreeName(checker, methodName);
+                
+                objEntity.getCallbackMap().getCallbackDescriptor(whereType).addCallbackMethod(methodName);
+
+                CallbackMethodEvent ce = new CallbackMethodEvent(
+                        this,
+                        null,
+                        methodName,
+                        MapEvent.ADD);
+
+                getProjectController().fireCallbackMethodEvent(ce);
+            }
         }
 
         else if (where instanceof Embeddable) {
@@ -524,7 +544,7 @@ public class PasteAction extends Cayenne
                     ||
 
                     (currentObject instanceof ObjEntity && (content instanceof ObjAttribute
-                            || content instanceof ObjRelationship || isTreeLeaf(content)))
+                            || content instanceof ObjRelationship || content.getClass().equals(String.class) || isTreeLeaf(content)))
                     ||
 
                     (currentObject instanceof Embeddable && (content instanceof EmbeddableAttribute || isTreeLeaf(content)))

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=1507804&r1=1507803&r2=1507804&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 Sun Jul 28 15:34:11 2013
@@ -47,14 +47,16 @@ import javax.swing.event.ListSelectionLi
 import javax.swing.event.TableColumnModelEvent;
 import javax.swing.event.TableColumnModelListener;
 import javax.swing.table.JTableHeader;
-
 import org.apache.cayenne.map.CallbackDescriptor;
 import org.apache.cayenne.map.CallbackMap;
 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;
+import org.apache.cayenne.modeler.action.PasteAction;
 import org.apache.cayenne.modeler.action.RemoveCallbackMethodAction;
 import org.apache.cayenne.modeler.event.CallbackMethodEvent;
 import org.apache.cayenne.modeler.event.CallbackMethodListener;
@@ -100,19 +102,27 @@ public abstract class AbstractCallbackMe
      */
     protected TableColumnPreferences tablePreferences;
 
+    /**
+     * list of callback method types
+     */
     protected CallbackType[] callbackTypes = {
-                            new CallbackType(LifecycleEvent.POST_ADD, "PostAdd"),
-                            new CallbackType(LifecycleEvent.PRE_PERSIST, "PrePersist"),
-                            new CallbackType(LifecycleEvent.POST_PERSIST, "PostPersist"),
-                            new CallbackType(LifecycleEvent.PRE_UPDATE, "PreUpdate"),
-                            new CallbackType(LifecycleEvent.POST_UPDATE, "PostUpdate"),
-                            new CallbackType(LifecycleEvent.PRE_REMOVE, "PreRemove"),
-                            new CallbackType(LifecycleEvent.POST_REMOVE, "PostRemove"),
-                            new CallbackType(LifecycleEvent.POST_LOAD, "PostLoad"),
+                            new CallbackType(LifecycleEvent.POST_ADD),
+                            new CallbackType(LifecycleEvent.PRE_PERSIST),
+                            new CallbackType(LifecycleEvent.POST_PERSIST),
+                            new CallbackType(LifecycleEvent.PRE_UPDATE),
+                            new CallbackType(LifecycleEvent.POST_UPDATE),
+                            new CallbackType(LifecycleEvent.PRE_REMOVE),
+                            new CallbackType(LifecycleEvent.POST_REMOVE),
+                            new CallbackType(LifecycleEvent.POST_LOAD),
                     };
-
+    
+    /**
+     * list of tables
+     */
     protected CayenneTable[] tables = new CayenneTable[callbackTypes.length];
     
+    protected JPopupMenu popupMenu;
+    
     /**
      * constructor
      * 
@@ -146,6 +156,30 @@ public abstract class AbstractCallbackMe
     }
 
     /**
+     * @return copy callback method action
+     */
+    protected CopyCallbackMethodAction getCopyCallbackMethodAction() {
+        Application app = Application.getInstance();
+        return app.getActionManager().getAction(CopyCallbackMethodAction.class);
+    }
+
+    /**
+     * @return cut callback method action
+     */
+    protected CutCallbackMethodAction getCutCallbackMethodAction() {
+        Application app = Application.getInstance();
+        return app.getActionManager().getAction(CutCallbackMethodAction.class);
+    }
+
+    /**
+     * @return paste callback method action
+     */
+    protected PasteAction getPasteCallbackMethodAction() {
+        Application app = Application.getInstance();
+        return app.getActionManager().getAction(PasteAction.class);
+    }
+
+    /**
      * GUI components initialization
      */
     protected void init() {
@@ -153,6 +187,10 @@ public abstract class AbstractCallbackMe
 
         toolBar = new JToolBar();
         toolBar.add(getRemoveCallbackMethodAction().buildButton());
+        toolBar.addSeparator(new Dimension(10, 0));
+	    toolBar.add(getCopyCallbackMethodAction().buildButton());
+	    toolBar.add(getCutCallbackMethodAction().buildButton());
+        toolBar.add(getPasteCallbackMethodAction().buildButton());
 
         add(toolBar, BorderLayout.NORTH);
 
@@ -160,6 +198,8 @@ public abstract class AbstractCallbackMe
         auxPanel.setOpaque(false);
         auxPanel.setLayout(new BorderLayout());
         
+        popupMenu = createPopup(); 
+        
         createTables();
 
         add(new JScrollPane(auxPanel), BorderLayout.CENTER);
@@ -182,22 +222,27 @@ public abstract class AbstractCallbackMe
 
             public void callbackMethodAdded(CallbackMethodEvent e) {
                 rebuildTables();
-                selectAdded();
+            	selectAdded();
             }
 
             public void callbackMethodRemoved(CallbackMethodEvent e) {
                 rebuildTables();
             }
         });
+        
+        for(int i = 0; i < tables.length; i++) {
+	        mediator.getApplication().getActionManager().setupCutCopyPaste(
+	                tables[i],
+	                CutCallbackMethodAction.class,
+	                CopyCallbackMethodAction.class);
+        }
     }
 
     /**
      * rebuilds table content
      */
     protected void rebuildTables() {
-        
-
-        
+                
         CallbackMap callbackMap = getCallbackMap();
 
        	for(int i = 0; i < callbackTypes.length; i++) {
@@ -260,12 +305,8 @@ public abstract class AbstractCallbackMe
 	    cayenneTable.getColumnModel().addColumnModelListener(new CallbackTableColumnModelListener(cayenneTable));
 	    cayenneTable.getTableHeader().addMouseListener(new CallbackMouseAdapter(cayenneTable));
 	    cayenneTable.getTableHeader().addMouseMotionListener(new CallbackMouseMotionListener(cayenneTable));
-	    
-	    // Create and install a popup
-	    JPopupMenu popup = new JPopupMenu();
-	    popup.add(getRemoveCallbackMethodAction().buildMenu());
-	
-	    TablePopupHandler.install(cayenneTable, popup);
+	      
+	    TablePopupHandler.install(cayenneTable, popupMenu);
 
         addButtonAtHeader(
         		cayenneTable, 
@@ -276,8 +317,18 @@ public abstract class AbstractCallbackMe
 	    return cayenneTable;
     }
     
+    private JPopupMenu createPopup() {
+	    JPopupMenu popup = new JPopupMenu();
+
+	    popup.add(getCopyCallbackMethodAction().buildMenu());
+	    popup.add(getCutCallbackMethodAction().buildMenu());
+	    popup.add(getPasteCallbackMethodAction().buildMenu());
+	    popup.add(getRemoveCallbackMethodAction().buildMenu());
+	    
+		return popup;
+	}
+    
     private JPanel createTablePanel(final CayenneTable cayenneTable) {
-        
         JPanel panel = new JPanel();
         panel.setLayout(new BorderLayout());
         
@@ -328,18 +379,30 @@ public abstract class AbstractCallbackMe
     
     private void selectAdded() {
     	for(int i = 0; i < callbackTypes.length; i++) {
-    		if(callbackTypes[i] == mediator.getCurrentCallbackType()) {
+    		if(callbackTypes[i] == getSelectedCallbackType()) {
                 if (tables[i].editCellAt(
                 		tables[i].getRowCount() - 1,
                         CallbackDescriptorTableModel.METHOD_NAME)
                         && tables[i].getEditorComponent() != null) {
-                	tables[i].getEditorComponent().requestFocus();
+                	tables[i].changeSelection(tables[i].getRowCount() - 1, 0, false, false);
+                	tables[i].getCellEditor().stopCellEditing();
+                	return;
                 }
     		}
     	}
     }
     
-    protected class CallbackImportableHandler extends TransferHandler {
+
+	private void unselectAll() {
+		for(int i = 0; i < callbackTypes.length; i++) {
+          	if(tables[i].getCellEditor() != null) {
+    			tables[i].getCellEditor().stopCellEditing();
+    		}
+          	tables[i].clearSelection();
+    	}
+	}
+    
+    private class CallbackImportableHandler extends TransferHandler {
     	
     	private CayenneTable table;
     	
@@ -399,7 +462,7 @@ public abstract class AbstractCallbackMe
         }
     }
 
-    protected class CallbackListSelectionListener implements ListSelectionListener {    	
+    private class CallbackListSelectionListener implements ListSelectionListener {    	
         
     	private CayenneTable table;
     	
@@ -414,12 +477,14 @@ public abstract class AbstractCallbackMe
                 if(!((ListSelectionModel)e.getSource()).isSelectionEmpty()) {
 	                for(int i = 0; i < tables.length; i++) {
 	                	if(!tables[i].equals(table)) {
-	                		tables[i].getSelectionModel().removeSelectionInterval(0,tables[i].getRowCount()-1);
+	                		tables[i].clearSelection();
 	                		if(tables[i].getCellEditor() != null) {
 	                			tables[i].getCellEditor().stopCellEditing();
 	                		}
 	                	}
 	                }
+
+	                mediator.setCurrentCallbackType(((CallbackDescriptorTableModel)table.getCayenneModel()).getCallbackType());
                 }
 
             	
@@ -436,24 +501,24 @@ public abstract class AbstractCallbackMe
                     }
                 }
 
-                LifecycleEvent currentType = ((CallbackDescriptorTableModel)table.getCayenneModel()).getCallbackDescriptor().getCallbackType();
-                for(CallbackType callbackType : callbackTypes) {
-                	if(callbackType.getType() == currentType) {
-                		mediator.setCurrentCallbackType(callbackType);
-                		break;
-                	}
-                }
-
                 mediator.setCurrentCallbackMethods(methods);
                 getRemoveCallbackMethodAction().setEnabled(methods.length > 0);
                 getRemoveCallbackMethodAction().setName(
                         getRemoveCallbackMethodAction().getActionName(
                                 methods.length > 1));
+                getCopyCallbackMethodAction().setEnabled(methods.length > 0);
+                getCopyCallbackMethodAction().setName(
+                		getCopyCallbackMethodAction().getActionName(
+                                methods.length > 1));
+                getCutCallbackMethodAction().setEnabled(methods.length > 0);
+                getCutCallbackMethodAction().setName(
+                		getCutCallbackMethodAction().getActionName(
+                                methods.length > 1));            
             }
         }
     }
 
-    protected class CallbackTableColumnModelListener implements TableColumnModelListener {
+    private class CallbackTableColumnModelListener implements TableColumnModelListener {
         
     	private CayenneTable table;
     	
@@ -497,6 +562,7 @@ public abstract class AbstractCallbackMe
     		this.table = table;
     	}
     	
+    	@Override
 	    public void mouseReleased(MouseEvent e)
 	    {
 	    	if(table.getColumnWidthChanged())
@@ -504,10 +570,23 @@ public abstract class AbstractCallbackMe
 		    	for(int i=0; i<tables.length; i++) {
 	    			tables[i].getColumnModel().getColumn(0).setPreferredWidth(table.getWidth());
 		    	}
+		    	
 		    	initTablePreferences();
 	        	table.setColumnWidthChanged(false);
 	        }
 	    }
+	    
+    	@Override
+	    public void mousePressed(MouseEvent e)
+	    {
+    		if (e.isPopupTrigger() && e.getComponent() instanceof JTableHeader ) {
+
+    			unselectAll();
+            	
+    			mediator.setCurrentCallbackType(((CallbackDescriptorTableModel)table.getCayenneModel()).getCallbackType());
+            	popupMenu.show(e.getComponent(), e.getX(), e.getY());
+            }
+	    }
 	}
     
     private class CallbackMouseMotionListener implements MouseMotionListener {
@@ -518,10 +597,10 @@ public abstract class AbstractCallbackMe
     		this.table = table;
     	}
     	
-		public void mouseMoved(MouseEvent arg0) {
+		public void mouseMoved(MouseEvent e) {
 		}
 		
-		public void mouseDragged(MouseEvent arg0) {
+		public void mouseDragged(MouseEvent e) {
 	    	if(table.getColumnWidthChanged())
 	        {
 	    		tablePreferences.bind(table, null, null, null);

Modified: cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java?rev=1507804&r1=1507803&r2=1507804&view=diff
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java (original)
+++ cayenne/main/trunk/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java Sun Jul 28 15:34:11 2013
@@ -173,6 +173,13 @@ public class CallbackDescriptorTableMode
         return callbackDescriptor;
     }
 
+    /**
+     * @return CallbackType of the model
+     */
+    public CallbackType getCallbackType() {
+        return callbackType;
+    }
+    
     @Override
     public boolean isColumnSortable(int sortCol) {
         return false;

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=1507804&r1=1507803&r2=1507804&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 Sun Jul 28 15:34:11 2013
@@ -19,6 +19,8 @@
 package org.apache.cayenne.modeler.editor;
 
 import org.apache.cayenne.map.LifecycleEvent;
+import org.apache.cayenne.util.ConversionUtil;
+import org.apache.cayenne.util.NameConverter;
 
 /**
  * Entity for callback type. Contains type and type name
@@ -46,9 +48,9 @@ public class CallbackType {
      * @param type type id
      * @param name name
      */
-    public CallbackType(LifecycleEvent type, String name) {
+    public CallbackType(LifecycleEvent type) {
         this.type = type;
-        this.name = name;
+        this.name = NameConverter.underscoredToJava(type.name(), true);
         this.counter = 0;
     }