package org.freeplane.plugin.remote.client.listeners;
import org.freeplane.core.util.LogUtils;
import org.freeplane.features.map.INodeChangeListener;
import org.freeplane.features.map.NodeChangeEvent;
import org.freeplane.plugin.remote.client.ClientController;
import org.freeplane.plugin.remote.client.User;
import org.freeplane.plugin.remote.client.services.WS;
public class NodeChangeListener implements INodeChangeListener {
private final ClientController clientController;
public NodeChangeListener(ClientController clientController) {
super();
this.clientController = clientController;
}
@Override
public void nodeChanged(final NodeChangeEvent event) {
if (!isUpdating()) {
if (event != null && event.getProperty() != null)
LogUtils.info("attribute: " + event.getProperty().toString());
if (event != null && event.getNewValue() != null)
LogUtils.info("value: " + event.getNewValue().toString());
if (event.getProperty() != null && event.getProperty().equals("node_text")) {
LogUtils.info("node_text");
webservice().changeNode(user().getUsername(), user().getAccessToken(), "5", event.getNode().getID(), "nodeText", event.getNewValue());
// final ListenableFuture<Boolean> future =
// webservice().changeNode("5", event.getNode().getID(),
// "nodeText", event.getNewValue());
// Futures.addCallback(future, new FutureCallback<Boolean>() {
// @Override
// public void onFailure(Throwable t) {
// t.printStackTrace();
// }
//
// @Override
// public void onSuccess(Boolean success) {
// if (!success) {
// isUpdating(true);
// event.getNode().setText(event.getOldValue().toString());
// isUpdating(false);
// }
// }
// });
}
// node_text
}
}
public WS webservice() {
return clientController.webservice();
}
public boolean isUpdating() {
return clientController.isUpdating();
}
public void isUpdating(boolean value) {
clientController.isUpdating(value);
}
private User user() {
return clientController.getUser();
}
}