package org.docear.plugin.core.listeners; import java.awt.Component; import org.docear.plugin.core.event.DocearEvent; import org.docear.plugin.core.event.DocearEventType; import org.docear.plugin.core.event.IDocearEventListener; import org.docear.plugin.core.features.DocearMapModelController; import org.docear.plugin.core.features.DocearMapModelExtension; import org.docear.plugin.core.features.DocearMapModelExtension.DocearMapType; import org.docear.plugin.core.features.DocearNodeModifiedExtensionController; import org.docear.plugin.core.features.DocearNodePrivacyExtensionController; import org.docear.plugin.core.features.DocearNodePrivacyExtensionController.DocearNodePrivacyExtension; import org.docear.plugin.core.features.DocearNodePrivacyExtensionController.DocearPrivacyLevel; import org.freeplane.features.map.IMapLifeCycleListener; import org.freeplane.features.map.INodeSelectionListener; import org.freeplane.features.map.INodeView; import org.freeplane.features.map.MapChangeEvent; import org.freeplane.features.map.MapModel; import org.freeplane.features.map.NodeChangeEvent; import org.freeplane.features.map.NodeModel; import org.freeplane.features.mode.Controller; import org.freeplane.features.ui.IMapViewChangeListener; public class DocearCoreOmniListenerAdapter implements IMapLifeCycleListener, INodeSelectionListener, INodeView, IMapViewChangeListener, IDocearEventListener { public void onNodeInserted(NodeModel parent, NodeModel child, int newIndex) { // LogUtils.info("onNodeInserted: "+ child); // try { // child.removeViewer(this); // } // catch (Exception e) { // } // child.addViewer(this); } public void onPreNodeDelete(NodeModel oldParent, NodeModel selectedNode, int index) { // LogUtils.info("onPreNodeDelete: "+ selectedNode); } public void onNodeDeleted(NodeModel parent, NodeModel child, int index) { // LogUtils.info("onNodeDeleted: "+ child); // try { // child.removeViewer(this); // } // catch (Exception e) { // } } public void onPreNodeMoved(NodeModel oldParent, int oldIndex, NodeModel newParent, NodeModel child, int newIndex) { } public void onNodeMoved(NodeModel oldParent, int oldIndex, NodeModel newParent, NodeModel child, int newIndex) { DocearNodeModifiedExtensionController.getController().updateMovedTime(child); // LogUtils.info("nodeMoved: "+child); } public void nodeChanged(NodeChangeEvent event) { // LogUtils.info("nodeChanged: "+event.getProperty()); } public void onDeselect(NodeModel node) { // LogUtils.info("onDeselect "+node); } public void onSelect(NodeModel node) { if("true".equals(System.getProperty("docear.debug", "false"))) { DocearNodePrivacyExtension ext = DocearNodePrivacyExtensionController.getExtension(node); if(ext != null) { Controller.getCurrentController().getViewController().addStatusInfo("DocearPrivacy", "Privacy: "+ext.getPrivacyLevel().toString()); } else { Controller.getCurrentController().getViewController().removeStatus("DocearPrivacy"); } } // LogUtils.info("onSelect "+node); // try { // node.removeViewer(this); // } // catch (Exception e) { // } // node.addViewer(this); } /************************************************* * interface for map events *************************************************/ /** * */ public void mapChanged(MapChangeEvent event) { } public void onCreate(MapModel map) { map.addMapChangeListener(this); DocearMapModelExtension dmme = map.getExtension(DocearMapModelExtension.class); if (dmme != null && dmme.getType() != null) { DocearNodePrivacyExtension ext = DocearNodePrivacyExtensionController.getExtension(map.getRootNode()); if(ext == null) { DocearNodePrivacyExtensionController.getController().setPrivacyLevel(map.getRootNode(), DocearPrivacyLevel.DEMO); } } // LogUtils.info("onCreate"); } public void onRemove(MapModel map) { map.removeMapChangeListener(this); // LogUtils.info("onRemove"); } public void onSavedAs(MapModel map) { } public void onSaved(MapModel map) { } @Override public void afterViewChange(Component oldView, Component newView) { // LogUtils.info("afterViewChange"); } @Override public void afterViewClose(Component oldView) { // LogUtils.info("afterViewClose"); } @Override public void afterViewCreated(Component mapView) { // LogUtils.info("afterViewCreated"); } @Override public void beforeViewChange(Component oldView, Component newView) { // LogUtils.info("beforeViewChange"); } /*********************************************** * Docear event handling ***********************************************/ @Override public void handleEvent(DocearEvent event) { if (DocearEventType.NEW_INCOMING.equals(event.getType())) { MapModel map = (MapModel) event.getEventObject(); DocearMapModelExtension dmme = DocearMapModelController.getModel(map); if(dmme == null) { dmme = DocearMapModelController.setModelWithCurrentVersion(map); } dmme.setType(DocearMapType.incoming); DocearNodePrivacyExtension ext = DocearNodePrivacyExtensionController.getExtension(map.getRootNode()); if(ext == null) { DocearNodePrivacyExtensionController.getController().setPrivacyLevel(map.getRootNode(), DocearPrivacyLevel.DEMO); } } if (DocearEventType.NEW_MY_PUBLICATIONS.equals(event.getType())) { MapModel map = (MapModel) event.getEventObject(); DocearMapModelExtension dmme = DocearMapModelController.getModel(map); if(dmme == null) { dmme = DocearMapModelController.setModelWithCurrentVersion(map); } dmme.setType(DocearMapType.my_publications); DocearNodePrivacyExtension ext = DocearNodePrivacyExtensionController.getExtension(map.getRootNode()); if(ext == null) { DocearNodePrivacyExtensionController.getController().setPrivacyLevel(map.getRootNode(), DocearPrivacyLevel.DEMO); } } if (DocearEventType.NEW_LITERATURE_ANNOTATIONS.equals(event.getType())) { MapModel map = (MapModel) event.getEventObject(); DocearMapModelExtension dmme = DocearMapModelController.getModel(map); if(dmme == null) { dmme = DocearMapModelController.setModelWithCurrentVersion(map); } dmme.setType(DocearMapType.literature_annotations); DocearNodePrivacyExtension ext = DocearNodePrivacyExtensionController.getExtension(map.getRootNode()); if(ext == null) { DocearNodePrivacyExtensionController.getController().setPrivacyLevel(map.getRootNode(), DocearPrivacyLevel.DEMO); } } } }