use of com.cburch.logisim.gui.opts.OptionsFrame in project logisim-evolution by reds-heig.
the class MenuFile method actionPerformed.
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();
}
}
Aggregations