public EncryptedBrowseNode(Object userObject, FreeMindMain frame, ModeController modeController) {
   super(userObject, frame, modeController.getMap());
   this.mModeController = modeController;
   if (logger == null) logger = frame.getLogger(this.getClass().getName());
   if (encryptedIcon == null) {
     encryptedIcon = MindIcon.factory("encrypted").getIcon();
   }
   if (decryptedIcon == null) {
     decryptedIcon = MindIcon.factory("decrypted").getIcon();
   }
   updateIcon();
 }
 public String getResourceString(String resource) {
   return frame.getResourceString(resource);
 }
 public void setProperty(String property, String value) {
   frame.setProperty(property, value);
 }
 public int getIntProperty(String property, int defaultValue) {
   return frame.getIntProperty(property, defaultValue);
 }
 public String getProperty(String property) {
   return frame.getProperty(property);
 }
  public Controller(FreeMindMain frame) {
    checkJavaVersion();

    this.frame = frame;
    if (logger == null) {
      logger = frame.getLogger(this.getClass().getName());
    }
    // new object factory for xml actions:
    actionXmlFactory = JaxbTools.getInstance().getObjectFactory();

    lastOpened = new LastOpenedList(this, getProperty("lastOpened"));
    mapModuleManager = new MapModuleManager(this, history, lastOpened);

    nodeMouseMotionListener = new NodeMouseMotionListener(this);
    nodeMotionListener = new NodeMotionListener(this);
    nodeKeyListener = new NodeKeyListener(this);
    nodeDragListener = new NodeDragListener(this);
    nodeDropListener = new NodeDropListener(this);

    mapMouseMotionListener = new MapMouseMotionListener(this);
    mapMouseWheelListener = new MapMouseWheelListener(this);

    close = new CloseAction(this);

    print = new PrintAction(this, true);
    printDirect = new PrintAction(this, false);
    page = new PageAction(this);
    quit = new QuitAction(this);
    background = new BackgroundAction(this, bswatch);
    about = new AboutAction(this);
    faq = new OpenFAQAction(this);
    documentation = new DocumentationAction(this);
    license = new LicenseAction(this);
    historyPreviousMap = new HistoryPreviousMapAction(this);
    historyNextMap = new HistoryNextMapAction(this);
    navigationPreviousMap = new NavigationPreviousMapAction(this);
    navigationNextMap = new NavigationNextMapAction(this);
    toggleMenubar = new ToggleMenubarAction(this);
    toggleToolbar = new ToggleToolbarAction(this);
    // ICON AOP
    // toggleLeftToolbar = new ToggleLeftToolbarAction(this);
    optionAntialiasAction = new OptionAntialiasAction(this);
    optionHTMLExportFoldingAction = new OptionHTMLExportFoldingAction(this);
    optionSelectionMechanismAction = new OptionSelectionMechanismAction(this);

    zoomIn = new ZoomInAction(this);
    zoomOut = new ZoomOutAction(this);
    propertyAction = new PropertyAction(this);

    moveToRoot = new MoveToRootAction(this);

    // Create the ToolBar
    toolbar = new MainToolBar(this);
    getFrame().getContentPane().add(toolbar, BorderLayout.NORTH);

    setAllActions(false);

    if (!Tools.isAvailableFontFamily(getProperty("standardfont"))) {
      System.out.println(
          "Warning: the font you have set as standard - "
              + getProperty("standardfont")
              + " - is not available.");
      frame.setProperty("standardfont", "SansSerif");
    }
  }