package org.docear.plugin.core.actions; import java.awt.event.ActionEvent; import java.util.Collection; import org.docear.plugin.core.features.DocearNodePrivacyExtensionController; import org.docear.plugin.core.features.DocearNodePrivacyExtensionController.DocearPrivacyLevel; import org.freeplane.core.ui.AFreeplaneAction; import org.freeplane.core.ui.components.UITools; import org.freeplane.core.util.LogUtils; import org.freeplane.features.map.MapChangeEvent; import org.freeplane.features.map.MapModel; import org.freeplane.features.map.NodeModel; import org.freeplane.features.mode.Controller; public class DocearSetNodePrivacyAction extends AFreeplaneAction { private static final long serialVersionUID = 1L; public static final String KEY = "DocearNodePrivacyAction"; public DocearSetNodePrivacyAction() { super(KEY); } public void actionPerformed(ActionEvent e) { try { boolean dirtyMap = false; DocearPrivacyLevel level = DocearPrivacyLevel.DEMO; //DOCEAR - show Privacy Dialog here if(level == null) { return; } Collection<NodeModel> nodes = Controller.getCurrentModeController().getMapController().getSelectedNodes(); for (NodeModel nodeModel : nodes) { // set the privacy level DocearNodePrivacyExtensionController.getController().setPrivacyLevel(nodeModel, level); dirtyMap = true; } if(dirtyMap) { MapModel map = Controller.getCurrentModeController().getMapController().getRootNode().getMap(); map.setSaved(false); map.fireMapChangeEvent(new MapChangeEvent(nodes, map, "DCR_PRIVACY_CHANGED", null, level)); } } catch (final Exception ex) { UITools.errorMessage(ex); LogUtils.warn(ex); } } }