package org.docear.plugin.pdfutilities.actions;
import java.awt.event.ActionEvent;
import org.docear.plugin.core.util.NodeUtilities;
import org.docear.plugin.pdfutilities.util.MonitoringUtils;
import org.freeplane.features.map.INodeSelectionListener;
import org.freeplane.features.map.NodeModel;
import org.freeplane.features.mode.Controller;
import org.freeplane.features.mode.ModeController;
public class MonitoringGroupRadioButtonAction extends GroupRadioButtonAction implements INodeSelectionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
private String attributeKey;
private Object value;
public MonitoringGroupRadioButtonAction(String key, String attributeKey, Object value, ModeController modeController) {
super(key);
this.attributeKey = attributeKey;
this.value = value;
modeController.getMapController().addNodeSelectionListener(this);
}
public void actionPerformed(ActionEvent e) {
super.actionPerformed(e);
NodeModel selected = Controller.getCurrentController().getSelection().getSelected();
if(MonitoringUtils.isMonitoringNode(selected)){
NodeUtilities.setAttribute(selected, this.attributeKey, this.value);
}
}
public void onDeselect(NodeModel node) {
}
public void onSelect(NodeModel node) {
this.setSelected(false);
if(MonitoringUtils.isMonitoringNode(node)){
Object value = NodeUtilities.getAttributeValue(node, this.attributeKey);
if(value != null && value.equals(this.value)){
this.setSelected(true);
}
}
}
}