fixed NPE and wrong undo/redo for ungroup

This commit is contained in:
bancika
2011-01-27 19:21:34 +00:00
parent 4ab6231590
commit 6fad7a2427
2 changed files with 22 additions and 18 deletions
@@ -885,7 +885,7 @@ public class Presenter implements IPlugInPort {
messageDispatcher.dispatchMessage(EventType.REPAINT); messageDispatcher.dispatchMessage(EventType.REPAINT);
if (!oldProject.equals(currentProject)) { if (!oldProject.equals(currentProject)) {
messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, cloner messageDispatcher.dispatchMessage(EventType.PROJECT_MODIFIED, oldProject, cloner
.deepClone(currentProject), "Group"); .deepClone(currentProject), "Ungroup");
projectFileManager.notifyFileChange(); projectFileManager.notifyFileChange();
} }
} }
@@ -21,7 +21,9 @@ import com.diyfever.gui.undo.UndoHandler;
public class EditMenuPlugin implements IPlugIn, ClipboardOwner { public class EditMenuPlugin implements IPlugIn, ClipboardOwner {
private static final String EDIT_TITLE = "Edit"; private static final String EDIT_TITLE = "Edit";
private IPlugInPort plugInPort; private IPlugInPort plugInPort;
private ISwingUI swingUI;
private Clipboard clipboard; private Clipboard clipboard;
@@ -36,6 +38,7 @@ public class EditMenuPlugin implements IPlugIn, ClipboardOwner {
private UndoHandler<Project> undoHandler; private UndoHandler<Project> undoHandler;
public EditMenuPlugin(ISwingUI swingUI) { public EditMenuPlugin(ISwingUI swingUI) {
this.swingUI = swingUI;
// SecurityManager securityManager = System.getSecurityManager(); // SecurityManager securityManager = System.getSecurityManager();
// if (securityManager != null) { // if (securityManager != null) {
// try { // try {
@@ -59,23 +62,6 @@ public class EditMenuPlugin implements IPlugIn, ClipboardOwner {
refreshActions(); refreshActions();
} }
}); });
ActionFactory actionFactory = ActionFactory.getInstance();
swingUI.injectMenuAction(undoHandler.getUndoAction(), EDIT_TITLE);
swingUI.injectMenuAction(undoHandler.getRedoAction(), EDIT_TITLE);
swingUI.injectMenuAction(null, EDIT_TITLE);
swingUI.injectMenuAction(getCutAction(), EDIT_TITLE);
swingUI.injectMenuAction(getCopyAction(), EDIT_TITLE);
swingUI.injectMenuAction(getPasteAction(), EDIT_TITLE);
swingUI.injectMenuAction(null, EDIT_TITLE);
swingUI.injectMenuAction(actionFactory.createSelectAllAction(plugInPort), EDIT_TITLE);
swingUI.injectMenuAction(getEditSelectionAction(), EDIT_TITLE);
swingUI.injectMenuAction(getDeleteSelectionAction(), EDIT_TITLE);
swingUI.injectMenuAction(getGroupAction(), EDIT_TITLE);
swingUI.injectMenuAction(getUngroupAction(), EDIT_TITLE);
swingUI.injectMenuAction(null, EDIT_TITLE);
swingUI.injectMenuAction(actionFactory.createEditProjectAction(plugInPort), EDIT_TITLE);
} }
public ActionFactory.CutAction getCutAction() { public ActionFactory.CutAction getCutAction() {
@@ -131,6 +117,24 @@ public class EditMenuPlugin implements IPlugIn, ClipboardOwner {
@Override @Override
public void connect(IPlugInPort plugInPort) { public void connect(IPlugInPort plugInPort) {
this.plugInPort = plugInPort; this.plugInPort = plugInPort;
ActionFactory actionFactory = ActionFactory.getInstance();
swingUI.injectMenuAction(undoHandler.getUndoAction(), EDIT_TITLE);
swingUI.injectMenuAction(undoHandler.getRedoAction(), EDIT_TITLE);
swingUI.injectMenuAction(null, EDIT_TITLE);
swingUI.injectMenuAction(getCutAction(), EDIT_TITLE);
swingUI.injectMenuAction(getCopyAction(), EDIT_TITLE);
swingUI.injectMenuAction(getPasteAction(), EDIT_TITLE);
swingUI.injectMenuAction(null, EDIT_TITLE);
swingUI.injectMenuAction(actionFactory.createSelectAllAction(plugInPort), EDIT_TITLE);
swingUI.injectMenuAction(getEditSelectionAction(), EDIT_TITLE);
swingUI.injectMenuAction(getDeleteSelectionAction(), EDIT_TITLE);
swingUI.injectMenuAction(getGroupAction(), EDIT_TITLE);
swingUI.injectMenuAction(getUngroupAction(), EDIT_TITLE);
swingUI.injectMenuAction(null, EDIT_TITLE);
swingUI.injectMenuAction(actionFactory.createEditProjectAction(plugInPort), EDIT_TITLE);
refreshActions(); refreshActions();
} }