package me.legrange.panstamp.gui.model.tree;
import me.legrange.panstamp.Endpoint;
import me.legrange.panstamp.EndpointListener;
import me.legrange.panstamp.NetworkException;
import static me.legrange.panstamp.gui.model.Format.formatValue;
/**
*
* @author gideon
*/
public class EndpointNode extends NetworkTreeNode<Endpoint, Object> implements EndpointListener {
public EndpointNode(Endpoint ep) {
super(ep);
}
public Endpoint getEndpoint() {
return (Endpoint) getUserObject();
}
@Override
public String toString() {
try {
return String.format("%s = %s", getEndpoint().getName(), formatValue(getEndpoint()));
} catch (NetworkException ex) {
return "";
}
}
@Override
protected void start() {
getEndpoint().addListener(this);
}
@Override
protected void stop() {
getEndpoint().removeListener(this);
super.stop();
}
@Override
public void valueReceived(Endpoint ep, Object value) {
reload();
}
@Override
public Type getType() {
return Type.ENDPOINT;
}
@Override
void addChild(Object child) {
}
@Override
public int compareTo(NetworkTreeNode<Endpoint, Object> node) {
EndpointNode epn = (EndpointNode)node;
return getEndpoint().getName().compareTo(epn.getEndpoint().getName()); // FIXME: Alpha ordering is so it compiles, but we need natural ordering
// return getEndpoint().compareTo(epn.getEndpoint());
}
}