/*FreeMind - A Program for creating and viewing Mindmaps *Copyright (C) 2000-2001 Joerg Mueller <joergmueller@bigfoot.com> *See COPYING for Details * *This program is free software; you can redistribute it and/or *modify it under the terms of the GNU General Public License *as published by the Free Software Foundation; either version 2 *of the License, or (at your option) any later version. * *This program is distributed in the hope that it will be useful, *but WITHOUT ANY WARRANTY; without even the implied warranty of *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *GNU General Public License for more details. * *You should have received a copy of the GNU General Public License *along with this program; if not, write to the Free Software *Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package freemind.modes.schememode; import java.awt.event.ActionEvent; import java.io.File; import java.util.StringTokenizer; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.JPopupMenu; import freemind.controller.MenuBar; import freemind.controller.StructuredMenuHolder; import freemind.extensions.HookFactory; import freemind.modes.FreeMindFileDialog; import freemind.modes.MapAdapter; import freemind.modes.MindMap; import freemind.modes.MindMapNode; import freemind.modes.Mode; import freemind.modes.ModeController; import freemind.modes.common.actions.NewMapAction; import freemind.modes.viewmodes.ViewControllerAdapter; public class SchemeController extends ViewControllerAdapter { Action newMap = new NewMapAction(this); Action open = new OpenAction(this); Action save = new SaveAction(this); Action saveAs = new SaveAsAction(this); Action evaluate = new EvaluateAction(); // Action edit = new EditAction(this); private JPopupMenu popupmenu = new SchemePopupMenu(this); public SchemeController(Mode mode) { super(mode); } public MapAdapter newModel(ModeController modeController) { return new SchemeMapModel(getFrame(), modeController); } public MindMapNode newNode(Object userObject, MindMap map) { return new SchemeNodeModel(getFrame(), map); } // //private // private MindMap getModel() { // return (MindMap)getController().getModel(); // } public boolean saveAs() { FreeMindFileDialog chooser = getFileChooser(); int returnVal = chooser.showSaveDialog(getView()); if (returnVal == JFileChooser.APPROVE_OPTION) {// ok pressed File f = chooser.getSelectedFile(); // Force the extension to be .mm // String ext = Tools.getExtension(f.getName()); // if(!ext.equals(freemind.main.FreeMindCommon.FREEMIND_FILE_EXTENSION_WITHOUT_DOT)) // { // f = new // File(f.getParent(),f.getName()+freemind.main.FreeMindCommon.FREEMIND_FILE_EXTENSION); // } save(f); // Update the name of the map updateMapModuleName(); return true; } return false; } public JPopupMenu getPopupMenu() { return this.popupmenu; } private class EvaluateAction extends AbstractAction { EvaluateAction() { super(getController().getResourceString("scheme_evaluate")); } public void actionPerformed(ActionEvent e) { String rawCode = ((SchemeMapModel) getMap()).getCode().trim(); System.out.println(rawCode); StringTokenizer code = new StringTokenizer(rawCode, ","); String output = "Output: \n"; // while(code.hasMoreTokens()) { // output = output + (SI.eval(code.nextToken()).toString())+"\n"; // } JOptionPane.showMessageDialog(getView(), output); } } /* * (non-Javadoc) * * @see freemind.modes.ModeController#updateMenus(freemind.controller. * StructuredMenuHolder) */ public void updateMenus(StructuredMenuHolder holder) { holder.addAction(newMap, MenuBar.FILE_MENU + "open/new"); holder.addAction(open, MenuBar.FILE_MENU + "open/open"); holder.addAction(save, MenuBar.FILE_MENU + "open/save"); holder.addAction(saveAs, MenuBar.FILE_MENU + "open/saveAs"); // JMenuItem editItem = holder.addAction(edit, // MenuBar.EDIT_MENU+"edit/editItem"); // editItem.setAccelerator(KeyStroke.getKeyStroke(getFrame().getAdjustableProperty("keystroke_edit"))); // JMenuItem addNewItem = holder.addAction(addNew, // MenuBar.EDIT_MENU+"edit/newItem"); // addNewItem.setAccelerator(KeyStroke.getKeyStroke(getFrame().getAdjustableProperty("keystroke_add"))); // JMenuItem removeItem = holder.addAction(remove, // MenuBar.EDIT_MENU+"edit/removeItem"); // removeItem.setAccelerator(KeyStroke.getKeyStroke(getFrame().getAdjustableProperty("keystroke_remove"))); holder.addAction(evaluate, MenuBar.EDIT_MENU + "edit/evaluate"); holder.addAction(toggleFolded, MenuBar.EDIT_MENU + "edit/toggleFolded"); } public HookFactory getHookFactory() { throw new IllegalArgumentException("Not implemented yet."); } }