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 [3/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...

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ProcedureParameterTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ProcedureParameterTab.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ProcedureParameterTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ProcedureParameterTab.java Tue Aug 24 13:34:35 2010
@@ -17,7 +17,6 @@
  *  under the License.
  ****************************************************************/
 
-
 package org.apache.cayenne.modeler.editor;
 
 import java.awt.BorderLayout;
@@ -50,6 +49,7 @@ import org.apache.cayenne.map.ProcedureP
 import org.apache.cayenne.map.event.MapEvent;
 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.CopyProcedureParameterAction;
 import org.apache.cayenne.modeler.action.CreateProcedureParameterAction;
 import org.apache.cayenne.modeler.action.CutProcedureParameterAction;
@@ -70,14 +70,9 @@ import org.apache.cayenne.modeler.util.c
 
 /**
  */
-public class ProcedureParameterTab
-    extends JPanel
-    implements
-        ProcedureParameterListener,
-        ProcedureDisplayListener,
-        ExistingSelectionProcessor,
-        ActionListener {
-    
+public class ProcedureParameterTab extends JPanel implements ProcedureParameterListener,
+        ProcedureDisplayListener, ExistingSelectionProcessor, ActionListener {
+
     protected ProjectController eventController;
 
     protected CayenneTable table;
@@ -85,11 +80,10 @@ public class ProcedureParameterTab
     protected JButton removeParameterButton;
     protected JButton moveUp;
     protected JButton moveDown;
-    
+
     /**
-     * By now popup menu items are made similiar to toolbar button. 
-     * (i.e. all functionality is here)
-     * This should be probably refactored as Action.
+     * By now popup menu items are made similiar to toolbar button. (i.e. all
+     * functionality is here) This should be probably refactored as Action.
      */
     protected JMenuItem removeParameterMenu;
     protected JMenuItem moveUpMenu;
@@ -104,14 +98,15 @@ public class ProcedureParameterTab
         eventController.addProcedureParameterListener(this);
 
         table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
+
             public void valueChanged(ListSelectionEvent e) {
                 processExistingSelection(e);
             }
         });
-        
+
         moveDown.addActionListener(this);
         moveUp.addActionListener(this);
-        
+
         moveDownMenu.addActionListener(this);
         moveUpMenu.addActionListener(this);
     }
@@ -121,12 +116,14 @@ public class ProcedureParameterTab
 
         JToolBar toolBar = new JToolBar();
 
-        Application app = Application.getInstance();
-        toolBar.add(app.getAction(CreateProcedureParameterAction.getActionName()).buildButton());
-        removeParameterButton = app.getAction(RemoveProcedureParameterAction.getActionName()).buildButton();
+        ActionManager actionManager = Application.getInstance().getActionManager();
+        toolBar.add(actionManager.getAction(
+                CreateProcedureParameterAction.class).buildButton());
+        removeParameterButton = actionManager.getAction(
+                RemoveProcedureParameterAction.class).buildButton();
         toolBar.add(removeParameterButton);
         toolBar.addSeparator();
-        
+
         Icon up = ModelerUtil.buildIcon("icon-move_up.gif");
         Icon down = ModelerUtil.buildIcon("icon-move_down.gif");
 
@@ -134,58 +131,66 @@ public class ProcedureParameterTab
         moveUp.setIcon(up);
         moveUp.setToolTipText("Move Parameter Up");
         toolBar.add(moveUp);
-        
+
         moveDown = new JButton();
         moveDown.setIcon(down);
         moveDown.setToolTipText("Move Parameter Down");
         toolBar.add(moveDown);
-        
+
         toolBar.addSeparator();
-        toolBar.add(app.getAction(CutProcedureParameterAction.getActionName()).buildButton());
-        toolBar.add(app.getAction(CopyProcedureParameterAction.getActionName()).buildButton());
-        toolBar.add(app.getAction(PasteAction.getActionName()).buildButton());
-        
+        toolBar.add(actionManager
+                .getAction(CutProcedureParameterAction.class)
+                .buildButton());
+        toolBar.add(actionManager
+                .getAction(CopyProcedureParameterAction.class)
+                .buildButton());
+        toolBar.add(actionManager.getAction(PasteAction.class).buildButton());
+
         add(toolBar, BorderLayout.NORTH);
 
         // Create table with two columns and no rows.
         table = new CayenneTable();
-        
-        tablePreferences = new TableColumnPreferences(this.getClass(),"procedure/parameterTable");
-        
-        /**
-         * Create and install a popup
-         */
+
+        tablePreferences = new TableColumnPreferences(
+                this.getClass(),
+                "procedure/parameterTable");
+
+        // Create and install a popup
         JPopupMenu popup = new JPopupMenu();
-        
-        removeParameterMenu = app.getAction(RemoveProcedureParameterAction.getActionName()).buildMenu(); 
-        
+
+        removeParameterMenu = actionManager.getAction(
+                RemoveProcedureParameterAction.class).buildMenu();
+
         popup.add(removeParameterMenu);
         popup.addSeparator();
-        
+
         moveUpMenu = new JMenuItem("Move Parameter Up", up);
         moveDownMenu = new JMenuItem("Move Parameter Down", down);
-        
+
         popup.add(moveUpMenu);
         popup.add(moveDownMenu);
-        
+
         popup.addSeparator();
-        popup.add(app.getAction(CutProcedureParameterAction.getActionName()).buildMenu());
-        popup.add(app.getAction(CopyProcedureParameterAction.getActionName()).buildMenu());
-        popup.add(app.getAction(PasteAction.getActionName()).buildMenu());
-        
+        popup.add(actionManager
+                .getAction(CutProcedureParameterAction.class)
+                .buildMenu());
+        popup.add(actionManager
+                .getAction(CopyProcedureParameterAction.class)
+                .buildMenu());
+        popup.add(actionManager.getAction(PasteAction.class).buildMenu());
+
         TablePopupHandler.install(table, popup);
-        
+
         add(PanelFactory.createTablePanel(table, null), BorderLayout.CENTER);
-        
-        eventController.getApplication().getActionManager().setupCCP(table, 
-                CutProcedureParameterAction.getActionName(), 
-                CopyProcedureParameterAction
-                
-                .getActionName());
+
+        actionManager.setupCutCopyPaste(
+                table,
+                CutProcedureParameterAction.class,
+                CopyProcedureParameterAction.class);
     }
-    
+
     public void processExistingSelection(EventObject e) {
-        if (e instanceof ChangeEvent){
+        if (e instanceof ChangeEvent) {
             table.clearSelection();
         }
 
@@ -197,12 +202,12 @@ public class ProcedureParameterTab
         int selectedRow = table.getSelectedRow();
         if (selectedRow >= 0) {
             enableRemoveButton = true;
-            ProcedureParameterTableModel model =
-                (ProcedureParameterTableModel) table.getModel();
-            
+            ProcedureParameterTableModel model = (ProcedureParameterTableModel) table
+                    .getModel();
+
             int[] sel = table.getSelectedRows();
             parameters = new ProcedureParameter[sel.length];
-            
+
             for (int i = 0; i < sel.length; i++) {
                 parameters[i] = model.getParameter(sel[i]);
             }
@@ -213,7 +218,7 @@ public class ProcedureParameterTab
 
                 int rowCount = table.getRowCount();
                 if (rowCount > 1) {
-                    if (selectedRow >0) {
+                    if (selectedRow > 0) {
                         enableUp = true;
                     }
                     if (selectedRow < (rowCount - 1)) {
@@ -226,22 +231,21 @@ public class ProcedureParameterTab
         removeParameterButton.setEnabled(enableRemoveButton);
         moveUp.setEnabled(enableUp);
         moveDown.setEnabled(enableDown);
-        
+
         syncButtons();
 
-        ProcedureParameterDisplayEvent ppde =
-            new ProcedureParameterDisplayEvent(
+        ProcedureParameterDisplayEvent ppde = new ProcedureParameterDisplayEvent(
                 this,
                 parameters,
                 eventController.getCurrentProcedure(),
                 eventController.getCurrentDataMap(),
-                (DataChannelDescriptor)eventController.getProject().getRootNode());
+                (DataChannelDescriptor) eventController.getProject().getRootNode());
         eventController.fireProcedureParameterDisplayEvent(ppde);
     }
 
     /**
-      * Invoked when currently selected Procedure object is changed.
-      */
+     * Invoked when currently selected Procedure object is changed.
+     */
     public void currentProcedureChanged(ProcedureDisplayEvent e) {
         Procedure procedure = e.getProcedure();
         if (procedure != null && e.isProcedureChanged()) {
@@ -253,53 +257,53 @@ public class ProcedureParameterTab
      * Selects a specified parameters.
      */
     public void selectParameters(ProcedureParameter[] parameters) {
-        ModelerUtil.updateActions(parameters.length,  
-                RemoveProcedureParameterAction.getActionName(),
-                CutProcedureParameterAction.getActionName(),
-                CopyProcedureParameterAction.getActionName());
-
-        ProcedureParameterTableModel model =
-            (ProcedureParameterTableModel) table.getModel();
-        
+        ModelerUtil.updateActions(
+                parameters.length,
+                RemoveProcedureParameterAction.class,
+                CutProcedureParameterAction.class,
+                CopyProcedureParameterAction.class);
+
+        ProcedureParameterTableModel model = (ProcedureParameterTableModel) table
+                .getModel();
+
         List listAttrs = model.getObjectList();
         int[] newSel = new int[parameters.length];
-        
+
         for (int i = 0; i < parameters.length; i++) {
             newSel[i] = listAttrs.indexOf(parameters[i]);
         }
-        
+
         table.select(newSel);
     }
 
     protected void rebuildTable(Procedure procedure) {
-        ProcedureParameterTableModel model =
-            new ProcedureParameterTableModel(procedure, eventController, this);
+        ProcedureParameterTableModel model = new ProcedureParameterTableModel(
+                procedure,
+                eventController,
+                this);
 
         table.setModel(model);
         table.setRowHeight(25);
         table.setRowMargin(3);
 
         // number column tweaking
-        TableColumn numberColumn =
-            table.getColumnModel().getColumn(
+        TableColumn numberColumn = table.getColumnModel().getColumn(
                 ProcedureParameterTableModel.PARAMETER_NUMBER);
         DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
         renderer.setHorizontalAlignment(SwingConstants.CENTER);
         numberColumn.setCellRenderer(renderer);
 
-        TableColumn typesColumn =
-            table.getColumnModel().getColumn(ProcedureParameterTableModel.PARAMETER_TYPE);
-        JComboBox typesEditor =
-            CayenneWidgetFactory.createComboBox(TypesMapping.getDatabaseTypes(), true);
+        TableColumn typesColumn = table.getColumnModel().getColumn(
+                ProcedureParameterTableModel.PARAMETER_TYPE);
+        JComboBox typesEditor = CayenneWidgetFactory.createComboBox(TypesMapping
+                .getDatabaseTypes(), true);
         AutoCompletion.enable(typesEditor);
         typesColumn.setCellEditor(CayenneWidgetFactory.createCellEditor(typesEditor));
 
         // direction column tweaking
-        TableColumn directionColumn =
-            table.getColumnModel().getColumn(
+        TableColumn directionColumn = table.getColumnModel().getColumn(
                 ProcedureParameterTableModel.PARAMETER_DIRECTION);
-        JComboBox directionEditor =
-            CayenneWidgetFactory.createComboBox(
+        JComboBox directionEditor = CayenneWidgetFactory.createComboBox(
                 ProcedureParameterTableModel.PARAMETER_DIRECTION_NAMES,
                 false);
         directionEditor.setEditable(false);
@@ -307,7 +311,7 @@ public class ProcedureParameterTab
 
         moveUp.setEnabled(false);
         moveDown.setEnabled(false);
-        
+
         tablePreferences.bind(table, null, null, null);
     }
 
@@ -321,18 +325,18 @@ public class ProcedureParameterTab
     }
 
     public void procedureParameterRemoved(ProcedureParameterEvent e) {
-        ProcedureParameterTableModel model =
-            (ProcedureParameterTableModel) table.getModel();
+        ProcedureParameterTableModel model = (ProcedureParameterTableModel) table
+                .getModel();
         int ind = model.getObjectList().indexOf(e.getParameter());
         model.removeRow(e.getParameter());
         table.select(ind);
     }
 
     public void actionPerformed(ActionEvent e) {
-        ProcedureParameterTableModel model =
-            (ProcedureParameterTableModel) table.getModel();
+        ProcedureParameterTableModel model = (ProcedureParameterTableModel) table
+                .getModel();
         ProcedureParameter parameter = model.getParameter(table.getSelectedRow());
-        
+
         int index = -1;
 
         if (e.getSource() == moveUp || e.getSource() == moveUpMenu) {
@@ -344,20 +348,20 @@ public class ProcedureParameterTab
 
         if (index >= 0) {
             table.select(index);
-            
+
             // note that 'setCallParameters' is donw by copy internally
             parameter.getProcedure().setCallParameters(model.getObjectList());
-            eventController.fireProcedureEvent(
-                new ProcedureEvent(this, parameter.getProcedure(), MapEvent.CHANGE));
+            eventController.fireProcedureEvent(new ProcedureEvent(this, parameter
+                    .getProcedure(), MapEvent.CHANGE));
         }
     }
-    
+
     /**
      * Synchronizes state of toolbar and popup menu buttons
      */
     private void syncButtons() {
         removeParameterMenu.setEnabled(removeParameterButton.isEnabled());
         moveUpMenu.setEnabled(moveUp.isEnabled());
-        moveDownMenu.setEnabled(moveDown.isEnabled());   
+        moveDownMenu.setEnabled(moveDown.isEnabled());
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ProcedureTabbedView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ProcedureTabbedView.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ProcedureTabbedView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ProcedureTabbedView.java Tue Aug 24 13:34:35 2010
@@ -17,7 +17,6 @@
  *  under the License.
  ****************************************************************/
 
-
 package org.apache.cayenne.modeler.editor;
 
 import java.awt.Component;
@@ -40,9 +39,8 @@ import org.apache.cayenne.modeler.event.
  * Tabbed panel for stored procedure editing.
  * 
  */
-public class ProcedureTabbedView
-    extends JTabbedPane
-    implements ProcedureDisplayListener, ProcedureParameterDisplayListener {
+public class ProcedureTabbedView extends JTabbedPane implements ProcedureDisplayListener,
+        ProcedureParameterDisplayListener {
 
     protected ProjectController eventController;
     protected ProcedureTab procedurePanel;
@@ -62,6 +60,7 @@ public class ProcedureTabbedView
         eventController.addProcedureDisplayListener(this);
         eventController.addProcedureParameterDisplayListener(this);
         this.addChangeListener(new ChangeListener() {
+
             public void stateChanged(ChangeEvent e) {
                 // find source view
                 Component selected = ProcedureTabbedView.this.getSelectedComponent();
@@ -78,8 +77,9 @@ public class ProcedureTabbedView
      * Invoked when currently selected Procedure object is changed.
      */
     public void currentProcedureChanged(ProcedureDisplayEvent e) {
-        Application.getInstance().getAction(RemoveProcedureParameterAction.getActionName()).setEnabled(false);
-        
+        Application.getInstance().getActionManager().getAction(
+                RemoveProcedureParameterAction.class).setEnabled(false);
+
         if (e.getProcedure() == null)
             setVisible(false);
         else {
@@ -92,8 +92,8 @@ public class ProcedureTabbedView
 
     public void currentProcedureParameterChanged(ProcedureParameterDisplayEvent e) {
         ProcedureParameter[] parameters = e.getProcedureParameters();
-        
-        if(parameters.length > 0) {
+
+        if (parameters.length > 0) {
             procedureParameterPanel.selectParameters(parameters);
         }
     }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityAttributeTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityAttributeTab.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityAttributeTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityAttributeTab.java Tue Aug 24 13:34:35 2010
@@ -70,7 +70,7 @@ public class DbEntityAttributeTab extend
     protected ProjectController mediator;
     protected CayenneTable table;
     private TableColumnPreferences tablePreferences;
-    
+
     public DbEntityAttributeTab(ProjectController temp_mediator) {
         super();
         mediator = temp_mediator;
@@ -86,44 +86,48 @@ public class DbEntityAttributeTab extend
 
         JToolBar toolBar = new JToolBar();
         Application app = Application.getInstance();
-        toolBar.add(app.getAction(CreateObjEntityAction.getActionName()).buildButton());
-        toolBar.add(app.getAction(CreateAttributeAction.getActionName()).buildButton());
-        toolBar.add(app.getAction(DbEntitySyncAction.getActionName()).buildButton());
+        toolBar.add(app.getActionManager().getAction(CreateObjEntityAction.class).buildButton());
+        toolBar.add(app.getActionManager().getAction(CreateAttributeAction.class).buildButton());
+        toolBar.add(app.getActionManager().getAction(DbEntitySyncAction.class).buildButton());
 
         toolBar.addSeparator();
 
         toolBar.addSeparator();
-        toolBar.add(app.getAction(RemoveAttributeAction.getActionName()).buildButton());
-        
+        toolBar.add(app.getActionManager().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(app.getActionManager().getAction(CutAttributeAction.class).buildButton());
+        toolBar.add(app.getActionManager().getAction(CopyAttributeAction.class).buildButton());
+        toolBar.add(app.getActionManager().getAction(PasteAction.class).buildButton());
 
         add(toolBar, BorderLayout.NORTH);
-        
+
         // Create table with two columns and no rows.
         table = new CayenneTable();
-        
-        tablePreferences = new TableColumnPreferences(DbAttributeTableModel.class, "attributeTable");
-        
+
+        tablePreferences = new TableColumnPreferences(
+                DbAttributeTableModel.class,
+                "attributeTable");
+
         /**
          * Create and install a popup
          */
         JPopupMenu popup = new JPopupMenu();
-        popup.add(app.getAction(RemoveAttributeAction.getActionName()).buildMenu());
-        
+        popup.add(app.getActionManager().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(app.getActionManager().getAction(CutAttributeAction.class).buildMenu());
+        popup.add(app.getActionManager().getAction(CopyAttributeAction.class).buildMenu());
+        popup.add(app.getActionManager().getAction(PasteAction.class).buildMenu());
+
         TablePopupHandler.install(table, popup);
-        
+
         add(PanelFactory.createTablePanel(table, null), BorderLayout.CENTER);
-        
-        mediator.getApplication().getActionManager().setupCCP(table, 
-                CutAttributeAction.getActionName(), CopyAttributeAction.getActionName());
+
+        mediator.getApplication().getActionManager().setupCutCopyPaste(
+                table,
+                CutAttributeAction.class,
+                CopyAttributeAction.class);
     }
 
     public void valueChanged(ListSelectionEvent e) {
@@ -134,20 +138,21 @@ public class DbEntityAttributeTab extend
      * Selects specified attributes.
      */
     public void selectAttributes(DbAttribute[] attrs) {
-        ModelerUtil.updateActions(attrs.length,  
-                RemoveAttributeAction.getActionName(),
-                CutAttributeAction.getActionName(),
-                CopyAttributeAction.getActionName());
+        ModelerUtil.updateActions(
+                attrs.length,
+                RemoveAttributeAction.class,
+                CutAttributeAction.class,
+                CopyAttributeAction.class);
 
         DbAttributeTableModel model = (DbAttributeTableModel) table.getModel();
-        
+
         List<?> listAttrs = model.getObjectList();
         int[] newSel = new int[attrs.length];
-        
+
         for (int i = 0; i < attrs.length; i++) {
             newSel[i] = listAttrs.indexOf(attrs[i]);
         }
-        
+
         table.select(newSel);
     }
 
@@ -155,29 +160,29 @@ public class DbEntityAttributeTab extend
         if (e instanceof ChangeEvent) {
             table.clearSelection();
         }
-            
+
         DbAttribute[] attrs = new DbAttribute[0];
         if (table.getSelectedRow() >= 0) {
-           DbAttributeTableModel model = (DbAttributeTableModel) table.getModel();
-           
-           int[] sel = table.getSelectedRows();
-           attrs = new DbAttribute[sel.length];
-           
-           for (int i = 0; i < sel.length; i++) {
-               attrs[i] = model.getAttribute(sel[i]);
-           }
-    
-           if (sel.length == 1) {
-               // scroll table
-               UIUtil.scrollToSelectedRow(table);
-           }
+            DbAttributeTableModel model = (DbAttributeTableModel) table.getModel();
+
+            int[] sel = table.getSelectedRows();
+            attrs = new DbAttribute[sel.length];
+
+            for (int i = 0; i < sel.length; i++) {
+                attrs[i] = model.getAttribute(sel[i]);
+            }
+
+            if (sel.length == 1) {
+                // scroll table
+                UIUtil.scrollToSelectedRow(table);
+            }
         }
         mediator.fireDbAttributeDisplayEvent(new AttributeDisplayEvent(
-               this,
-               attrs,
-               mediator.getCurrentDbEntity(),
-               mediator.getCurrentDataMap(),
-               (DataChannelDescriptor)mediator.getProject().getRootNode()));
+                this,
+                attrs,
+                mediator.getCurrentDbEntity(),
+                mediator.getCurrentDataMap(),
+                (DataChannelDescriptor) mediator.getProject().getRootNode()));
     }
 
     public void dbAttributeChanged(AttributeEvent e) {
@@ -197,13 +202,12 @@ public class DbEntityAttributeTab extend
     }
 
     public void currentDbEntityChanged(EntityDisplayEvent e) {
-        
+
         DbEntity entity = (DbEntity) e.getEntity();
         if (entity != null && e.isEntityChanged()) {
             rebuildTable(entity);
         }
-        
-        
+
         // if an entity was selected on a tree,
         // unselect currently selected row
         if (e.isUnselectAttributes()) {
@@ -217,21 +221,21 @@ public class DbEntityAttributeTab extend
         table.setModel(model);
         table.setRowHeight(25);
         table.setRowMargin(3);
-        
+
         TableColumn col = table.getColumnModel().getColumn(model.typeColumnInd());
-                
+
         String[] types = TypesMapping.getDatabaseTypes();
         JComboBox comboBox = CayenneWidgetFactory.createComboBox(types, true);
-        
+
         // Types.NULL makes no sense as a column type
         comboBox.removeItem("NULL");
-        
+
         AutoCompletion.enable(comboBox);
-        
+
         col.setCellEditor(CayenneWidgetFactory.createCellEditor(comboBox));
 
         table.getSelectionModel().addListSelectionListener(this);
-        
+
         tablePreferences.bind(table, null, null, null, model.nameColumnInd(), true);
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityRelationshipTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityRelationshipTab.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityRelationshipTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityRelationshipTab.java Tue Aug 24 13:34:35 2010
@@ -52,6 +52,7 @@ import org.apache.cayenne.map.event.Enti
 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.CreateObjEntityAction;
 import org.apache.cayenne.modeler.action.CreateRelationshipAction;
@@ -86,14 +87,13 @@ public class DbEntityRelationshipTab ext
     protected CayenneTable table;
     protected JButton resolve;
     private TableColumnPreferences tablePreferences;
-    
+
     /**
-     * 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;
-    
+
     /**
      * Combo to edit 'target' field
      */
@@ -107,14 +107,14 @@ public class DbEntityRelationshipTab ext
         this.mediator.addDbRelationshipListener(this);
 
         init();
-        
+
         ActionListener resolver = new ActionListener() {
 
             public void actionPerformed(ActionEvent e) {
                 resolveRelationship();
             }
         };
-        
+
         resolve.addActionListener(resolver);
         resolveMenu.addActionListener(resolver);
     }
@@ -123,60 +123,68 @@ public class DbEntityRelationshipTab ext
         this.setLayout(new BorderLayout());
 
         JToolBar toolBar = new JToolBar();
-        Application app = Application.getInstance();
-        toolBar.add(app.getAction(CreateObjEntityAction.getActionName()).buildButton());
+        ActionManager actionManager = Application.getInstance().getActionManager();
+        toolBar.add(actionManager.getAction(CreateObjEntityAction.class).buildButton());
         toolBar
-                .add(app
-                        .getAction(CreateRelationshipAction.getActionName())
+                .add(actionManager
+                        .getAction(CreateRelationshipAction.class)
                         .buildButton());
-        toolBar.add(app.getAction(DbEntitySyncAction.getActionName()).buildButton());
+        toolBar.add(actionManager.getAction(DbEntitySyncAction.class).buildButton());
 
         toolBar.addSeparator();
 
         resolve = new JButton();
-        
+
         Icon ico = ModelerUtil.buildIcon("icon-info.gif");
-        
+
         resolve.setIcon(ico);
         resolve.setToolTipText("Database Mapping");
         toolBar.add(resolve);
 
         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(DbEntity.class, CellRenderers.entityTableRendererWithIcons(mediator));
-        
-        tablePreferences = new TableColumnPreferences(DbRelationshipTableModel.class, "relationshipTable");
-        
+        table.setDefaultRenderer(DbEntity.class, CellRenderers
+                .entityTableRendererWithIcons(mediator));
+
+        tablePreferences = new TableColumnPreferences(
+                DbRelationshipTableModel.class,
+                "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);
-        
-        mediator.getApplication().getActionManager().setupCCP(table, 
-                CutRelationshipAction.getActionName(), CopyRelationshipAction.getActionName());
+
+        actionManager.setupCutCopyPaste(
+                table,
+                CutRelationshipAction.class,
+                CopyRelationshipAction.class);
     }
 
     public void valueChanged(ListSelectionEvent e) {
@@ -197,20 +205,21 @@ public class DbEntityRelationshipTab ext
      * Selects a specified relationship in the relationships table.
      */
     public void selectRelationships(DbRelationship[] rels) {
-        ModelerUtil.updateActions(rels.length,  
-                RemoveRelationshipAction.getActionName(),
-                CutRelationshipAction.getActionName(),
-                CopyRelationshipAction.getActionName());
+        ModelerUtil.updateActions(
+                rels.length,
+                RemoveRelationshipAction.class,
+                CutRelationshipAction.class,
+                CopyRelationshipAction.class);
 
         DbRelationshipTableModel model = (DbRelationshipTableModel) 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);
     }
 
@@ -218,18 +227,18 @@ public class DbEntityRelationshipTab ext
         if (e instanceof ChangeEvent) {
             table.clearSelection();
         }
-        
+
         DbRelationship[] rels = new DbRelationship[0];
         if (table.getSelectedRow() >= 0) {
             DbRelationshipTableModel model = (DbRelationshipTableModel) table.getModel();
-            
+
             int[] sel = table.getSelectedRows();
             rels = new DbRelationship[sel.length];
-            
+
             for (int i = 0; i < sel.length; i++) {
                 rels[i] = model.getRelationship(sel[i]);
             }
-            
+
             resolve.setEnabled(rels.length == 1 && rels[0].getTargetEntity() != null);
 
             if (sel.length == 1) {
@@ -239,11 +248,15 @@ public class DbEntityRelationshipTab ext
         }
         else
             resolve.setEnabled(false);
-        
+
         resolveMenu.setEnabled(resolve.isEnabled());
 
-        RelationshipDisplayEvent ev = new RelationshipDisplayEvent(this, rels, mediator
-                .getCurrentDbEntity(), mediator.getCurrentDataMap(), (DataChannelDescriptor)mediator.getProject().getRootNode());
+        RelationshipDisplayEvent ev = new RelationshipDisplayEvent(
+                this,
+                rels,
+                mediator.getCurrentDbEntity(),
+                mediator.getCurrentDataMap(),
+                (DataChannelDescriptor) mediator.getProject().getRootNode());
 
         mediator.fireDbRelationshipDisplayEvent(ev);
     }
@@ -289,18 +302,26 @@ public class DbEntityRelationshipTab ext
         table.setModel(model);
         table.setRowHeight(25);
         table.setRowMargin(3);
-        
-        TableColumn col = table.getColumnModel().getColumn(DbRelationshipTableModel.TARGET);
-        
+
+        TableColumn col = table.getColumnModel().getColumn(
+                DbRelationshipTableModel.TARGET);
+
         targetCombo = CayenneWidgetFactory.createComboBox();
         AutoCompletion.enable(targetCombo);
-        
-        targetCombo.setRenderer(CellRenderers.entityListRendererWithIcons(entity.getDataMap()));
+
+        targetCombo.setRenderer(CellRenderers.entityListRendererWithIcons(entity
+                .getDataMap()));
         targetCombo.setModel(createComboModel(entity));
         col.setCellEditor(CayenneWidgetFactory.createCellEditor(targetCombo));
         table.getSelectionModel().addListSelectionListener(this);
-        
-        tablePreferences.bind(table, null, null, null, DbRelationshipTableModel.NAME, true);
+
+        tablePreferences.bind(
+                table,
+                null,
+                null,
+                null,
+                DbRelationshipTableModel.NAME,
+                true);
     }
 
     public void dbEntityChanged(EntityEvent e) {

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTab.java Tue Aug 24 13:34:35 2010
@@ -39,6 +39,7 @@ import org.apache.cayenne.map.DbEntity;
 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.CreateObjEntityAction;
 import org.apache.cayenne.modeler.action.CreateRelationshipAction;
@@ -92,18 +93,18 @@ public class DbEntityTab extends JPanel 
     private void initView() {
 
         JToolBar toolBar = new JToolBar();
-        Application app = Application.getInstance();
-        toolBar.add(app.getAction(CreateObjEntityAction.getActionName()).buildButton());
-        toolBar.add(app.getAction(DbEntitySyncAction.getActionName()).buildButton());
+        ActionManager actionManager = Application.getInstance().getActionManager();
+        toolBar.add(actionManager.getAction(CreateObjEntityAction.class).buildButton());
+        toolBar.add(actionManager.getAction(DbEntitySyncAction.class).buildButton());
         toolBar.addSeparator();
 
-        toolBar.add(app.getAction(CreateAttributeAction.getActionName()).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());
 
         // create widgets
         name = new TextAdapter(new JTextField()) {

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTabbedView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTabbedView.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTabbedView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTabbedView.java Tue Aug 24 13:34:35 2010
@@ -34,6 +34,7 @@ import org.apache.cayenne.map.Entity;
 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.RemoveRelationshipAction;
 import org.apache.cayenne.modeler.editor.ExistingSelectionProcessor;
@@ -78,16 +79,17 @@ public class DbEntityTabbedView extends 
     }
 
     /** Reset the remove buttons */
-    private void resetRemoveButtons(){
-        Application app = Application.getInstance();
-        app.getAction(RemoveAttributeAction.getActionName()).setEnabled(false);
-        app.getAction(RemoveRelationshipAction.getActionName()).setEnabled(false);
+    private void resetRemoveButtons() {
+        ActionManager actionManager = Application.getInstance().getActionManager();
+
+        actionManager.getAction(RemoveAttributeAction.class).setEnabled(false);
+        actionManager.getAction(RemoveRelationshipAction.class).setEnabled(false);
     }
-    
+
     /** Handle focus when tab changes. */
     public void stateChanged(ChangeEvent e) {
         resetRemoveButtons();
-        
+
         // find source view
         Component selected = getSelectedComponent();
         while (selected instanceof JScrollPane) {
@@ -107,7 +109,7 @@ public class DbEntityTabbedView extends 
                 entityPanel.setVisible(true);
             }
         }
-        
+
         resetRemoveButtons();
         setVisible(e.getEntity() != null);
     }
@@ -116,19 +118,19 @@ public class DbEntityTabbedView extends 
         if (e.getEntity() == null) {
             return;
         }
-        
+
         // update relationship selection
         Relationship[] rels = e.getRelationships();
         DbRelationship[] dbRels = new DbRelationship[rels.length];
-        
+
         System.arraycopy(rels, 0, dbRels, 0, rels.length);
-        
+
         // reset tab to relationship
         if (getSelectedComponent() != relationshipsPanel && dbRels.length > 0) {
             setSelectedComponent(relationshipsPanel);
             relationshipsPanel.setVisible(true);
         }
-        
+
         relationshipsPanel.selectRelationships(dbRels);
     }
 
@@ -139,14 +141,14 @@ public class DbEntityTabbedView extends 
         // update relationship selection
         Attribute[] attrs = e.getAttributes();
         DbAttribute[] dbAttrs = new DbAttribute[attrs.length];
-        
+
         System.arraycopy(attrs, 0, dbAttrs, 0, attrs.length);
-        
+
         if (getSelectedComponent() != attributesPanel && dbAttrs.length > 0) {
             setSelectedComponent(attributesPanel);
             attributesPanel.setVisible(true);
         }
-            
+
         attributesPanel.selectAttributes(dbAttrs);
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/BaseGraphBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/BaseGraphBuilder.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/BaseGraphBuilder.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/BaseGraphBuilder.java Tue Aug 24 13:34:35 2010
@@ -47,11 +47,11 @@ import org.apache.cayenne.map.Entity;
 import org.apache.cayenne.map.Relationship;
 import org.apache.cayenne.map.event.EntityEvent;
 import org.apache.cayenne.map.event.RelationshipEvent;
-import org.apache.cayenne.modeler.ActionManager;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.ProjectController;
 import org.apache.cayenne.modeler.action.CreateAttributeAction;
 import org.apache.cayenne.modeler.action.CreateRelationshipAction;
+import org.apache.cayenne.modeler.action.ActionManager;
 import org.apache.cayenne.modeler.graph.action.EntityDisplayAction;
 import org.apache.cayenne.modeler.graph.action.RemoveEntityAction;
 import org.apache.cayenne.util.XMLEncoder;
@@ -71,171 +71,183 @@ import com.jgraph.layout.organic.JGraphO
  * Base class for building graphs of entities
  */
 abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
+
     static final Font EDGE_FONT = new Font("Verdana", 0, 10);
-    
+
     /**
      * Graph
      */
     protected JGraph graph;
-    
+
     /**
      * Domain
      */
     protected transient DataChannelDescriptor domain;
-    
+
     /**
-     * Created entity cells.
-     * Maps to entity name, since GraphBuilder can be serialized
+     * Created entity cells. Maps to entity name, since GraphBuilder can be serialized
      */
     protected Map<String, DefaultGraphCell> entityCells;
-    
+
     /**
-     * Created relationship cells
-     * Maps to relationship qualified name, since GraphBuilder can be serialized
+     * Created relationship cells Maps to relationship qualified name, since GraphBuilder
+     * can be serialized
      */
     protected Map<String, DefaultEdge> relCells;
-    
+
     /**
      * Created non-isolated objects
      */
     protected List<DefaultGraphCell> createdObjects;
-        
+
     /**
      * Current project controller
      */
     protected transient ProjectController mediator;
-    
+
     protected transient Entity selectedEntity;
-    
+
     transient JPopupMenu popup;
-    
+
     boolean undoEventsDisabled;
-    
-    public synchronized void buildGraph(ProjectController mediator, DataChannelDescriptor domain, boolean doLayout) {
+
+    public synchronized void buildGraph(
+            ProjectController mediator,
+            DataChannelDescriptor domain,
+            boolean doLayout) {
         if (graph != null) {
-            //graph already built, exiting silently
+            // graph already built, exiting silently
             return;
         }
-        
+
         graph = new JGraph();
         GraphModel model = new DefaultGraphModel();
         graph.setModel(model);
-        
+
         setProjectController(mediator);
         setDataDomain(domain);
-        
+
         GraphLayoutCache view = new GraphLayoutCache(model, new DefaultCellViewFactory());
         graph.setGraphLayoutCache(view);
-        
+
         graph.addMouseListener(new MouseAdapter() {
+
             public void mouseReleased(MouseEvent e) {
                 if (e.isPopupTrigger()) {
                     Object selected = graph.getSelectionCell();
                     if (selected != null && selected instanceof DefaultGraphCell) {
                         Object userObject = ((DefaultGraphCell) selected).getUserObject();
                         if (userObject instanceof EntityCellMetadata) {
-                            showPopup(e.getPoint(), 
-                                    ((EntityCellMetadata) userObject).fetchEntity());
+                            showPopup(e.getPoint(), ((EntityCellMetadata) userObject)
+                                    .fetchEntity());
                         }
                     }
                 }
             }
         });
-        
+
         graph.addMouseWheelListener(new MouseWheelListener() {
+
             public void mouseWheelMoved(MouseWheelEvent e) {
-                graph.setScale(graph.getScale() / Math.pow(ZOOM_FACTOR, e.getWheelRotation()));
+                graph.setScale(graph.getScale()
+                        / Math.pow(ZOOM_FACTOR, e.getWheelRotation()));
             }
         });
-        
+
         entityCells = new HashMap<String, DefaultGraphCell>();
         createdObjects = new ArrayList<DefaultGraphCell>();
         relCells = new HashMap<String, DefaultEdge>();
-        
+
         /**
-         * an array for entities that are not connected to anyone.
-         * We add them separately so that layout doesn't touch them
+         * an array for entities that are not connected to anyone. We add them separately
+         * so that layout doesn't touch them
          */
         List<DefaultGraphCell> isolatedObjects = new ArrayList<DefaultGraphCell>();
-        
+
         /**
          * 1. Add all entities
          */
         for (DataMap map : domain.getDataMaps()) {
             DefaultGraphCell mapCell = new DefaultGraphCell();
             createdObjects.add(mapCell);
-            
+
             for (Entity entity : getEntities(map)) {
                 DefaultGraphCell cell = createEntityCell(entity);
-                
-//                mapCell.add(cell);
-//                cell.setParent(mapCell);
-                
-                List<DefaultGraphCell> array = !isIsolated(domain, entity) ?
-                        createdObjects : isolatedObjects;
+
+                // mapCell.add(cell);
+                // cell.setParent(mapCell);
+
+                List<DefaultGraphCell> array = !isIsolated(domain, entity)
+                        ? createdObjects
+                        : isolatedObjects;
                 array.add(cell);
-                array.add((DefaultGraphCell) cell.getChildAt(0)); //port
+                array.add((DefaultGraphCell) cell.getChildAt(0)); // port
             }
         }
-        
+
         /**
          * 2. Add all relationships
-         */        
+         */
         for (DataMap map : domain.getDataMaps()) {
             for (Entity entity : getEntities(map)) {
                 DefaultGraphCell sourceCell = entityCells.get(entity.getName());
-                
-                postProcessEntity(entity, sourceCell);               
+
+                postProcessEntity(entity, sourceCell);
             }
         }
         view.insert(createdObjects.toArray());
-        
+
         if (doLayout) {
             JGraphFacade facade = new JGraphFacade(graph);
-            
+
             JGraphOrganicLayout layout = new JGraphOrganicLayout();
             layout.setNodeDistributionCostFactor(5000000000000.0);
             layout.setEdgeLengthCostFactor(1000);
             layout.setEdgeCrossingCostFactor(1000000);
             layout.setOptimizeBorderLine(false);
             layout.setOptimizeEdgeDistance(false);
-            
-    //        JGraphSimpleLayout layout = new JGraphSimpleLayout(JGraphSimpleLayout.TYPE_TILT, 4000, 2000);
+
+            // JGraphSimpleLayout layout = new
+            // JGraphSimpleLayout(JGraphSimpleLayout.TYPE_TILT, 4000, 2000);
             layout.run(facade);
-            Map nested = facade.createNestedMap(true, true); // Obtain a map of the resulting attribute changes from the facade
-            
+            Map nested = facade.createNestedMap(true, true); // Obtain a map of the
+                                                             // resulting attribute
+                                                             // changes from the facade
+
             edit(nested); // Apply the results to the actual graph
         }
-        
+
         /**
          * Adding isolated objects
          * 
-         * We're placing them so that they will take maximum space in left top corner.
-         * The sample order is below:
+         * We're placing them so that they will take maximum space in left top corner. The
+         * sample order is below:
          * 
-         * 1 2 6 7...
-         * 3 5 8 ...
-         * 4 9...
-         * 10 ...
+         * 1 2 6 7... 3 5 8 ... 4 9... 10 ...
          */
         if (isolatedObjects.size() > 0) {
-            int n = isolatedObjects.size() / 2; //number of isolated entities
-            int x = (int) Math.ceil((Math.sqrt(1 + 8*n) - 1) / 2); //side of triangle
-            
+            int n = isolatedObjects.size() / 2; // number of isolated entities
+            int x = (int) Math.ceil((Math.sqrt(1 + 8 * n) - 1) / 2); // side of triangle
+
             Dimension pref = graph.getPreferredSize();
-            int dx = pref.width / 2 / x; //x-distance between entities
-            int dy = pref.height / 2 / x; //y-distance between entities
-            
+            int dx = pref.width / 2 / x; // x-distance between entities
+            int dy = pref.height / 2 / x; // y-distance between entities
+
             int posX = dx / 2;
             int posY = dy / 2;
-            
+
             int row = 0;
-            
+
             for (int isolatedIndex = 0; isolatedIndex < isolatedObjects.size();) {
                 for (int i = 0; isolatedIndex < isolatedObjects.size() && i < x - row; i++) {
-                    GraphConstants.setBounds(isolatedObjects.get(isolatedIndex).getAttributes(), 
-                        new Rectangle2D.Double(pref.width - posX, pref.height - 3 * posY / 2, 10, 10));
-                    isolatedIndex += 2; //because every 2nd object is port
+                    GraphConstants.setBounds(isolatedObjects
+                            .get(isolatedIndex)
+                            .getAttributes(), new Rectangle2D.Double(
+                            pref.width - posX,
+                            pref.height - 3 * posY / 2,
+                            10,
+                            10));
+                    isolatedIndex += 2; // because every 2nd object is port
                     posX += dx;
                 }
                 posX = dx / 2;
@@ -243,30 +255,30 @@ abstract class BaseGraphBuilder implemen
                 row++;
             }
         }
-        
+
         view.insert(isolatedObjects.toArray());
         graph.getModel().addUndoableEditListener(this);
     }
 
     protected DefaultGraphCell createEntityCell(Entity entity) {
         DefaultGraphCell cell = new DefaultGraphCell(getCellMetadata(entity));
-                        
+
         GraphConstants.setResize(cell.getAttributes(), true);
         GraphConstants.setBorder(cell.getAttributes(), new LineBorder(Color.BLACK));
-        
+
         GraphConstants.setEditable(cell.getAttributes(), false);
         entityCells.put(entity.getName(), cell);
 
         cell.addPort();
         return cell;
     }
-    
+
     public DefaultGraphCell getEntityCell(String entityName) {
         return entityCells.get(entityName);
     }
-    
+
     /**
-     * Post (i.e. after creation on entity cell) process of the entity 
+     * Post (i.e. after creation on entity cell) process of the entity
      */
     protected void postProcessEntity(Entity entity, DefaultGraphCell cell) {
         for (Relationship rel : entity.getRelationships()) {
@@ -278,15 +290,15 @@ abstract class BaseGraphBuilder implemen
             }
         }
     }
-    
+
     /**
-     * Returns whether an entity is not connected to any other
-     * TODO: not fine algorithm, it iterates through all entities and all rels 
+     * Returns whether an entity is not connected to any other TODO: not fine algorithm,
+     * it iterates through all entities and all rels
      */
     protected boolean isIsolated(DataChannelDescriptor domain, Entity entity) {
         if (entity.getRelationships().size() == 0) {
-            //searching for rels that have a target="entity"
-            
+            // searching for rels that have a target="entity"
+
             for (DataMap map : domain.getDataMaps()) {
                 for (Entity source : getEntities(map)) {
                     if (source.getAnyRelationship(entity) != null) {
@@ -298,29 +310,29 @@ abstract class BaseGraphBuilder implemen
         }
         return false;
     }
-    
+
     protected abstract Collection<? extends Entity> getEntities(DataMap map);
-    
+
     /**
-     * Returns label for relationship on the graph, considering its "mandatory" and "to-many"
-     * properties
+     * Returns label for relationship on the graph, considering its "mandatory" and
+     * "to-many" properties
      */
     private static String getRelationshipLabel(Relationship rel) {
         if (rel == null) {
             return null;
         }
-        
+
         if (rel.isToMany()) {
             return "0..*";
         }
         return rel.isMandatory() ? "1" : "0..1";
     }
-    
+
     /**
      * Returns metadata (user object) for this cell
      */
     protected abstract EntityCellMetadata getCellMetadata(Entity e);
-    
+
     protected void showPopup(Point p, Entity entity) {
         selectedEntity = entity;
         if (popup == null) {
@@ -328,30 +340,30 @@ abstract class BaseGraphBuilder implemen
         }
         popup.show(graph, p.x, p.y);
     }
-    
+
     public Entity getSelectedEntity() {
         return selectedEntity;
     }
-    
+
     /**
      * Creates popup menu
      */
     protected JPopupMenu createPopupMenu() {
         ActionManager actionManager = Application.getInstance().getActionManager();
-        
+
         JPopupMenu menu = new JPopupMenu();
         menu.add(new EntityDisplayAction(this).buildMenu());
         menu.addSeparator();
-        menu.add(new EntityDisplayAction(this, 
-                actionManager.getAction(CreateAttributeAction.getActionName())).buildMenu());
-        menu.add(new EntityDisplayAction(this, 
-                actionManager.getAction(CreateRelationshipAction.getActionName())).buildMenu());
+        menu.add(new EntityDisplayAction(this, actionManager
+                .getAction(CreateAttributeAction.class)).buildMenu());
+        menu.add(new EntityDisplayAction(this, actionManager
+                .getAction(CreateRelationshipAction.class)).buildMenu());
         menu.addSeparator();
         menu.add(new RemoveEntityAction(this));
-        
+
         return menu;
     }
-    
+
     /**
      * Updates specified entity on the graph
      */
@@ -360,20 +372,20 @@ abstract class BaseGraphBuilder implemen
         if (cell != null) {
             GraphConstants.setValue(cell.getAttributes(), getCellMetadata(e));
             GraphConstants.setResize(cell.getAttributes(), true);
-            
+
             Map nested = new HashMap();
             nested.put(cell, cell.getAttributes());
-            
+
             edit(nested);
         }
     }
-    
+
     protected void updateRelationshipCell(Relationship rel) {
         if (rel.getSourceEntity() != null && rel.getTargetEntity() != null) {
             DefaultEdge edge = relCells.get(getQualifiedName(rel));
             if (edge != null) {
                 updateRelationshipLabels(edge, rel, rel.getReverseRelationship());
-                
+
                 Map nested = new HashMap();
                 nested.put(edge, edge.getAttributes());
                 edit(nested);
@@ -383,137 +395,154 @@ abstract class BaseGraphBuilder implemen
             }
         }
     }
-    
+
     protected void removeEntityCell(Entity e) {
         final DefaultGraphCell cell = entityCells.get(e.getName());
         if (cell != null) {
             runWithUndoDisabled(new Runnable() {
+
                 public void run() {
-                    graph.getGraphLayoutCache().remove(new Object[] { cell }, true, true);
+                    graph.getGraphLayoutCache().remove(new Object[] {
+                        cell
+                    }, true, true);
                 }
             });
             entityCells.remove(e.getName());
         }
     }
-    
+
     protected void removeRelationshipCell(Relationship rel) {
         final DefaultEdge edge = relCells.get(getQualifiedName(rel));
         if (edge != null) {
             runWithUndoDisabled(new Runnable() {
+
                 public void run() {
-                    graph.getGraphLayoutCache().remove(new Object[] { edge });
+                    graph.getGraphLayoutCache().remove(new Object[] {
+                        edge
+                    });
                 }
             });
             relCells.remove(getQualifiedName(rel));
         }
     }
-    
-    protected DefaultEdge createRelationshipCell(Relationship rel) {        
+
+    protected DefaultEdge createRelationshipCell(Relationship rel) {
         if (!relCells.containsKey(getQualifiedName(rel))) {
             Relationship reverse = rel.getReverseRelationship();
-            
+
             DefaultEdge edge = new DefaultEdge();
-            
-//            GraphConstants.setLineStyle(edge.getAttributes(), GraphConstants.STYLE_ORTHOGONAL);
-//            GraphConstants.setRouting(edge.getAttributes(), GraphConstants.ROUTING_SIMPLE);
-            
+
+            // GraphConstants.setLineStyle(edge.getAttributes(),
+            // GraphConstants.STYLE_ORTHOGONAL);
+            // GraphConstants.setRouting(edge.getAttributes(),
+            // GraphConstants.ROUTING_SIMPLE);
+
             GraphConstants.setEditable(edge.getAttributes(), false);
             GraphConstants.setLabelAlongEdge(edge.getAttributes(), true);
             GraphConstants.setSelectable(edge.getAttributes(), false);
             GraphConstants.setFont(edge.getAttributes(), EDGE_FONT);
-            
+
             updateRelationshipLabels(edge, rel, reverse);
-            
+
             relCells.put(getQualifiedName(rel), edge);
-            
+
             if (reverse != null) {
                 relCells.put(getQualifiedName(reverse), edge);
             }
-            
+
             return edge;
         }
         return null;
     }
-    
-    
+
     protected void insertRelationshipCell(Relationship rel) {
         DefaultEdge edge = createRelationshipCell(rel);
         insert(edge);
     }
-    
+
     protected void insertEntityCell(Entity entity) {
         DefaultGraphCell cell = createEntityCell(entity);
-        
-        //putting cell to a random posistion..
-        GraphConstants.setBounds(cell.getAttributes(), 
-            new Rectangle2D.Double(Math.random() * graph.getWidth(), Math.random() * graph.getHeight(), 
-                    10, 10));
-        
-        //setting graph type-specific attrs
+
+        // putting cell to a random posistion..
+        GraphConstants.setBounds(cell.getAttributes(), new Rectangle2D.Double(Math
+                .random()
+                * graph.getWidth(), Math.random() * graph.getHeight(), 10, 10));
+
+        // setting graph type-specific attrs
         postProcessEntity(entity, cell);
-        
+
         insert(cell);
     }
-    
+
     /**
      * Updates relationship labels for specified relationship edge.
-     * @param order order of relationship in entity's same target relationships - to differ labels of relationships with same source and target
-     */
-    protected void updateRelationshipLabels(DefaultEdge edge, Relationship rel, Relationship reverse) {
+     * 
+     * @param order order of relationship in entity's same target relationships - to
+     *            differ labels of relationships with same source and target
+     */
+    protected void updateRelationshipLabels(
+            DefaultEdge edge,
+            Relationship rel,
+            Relationship reverse) {
         DefaultGraphCell sourceCell = entityCells.get(rel.getSourceEntity().getName());
         DefaultGraphCell targetCell = entityCells.get(rel.getTargetEntity().getName());
-        
+
         edge.setSource(sourceCell != null ? sourceCell.getChildAt(0) : null);
         edge.setTarget(targetCell != null ? targetCell.getChildAt(0) : null);
-        
+
         Object[] labels = {
-            rel.getName() + " " + getRelationshipLabel(rel),
-            reverse == null ? 
-                "" : reverse.getName() + " " + getRelationshipLabel(reverse)
+                rel.getName() + " " + getRelationshipLabel(rel),
+                reverse == null ? "" : reverse.getName()
+                        + " "
+                        + getRelationshipLabel(reverse)
         };
         GraphConstants.setExtraLabels(edge.getAttributes(), labels);
-        
+
         Point2D[] labelPositions = {
-                new Point2D.Double(GraphConstants.PERMILLE * (0.1 + 0.2 * Math.random()), 10),
-                new Point2D.Double(GraphConstants.PERMILLE * (0.9 - 0.2 * Math.random()), -10)
+                new Point2D.Double(
+                        GraphConstants.PERMILLE * (0.1 + 0.2 * Math.random()),
+                        10),
+                new Point2D.Double(
+                        GraphConstants.PERMILLE * (0.9 - 0.2 * Math.random()),
+                        -10)
         };
         GraphConstants.setExtraLabelPositions(edge.getAttributes(), labelPositions);
     }
-    
+
     public JGraph getGraph() {
         return graph;
     }
-    
+
     public void dataMapAdded(DataMapEvent e) {
     }
-    
+
     public void dataMapChanged(DataMapEvent e) {
     }
-    
+
     public void dataMapRemoved(DataMapEvent e) {
         for (Entity entity : getEntities(e.getDataMap())) {
             removeEntityCell(entity);
         }
     }
-    
+
     public void setProjectController(ProjectController mediator) {
         this.mediator = mediator;
-        
+
         mediator.addDataMapListener(this);
     }
-    
+
     public void setDataDomain(DataChannelDescriptor domain) {
         this.domain = domain;
     }
-    
+
     public DataChannelDescriptor getDataDomain() {
         return domain;
     }
-    
+
     public void destroy() {
         mediator.removeDataMapListener(this);
     }
-    
+
     /**
      * Checks if entity name has changed, then changes map key
      */
@@ -522,24 +551,27 @@ abstract class BaseGraphBuilder implemen
             entityCells.put(e.getNewName(), entityCells.remove(e.getOldName()));
         }
     }
-    
+
     /**
      * Checks if entity name has changed, then changes map key
      */
     protected void remapRelationship(RelationshipEvent e) {
         if (e.isNameChange()) {
-            relCells.put(getQualifiedName(e.getRelationship()), 
-                    relCells.remove(e.getEntity().getName() + "." + e.getOldName()));
+            relCells.put(getQualifiedName(e.getRelationship()), relCells.remove(e
+                    .getEntity()
+                    .getName()
+                    + "."
+                    + e.getOldName()));
         }
     }
-    
+
     /**
      * Returns qualified name (entity name + relationship name) for a relationship
      */
     static String getQualifiedName(Relationship rel) {
         return rel.getSourceEntity().getName() + "." + rel.getName();
     }
-    
+
     public void encodeAsXML(XMLEncoder encoder) {
         encoder.print("<graph type=\"");
         encoder.print(getType().toString());
@@ -547,22 +579,22 @@ abstract class BaseGraphBuilder implemen
         encoder.print(String.valueOf(graph.getScale()));
         encoder.println("\">");
         encoder.indent(1);
-        
+
         for (Entry<String, DefaultGraphCell> entry : entityCells.entrySet()) {
             encoder.print("<entity name=\"");
             encoder.print(entry.getKey());
             encoder.print("\" ");
-            
+
             DefaultGraphCell cell = entry.getValue();
             Rectangle2D rect = graph.getCellBounds(cell);
             encodeRecangle(encoder, rect);
             encoder.println("/>");
         }
-        
+
         encoder.indent(-1);
         encoder.println("</graph>");
     }
-    
+
     private void encodeRecangle(XMLEncoder encoder, Rectangle2D rect) {
         encoder.print("x=\"");
         encoder.print(rect.getX() + "\" y=\"");
@@ -570,23 +602,25 @@ abstract class BaseGraphBuilder implemen
         encoder.print(rect.getWidth() + "\" height=\"");
         encoder.print(rect.getHeight() + "\" ");
     }
-    
+
     private synchronized void edit(final Map map) {
         runWithUndoDisabled(new Runnable() {
+
             public void run() {
                 graph.getGraphLayoutCache().edit(map);
             }
         });
     }
-    
+
     private synchronized void insert(final Object cell) {
         runWithUndoDisabled(new Runnable() {
+
             public void run() {
                 graph.getGraphLayoutCache().insert(cell);
             }
         });
     }
-    
+
     private synchronized void runWithUndoDisabled(Runnable r) {
         undoEventsDisabled = true;
         try {
@@ -596,12 +630,12 @@ abstract class BaseGraphBuilder implemen
             undoEventsDisabled = false;
         }
     }
-    
+
     public void undoableEditHappened(UndoableEditEvent e) {
         if (!undoEventsDisabled) {
-            //graph has been modified
+            // graph has been modified
             mediator.setDirty(true);
-            
+
             Application.getInstance().getUndoManager().undoableEditHappened(e);
         }
     }

Copied: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/init/CayenneModelerModule.java (from r988535, cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoableEdit.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/init/CayenneModelerModule.java?p2=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/init/CayenneModelerModule.java&p1=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoableEdit.java&r1=988535&r2=988538&rev=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoableEdit.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/init/CayenneModelerModule.java Tue Aug 24 13:34:35 2010
@@ -16,31 +16,25 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.modeler.undo;
+package org.apache.cayenne.modeler.init;
 
-import javax.swing.undo.AbstractUndoableEdit;
-
-import org.apache.cayenne.modeler.ActionManager;
+import org.apache.cayenne.di.Binder;
+import org.apache.cayenne.di.Module;
 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.DefaultActionManager;
+import org.apache.cayenne.modeler.init.platform.GenericPlatformInitializer;
+import org.apache.cayenne.modeler.init.platform.PlatformInitializer;
 
-public abstract class CayenneUndoableEdit extends AbstractUndoableEdit {
-    
-	protected ActionManager actionManager;
-	protected ProjectController controller;
-	
-	public CayenneUndoableEdit() {
-		this.actionManager = Application.getInstance().getActionManager();
-		this.controller = Application.getInstance().getFrameController().getProjectController();
-	}
+/**
+ * A DI module for bootstrapping CayenneModeler services.
+ */
+public class CayenneModelerModule implements Module {
 
-	@Override
-	public boolean canRedo() {
-		return true;
-	}
+    public void configure(Binder binder) {
 
-    @Override
-    public boolean canUndo() {
-        return true;
+        binder.bind(ActionManager.class).to(DefaultActionManager.class);
+        binder.bind(Application.class).to(Application.class);
+        binder.bind(PlatformInitializer.class).to(GenericPlatformInitializer.class);
     }
 }

Copied: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/init/platform/GenericPlatformInitializer.java (from r988535, cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoableEdit.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/init/platform/GenericPlatformInitializer.java?p2=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/init/platform/GenericPlatformInitializer.java&p1=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoableEdit.java&r1=988535&r2=988538&rev=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoableEdit.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/init/platform/GenericPlatformInitializer.java Tue Aug 24 13:34:35 2010
@@ -16,31 +16,23 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.modeler.undo;
+package org.apache.cayenne.modeler.init.platform;
 
-import javax.swing.undo.AbstractUndoableEdit;
+import javax.swing.JFrame;
 
-import org.apache.cayenne.modeler.ActionManager;
-import org.apache.cayenne.modeler.Application;
-import org.apache.cayenne.modeler.ProjectController;
+public class GenericPlatformInitializer implements PlatformInitializer {
 
-public abstract class CayenneUndoableEdit extends AbstractUndoableEdit {
-    
-	protected ActionManager actionManager;
-	protected ProjectController controller;
-	
-	public CayenneUndoableEdit() {
-		this.actionManager = Application.getInstance().getActionManager();
-		this.controller = Application.getInstance().getFrameController().getProjectController();
-	}
-
-	@Override
-	public boolean canRedo() {
-		return true;
-	}
+    /**
+     * Does nothing, leaving unchanged the default platform Look and Feel.
+     */
+    public void initLookAndFeel() {
+        // noop
+    }
 
-    @Override
-    public boolean canUndo() {
-        return true;
+    /**
+     * Does nothing, leaving unchanged the default frame menus.
+     */
+    public void setupMenus(JFrame frame) {
+        // noop - keep all the default menus...
     }
 }

Copied: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/init/platform/PlatformInitializer.java (from r988535, cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoableEdit.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/init/platform/PlatformInitializer.java?p2=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/init/platform/PlatformInitializer.java&p1=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoableEdit.java&r1=988535&r2=988538&rev=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoableEdit.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/init/platform/PlatformInitializer.java Tue Aug 24 13:34:35 2010
@@ -16,31 +16,22 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-package org.apache.cayenne.modeler.undo;
+package org.apache.cayenne.modeler.init.platform;
 
-import javax.swing.undo.AbstractUndoableEdit;
+import javax.swing.JFrame;
 
-import org.apache.cayenne.modeler.ActionManager;
-import org.apache.cayenne.modeler.Application;
-import org.apache.cayenne.modeler.ProjectController;
+/**
+ * An interface that provides methods for platform-specific Modeler initialization.
+ */
+public interface PlatformInitializer {
 
-public abstract class CayenneUndoableEdit extends AbstractUndoableEdit {
-    
-	protected ActionManager actionManager;
-	protected ProjectController controller;
-	
-	public CayenneUndoableEdit() {
-		this.actionManager = Application.getInstance().getActionManager();
-		this.controller = Application.getInstance().getFrameController().getProjectController();
-	}
+    /**
+     * Initializes application look and feel.
+     */
+    void initLookAndFeel();
 
-	@Override
-	public boolean canRedo() {
-		return true;
-	}
-
-    @Override
-    public boolean canUndo() {
-        return true;
-    }
+    /**
+     * Updates default frame menus according to the platform specifics.
+     */
+    void setupMenus(JFrame frame);
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoManager.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoManager.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoManager.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoManager.java Tue Aug 24 13:34:35 2010
@@ -91,10 +91,10 @@ public class CayenneUndoManager extends 
 
     private void updateUI() {
         CayenneAction undoAction = application.getActionManager().getAction(
-                UndoAction.getActionName());
+                UndoAction.class);
 
         CayenneAction redoAction = application.getActionManager().getAction(
-                RedoAction.getActionName());
+                RedoAction.class);
 
         undoAction.setEnabled(canUndo());
         redoAction.setEnabled(canRedo());

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoableEdit.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoableEdit.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoableEdit.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CayenneUndoableEdit.java Tue Aug 24 13:34:35 2010
@@ -20,9 +20,9 @@ package org.apache.cayenne.modeler.undo;
 
 import javax.swing.undo.AbstractUndoableEdit;
 
-import org.apache.cayenne.modeler.ActionManager;
 import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.ProjectController;
+import org.apache.cayenne.modeler.action.ActionManager;
 
 public abstract class CayenneUndoableEdit extends AbstractUndoableEdit {
     

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateAttributeUndoableEdit.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateAttributeUndoableEdit.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateAttributeUndoableEdit.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateAttributeUndoableEdit.java Tue Aug 24 13:34:35 2010
@@ -33,81 +33,82 @@ import org.apache.cayenne.modeler.event.
 
 public class CreateAttributeUndoableEdit extends CayenneUndoableEdit {
 
-	@Override
-	public boolean canRedo() {
-		return true;
-	}
-
-	
-	@Override
-	public String getPresentationName() {
-		return "Create Attribute";
-	}
-
-	private ObjEntity objEntity;
-	private ObjAttribute objAttr;
-
-	private DataChannelDescriptor domain;
-	private DataMap dataMap;
-
-	private DbEntity dbEntity;
-	private DbAttribute dbAttr;
-
-	@Override
-	public void redo() throws CannotRedoException {		
-		CreateAttributeAction action = (CreateAttributeAction) actionManager
-				.getAction(CreateAttributeAction.getActionName());
-
-		if (objEntity != null) {
-			action.createObjAttribute(dataMap, objEntity, objAttr);
-		}
-
-		if (dbEntity != null) {
-			action.createDbAttribute(dataMap, dbEntity, dbAttr);
-		}
-	}
-
-	@Override
-	public void undo() throws CannotUndoException {		
-		RemoveAttributeAction action = (RemoveAttributeAction) actionManager
-				.getAction(RemoveAttributeAction.getActionName());
-
-		if (objEntity != null) {
-			action.removeObjAttributes(objEntity,
-					new ObjAttribute[] { objAttr });
-			
-			controller.fireObjEntityDisplayEvent(new EntityDisplayEvent(
-	                this,
-	                objEntity,
-	                dataMap,
-	                domain));
-		}
-
-		if (dbEntity != null) {
-			action.removeDbAttributes(dataMap, dbEntity,
-					new DbAttribute[] { dbAttr });
-			
-			controller.fireDbEntityDisplayEvent(new EntityDisplayEvent(
-	                this,
-	                dbEntity,
-	                dataMap,
-	                domain));
-		}
-	}
-
-	public CreateAttributeUndoableEdit(DataChannelDescriptor domain, DataMap map,
-			ObjEntity objEntity, ObjAttribute attr) {
-		this.domain = domain;
-		this.dataMap = map;
-		this.objEntity = objEntity;
-		this.objAttr = attr;
-	}
-
-	public CreateAttributeUndoableEdit(DataChannelDescriptor domain, DataMap map,
-			DbEntity dbEntity, DbAttribute attr) {
-		this.domain = domain;
-		this.dataMap = map;
-		this.dbEntity = dbEntity;
-		this.dbAttr = attr;
-	}
+    @Override
+    public boolean canRedo() {
+        return true;
+    }
+
+    @Override
+    public String getPresentationName() {
+        return "Create Attribute";
+    }
+
+    private ObjEntity objEntity;
+    private ObjAttribute objAttr;
+
+    private DataChannelDescriptor domain;
+    private DataMap dataMap;
+
+    private DbEntity dbEntity;
+    private DbAttribute dbAttr;
+
+    @Override
+    public void redo() throws CannotRedoException {
+        CreateAttributeAction action = actionManager
+                .getAction(CreateAttributeAction.class);
+
+        if (objEntity != null) {
+            action.createObjAttribute(dataMap, objEntity, objAttr);
+        }
+
+        if (dbEntity != null) {
+            action.createDbAttribute(dataMap, dbEntity, dbAttr);
+        }
+    }
+
+    @Override
+    public void undo() throws CannotUndoException {
+        RemoveAttributeAction action = actionManager
+                .getAction(RemoveAttributeAction.class);
+
+        if (objEntity != null) {
+            action.removeObjAttributes(objEntity, new ObjAttribute[] {
+                objAttr
+            });
+
+            controller.fireObjEntityDisplayEvent(new EntityDisplayEvent(
+                    this,
+                    objEntity,
+                    dataMap,
+                    domain));
+        }
+
+        if (dbEntity != null) {
+            action.removeDbAttributes(dataMap, dbEntity, new DbAttribute[] {
+                dbAttr
+            });
+
+            controller.fireDbEntityDisplayEvent(new EntityDisplayEvent(
+                    this,
+                    dbEntity,
+                    dataMap,
+                    domain));
+        }
+    }
+
+    public CreateAttributeUndoableEdit(DataChannelDescriptor domain, DataMap map,
+            ObjEntity objEntity, ObjAttribute attr) {
+        this.domain = domain;
+        this.dataMap = map;
+        this.objEntity = objEntity;
+        this.objAttr = attr;
+    }
+
+    public CreateAttributeUndoableEdit(DataChannelDescriptor domain, DataMap map,
+            DbEntity dbEntity, DbAttribute attr) {
+        this.domain = domain;
+        this.dataMap = map;
+        this.dbEntity = dbEntity;
+        this.dbAttr = attr;
+    }
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateCallbackMethodUndoableEdit.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateCallbackMethodUndoableEdit.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateCallbackMethodUndoableEdit.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateCallbackMethodUndoableEdit.java Tue Aug 24 13:34:35 2010
@@ -28,36 +28,34 @@ import org.apache.cayenne.modeler.editor
 
 public class CreateCallbackMethodUndoableEdit extends CayenneUndoableEdit {
 
-	
-
-	private CallbackMap map;
-	private CallbackType callbackType;
-	private String methodName;
-
-	@Override
-	public String getPresentationName() {
-		return "Create Callback Method";
-	}
-
-	@Override
-	public void redo() throws CannotRedoException {
-		CreateCallbackMethodAction action = (CreateCallbackMethodAction) actionManager
-				.getAction(CreateCallbackMethodAction.getActionName());
-		action.createCallbackMethod(map, callbackType, methodName);
-	}
-
-	@Override
-	public void undo() throws CannotUndoException {
-		RemoveCallbackMethodAction action = (RemoveCallbackMethodAction) actionManager
-				.getAction(RemoveCallbackMethodAction.getActionName());
-		action.removeCallbackMethod(map, callbackType, methodName);
-	}
-
-	public CreateCallbackMethodUndoableEdit(CallbackMap map,
-			CallbackType callbackType, String methodName) {
-		this.map = map;
-		this.callbackType = callbackType;
-		this.methodName = methodName;
-	}
+    private CallbackMap map;
+    private CallbackType callbackType;
+    private String methodName;
+
+    @Override
+    public String getPresentationName() {
+        return "Create Callback Method";
+    }
+
+    @Override
+    public void redo() throws CannotRedoException {
+        CreateCallbackMethodAction action = actionManager
+                .getAction(CreateCallbackMethodAction.class);
+        action.createCallbackMethod(map, callbackType, methodName);
+    }
+
+    @Override
+    public void undo() throws CannotUndoException {
+        RemoveCallbackMethodAction action = actionManager
+                .getAction(RemoveCallbackMethodAction.class);
+        action.removeCallbackMethod(map, callbackType, methodName);
+    }
+
+    public CreateCallbackMethodUndoableEdit(CallbackMap map, CallbackType callbackType,
+            String methodName) {
+        this.map = map;
+        this.callbackType = callbackType;
+        this.methodName = methodName;
+    }
 
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateDataMapEntityListenerUndoableEdit.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateDataMapEntityListenerUndoableEdit.java?rev=988538&r1=988537&r2=988538&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateDataMapEntityListenerUndoableEdit.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/CreateDataMapEntityListenerUndoableEdit.java Tue Aug 24 13:34:35 2010
@@ -26,13 +26,13 @@ import org.apache.cayenne.map.EntityList
 import org.apache.cayenne.modeler.action.CreateDataMapEntityListenerAction;
 import org.apache.cayenne.modeler.action.RemoveEntityListenerForDataMapAction;
 
-
 public class CreateDataMapEntityListenerUndoableEdit extends CayenneUndoableEdit {
 
     private DataMap dataMap;
     private EntityListener listener;
 
-    public CreateDataMapEntityListenerUndoableEdit(DataMap dataMap, EntityListener listener) {
+    public CreateDataMapEntityListenerUndoableEdit(DataMap dataMap,
+            EntityListener listener) {
         this.dataMap = dataMap;
         this.listener = listener;
     }
@@ -44,15 +44,15 @@ public class CreateDataMapEntityListener
 
     @Override
     public void redo() throws CannotRedoException {
-        CreateDataMapEntityListenerAction action = (CreateDataMapEntityListenerAction) actionManager
-                .getAction(CreateDataMapEntityListenerAction.getActionName());
+        CreateDataMapEntityListenerAction action = actionManager
+                .getAction(CreateDataMapEntityListenerAction.class);
         action.createMapListener(dataMap, listener);
     }
 
     @Override
     public void undo() throws CannotUndoException {
-        RemoveEntityListenerForDataMapAction action = (RemoveEntityListenerForDataMapAction) actionManager
-                .getAction(RemoveEntityListenerForDataMapAction.getActionName());
+        RemoveEntityListenerForDataMapAction action = actionManager
+                .getAction(RemoveEntityListenerForDataMapAction.class);
 
         action.removeEntityListener(dataMap, listener.getClassName());
     }