Search in sources :

Example 1 with OptionsFrame

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();
    }
}
Also used : Project(com.cburch.logisim.proj.Project) OptionsFrame(com.cburch.logisim.gui.opts.OptionsFrame) Frame(com.cburch.logisim.gui.main.Frame) PreferencesFrame(com.cburch.logisim.gui.prefs.PreferencesFrame) List(java.util.List) OptionsFrame(com.cburch.logisim.gui.opts.OptionsFrame)

Aggregations

Frame (com.cburch.logisim.gui.main.Frame)1 OptionsFrame (com.cburch.logisim.gui.opts.OptionsFrame)1 PreferencesFrame (com.cburch.logisim.gui.prefs.PreferencesFrame)1 Project (com.cburch.logisim.proj.Project)1 List (java.util.List)1