public void actionPerformed(final ActionEvent e) {
    final ModeController modeController = Controller.getCurrentModeController();
    final Controller controller = modeController.getController();
    final NodeModel selected = controller.getSelection().getSelected();
    if (selected.depth() < 2) {
      UITools.errorMessage(TextUtils.getText("can_not_delete_style_group"));
      return;
    }
    final MapModel map = selected.getMap();
    final MapStyleModel styleModel = MapStyleModel.getExtension(map);
    final NodeModel styleNodeGroup = styleModel.getStyleNodeGroup(selected);
    if (!((StyleNamedObject) styleNodeGroup.getUserObject())
        .getObject()
        .equals("styles.user-defined")) {
      UITools.errorMessage(TextUtils.getText("can_not_delete_predefined_style"));
      return;
    }
    final MMapController mapController = (MMapController) modeController.getMapController();
    mapController.deleteNode(selected);
    final IActor actor =
        new IActor() {
          public void undo() {
            styleModel.addStyleNode(selected);
          }

          public String getDescription() {
            return "DeleteStyle";
          }

          public void act() {
            styleModel.removeStyleNode(selected);
          }
        };
    Controller.getCurrentModeController().execute(actor, map);
  }
  private void register(ModeController modeController) {
    modeController.addExtension(
        IScriptEditorStarter.class,
        new IScriptEditorStarter() {
          public String startEditor(final String pScriptInput) {
            final ScriptModel scriptModel = new ScriptModel(pScriptInput);
            final ScriptEditorPanel scriptEditorPanel = new ScriptEditorPanel(scriptModel, false);
            scriptEditorPanel.setVisible(true);
            return scriptModel.getScript();
          }

          public ComboBoxEditor createComboBoxEditor(Dimension minimumSize) {
            final ScriptComboBoxEditor scriptComboBoxEditor = new ScriptComboBoxEditor();
            if (minimumSize != null) scriptComboBoxEditor.setMinimumSize(minimumSize);
            return scriptComboBoxEditor;
          }
        });
    modeController.addExtension(
        IScriptStarter.class,
        new IScriptStarter() {
          public void executeScript(NodeModel node, String script) {
            ScriptingEngine.executeScript(node, script);
          }
        });
    registerScriptAddOns();
    if (!modeController.getController().getViewController().isHeadless()) {
      final IUserInputListenerFactory userInputListenerFactory =
          modeController.getUserInputListenerFactory();
      addPropertiesToOptionPanel();
      final MenuBuilder menuBuilder = userInputListenerFactory.getMenuBuilder();
      modeController.addAction(new ScriptEditor());
      modeController.addAction(new ExecuteScriptForAllNodes());
      modeController.addAction(new ExecuteScriptForSelectionAction());
      final ManageAddOnsAction manageAddOnsAction = new ManageAddOnsAction();
      modeController.addAction(manageAddOnsAction);
      modeController.addExtension(
          AddOnInstaller.class,
          new AddOnInstaller() {
            public void install(final URL url) {
              final ManageAddOnsDialog dialog = manageAddOnsAction.getDialog();
              // FIXME: method does not exist --> boercher
              // dialog.install(url);
            }
          });
      final ScriptingConfiguration configuration = new ScriptingConfiguration();
      ScriptingEngine.setClasspath(configuration.getClasspath());
      ScriptCompiler.compileScriptsOnPath(configuration.getClasspath());
      modeController.addMenuContributor(
          new IMenuContributor() {
            public void updateMenus(ModeController modeController, MenuBuilder builder) {
              registerScripts(menuBuilder, configuration);
            }
          });
      createUserScriptsDirectory();
    }
    FilterController.getCurrentFilterController()
        .getConditionFactory()
        .addConditionController(10, new ScriptConditionController());
  }