// find connector
final ComponentConnector connector = (ComponentConnector) ConnectorMap
.get(ac).getConnector(pid);
if (connector == null) {
root.add(new SimpleTree("[" + pid + "] NOT FOUND"));
return;
}
Highlight.show(connector);
final SimpleTree errorNode = new SimpleTree(
Util.getSimpleName(connector) + " id: " + pid);
errorNode.addDomHandler(new MouseOverHandler() {
@Override
public void onMouseOver(MouseOverEvent event) {
Highlight.showOnly(connector);
((Widget) event.getSource()).getElement().getStyle()
.setTextDecoration(TextDecoration.UNDERLINE);
}
}, MouseOverEvent.getType());
errorNode.addDomHandler(new MouseOutHandler() {
@Override
public void onMouseOut(MouseOutEvent event) {
Highlight.hideAll();
((Widget) event.getSource()).getElement().getStyle()
.setTextDecoration(TextDecoration.NONE);
}
}, MouseOutEvent.getType());
errorNode.addDomHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
if (event.getNativeEvent().getEventTarget().cast() == errorNode
.getElement().getChild(1).cast()) {
fireSelectEvent(connector);
}
}
}, ClickEvent.getType());
VerticalPanel errorDetails = new VerticalPanel();
if (valueMap.containsKey("heightMsg")) {
errorDetails.add(new Label("Height problem: "
+ valueMap.getString("heightMsg")));
}
if (valueMap.containsKey("widthMsg")) {
errorDetails.add(new Label("Width problem: "
+ valueMap.getString("widthMsg")));
}
if (errorDetails.getWidgetCount() > 0) {
errorNode.add(errorDetails);
}
if (valueMap.containsKey("subErrors")) {
HTML l = new HTML(
"<em>Expand this node to show problems that may be dependent on this problem.</em>");
errorDetails.add(l);