/** * Creates a new mode (controller), activates the toolbars, title and deactivates all actions. * * @param mode * @return false if the change was not successful. */ public boolean changeToMode(String mode) { if (getMode() != null && mode.equals(getMode().toString())) { return true; } // Check if the mode is available and create ModeController. Mode newmode = modescreator.getMode(mode); if (newmode == null) { errorMessage(getResourceString("mode_na") + ": " + mode); return false; } if (getMode() != null && getMode().getModeToolBar() != null) { toolbar.remove(getMode().getModeToolBar()); } /* other toolbars are to be removed too. */ if (getMode() != null && getMode().getLeftToolBar() != null) { getFrame().getContentPane().remove(getMode().getLeftToolBar()); } if (getMapModule() != null) { getMapModuleManager().setMapModule(null); } this.mode = newmode; if (getMode().getModeToolBar() != null) { toolbar.add(getMode().getModeToolBar()); getMode().getModeToolBar().repaint(); } /* new left toolbar. */ if (getMode().getLeftToolBar() != null) { getFrame().getContentPane().add(getMode().getLeftToolBar(), BorderLayout.WEST); getMode().getLeftToolBar().repaint(); } toolbar.validate(); toolbar.repaint(); setTitle(); getMode().activate(); getFrame().getFreeMindMenuBar().updateMenus(); if (getMapModule() == null) { setAllActions(false); } Object[] messageArguments = {getMode().toString()}; MessageFormat formatter = new MessageFormat(getResourceString("mode_status")); getFrame().out(formatter.format(messageArguments)); return true; }