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 2010/08/24 15:34:39 UTC

svn commit: r988538 [2/4] - in /cayenne/main/trunk: framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ framework/cayenne-modeler/src/main/java/org/apache/cayenn...

Copied: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DefaultActionManager.java (from r988535, cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ActionManager.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DefaultActionManager.java?p2=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DefaultActionManager.java&p1=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ActionManager.java&r1=988535&r2=988538&rev=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ActionManager.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DefaultActionManager.java Tue Aug 24 13:34:35 2010
@@ -16,8 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-
-package org.apache.cayenne.modeler;
+package org.apache.cayenne.modeler.action;
 
 import java.util.Arrays;
 import java.util.Collection;
@@ -32,157 +31,104 @@ import javax.swing.JComponent;
 import javax.swing.TransferHandler;
 
 import org.apache.cayenne.configuration.ConfigurationNode;
-import org.apache.cayenne.modeler.action.AboutAction;
-import org.apache.cayenne.modeler.action.ConfigurePreferencesAction;
-import org.apache.cayenne.modeler.action.CopyAction;
-import org.apache.cayenne.modeler.action.CopyAttributeAction;
-import org.apache.cayenne.modeler.action.CopyProcedureParameterAction;
-import org.apache.cayenne.modeler.action.CopyRelationshipAction;
-import org.apache.cayenne.modeler.action.CreateAttributeAction;
-import org.apache.cayenne.modeler.action.CreateCallbackMethodAction;
-import org.apache.cayenne.modeler.action.CreateCallbackMethodForDataMapListenerAction;
-import org.apache.cayenne.modeler.action.CreateCallbackMethodForListenerAction;
-import org.apache.cayenne.modeler.action.CreateDataMapAction;
-import org.apache.cayenne.modeler.action.CreateDataMapEntityListenerAction;
-import org.apache.cayenne.modeler.action.CreateDbEntityAction;
-import org.apache.cayenne.modeler.action.CreateEmbeddableAction;
-import org.apache.cayenne.modeler.action.CreateNodeAction;
-import org.apache.cayenne.modeler.action.CreateObjEntityAction;
-import org.apache.cayenne.modeler.action.CreateObjEntityListenerAction;
-import org.apache.cayenne.modeler.action.CreateProcedureAction;
-import org.apache.cayenne.modeler.action.CreateProcedureParameterAction;
-import org.apache.cayenne.modeler.action.CreateQueryAction;
-import org.apache.cayenne.modeler.action.CreateRelationshipAction;
-import org.apache.cayenne.modeler.action.CutAction;
-import org.apache.cayenne.modeler.action.CutAttributeAction;
-import org.apache.cayenne.modeler.action.CutProcedureParameterAction;
-import org.apache.cayenne.modeler.action.CutRelationshipAction;
-import org.apache.cayenne.modeler.action.DbEntitySyncAction;
-import org.apache.cayenne.modeler.action.DocumentationAction;
-import org.apache.cayenne.modeler.action.ExitAction;
-import org.apache.cayenne.modeler.action.FindAction;
-import org.apache.cayenne.modeler.action.GenerateCodeAction;
-import org.apache.cayenne.modeler.action.GenerateDBAction;
-import org.apache.cayenne.modeler.action.ImportDBAction;
-import org.apache.cayenne.modeler.action.ImportDataMapAction;
-import org.apache.cayenne.modeler.action.ImportEOModelAction;
-import org.apache.cayenne.modeler.action.InferRelationshipsAction;
-import org.apache.cayenne.modeler.action.MigrateAction;
-import org.apache.cayenne.modeler.action.NavigateBackwardAction;
-import org.apache.cayenne.modeler.action.NavigateForwardAction;
-import org.apache.cayenne.modeler.action.NewProjectAction;
-import org.apache.cayenne.modeler.action.ObjEntitySyncAction;
-import org.apache.cayenne.modeler.action.OpenProjectAction;
-import org.apache.cayenne.modeler.action.PasteAction;
-import org.apache.cayenne.modeler.action.ProjectAction;
-import org.apache.cayenne.modeler.action.RedoAction;
-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.RemoveCallbackMethodForDataMapListenerAction;
-import org.apache.cayenne.modeler.action.RemoveCallbackMethodForListenerAction;
-import org.apache.cayenne.modeler.action.RemoveEntityListenerAction;
-import org.apache.cayenne.modeler.action.RemoveEntityListenerForDataMapAction;
-import org.apache.cayenne.modeler.action.RemoveProcedureParameterAction;
-import org.apache.cayenne.modeler.action.RemoveRelationshipAction;
-import org.apache.cayenne.modeler.action.RevertAction;
-import org.apache.cayenne.modeler.action.SaveAction;
-import org.apache.cayenne.modeler.action.SaveAsAction;
-import org.apache.cayenne.modeler.action.ShowLogConsoleAction;
-import org.apache.cayenne.modeler.action.UndoAction;
-import org.apache.cayenne.modeler.action.ValidateAction;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.graph.action.ShowGraphEntityAction;
 import org.apache.cayenne.modeler.util.CayenneAction;
 import org.apache.cayenne.project.ConfigurationNodeParentGetter;
 
 /**
- * An object that manages CayenneModeler actions.
- * 
+ * Stores a map of modeler actions, and deals with activating/deactivating those actions
+ * on state changes.
  */
-public class ActionManager {
+public class DefaultActionManager implements ActionManager {
 
-    static final Collection<String> SPECIAL_ACTIONS = Arrays.asList(SaveAction
-            .getActionName(), UndoAction.getActionName(), RedoAction.getActionName());
+    static final Collection<String> SPECIAL_ACTIONS = Arrays.asList(SaveAction.class
+            .getName(), UndoAction.class.getName(), RedoAction.class.getName());
 
     // search action added to project actions
-    static final Collection<String> PROJECT_ACTIONS = Arrays.asList(RevertAction
-            .getActionName(), ProjectAction.getActionName(), ValidateAction
-            .getActionName(), SaveAsAction.getActionName(), FindAction.getActionName());
+    static final Collection<String> PROJECT_ACTIONS = Arrays.asList(
+            RevertAction.class.getName(),
+            ProjectAction.class.getName(),
+            ValidateAction.class.getName(),
+            SaveAsAction.class.getName(),
+            FindAction.class.getName());
 
     static final Collection<String> DOMAIN_ACTIONS = new HashSet<String>(PROJECT_ACTIONS);
     static {
         DOMAIN_ACTIONS.addAll(Arrays.asList(
-                ImportDataMapAction.getActionName(),
-                CreateDataMapAction.getActionName(),
-                RemoveAction.getActionName(),
-                CreateNodeAction.getActionName(),
-                ImportDBAction.getActionName(),
-                ImportEOModelAction.getActionName(),
-                PasteAction.getActionName()));
+                ImportDataMapAction.class.getName(),
+                CreateDataMapAction.class.getName(),
+                RemoveAction.class.getName(),
+                CreateNodeAction.class.getName(),
+                ImportDBAction.class.getName(),
+                ImportEOModelAction.class.getName(),
+                PasteAction.class.getName()));
     }
 
     static final Collection<String> DATA_MAP_ACTIONS = new HashSet<String>(DOMAIN_ACTIONS);
     static {
         DATA_MAP_ACTIONS.addAll(Arrays.asList(
-                GenerateCodeAction.getActionName(),
-                CreateEmbeddableAction.getActionName(),
-                CreateObjEntityAction.getActionName(),
-                CreateDbEntityAction.getActionName(),
-                CreateQueryAction.getActionName(),
-                CreateProcedureAction.getActionName(),
-                GenerateDBAction.getActionName(),
-                MigrateAction.getActionName(),
-                InferRelationshipsAction.getActionName(),
-                CutAction.getActionName(),
-                CopyAction.getActionName()));
+                GenerateCodeAction.class.getName(),
+                CreateEmbeddableAction.class.getName(),
+                CreateObjEntityAction.class.getName(),
+                CreateDbEntityAction.class.getName(),
+                CreateQueryAction.class.getName(),
+                CreateProcedureAction.class.getName(),
+                GenerateDBAction.class.getName(),
+                MigrateAction.class.getName(),
+                InferRelationshipsAction.class.getName(),
+                CutAction.class.getName(),
+                CopyAction.class.getName()));
     }
 
     static final Collection<String> OBJ_ENTITY_ACTIONS = new HashSet<String>(
             DATA_MAP_ACTIONS);
     static {
         OBJ_ENTITY_ACTIONS.addAll(Arrays.asList(
-                ObjEntitySyncAction.getActionName(),
-                CreateAttributeAction.getActionName(),
-                CreateRelationshipAction.getActionName(),
-                ShowGraphEntityAction.getActionName()));
+                ObjEntitySyncAction.class.getName(),
+                CreateAttributeAction.class.getName(),
+                CreateRelationshipAction.class.getName(),
+                ShowGraphEntityAction.class.getName()));
     }
 
     static final Collection<String> DB_ENTITY_ACTIONS = new HashSet<String>(
             DATA_MAP_ACTIONS);
     static {
         DB_ENTITY_ACTIONS.addAll(Arrays.asList(
-                CreateAttributeAction.getActionName(),
-                CreateRelationshipAction.getActionName(),
-                DbEntitySyncAction.getActionName(),
-                ShowGraphEntityAction.getActionName()));
+                CreateAttributeAction.class.getName(),
+                CreateRelationshipAction.class.getName(),
+                DbEntitySyncAction.class.getName(),
+                ShowGraphEntityAction.class.getName()));
     }
 
     static final Collection<String> EMBEDDABLE_ACTIONS = new HashSet<String>(
             DATA_MAP_ACTIONS);
     static {
-        EMBEDDABLE_ACTIONS.addAll(Arrays.asList(CreateAttributeAction.getActionName()));
+        EMBEDDABLE_ACTIONS.addAll(Arrays.asList(CreateAttributeAction.class.getName()));
     }
 
     static final Collection<String> PROCEDURE_ACTIONS = new HashSet<String>(
             DATA_MAP_ACTIONS);
     static {
-        PROCEDURE_ACTIONS.addAll(Arrays.asList(CreateProcedureParameterAction
-                .getActionName()));
+        PROCEDURE_ACTIONS.addAll(Arrays.asList(CreateProcedureParameterAction.class
+                .getName()));
     }
 
     static final Collection<String> MULTIPLE_OBJECTS_ACTIONS = new HashSet<String>(
             PROJECT_ACTIONS);
     static {
         MULTIPLE_OBJECTS_ACTIONS.addAll(Arrays.asList(
-                RemoveAction.getActionName(),
-                CutAction.getActionName(),
-                CopyAction.getActionName(),
-                PasteAction.getActionName()));
+                RemoveAction.class.getName(),
+                CutAction.class.getName(),
+                CopyAction.class.getName(),
+                PasteAction.class.getName()));
     }
 
     protected Map<String, Action> actionMap;
 
-    public ActionManager(Application application) {
+    public DefaultActionManager(@Inject Application application) {
+
         this.actionMap = new HashMap<String, Action>(40);
 
         registerAction(new ProjectAction(application));
@@ -261,18 +207,20 @@ public class ActionManager {
     }
 
     private CayenneAction registerAction(CayenneAction action) {
-        actionMap.put(action.getKey(), action);
+        Action oldAction = actionMap.put(action.getClass().getName(), action);
+        if (oldAction != null && oldAction != action) {
+
+            actionMap.put(action.getClass().getName(), oldAction);
+            throw new IllegalArgumentException("There is already an action of type "
+                    + action.getClass().getName()
+                    + ", attempt to register a second instance.");
+        }
+
         return action;
     }
 
-    /**
-     * Returns an action for key.
-     * 
-     * @param key action name
-     * @return action
-     */
-    public CayenneAction getAction(String key) {
-        return (CayenneAction) actionMap.get(key);
+    public <T extends Action> T getAction(Class<T> actionClass) {
+        return (T) actionMap.get(actionClass.getName());
     }
 
     /**
@@ -284,7 +232,7 @@ public class ActionManager {
     }
 
     public void projectClosed() {
-        processActionsState(Collections.EMPTY_SET);
+        processActionsState(Collections.<String> emptySet());
         updateActions("");
     }
 
@@ -316,11 +264,6 @@ public class ActionManager {
         updateActions("DbEntity");
     }
 
-    public void derivedDbEntitySelected() {
-        processActionsState(DB_ENTITY_ACTIONS);
-        updateActions("Derived DbEntity");
-    }
-
     public void procedureSelected() {
         processActionsState(PROCEDURE_ACTIONS);
         updateActions("Procedure");
@@ -346,7 +289,7 @@ public class ActionManager {
 
         updateActions("Selected Objects");
 
-        CayenneAction cutAction = getAction(CutAction.getActionName());
+        CayenneAction cutAction = getAction(CutAction.class);
         boolean canCopy = true; // cut/copy can be performed if selected objects are on
         // the same level
 
@@ -354,8 +297,9 @@ public class ActionManager {
             canCopy = false;
         }
         else {
-            ConfigurationNodeParentGetter parentGetter = application.getInjector().getInstance(
-                    ConfigurationNodeParentGetter.class);
+            ConfigurationNodeParentGetter parentGetter = application
+                    .getInjector()
+                    .getInstance(ConfigurationNodeParentGetter.class);
             Object parent = parentGetter.getParent(objects[0]);
 
             for (int i = 1; i < objects.length; i++) {
@@ -368,7 +312,7 @@ public class ActionManager {
         }
 
         cutAction.setEnabled(canCopy);
-        getAction(CopyAction.getActionName()).setEnabled(canCopy);
+        getAction(CopyAction.class).setEnabled(canCopy);
     }
 
     /**
@@ -379,18 +323,16 @@ public class ActionManager {
             postfix = " " + postfix;
         }
 
-        getAction(RemoveAction.getActionName()).setName("Remove" + postfix);
-        getAction(CutAction.getActionName()).setName("Cut" + postfix);
-        getAction(CopyAction.getActionName()).setName("Copy" + postfix);
+        getAction(RemoveAction.class).setName("Remove" + postfix);
+        getAction(CutAction.class).setName("Cut" + postfix);
+        getAction(CopyAction.class).setName("Copy" + postfix);
 
-        ((PasteAction) getAction(PasteAction.getActionName())).updateState();
+        getAction(PasteAction.class).updateState();
     }
 
     /**
      * Sets the state of all controlled actions, flipping it to "enabled" for all actions
      * in provided collection and to "disabled" for the rest.
-     * 
-     * @param namesOfEnabled action names
      */
     protected void processActionsState(Collection<String> namesOfEnabled) {
         for (Map.Entry<String, Action> entry : actionMap.entrySet()) {
@@ -401,19 +343,22 @@ public class ActionManager {
         }
     }
 
-    /**
-     * Replaces standard Cut, Copy and Paste action maps, so that accelerators like
-     * Ctrl+X, Ctrl+C, Ctrl+V would work
-     */
-    public void setupCCP(JComponent comp, String cutName, String copyName) {
+    public void setupCutCopyPaste(
+            JComponent comp,
+            Class<? extends Action> cutActionType,
+            Class<? extends Action> copyActionType) {
+
         ActionMap map = comp.getActionMap();
 
-        map.put(TransferHandler.getCutAction().getValue(Action.NAME), getAction(cutName));
+        map.put(
+                TransferHandler.getCutAction().getValue(Action.NAME),
+                getAction(cutActionType));
         map.put(
                 TransferHandler.getCopyAction().getValue(Action.NAME),
-                getAction(copyName));
+                getAction(copyActionType));
         map.put(
                 TransferHandler.getPasteAction().getValue(Action.NAME),
-                getAction(PasteAction.getActionName()));
+                getAction(PasteAction.class));
     }
+
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ExitAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ExitAction.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ExitAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ExitAction.java Tue Aug 24 13:34:35 2010
@@ -26,12 +26,10 @@ import org.apache.cayenne.pref.RenamedPr
 
 import java.awt.event.ActionEvent;
 
-/**
- */
 public class ExitAction extends ProjectAction {
 
     public static String getActionName() {
-    	return "Exit";
+        return "Exit";
     }
 
     /**
@@ -49,19 +47,19 @@ public class ExitAction extends ProjectA
         if (!checkSaveOnClose()) {
             return;
         }
-		
-		//stop logging before JVM shutdown to prevent hanging
-		LogConsole.getInstance().stopLogging();
-
-		RenamedPreferences.removeNewPreferences();
-		
-		// goodbye
+
+        // stop logging before JVM shutdown to prevent hanging
+        LogConsole.getInstance().stopLogging();
+
+        RenamedPreferences.removeNewPreferences();
+
+        // goodbye
         System.exit(0);
     }
 
     /**
-    * Always returns true.
-    */
+     * Always returns true.
+     */
     public boolean enableForPath(ConfigurationNode object) {
         return true;
     }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ImportEOModelAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ImportEOModelAction.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ImportEOModelAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ImportEOModelAction.java Tue Aug 24 13:34:35 2010
@@ -140,8 +140,8 @@ public class ImportEOModelAction extends
         Map connection = (Map) eomodelIndex.get("connectionDictionary");
 
         if (adapter != null && connection != null) {
-            CreateNodeAction nodeBuilder = (CreateNodeAction) getApplication().getAction(
-                    CreateNodeAction.getActionName());
+            CreateNodeAction nodeBuilder = (CreateNodeAction) getApplication().getActionManager().getAction(
+                    CreateNodeAction.class);
 
             // this should make created node current, resulting in the new map being added
             // to the node automatically once it is loaded

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/OpenProjectAction.java Tue Aug 24 13:34:35 2010
@@ -43,8 +43,6 @@ import org.apache.cayenne.swing.control.
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-/**
- */
 public class OpenProjectAction extends ProjectAction {
 
     private static Log logObj = LogFactory.getLog(OpenProjectAction.class);
@@ -55,9 +53,6 @@ public class OpenProjectAction extends P
         return "Open Project";
     }
 
-    /**
-     * Constructor for OpenProjectAction.
-     */
     public OpenProjectAction(Application application) {
         super(getActionName(), application);
         this.fileChooser = new ProjectOpener();
@@ -151,8 +146,9 @@ public class OpenProjectAction extends P
                 JOptionPane
                         .showMessageDialog(Application.getFrame(),
                         // TODO: andrus 05/02/2010 - this message shows intermediate
-                        // version of the project XML, not the Modeler code version that
-                        // can be used for upgrade
+                                // version of the project XML, not the Modeler code
+                                // version that
+                                // can be used for upgrade
                                 "Can't upgrade project. Open the project in the Modeler v."
                                         + md.getIntermediateUpgradeVersion()
                                         + " to do an intermediate upgrade before you can upgrade to v."

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ProjectAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ProjectAction.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ProjectAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ProjectAction.java Tue Aug 24 13:34:35 2010
@@ -69,9 +69,9 @@ public class ProjectAction extends Cayen
         CayenneModelerController controller = Application
                 .getInstance()
                 .getFrameController();
-        
+
         application.getUndoManager().discardAllEdits();
-        
+
         controller.projectClosedAction();
 
         return true;
@@ -88,7 +88,6 @@ public class ProjectAction extends Cayen
 
             if (dialog.shouldCancel()) {
                 // discard changes and DO NOT close
-                Application.getInstance().setQuittingApplication(false);
                 return false;
             }
             else if (dialog.shouldSave()) {
@@ -99,7 +98,8 @@ public class ProjectAction extends Cayen
                         "SaveAll");
                 Application
                         .getInstance()
-                        .getAction(SaveAction.getActionName())
+                        .getActionManager()
+                        .getAction(SaveAction.class)
                         .actionPerformed(e);
                 if (projectController.isDirty()) {
                     // save was canceled... do not close

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RevertAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RevertAction.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RevertAction.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RevertAction.java Tue Aug 24 13:34:35 2010
@@ -32,9 +32,7 @@ import org.apache.cayenne.project.Projec
  */
 public class RevertAction extends CayenneAction {
 
-    
-
-	public static String getActionName() {
+    public static String getActionName() {
         return "Revert";
     }
 
@@ -49,20 +47,24 @@ public class RevertAction extends Cayenn
             return;
         }
 
-       boolean isNew = project.getConfigurationResource() == null; 
-        
+        boolean isNew = project.getConfigurationResource() == null;
+
         CayenneModelerController controller = getApplication().getFrameController();
 
         // close ... don't use OpenProjectAction close method as it will ask for save, we
         // don't want that here
         controller.projectClosedAction();
 
-        File fileDirectory = new File(project.getConfigurationResource().getURL().getPath());
+        File fileDirectory = new File(project
+                .getConfigurationResource()
+                .getURL()
+                .getPath());
         // reopen existing
         if (!isNew && fileDirectory.isFile()) {
-            OpenProjectAction openAction = (OpenProjectAction) controller
+            OpenProjectAction openAction = controller
                     .getApplication()
-                    .getAction(OpenProjectAction.getActionName());
+                    .getActionManager()
+                    .getAction(OpenProjectAction.class);
             openAction.openProject(fileDirectory);
         }
         // create new
@@ -70,12 +72,10 @@ public class RevertAction extends Cayenn
             throw new CayenneRuntimeException("Only ApplicationProjects are supported.");
         }
         else {
-            controller
-                    .getApplication()
-                    .getAction(NewProjectAction.getActionName())
-                    .performAction(e);
+            controller.getApplication().getActionManager().getAction(
+                    NewProjectAction.class).performAction(e);
         }
-        
+
         application.getUndoManager().discardAllEdits();
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/ConfirmRemoveDialog.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/ConfirmRemoveDialog.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/ConfirmRemoveDialog.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/ConfirmRemoveDialog.java Tue Aug 24 13:34:35 2010
@@ -24,33 +24,39 @@ import javax.swing.JCheckBox;
 import javax.swing.JDialog;
 import javax.swing.JOptionPane;
 
-import org.apache.cayenne.gen.ClassGenerationAction;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.dialog.pref.GeneralPreferences;
 
 /**
  * Used to confirm deleting items in the model.
- *
+ * 
  */
 public class ConfirmRemoveDialog {
+
     private boolean shouldDelete = true;
-    
+
     /**
      * If false, no question will be asked no matter what settings are
      */
     private boolean allowAsking;
-    
+
     public ConfirmRemoveDialog(boolean allowAsking) {
         this.allowAsking = allowAsking;
     }
-    
+
     private void showDialog(String name) {
 
         JCheckBox neverPromptAgainBox = new JCheckBox("Always delete without prompt.");
 
-        Object message[] = {String.format("Are you sure you would like to delete the %s?", name), neverPromptAgainBox};
-
-        JOptionPane pane = new JOptionPane(message, JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION);
+        Object message[] = {
+                String.format("Are you sure you would like to delete the %s?", name),
+                neverPromptAgainBox
+        };
+
+        JOptionPane pane = new JOptionPane(
+                message,
+                JOptionPane.QUESTION_MESSAGE,
+                JOptionPane.YES_NO_OPTION);
 
         JDialog dialog = pane.createDialog(Application.getFrame(), "Confirm Remove");
         dialog.setVisible(true);
@@ -58,24 +64,34 @@ public class ConfirmRemoveDialog {
         Object selectedValue = pane.getValue();
         shouldDelete = selectedValue.equals(JOptionPane.YES_OPTION);
 
-        // If the user clicks "no", we'll just ignore whatever's in the checkbox because it's non-sensical.
+        // If the user clicks "no", we'll just ignore whatever's in the checkbox because
+        // it's non-sensical.
         if (shouldDelete) {
-            Preferences pref = Application.getInstance().getPreferencesNode(ClassGenerationAction.class, "");
-            pref.putBoolean(GeneralPreferences.DELETE_PROMPT_PREFERENCE, neverPromptAgainBox.isSelected());
+            Preferences pref = Application.getInstance().getPreferencesNode(
+                    GeneralPreferences.class,
+                    "");
+            pref.putBoolean(
+                    GeneralPreferences.DELETE_PROMPT_PREFERENCE,
+                    neverPromptAgainBox.isSelected());
         }
     }
-    
+
     public boolean shouldDelete(String type, String name) {
         return shouldDelete(String.format("%s named '%s'?", type, name));
     }
 
     public boolean shouldDelete(String name) {
         if (allowAsking) {
-            
-            Preferences pref = Application.getInstance().getPreferencesNode(ClassGenerationAction.class, "");
+
+            Preferences pref = Application.getInstance().getPreferencesNode(
+                    GeneralPreferences.class,
+                    "");
 
             // See if the user has opted not to showDialog the delete dialog.
-            if ((pref == null) || (false == pref.getBoolean(GeneralPreferences.DELETE_PROMPT_PREFERENCE, false))) {
+            if ((pref == null)
+                    || !pref.getBoolean(
+                            GeneralPreferences.DELETE_PROMPT_PREFERENCE,
+                            false)) {
                 showDialog(name);
             }
         }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/LogConsole.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/LogConsole.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/LogConsole.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/LogConsole.java Tue Aug 24 13:34:35 2010
@@ -298,7 +298,7 @@ public class LogConsole extends CayenneC
             clear();
         }
         
-        StringBuffer newText = new StringBuffer(FORMAT.format(new Date()))
+        StringBuilder newText = new StringBuilder(FORMAT.format(new Date()))
             .append(System.getProperty("line.separator"))
             .append(level.toUpperCase() + ": ");
         
@@ -325,8 +325,6 @@ public class LogConsole extends CayenneC
         try {
             doc.insertString(doc.getLength(), newText.toString(), style);
 
-            //view.getLogView().setText(view.getLogView().getText() + newText);
-            
             if (autoScroll) {
                 view.getLogView().setCaretPosition(
                         doc.getLength() - 1);

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/codegen/GeneratorController.java Tue Aug 24 13:34:35 2010
@@ -153,12 +153,15 @@ public abstract class GeneratorControlle
         generator.addEntities(entities);
         generator.addEmbeddables(getParentController().getSelectedEmbeddables());
         generator.addQueries(getParentController().getDataMap().getQueries());
-        
-        Preferences preferences = application.getPreferencesNode(ClassGenerationAction.class, "");
+
+        Preferences preferences = application.getPreferencesNode(
+                GeneralPreferences.class,
+                "");
 
         if (preferences != null) {
-            generator.setEncoding(preferences
-                    .get(GeneralPreferences.ENCODING_PREFERENCE, null));
+            generator.setEncoding(preferences.get(
+                    GeneralPreferences.ENCODING_PREFERENCE,
+                    null));
         }
 
         generator.setDestDir(outputDir);
@@ -542,7 +545,7 @@ public abstract class GeneratorControlle
                         return getParentController().getProblem(
                                 ((ObjEntity) object).getName()) == null;
                     }
-                    
+
                     if (object instanceof Embeddable) {
                         return getParentController().getProblem(
                                 ((Embeddable) object).getClassName()) == null;

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/pref/GeneralPreferences.java Tue Aug 24 13:34:35 2010
@@ -24,15 +24,12 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.prefs.Preferences;
 
-import org.apache.cayenne.gen.ClassGenerationAction;
 import org.apache.cayenne.modeler.util.CayenneController;
 import org.apache.cayenne.pref.CayennePreferenceEditor;
 import org.apache.cayenne.pref.PreferenceEditor;
 import org.apache.cayenne.swing.BindingBuilder;
 import org.apache.cayenne.swing.ObjectBinding;
 
-/**
- */
 public class GeneralPreferences extends CayenneController {
 
     public static final String AUTO_LOAD_PROJECT_PREFERENCE = "autoLoadProject";
@@ -77,7 +74,7 @@ public class GeneralPreferences extends 
 
     protected void initBindings() {
         // init model objects
-        preferences = application.getPreferencesNode(ClassGenerationAction.class, "");
+        preferences = application.getPreferencesNode(GeneralPreferences.class, "");
 
         this.encoding = preferences.get(ENCODING_PREFERENCE, null);
 

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/ValidatorDialog.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/ValidatorDialog.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/ValidatorDialog.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/ValidatorDialog.java Tue Aug 24 13:34:35 2010
@@ -109,7 +109,9 @@ public class ValidatorDialog extends Cay
         problemsTable.setRowMargin(3);
         problemsTable.setCellSelectionEnabled(false);
         problemsTable.setRowSelectionAllowed(true);
-        problemsTable.setDefaultRenderer(ValidationFailure.class, new ValidationRenderer());
+        problemsTable.setDefaultRenderer(
+                ValidationFailure.class,
+                new ValidationRenderer());
 
         // assemble
         CellConstraints cc = new CellConstraints();
@@ -159,10 +161,8 @@ public class ValidatorDialog extends Cay
         refreshButton.addActionListener(new ActionListener() {
 
             public void actionPerformed(ActionEvent e) {
-                Application
-                        .getInstance()
-                        .getAction(ValidateAction.getActionName())
-                        .actionPerformed(e);
+                Application.getInstance().getActionManager().getAction(
+                        ValidateAction.class).actionPerformed(e);
             }
         });
 

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/AbstractCallbackMethodsTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/AbstractCallbackMethodsTab.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/AbstractCallbackMethodsTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/AbstractCallbackMethodsTab.java Tue Aug 24 13:34:35 2010
@@ -141,7 +141,7 @@ public abstract class AbstractCallbackMe
      */
     protected CayenneAction getCreateCallbackMethodAction() {
         Application app = Application.getInstance();
-        return app.getAction(CreateCallbackMethodAction.ACTION_NAME);
+        return app.getActionManager().getAction(CreateCallbackMethodAction.class);
     }
 
     /**
@@ -149,8 +149,7 @@ public abstract class AbstractCallbackMe
      */
     protected AbstractRemoveCallbackMethodAction getRemoveCallbackMethodAction() {
         Application app = Application.getInstance();
-        return (AbstractRemoveCallbackMethodAction) app
-                .getAction(RemoveCallbackMethodAction.ACTION_NAME);
+        return app.getActionManager().getAction(RemoveCallbackMethodAction.class);
     }
 
     /**

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapCallbackListenersTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapCallbackListenersTab.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapCallbackListenersTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/DataMapCallbackListenersTab.java Tue Aug 24 13:34:35 2010
@@ -34,17 +34,16 @@ import org.apache.cayenne.modeler.event.
 import org.apache.cayenne.modeler.pref.TableColumnPreferences;
 import org.apache.cayenne.modeler.util.CayenneAction;
 
-
 /**
  * Tab for editing default entity listeners of a DataMap
- *
+ * 
  * @version 1.0 Oct 28, 2007
  */
 public class DataMapCallbackListenersTab extends AbstractCallbackListenersTab {
 
-
     /**
      * Constructor
+     * 
      * @param mediator mediator instance
      */
     public DataMapCallbackListenersTab(ProjectController mediator) {
@@ -56,8 +55,10 @@ public class DataMapCallbackListenersTab
      */
     protected CallbackMap getCallbackMap() {
         String listenerClass = (String) listenerClassCombo.getSelectedItem();
-        return listenerClass == null ? 
-               null : mediator.getCurrentDataMap().getDefaultEntityListener(listenerClass).getCallbackMap();
+        return listenerClass == null ? null : mediator
+                .getCurrentDataMap()
+                .getDefaultEntityListener(listenerClass)
+                .getCallbackMap();
     }
 
     /**
@@ -67,28 +68,28 @@ public class DataMapCallbackListenersTab
         return mediator.getCurrentDataMap().getDefaultEntityListeners();
     }
 
-
     /**
      * init listeners
      */
     protected void initController() {
         super.initController();
-        mediator.addDataMapDisplayListener(
-                new DataMapDisplayListener() {
-                    /**
-                     * process DapaMap selection
-                     * @param e event
-                     */
-                    public void currentDataMapChanged(DataMapDisplayEvent e) {
-                        if (isVisible()) {
-                            rebuildListenerClassCombo(null);
-                            updateCallbackTypeCounters();
-                            mediator.setCurrentCallbackType((CallbackType)callbackTypeCombo.getSelectedItem());
-                            rebuildTable();
-                        }
-                    }
+        mediator.addDataMapDisplayListener(new DataMapDisplayListener() {
+
+            /**
+             * process DapaMap selection
+             * 
+             * @param e event
+             */
+            public void currentDataMapChanged(DataMapDisplayEvent e) {
+                if (isVisible()) {
+                    rebuildListenerClassCombo(null);
+                    updateCallbackTypeCounters();
+                    mediator.setCurrentCallbackType((CallbackType) callbackTypeCombo
+                            .getSelectedItem());
+                    rebuildTable();
                 }
-        );
+            }
+        });
     }
 
     /**
@@ -96,7 +97,8 @@ public class DataMapCallbackListenersTab
      */
     protected CayenneAction getCreateCallbackMethodAction() {
         Application app = Application.getInstance();
-        return app.getAction(CreateCallbackMethodForDataMapListenerAction.ACTION_NAME);
+        return app.getActionManager().getAction(
+                CreateCallbackMethodForDataMapListenerAction.class);
     }
 
     /**
@@ -104,22 +106,24 @@ public class DataMapCallbackListenersTab
      */
     protected AbstractRemoveCallbackMethodAction getRemoveCallbackMethodAction() {
         Application app = Application.getInstance();
-        return (AbstractRemoveCallbackMethodAction) app.getAction(RemoveCallbackMethodForDataMapListenerAction.ACTION_NAME);
+        return app.getActionManager().getAction(
+                RemoveCallbackMethodForDataMapListenerAction.class);
     }
 
     /**
      * @return action for removing entity listeners
      */
     protected CayenneAction getRemoveEntityListenerAction() {
-        return Application.getInstance().getAction(RemoveEntityListenerForDataMapAction.getActionName());
+        return Application.getInstance().getActionManager().getAction(
+                RemoveEntityListenerForDataMapAction.class);
     }
 
-
     /**
      * @return action for creating entity listeners
      */
     public CayenneAction getCreateEntityListenerAction() {
-        return Application.getInstance().getAction(CreateDataMapEntityListenerAction.getActionName());
+        return Application.getInstance().getActionManager().getAction(
+                CreateDataMapEntityListenerAction.class);
     }
 
     protected EntityListener getEntityListener(String listenerClass) {
@@ -128,7 +132,8 @@ public class DataMapCallbackListenersTab
 
     @Override
     protected void initTablePreferences() {
-        tablePreferences = new TableColumnPreferences(this.getClass(),"datamap/callbackTable");
+        tablePreferences = new TableColumnPreferences(
+                this.getClass(),
+                "datamap/callbackTable");
     }
 }
-

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EmbeddableAttributeTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EmbeddableAttributeTab.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EmbeddableAttributeTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EmbeddableAttributeTab.java Tue Aug 24 13:34:35 2010
@@ -42,6 +42,7 @@ import org.apache.cayenne.map.event.Embe
 import org.apache.cayenne.map.event.EmbeddableListener;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.ProjectController;
+import org.apache.cayenne.modeler.action.ActionManager;
 import org.apache.cayenne.modeler.action.CopyAttributeAction;
 import org.apache.cayenne.modeler.action.CreateAttributeAction;
 import org.apache.cayenne.modeler.action.CutAttributeAction;
@@ -59,7 +60,7 @@ import org.apache.cayenne.modeler.util.P
 import org.apache.cayenne.modeler.util.UIUtil;
 import org.apache.cayenne.modeler.util.combo.AutoCompletion;
 
-public class EmbeddableAttributeTab extends JPanel implements 
+public class EmbeddableAttributeTab extends JPanel implements
         EmbeddableAttributeListener, EmbeddableDisplayListener, EmbeddableListener,
         ExistingSelectionProcessor {
 
@@ -79,17 +80,17 @@ public class EmbeddableAttributeTab exte
         this.setLayout(new BorderLayout());
 
         JToolBar toolBar = new JToolBar();
-        Application app = Application.getInstance();
+        ActionManager actionManager = Application.getInstance().getActionManager();
 
-        toolBar.add(app.getAction(CreateAttributeAction.getActionName()).buildButton());
+        toolBar.add(actionManager.getAction(CreateAttributeAction.class).buildButton());
         toolBar.addSeparator();
 
-        toolBar.add(app.getAction(RemoveAttributeAction.getActionName()).buildButton());
+        toolBar.add(actionManager.getAction(RemoveAttributeAction.class).buildButton());
         toolBar.addSeparator();
 
-        toolBar.add(app.getAction(CutAttributeAction.getActionName()).buildButton());
-        toolBar.add(app.getAction(CopyAttributeAction.getActionName()).buildButton());
-        toolBar.add(app.getAction(PasteAction.getActionName()).buildButton());
+        toolBar.add(actionManager.getAction(CutAttributeAction.class).buildButton());
+        toolBar.add(actionManager.getAction(CopyAttributeAction.class).buildButton());
+        toolBar.add(actionManager.getAction(PasteAction.class).buildButton());
 
         add(toolBar, BorderLayout.NORTH);
 
@@ -99,17 +100,15 @@ public class EmbeddableAttributeTab exte
                 this.getClass(),
                 "embeddable/attributeTable");
 
-        /**
-         * Create and install a popup
-         */
+        // Create and install a popup
         JPopupMenu popup = new JPopupMenu();
-        popup.add(app.getAction(RemoveAttributeAction.getActionName()).buildMenu());
+        popup.add(actionManager.getAction(RemoveAttributeAction.class).buildMenu());
 
         popup.addSeparator();
 
-        popup.add(app.getAction(CutAttributeAction.getActionName()).buildMenu());
-        popup.add(app.getAction(CopyAttributeAction.getActionName()).buildMenu());
-        popup.add(app.getAction(PasteAction.getActionName()).buildMenu());
+        popup.add(actionManager.getAction(CutAttributeAction.class).buildMenu());
+        popup.add(actionManager.getAction(CopyAttributeAction.class).buildMenu());
+        popup.add(actionManager.getAction(PasteAction.class).buildMenu());
 
         TablePopupHandler.install(table, popup);
         add(PanelFactory.createTablePanel(table, null), BorderLayout.CENTER);
@@ -127,10 +126,10 @@ public class EmbeddableAttributeTab exte
             }
         });
 
-        mediator.getApplication().getActionManager().setupCCP(
+        mediator.getApplication().getActionManager().setupCutCopyPaste(
                 table,
-                CutAttributeAction.getActionName(),
-                CopyAttributeAction.getActionName());
+                CutAttributeAction.class,
+                CopyAttributeAction.class);
     }
 
     public void processExistingSelection(EventObject e) {
@@ -161,7 +160,7 @@ public class EmbeddableAttributeTab exte
                 mediator.getCurrentEmbeddable(),
                 attrs,
                 mediator.getCurrentDataMap(),
-                (DataChannelDescriptor)mediator.getProject().getRootNode());
+                (DataChannelDescriptor) mediator.getProject().getRootNode());
 
         mediator.fireEmbeddableAttributeDisplayEvent(ev);
     }
@@ -202,9 +201,9 @@ public class EmbeddableAttributeTab exte
     public void selectAttributes(EmbeddableAttribute[] embAttrs) {
         ModelerUtil.updateActions(
                 embAttrs.length,
-                RemoveAttributeAction.getActionName(),
-                CopyAttributeAction.getActionName(),
-                CutAttributeAction.getActionName());
+                RemoveAttributeAction.class,
+                CopyAttributeAction.class,
+                CutAttributeAction.class);
 
         EmbeddableAttributeTableModel model = (EmbeddableAttributeTableModel) table
                 .getModel();
@@ -247,17 +246,19 @@ public class EmbeddableAttributeTab exte
             rebuildTable(embeddable);
         }
     }
-    
+
     public void embeddableAdded(EmbeddableEvent e, DataMap map) {
     }
-    
+
     public void embeddableRemoved(EmbeddableEvent e, DataMap map) {
     }
 
     public void embeddableChanged(EmbeddableEvent e, DataMap map) {
         if (e.getOldName() != null) {
-            ((Embeddable)map.getEmbeddable(e.getOldName())).setClassName(e.getEmbeddable().getClassName());
-            if(map.getEmbeddableMap().containsKey(e.getOldName())){
+            ((Embeddable) map.getEmbeddable(e.getOldName())).setClassName(e
+                    .getEmbeddable()
+                    .getClassName());
+            if (map.getEmbeddableMap().containsKey(e.getOldName())) {
                 map.removeEmbeddable(e.getOldName());
                 map.addEmbeddable(e.getEmbeddable());
             }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EmbeddableTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EmbeddableTab.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EmbeddableTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EmbeddableTab.java Tue Aug 24 13:34:35 2010
@@ -36,6 +36,7 @@ import org.apache.cayenne.map.event.Attr
 import org.apache.cayenne.map.event.EmbeddableEvent;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.ProjectController;
+import org.apache.cayenne.modeler.action.ActionManager;
 import org.apache.cayenne.modeler.action.CreateAttributeAction;
 import org.apache.cayenne.modeler.event.EmbeddableDisplayEvent;
 import org.apache.cayenne.modeler.event.EmbeddableDisplayListener;
@@ -65,8 +66,8 @@ public class EmbeddableTab extends JPane
         this.setLayout(new BorderLayout());
 
         JToolBar toolBar = new JToolBar();
-        Application app = Application.getInstance();
-        toolBar.add(app.getAction(CreateAttributeAction.getActionName()).buildButton());
+        ActionManager actionManager = Application.getInstance().getActionManager();
+        toolBar.add(actionManager.getAction(CreateAttributeAction.class).buildButton());
 
         add(toolBar, BorderLayout.NORTH);
 

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EmbeddableTabbedView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EmbeddableTabbedView.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EmbeddableTabbedView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/EmbeddableTabbedView.java Tue Aug 24 13:34:35 2010
@@ -30,6 +30,7 @@ import org.apache.cayenne.map.Embeddable
 import org.apache.cayenne.map.EmbeddableAttribute;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.ProjectController;
+import org.apache.cayenne.modeler.action.ActionManager;
 import org.apache.cayenne.modeler.action.RemoveAttributeAction;
 import org.apache.cayenne.modeler.action.RemoveCallbackMethodAction;
 import org.apache.cayenne.modeler.event.EmbeddableAttributeDisplayEvent;
@@ -87,9 +88,10 @@ public class EmbeddableTabbedView extend
 
     /** Reset the remove buttons */
     private void resetRemoveButtons() {
-        Application app = Application.getInstance();
-        app.getAction(RemoveAttributeAction.getActionName()).setEnabled(false);
-        app.getAction(RemoveCallbackMethodAction.getActionName()).setEnabled(false);
+        ActionManager actionManager = Application.getInstance().getActionManager();
+
+        actionManager.getAction(RemoveAttributeAction.class).setEnabled(false);
+        actionManager.getAction(RemoveCallbackMethodAction.class).setEnabled(false);
     }
 
     public void currentEmbeddableChanged(EmbeddableDisplayEvent e) {

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeTab.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityAttributeTab.java Tue Aug 24 13:34:35 2010
@@ -58,6 +58,7 @@ import org.apache.cayenne.map.event.ObjA
 import org.apache.cayenne.map.event.ObjEntityListener;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.ProjectController;
+import org.apache.cayenne.modeler.action.ActionManager;
 import org.apache.cayenne.modeler.action.CopyAttributeAction;
 import org.apache.cayenne.modeler.action.CreateAttributeAction;
 import org.apache.cayenne.modeler.action.CutAttributeAction;
@@ -100,9 +101,10 @@ public class ObjEntityAttributeTab exten
         this.setLayout(new BorderLayout());
 
         JToolBar toolBar = new JToolBar();
-        Application app = Application.getInstance();
-        toolBar.add(app.getAction(CreateAttributeAction.getActionName()).buildButton());
-        toolBar.add(app.getAction(ObjEntitySyncAction.getActionName()).buildButton());
+        ActionManager actionManager = Application.getInstance().getActionManager();
+
+        toolBar.add(actionManager.getAction(CreateAttributeAction.class).buildButton());
+        toolBar.add(actionManager.getAction(ObjEntitySyncAction.class).buildButton());
         toolBar.addSeparator();
 
         Icon ico = ModelerUtil.buildIcon("icon-info.gif");
@@ -113,12 +115,12 @@ public class ObjEntityAttributeTab exten
         toolBar.add(resolve);
 
         toolBar.addSeparator();
-        toolBar.add(app.getAction(RemoveAttributeAction.getActionName()).buildButton());
+        toolBar.add(actionManager.getAction(RemoveAttributeAction.class).buildButton());
 
         toolBar.addSeparator();
-        toolBar.add(app.getAction(CutAttributeAction.getActionName()).buildButton());
-        toolBar.add(app.getAction(CopyAttributeAction.getActionName()).buildButton());
-        toolBar.add(app.getAction(PasteAction.getActionName()).buildButton());
+        toolBar.add(actionManager.getAction(CutAttributeAction.class).buildButton());
+        toolBar.add(actionManager.getAction(CopyAttributeAction.class).buildButton());
+        toolBar.add(actionManager.getAction(PasteAction.class).buildButton());
 
         add(toolBar, BorderLayout.NORTH);
 
@@ -129,16 +131,14 @@ public class ObjEntityAttributeTab exten
                 ObjAttributeTableModel.class,
                 "objEntity/attributeTable");
 
-        /**
-         * Create and install a popup
-         */
+        // Create and install a popup
         JPopupMenu popup = new JPopupMenu();
-        popup.add(app.getAction(RemoveAttributeAction.getActionName()).buildMenu());
+        popup.add(actionManager.getAction(RemoveAttributeAction.class).buildMenu());
 
         popup.addSeparator();
-        popup.add(app.getAction(CutAttributeAction.getActionName()).buildMenu());
-        popup.add(app.getAction(CopyAttributeAction.getActionName()).buildMenu());
-        popup.add(app.getAction(PasteAction.getActionName()).buildMenu());
+        popup.add(actionManager.getAction(CutAttributeAction.class).buildMenu());
+        popup.add(actionManager.getAction(CopyAttributeAction.class).buildMenu());
+        popup.add(actionManager.getAction(PasteAction.class).buildMenu());
 
         TablePopupHandler.install(table, popup);
 
@@ -184,10 +184,11 @@ public class ObjEntityAttributeTab exten
 
         resolve.addActionListener(resolver);
 
-        mediator.getApplication().getActionManager().setupCCP(
+        ActionManager actionManager = Application.getInstance().getActionManager();
+        actionManager.setupCutCopyPaste(
                 table,
-                CutAttributeAction.getActionName(),
-                CopyAttributeAction.getActionName());
+                CutAttributeAction.class,
+                CopyAttributeAction.class);
     }
 
     public void initComboBoxes(ObjAttributeTableModel model) {
@@ -238,9 +239,9 @@ public class ObjEntityAttributeTab exten
     public void selectAttributes(ObjAttribute[] attrs) {
         ModelerUtil.updateActions(
                 attrs.length,
-                RemoveAttributeAction.getActionName(),
-                CutAttributeAction.getActionName(),
-                CopyAttributeAction.getActionName());
+                RemoveAttributeAction.class,
+                CutAttributeAction.class,
+                CopyAttributeAction.class);
 
         ObjAttributeTableModel model = (ObjAttributeTableModel) table.getModel();
 

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityCallbackListenersTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityCallbackListenersTab.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityCallbackListenersTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityCallbackListenersTab.java Tue Aug 24 13:34:35 2010
@@ -25,6 +25,7 @@ import org.apache.cayenne.map.EntityList
 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.ActionManager;
 import org.apache.cayenne.modeler.action.CreateCallbackMethodForListenerAction;
 import org.apache.cayenne.modeler.action.CreateObjEntityListenerAction;
 import org.apache.cayenne.modeler.action.RemoveCallbackMethodForListenerAction;
@@ -36,13 +37,14 @@ import org.apache.cayenne.modeler.util.C
 
 /**
  * Tab for editing entity listeners of an ObjEntity
- *
+ * 
  * @version 1.0 Oct 28, 2007
  */
 public class ObjEntityCallbackListenersTab extends AbstractCallbackListenersTab {
 
     /**
      * constructor
+     * 
      * @param mediator mediator instance
      */
     public ObjEntityCallbackListenersTab(ProjectController mediator) {
@@ -54,9 +56,12 @@ public class ObjEntityCallbackListenersT
      */
     protected CallbackMap getCallbackMap() {
         String listenerClass = (String) listenerClassCombo.getSelectedItem();
-        if (mediator.getCurrentObjEntity() != null &&
-                mediator.getCurrentObjEntity().getEntityListener(listenerClass) != null) {
-            return mediator.getCurrentObjEntity().getEntityListener(listenerClass).getCallbackMap();
+        if (mediator.getCurrentObjEntity() != null
+                && mediator.getCurrentObjEntity().getEntityListener(listenerClass) != null) {
+            return mediator
+                    .getCurrentObjEntity()
+                    .getEntityListener(listenerClass)
+                    .getCallbackMap();
         }
         return null;
     }
@@ -67,57 +72,59 @@ public class ObjEntityCallbackListenersT
     protected void initController() {
         super.initController();
 
-        mediator.addObjEntityDisplayListener(
-                new ObjEntityDisplayListener() {
-                    public void currentObjEntityChanged(EntityDisplayEvent e) {
-                        if (ObjEntityCallbackListenersTab.this.isVisible()) {
-                            rebuildListenerClassCombo(null);
-                            updateCallbackTypeCounters();
-                            mediator.setCurrentCallbackType((CallbackType)callbackTypeCombo.getSelectedItem());
-                            rebuildTable();
-                        }
-                    }
+        mediator.addObjEntityDisplayListener(new ObjEntityDisplayListener() {
+
+            public void currentObjEntityChanged(EntityDisplayEvent e) {
+                if (ObjEntityCallbackListenersTab.this.isVisible()) {
+                    rebuildListenerClassCombo(null);
+                    updateCallbackTypeCounters();
+                    mediator.setCurrentCallbackType((CallbackType) callbackTypeCombo
+                            .getSelectedItem());
+                    rebuildTable();
                 }
-        );
+            }
+        });
     }
 
     /**
      * @return returns entity listeners list
      */
     protected List getEntityListeners() {
-        return mediator.getCurrentObjEntity() == null ? null :
-               mediator.getCurrentObjEntity().getEntityListeners();
+        return mediator.getCurrentObjEntity() == null ? null : mediator
+                .getCurrentObjEntity()
+                .getEntityListeners();
     }
 
     /**
      * @return create callback method action
      */
     protected CayenneAction getCreateCallbackMethodAction() {
-        Application app = Application.getInstance();
-        return app.getAction(CreateCallbackMethodForListenerAction.ACTION_NAME);
+        ActionManager actionManager = Application.getInstance().getActionManager();
+        return actionManager.getAction(CreateCallbackMethodForListenerAction.class);
     }
 
-
     /**
      * @return remove callback method action
      */
     protected AbstractRemoveCallbackMethodAction getRemoveCallbackMethodAction() {
-        Application app = Application.getInstance();
-        return (AbstractRemoveCallbackMethodAction)app.getAction(RemoveCallbackMethodForListenerAction.ACTION_NAME);
+        ActionManager actionManager = Application.getInstance().getActionManager();
+        return actionManager.getAction(RemoveCallbackMethodForListenerAction.class);
     }
 
     /**
      * @return action for removing entity listeners
      */
     protected CayenneAction getRemoveEntityListenerAction() {
-        return Application.getInstance().getAction(RemoveEntityListenerAction.getActionName());
+        ActionManager actionManager = Application.getInstance().getActionManager();
+        return actionManager.getAction(RemoveEntityListenerAction.class);
     }
 
     /**
      * @return action for creating entity listeners
      */
     public CayenneAction getCreateEntityListenerAction() {
-        return Application.getInstance().getAction(CreateObjEntityListenerAction.getActionName());
+        ActionManager actionManager = Application.getInstance().getActionManager();
+        return actionManager.getAction(CreateObjEntityListenerAction.class);
     }
 
     protected EntityListener getEntityListener(String listenerClass) {
@@ -126,7 +133,8 @@ public class ObjEntityCallbackListenersT
 
     @Override
     protected void initTablePreferences() {
-        tablePreferences = new TableColumnPreferences(this.getClass(),"objEntity/callbackTable");
+        tablePreferences = new TableColumnPreferences(
+                this.getClass(),
+                "objEntity/callbackTable");
     }
 }
-

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipTab.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityRelationshipTab.java Tue Aug 24 13:34:35 2010
@@ -58,6 +58,7 @@ import org.apache.cayenne.map.event.ObjR
 import org.apache.cayenne.map.event.RelationshipEvent;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.ProjectController;
+import org.apache.cayenne.modeler.action.ActionManager;
 import org.apache.cayenne.modeler.action.CopyRelationshipAction;
 import org.apache.cayenne.modeler.action.CreateRelationshipAction;
 import org.apache.cayenne.modeler.action.CutRelationshipAction;
@@ -82,7 +83,6 @@ import org.apache.commons.logging.LogFac
 
 /**
  * Displays ObjRelationships for the edited ObjEntity.
- * 
  */
 public class ObjEntityRelationshipTab extends JPanel implements ObjEntityDisplayListener,
         ObjEntityListener, ObjRelationshipListener, ExistingSelectionProcessor {
@@ -100,13 +100,12 @@ public class ObjEntityRelationshipTab ex
 
     CayenneTable table;
     private TableColumnPreferences tablePreferences;
-    
+
     JButton resolve;
-    
+
     /**
-     * By now popup menu item is made similiar to toolbar button. 
-     * (i.e. all functionality is here)
-     * This should be probably refactored as Action.
+     * By now popup menu item is made similiar to toolbar button. (i.e. all functionality
+     * is here) This should be probably refactored as Action.
      */
     protected JMenuItem resolveMenu;
 
@@ -121,15 +120,15 @@ public class ObjEntityRelationshipTab ex
         this.setLayout(new BorderLayout());
 
         JToolBar toolBar = new JToolBar();
-        Application app = Application.getInstance();
+        ActionManager actionManager = Application.getInstance().getActionManager();
         toolBar
-                .add(app
-                        .getAction(CreateRelationshipAction.getActionName())
+                .add(actionManager
+                        .getAction(CreateRelationshipAction.class)
                         .buildButton());
-        toolBar.add(app.getAction(ObjEntitySyncAction.getActionName()).buildButton());
+        toolBar.add(actionManager.getAction(ObjEntitySyncAction.class).buildButton());
 
         toolBar.addSeparator();
-        
+
         Icon ico = ModelerUtil.buildIcon("icon-info.gif");
 
         resolve = new JButton();
@@ -139,35 +138,40 @@ public class ObjEntityRelationshipTab ex
 
         toolBar.addSeparator();
 
-        toolBar.add(app.getAction(RemoveRelationshipAction.getActionName()).buildButton());
-        
+        toolBar
+                .add(actionManager
+                        .getAction(RemoveRelationshipAction.class)
+                        .buildButton());
+
         toolBar.addSeparator();
-        toolBar.add(app.getAction(CutRelationshipAction.getActionName()).buildButton());
-        toolBar.add(app.getAction(CopyRelationshipAction.getActionName()).buildButton());
-        toolBar.add(app.getAction(PasteAction.getActionName()).buildButton());
-        
+        toolBar.add(actionManager.getAction(CutRelationshipAction.class).buildButton());
+        toolBar.add(actionManager.getAction(CopyRelationshipAction.class).buildButton());
+        toolBar.add(actionManager.getAction(PasteAction.class).buildButton());
+
         add(toolBar, BorderLayout.NORTH);
 
         table = new CayenneTable();
         table.setDefaultRenderer(String.class, new StringRenderer());
         table.setDefaultRenderer(ObjEntity.class, new EntityRenderer());
-        
-        tablePreferences = new TableColumnPreferences(ObjRelationshipTableModel.class, "objEntity/relationshipTable");
-        
+
+        tablePreferences = new TableColumnPreferences(
+                ObjRelationshipTableModel.class,
+                "objEntity/relationshipTable");
+
         /**
          * Create and install a popup
          */
         resolveMenu = new JMenuItem("Database Mapping", ico);
-        
+
         JPopupMenu popup = new JPopupMenu();
         popup.add(resolveMenu);
-        popup.add(app.getAction(RemoveRelationshipAction.getActionName()).buildMenu());
-        
+        popup.add(actionManager.getAction(RemoveRelationshipAction.class).buildMenu());
+
         popup.addSeparator();
-        popup.add(app.getAction(CutRelationshipAction.getActionName()).buildMenu());
-        popup.add(app.getAction(CopyRelationshipAction.getActionName()).buildMenu());
-        popup.add(app.getAction(PasteAction.getActionName()).buildMenu());
-        
+        popup.add(actionManager.getAction(CutRelationshipAction.class).buildMenu());
+        popup.add(actionManager.getAction(CopyRelationshipAction.class).buildMenu());
+        popup.add(actionManager.getAction(PasteAction.class).buildMenu());
+
         TablePopupHandler.install(table, popup);
 
         add(PanelFactory.createTablePanel(table, null), BorderLayout.CENTER);
@@ -190,7 +194,7 @@ public class ObjEntityRelationshipTab ex
                         .getModel();
                 new ObjRelationshipInfoController(mediator, model.getRelationship(row))
                         .startup();
-                
+
                 /**
                  * This is required for a table to be updated properly
                  */
@@ -202,7 +206,7 @@ public class ObjEntityRelationshipTab ex
                 table.select(row);
             }
         };
-        
+
         resolve.addActionListener(resolver);
         resolveMenu.addActionListener(resolver);
 
@@ -212,29 +216,32 @@ public class ObjEntityRelationshipTab ex
                 processExistingSelection(e);
             }
         });
-        
-        mediator.getApplication().getActionManager().setupCCP(table, 
-                CutRelationshipAction.getActionName(), CopyRelationshipAction.getActionName());
+
+        mediator.getApplication().getActionManager().setupCutCopyPaste(
+                table,
+                CutRelationshipAction.class,
+                CopyRelationshipAction.class);
     }
 
     /**
      * Selects a specified relationship in the relationships table.
      */
     public void selectRelationships(ObjRelationship[] rels) {
-        ModelerUtil.updateActions(rels.length,  
-                RemoveRelationshipAction.getActionName(),
-                CutRelationshipAction.getActionName(),
-                CopyRelationshipAction.getActionName());
+        ModelerUtil.updateActions(
+                rels.length,
+                RemoveRelationshipAction.class,
+                CutRelationshipAction.class,
+                CopyRelationshipAction.class);
 
         ObjRelationshipTableModel model = (ObjRelationshipTableModel) table.getModel();
 
         List listAttrs = model.getObjectList();
         int[] newSel = new int[rels.length];
-        
+
         for (int i = 0; i < rels.length; i++) {
             newSel[i] = listAttrs.indexOf(rels[i]);
         }
-        
+
         table.select(newSel);
     }
 
@@ -246,14 +253,14 @@ public class ObjEntityRelationshipTab ex
         if (table.getSelectedRow() >= 0) {
             ObjRelationshipTableModel model = (ObjRelationshipTableModel) table
                     .getModel();
-            
+
             int[] sel = table.getSelectedRows();
             rels = new ObjRelationship[sel.length];
-            
+
             for (int i = 0; i < sel.length; i++) {
                 rels[i] = model.getRelationship(sel[i]);
             }
-            
+
             resolve.setEnabled(true);
 
             // scroll table
@@ -262,11 +269,15 @@ public class ObjEntityRelationshipTab ex
         else {
             resolve.setEnabled(false);
         }
-        
+
         resolveMenu.setEnabled(resolve.isEnabled());
 
-        RelationshipDisplayEvent ev = new RelationshipDisplayEvent(this, rels, mediator
-                .getCurrentObjEntity(), mediator.getCurrentDataMap(), (DataChannelDescriptor)mediator.getProject().getRootNode());
+        RelationshipDisplayEvent ev = new RelationshipDisplayEvent(
+                this,
+                rels,
+                mediator.getCurrentObjEntity(),
+                mediator.getCurrentDataMap(),
+                (DataChannelDescriptor) mediator.getProject().getRootNode());
 
         mediator.fireObjRelationshipDisplayEvent(ev);
     }
@@ -382,7 +393,7 @@ public class ObjEntityRelationshipTab ex
                     }
                     else
                         resolve.setEnabled(false);
-                    
+
                     resolveMenu.setEnabled(resolve.isEnabled());
                 }
             }
@@ -392,17 +403,18 @@ public class ObjEntityRelationshipTab ex
         table.setRowHeight(25);
         table.setRowMargin(3);
 
-        TableColumn col = table.getColumnModel().getColumn(ObjRelationshipTableModel.REL_TARGET);
+        TableColumn col = table.getColumnModel().getColumn(
+                ObjRelationshipTableModel.REL_TARGET);
         JComboBox targetCombo = CayenneWidgetFactory.createComboBox(
                 createObjEntityComboModel(),
                 false);
-        AutoCompletion.enable(targetCombo);        
-        
+        AutoCompletion.enable(targetCombo);
+
         targetCombo.setRenderer(CellRenderers.entityListRendererWithIcons(entity
                 .getDataMap()));
         targetCombo.setSelectedIndex(-1);
         col.setCellEditor(CayenneWidgetFactory.createCellEditor(targetCombo));
-        
+
         col = table.getColumnModel().getColumn(ObjRelationshipTableModel.REL_DELETERULE);
         JComboBox deleteRulesCombo = CayenneWidgetFactory.createComboBox(
                 deleteRules,
@@ -410,8 +422,14 @@ public class ObjEntityRelationshipTab ex
         deleteRulesCombo.setEditable(false);
         deleteRulesCombo.setSelectedIndex(0); // Default to the first value
         col.setCellEditor(CayenneWidgetFactory.createCellEditor(deleteRulesCombo));
-        
-        tablePreferences.bind(table, null, null, null, ObjRelationshipTableModel.REL_NAME, true);
+
+        tablePreferences.bind(
+                table,
+                null,
+                null,
+                null,
+                ObjRelationshipTableModel.REL_NAME,
+                true);
     }
 
     class EntityRenderer extends StringRenderer {
@@ -435,7 +453,7 @@ public class ObjEntityRelationshipTab ex
                     hasFocus,
                     row,
                     column);
-            
+
             setIcon(CellRenderers.iconForObject(oldValue));
             return this;
         }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTab.java Tue Aug 24 13:34:35 2010
@@ -47,6 +47,7 @@ import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.map.event.EntityEvent;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.ProjectController;
+import org.apache.cayenne.modeler.action.ActionManager;
 import org.apache.cayenne.modeler.action.CreateAttributeAction;
 import org.apache.cayenne.modeler.action.CreateRelationshipAction;
 import org.apache.cayenne.modeler.action.ObjEntitySyncAction;
@@ -128,15 +129,16 @@ public class ObjEntityTab extends JPanel
         this.setLayout(new BorderLayout());
 
         JToolBar toolBar = new JToolBar();
-        Application app = Application.getInstance();
-        toolBar.add(app.getAction(ObjEntitySyncAction.getActionName()).buildButton());
-        toolBar.add(app.getAction(CreateAttributeAction.getActionName()).buildButton());
+        ActionManager actionManager = Application.getInstance().getActionManager();
+
+        toolBar.add(actionManager.getAction(ObjEntitySyncAction.class).buildButton());
+        toolBar.add(actionManager.getAction(CreateAttributeAction.class).buildButton());
         toolBar
-                .add(app
-                        .getAction(CreateRelationshipAction.getActionName())
+                .add(actionManager
+                        .getAction(CreateRelationshipAction.class)
                         .buildButton());
         toolBar.addSeparator();
-        toolBar.add(app.getAction(ShowGraphEntityAction.getActionName()).buildButton());
+        toolBar.add(actionManager.getAction(ShowGraphEntityAction.class).buildButton());
         add(toolBar, BorderLayout.NORTH);
 
         // create widgets
@@ -171,7 +173,7 @@ public class ObjEntityTab extends JPanel
 
         dbEntityCombo = CayenneWidgetFactory.createComboBox();
         superEntityCombo = CayenneWidgetFactory.createComboBox();
-        
+
         AutoCompletion.enable(dbEntityCombo);
         AutoCompletion.enable(superEntityCombo);
 
@@ -264,25 +266,31 @@ public class ObjEntityTab extends JPanel
                 // Change super-entity
                 CayenneMapEntry superEntity = (CayenneMapEntry) superEntityCombo
                         .getSelectedItem();
-                String name = (superEntity==null || superEntity == noInheritance) ? null : superEntity
-                        .getName();
+                String name = (superEntity == null || superEntity == noInheritance)
+                        ? null
+                        : superEntity.getName();
 
                 ObjEntity entity = mediator.getCurrentObjEntity();
 
                 if (!Util.nullSafeEquals(name, entity.getSuperEntityName())) {
                     List<ObjAttribute> duplicateAttributes = null;
-                    if(name!=null){
+                    if (name != null) {
                         duplicateAttributes = getDuplicatedAttributes((ObjEntity) superEntity);
                     }
 
-                    if (duplicateAttributes!=null && duplicateAttributes.size() > 0) {
-                        DuplicatedAttributesDialog.showDialog(Application.getFrame(), duplicateAttributes, (ObjEntity) superEntity, entity);
-                        if (DuplicatedAttributesDialog.getResult().equals(DuplicatedAttributesDialog.CANCEL_RESULT)) {
+                    if (duplicateAttributes != null && duplicateAttributes.size() > 0) {
+                        DuplicatedAttributesDialog.showDialog(
+                                Application.getFrame(),
+                                duplicateAttributes,
+                                (ObjEntity) superEntity,
+                                entity);
+                        if (DuplicatedAttributesDialog.getResult().equals(
+                                DuplicatedAttributesDialog.CANCEL_RESULT)) {
                             superEntityCombo.setSelectedItem(entity.getSuperEntity());
                             superClassName.setText(entity.getSuperClassName());
                             return;
                         }
-                        
+
                     }
                     entity.setSuperEntityName(name);
 
@@ -295,7 +303,9 @@ public class ObjEntityTab extends JPanel
                     // fire both EntityEvent and EntityDisplayEvent;
                     // the later is to update attribute and relationship display
 
-                    DataChannelDescriptor domain = (DataChannelDescriptor)mediator.getProject().getRootNode();
+                    DataChannelDescriptor domain = (DataChannelDescriptor) mediator
+                            .getProject()
+                            .getRootNode();
                     DataMap map = mediator.getCurrentDataMap();
 
                     mediator.fireObjEntityEvent(new EntityEvent(this, entity));
@@ -314,7 +324,9 @@ public class ObjEntityTab extends JPanel
                 // Jump to DbEntity of the current ObjEntity
                 DbEntity entity = mediator.getCurrentObjEntity().getDbEntity();
                 if (entity != null) {
-                    DataChannelDescriptor dom = (DataChannelDescriptor)mediator.getProject().getRootNode();
+                    DataChannelDescriptor dom = (DataChannelDescriptor) mediator
+                            .getProject()
+                            .getRootNode();
                     mediator.fireDbEntityDisplayEvent(new EntityDisplayEvent(
                             this,
                             entity,
@@ -386,7 +398,7 @@ public class ObjEntityTab extends JPanel
                 }
             }
         });
-        
+
         isAbstract.addActionListener(new ActionListener() {
 
             public void actionPerformed(ActionEvent e) {
@@ -413,7 +425,7 @@ public class ObjEntityTab extends JPanel
         superClassName.setText(entity.getSuperClassName());
         className.setText(entity.getClassName());
         readOnly.setSelected(entity.isReadOnly());
-        
+
         isAbstract.setSelected(entity.isAbstract());
         serverOnly.setSelected(entity.isServerOnly());
         clientClassName.setText(entity.getClientClassName());
@@ -628,8 +640,11 @@ public class ObjEntityTab extends JPanel
 
     public void processExistingSelection(EventObject e) {
 
-        EntityDisplayEvent ede = new EntityDisplayEvent(this, mediator
-                .getCurrentObjEntity(), mediator.getCurrentDataMap(), (DataChannelDescriptor)mediator.getProject().getRootNode());
+        EntityDisplayEvent ede = new EntityDisplayEvent(
+                this,
+                mediator.getCurrentObjEntity(),
+                mediator.getCurrentDataMap(),
+                (DataChannelDescriptor) mediator.getProject().getRootNode());
         mediator.fireObjEntityDisplayEvent(ede);
     }
 
@@ -641,18 +656,18 @@ public class ObjEntityTab extends JPanel
 
         initFromModel(entity);
     }
-    
+
     private List<ObjAttribute> getDuplicatedAttributes(ObjEntity superEntity) {
         List<ObjAttribute> result = new LinkedList<ObjAttribute>();
 
         ObjEntity entity = mediator.getCurrentObjEntity();
 
         for (ObjAttribute attribute : entity.getAttributes()) {
-            if(superEntity.getAttribute(attribute.getName()) != null) {
+            if (superEntity.getAttribute(attribute.getName()) != null) {
                 result.add(attribute);
             }
         }
-        
+
         return result;
     }
 

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTabbedView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTabbedView.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTabbedView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTabbedView.java Tue Aug 24 13:34:35 2010
@@ -35,6 +35,7 @@ import org.apache.cayenne.map.ObjRelatio
 import org.apache.cayenne.map.Relationship;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.ProjectController;
+import org.apache.cayenne.modeler.action.ActionManager;
 import org.apache.cayenne.modeler.action.RemoveAttributeAction;
 import org.apache.cayenne.modeler.action.RemoveCallbackMethodAction;
 import org.apache.cayenne.modeler.action.RemoveRelationshipAction;
@@ -119,10 +120,11 @@ public class ObjEntityTabbedView extends
 
     /** Reset the remove buttons */
     private void resetRemoveButtons() {
-        Application app = Application.getInstance();
-        app.getAction(RemoveAttributeAction.getActionName()).setEnabled(false);
-        app.getAction(RemoveRelationshipAction.getActionName()).setEnabled(false);
-        app.getAction(RemoveCallbackMethodAction.getActionName()).setEnabled(false);
+        ActionManager actionManager = Application.getInstance().getActionManager();
+
+        actionManager.getAction(RemoveAttributeAction.class).setEnabled(false);
+        actionManager.getAction(RemoveRelationshipAction.class).setEnabled(false);
+        actionManager.getAction(RemoveCallbackMethodAction.class).setEnabled(false);
     }
 
     public void currentObjEntityChanged(EntityDisplayEvent e) {