package org.docear.plugin.pdfutilities.listener;
import java.util.Map.Entry;
import org.docear.plugin.core.features.DocearMapModelController;
import org.docear.plugin.core.features.DocearMapModelExtension;
import org.docear.plugin.pdfutilities.features.DocearNodeMonitoringExtension;
import org.docear.plugin.pdfutilities.features.DocearNodeMonitoringExtensionController;
import org.docear.plugin.pdfutilities.features.IAnnotation;
import org.docear.plugin.pdfutilities.map.AnnotationController;
import org.freeplane.core.util.TextUtils;
import org.freeplane.features.map.INodeSelectionListener;
import org.freeplane.features.map.NodeModel;
import org.freeplane.features.mode.Controller;
public class DocearNodeSelectionListener implements INodeSelectionListener {
public void onDeselect(NodeModel node) {
Controller.getCurrentController().getViewController().removeStatus("Annotation Info"); //$NON-NLS-1$
Controller.getCurrentController().getViewController().removeStatus("Map Version"); //$NON-NLS-1$
Controller.getCurrentController().getViewController().removeStatus("Docear Extension Info"); //$NON-NLS-1$
}
public void onSelect(NodeModel node) {
DocearMapModelExtension mapExtension = DocearMapModelController.getModel(node.getMap());
String mapVersion = ""; //$NON-NLS-1$
Controller.getCurrentController().getViewController().removeStatus("DocearMapInfo");
if(mapExtension != null){
mapVersion = TextUtils.getText("DocearNodeSelectionListener.4") + mapExtension.getVersion(); //$NON-NLS-1$
}
else{
mapVersion = TextUtils.getText("DocearNodeSelectionListener.5"); //$NON-NLS-1$
}
Controller.getCurrentController().getViewController().addStatusInfo("DocearMapInfo", mapVersion); //$NON-NLS-1$
IAnnotation model = AnnotationController.getModel(node, false);
if(model != null){
StringBuilder builder = new StringBuilder();
if(model.getAnnotationType() != null){
builder.append(TextUtils.getText("DocearNodeSelectionListener.7") + model.getAnnotationType()); //$NON-NLS-1$
}
if(model.getPage() != null){
builder.append(TextUtils.getText("DocearNodeSelectionListener.8") + model.getPage()); //$NON-NLS-1$
}
if(model.getObjectID() >= 0){
builder.append(TextUtils.getText("DocearNodeSelectionListener.9") + model.getObjectID()); //$NON-NLS-1$
}
// if(model.getAnnotationID() != null){
// builder.append(TextUtils.getText("DocearNodeSelectionListener.11") + model.getAnnotationID().getObjectID()); //$NON-NLS-1$
// }
Controller.getCurrentController().getViewController().addStatusInfo("DocearAnnotationModelInfo", builder.toString()); //$NON-NLS-1$
}
else {
Controller.getCurrentController().getViewController().removeStatus("DocearAnnotationModelInfo");
}
DocearNodeMonitoringExtension extension = DocearNodeMonitoringExtensionController.getModel(node);
if(extension != null){
StringBuilder builder = new StringBuilder();
for(Entry<String, Object> entry : extension.getAllEntries()){
if(builder.length() < 1){
builder.append(entry.getKey());
}
else{
builder.append(TextUtils.getText("DocearNodeSelectionListener.13") + entry.getKey()); //$NON-NLS-1$
}
if(entry.getValue() != null){
if(entry.getValue() instanceof String){
if(((String)entry.getValue()).length() > 0){
builder.append(": " + entry.getValue()); //$NON-NLS-1$
}
}
else{
builder.append(": " + entry.getValue()); //$NON-NLS-1$
}
}
}
Controller.getCurrentController().getViewController().addStatusInfo("DocearExtensionInfo", builder.toString()); //$NON-NLS-1$
}
else {
Controller.getCurrentController().getViewController().removeStatus("DocearExtensionInfo");
}
}
}