public void actionPerformed(ActionEvent e) { Object src = e.getSource(); Project proj = menubar.getProject(); if (src == newi) { ProjectActions.doNew(proj); } else if (src == merge) { ProjectActions.doMerge(proj == null ? null : proj.getFrame().getCanvas(), proj); } else if (src == open) { ProjectActions.doOpen(proj == null ? null : proj.getFrame().getCanvas(), proj); } else if (src == close) { int result = 0; Frame frame = proj.getFrame(); if (proj.isFileDirty()) { /* Must use hardcoded strings here, because the string management is rotten */ String message = "What should happen to your unsaved changes to " + proj.getLogisimFile().getName(); String[] options = {"Save", "Discard", "Cancel"}; result = JOptionPane.showOptionDialog( JOptionPane.getFrameForComponent(this), message, "Confirm Close", 0, JOptionPane.QUESTION_MESSAGE, null, options, options[0]); if (result == 0) { ProjectActions.doSave(proj); } } /* If "cancel" pressed do nothing, otherwise dispose the window, opening one if this was the last opened window */ if (result != 2) { // Get the list of open projects List<Project> pl = Projects.getOpenProjects(); if (pl.size() == 1) { // Since we have a single window open, before closing the // current // project open a new empty one ProjectActions.doNew(proj); } // Close the current project frame.dispose(); OptionsFrame f = proj.getOptionsFrame(false); if (f != null) f.dispose(); } } else if (src == save) { ProjectActions.doSave(proj); } else if (src == saveAs) { ProjectActions.doSaveAs(proj); } else if (src == prefs) { PreferencesFrame.showPreferences(); } else if (src == quit) { ProjectActions.doQuit(); } }
public void actionPerformed(ActionEvent e) { Object src = e.getSource(); Project proj = menubar.getProject(); if (src == newi) { ProjectActions.doNew(proj); } else if (src == open) { ProjectActions.doOpen(proj == null ? null : proj.getFrame().getCanvas(), proj); } else if (src == close) { Frame frame = proj.getFrame(); if (frame.confirmClose()) { frame.dispose(); OptionsFrame f = proj.getOptionsFrame(false); if (f != null) f.dispose(); } } else if (src == save) { ProjectActions.doSave(proj); } else if (src == saveAs) { ProjectActions.doSaveAs(proj); } else if (src == prefs) { PreferencesFrame.showPreferences(); } else if (src == quit) { ProjectActions.doQuit(); } }