⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mindmapcontroller.java

📁 思维导图(Mind Mapping)以放射性思考(Radiant Thinking)为基础的收放自如方式
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
			toolbar.selectFontSize(n.getFontSize());			toolbar.selectFontName(n.getFontFamilyName());		}	 }    public void anotherNodeSelected(MindMapNode n) {       super.anotherNodeSelected(n);       toolbar.selectFontSize(((NodeAdapter)n).getFontSize());       toolbar.selectFontName(((NodeAdapter)n).getFontFamilyName()); }    // fc, 14.12.2004: changes, such that different models can be used:    private NewNodeCreator myNewNodeCreator = null;        public interface NewNodeCreator {        MindMapNode createNode(Object userObject);    }    public class DefaultMindMapNodeCreator implements NewNodeCreator {        public MindMapNode createNode(Object userObject) {            return new MindMapNodeModel(userObject, getFrame());        }            }        public void setNewNodeCreator(NewNodeCreator creator) {        myNewNodeCreator = creator;    }        public MindMapNode newNode(Object userObject) {        // singleton default:        if (myNewNodeCreator == null) {            myNewNodeCreator = new DefaultMindMapNodeCreator();        }        return myNewNodeCreator.createNode(userObject);    }    // fc, 14.12.2004: end "different models" change    	    //get/set methods	/**	 * @param holder	 */    public void updateMenus(StructuredMenuHolder holder) {		processMenuCategory(holder, mMenuStructure.getMenuCategory(), ""); /*MenuBar.MENU_BAR_PREFIX*/		// add hook actions to this holder.		// hooks, fc, 1.3.2004:		for (int i = 0; i < hookActions.size(); ++i) {			Action hookAction = (Action) hookActions.get(i);			List positions = (List) actionToMenuPositions.get(hookAction);			for (Iterator j = positions.iterator(); j.hasNext();) {                String pos = (String) j.next();                holder.addAction(hookAction, pos);            }		}		// update popup and toolbar:		popupmenu.update(holder);		toolbar.update(holder);        //		editMenu.add(getExtensionMenu());		String formatMenuString = MenuBar.FORMAT_MENU;        createPatternSubMenu(holder, formatMenuString);//        editMenu.add(getIconMenu());		addIconsToMenu(holder, MenuBar.INSERT_MENU + "icons");    }    public void addIconsToMenu(StructuredMenuHolder holder, String iconMenuString) {		JMenu iconMenu = holder.addMenu(new JMenu(getText("icon_menu")), iconMenuString+"/.") ;		holder.addAction(removeLastIconAction, iconMenuString+"/removeLastIcon");		holder.addAction(removeAllIconsAction, iconMenuString+"/removeAllIcons");		holder.addSeparator(iconMenuString);		for (int i=0; i<iconActions.size(); ++i) {          			   JMenuItem item = holder.addAction((Action) iconActions.get(i), iconMenuString+"/"+i);		}	}	/**     * @param holder     * @param formatMenuString     */    public JMenu createPatternSubMenu(StructuredMenuHolder holder, String formatMenuString) {        JMenu extensionMenu = holder.addMenu(new JMenu(getText("extension_menu")), formatMenuString+"patterns/.");        for (int i = 0; i < patterns.length; ++i) {            JMenuItem item =                holder.addAction(                    patterns[i],                    formatMenuString + "patterns/" + i);            item.setAccelerator(                KeyStroke.getKeyStroke(                    getFrame().getProperty(                        "keystroke_apply_pattern_" + (i + 1))));        }        return extensionMenu;    }    public MenuStructure updateMenusFromXml(InputStream in) {        // get from resources:        try {        	Unmarshaller unmarshaller = JaxbTools.getInstance().createUnmarshaller();        	unmarshaller.setValidating(true);        	MenuStructure menus = (MenuStructure) unmarshaller.unmarshal(in);        	return menus;		} catch (JAXBException e) {        	logger.severe(e.getCause() + e.getLocalizedMessage() + e.getMessage());        	e.printStackTrace();        	throw new IllegalArgumentException("Menu structure could not be read.");        }    }    /**     * @param type     */    public void processMenuCategory(StructuredMenuHolder holder, List list, String category) {		String categoryCopy = category;    	for (Iterator i = list.iterator(); i.hasNext();) {            Object obj = (Object) i.next();            if(obj instanceof MenuCategoryBase) {				MenuCategoryBase cat = (MenuCategoryBase) obj;            	String newCategory = categoryCopy+"/"+cat.getName();				holder.addCategory(newCategory);                if(cat instanceof MenuSubmenu) {                	MenuSubmenu submenu = (MenuSubmenu) cat;                	holder.addMenu(new JMenu(getText(submenu.getNameRef())), newCategory+"/.");                }            	processMenuCategory(holder, cat.getMenuCategoryOrMenuSubmenuOrMenuAction(), newCategory);            } else if( obj instanceof MenuActionBase ) {				MenuActionBase action = (MenuActionBase) obj;            					String field = action.getField();				String name = action.getName();				if(name == null) {					name = field;				}				String keystroke = action.getKeyRef();				try {					Action theAction = (Action) this.getClass().getField(field).get(this);					String theCategory = categoryCopy+"/"+name;					if (obj instanceof MenuCheckedAction) {						addCheckBox(holder, theCategory, theAction, keystroke);					} else {						add(holder, theCategory, theAction, keystroke);					}				} catch (Exception e1) {					e1.printStackTrace();				}            } else if (obj instanceof MenuSeparator) {            	holder.addSeparator(categoryCopy);            } /* else exception */         }    }    public JPopupMenu getPopupMenu() {        return popupmenu;    }    /** Link implementation: If this is a link, we want to make a popup with at least removelink available.*/    public JPopupMenu getPopupForModel(java.lang.Object obj) {        if( obj instanceof MindMapArrowLinkModel) {            // yes, this is a link.            MindMapArrowLinkModel link = (MindMapArrowLinkModel) obj;            JPopupMenu arrowLinkPopup = new JPopupMenu();            // block the screen while showing popup.            arrowLinkPopup.addPopupMenuListener( this.popupListenerSingleton );            removeArrowLinkAction.setArrowLink(link);            arrowLinkPopup.add(new RemoveArrowLinkAction(this, link));            arrowLinkPopup.add(new ColorArrowLinkAction(this, link));            arrowLinkPopup.addSeparator();            /* The arrow state as radio buttons: */            JRadioButtonMenuItem itemnn = new JRadioButtonMenuItem( new ChangeArrowsInArrowLinkAction(this, "none", "images/arrow-mode-none.gif",link, false, false) );            JRadioButtonMenuItem itemnt = new JRadioButtonMenuItem( new ChangeArrowsInArrowLinkAction(this, "forward", "images/arrow-mode-forward.gif",link, false, true) );            JRadioButtonMenuItem itemtn = new JRadioButtonMenuItem( new ChangeArrowsInArrowLinkAction(this, "backward", "images/arrow-mode-backward.gif",link, true, false) );            JRadioButtonMenuItem itemtt = new JRadioButtonMenuItem( new ChangeArrowsInArrowLinkAction(this, "both", "images/arrow-mode-both.gif",link, true, true) );            itemnn.setText(null);            itemnt.setText(null);            itemtn.setText(null);            itemtt.setText(null);            arrowLinkPopup.add( itemnn );            arrowLinkPopup.add( itemnt );            arrowLinkPopup.add( itemtn );            arrowLinkPopup.add( itemtt );            // select the right one:            boolean a = !link.getStartArrow().equals("None");            boolean b = !link.getEndArrow().equals("None");            itemtt.setSelected(a&&b);            itemnt.setSelected(!a&&b);            itemtn.setSelected(a&&!b);            itemnn.setSelected(!a&&!b);            arrowLinkPopup.addSeparator();                        arrowLinkPopup.add(new GotoLinkNodeAction(this, link.getSource()));             arrowLinkPopup.add(new GotoLinkNodeAction(this, link.getTarget()));             arrowLinkPopup.addSeparator();            // add all links from target and from source:            HashSet NodeAlreadyVisited = new HashSet();            NodeAlreadyVisited.add(link.getSource());            NodeAlreadyVisited.add(link.getTarget());            Vector links = getMindMapMapModel().getLinkRegistry().getAllLinks(link.getSource());            links.addAll(getMindMapMapModel().getLinkRegistry().getAllLinks(link.getTarget()));            for(int i = 0; i < links.size(); ++i) {                MindMapArrowLinkModel foreign_link = (MindMapArrowLinkModel) links.get(i);                if(NodeAlreadyVisited.add(foreign_link.getTarget())) {                    arrowLinkPopup.add(new GotoLinkNodeAction(this, foreign_link.getTarget()));                 }                if(NodeAlreadyVisited.add(foreign_link.getSource())) {                    arrowLinkPopup.add(new GotoLinkNodeAction(this, foreign_link.getSource()));                 }            }            return arrowLinkPopup;        }        return null;    }    //convenience methods    private MindMapMapModel getMindMapMapModel() {	return (MindMapMapModel)getController().getModel();    }    MindMapToolBar getToolBar() {	return (MindMapToolBar)toolbar;    }    JToolBar getLeftToolBar() {	return ((MindMapToolBar)toolbar).getLeftToolBar();    }    /**     * Enabled/Disabled all actions that are dependent on     * whether there is a map open or not.     */    protected void setAllActions(boolean enabled) {        super.setAllActions(enabled);        // own actions        increaseNodeFont.setEnabled(enabled);        decreaseNodeFont.setEnabled(enabled);        exportBranch.setEnabled(enabled);        exportBranchToHTML.setEnabled(enabled);        editLong.setEnabled(enabled);        newSibling.setEnabled(enabled);        newPreviousSibling.setEnabled(enabled);        setLinkByFileChooser.setEnabled(enabled);        setImageByFileChooser.setEnabled(enabled);        followLink.setEnabled(enabled);        for (int i=0; i<iconActions.size(); ++i) {                      ((Action) iconActions.get(i)).setEnabled(enabled);        }        save.setEnabled(enabled);        saveAs.setEnabled(enabled);        getToolBar().setAllActions(enabled);        exportBranch.setEnabled(enabled);        exportToHTML.setEnabled(enabled);        importBranch.setEnabled(enabled);        importLinkedBranch.setEnabled(enabled);        importLinkedBranchWithoutRoot.setEnabled(enabled);        // hooks:		for (int i=0; i<hookActions.size(); ++i) {          			((Action) hookActions.get(i)).setEnabled(enabled);		}    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -