summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeif Åstrand <leif@vaadin.com>2012-04-03 11:24:29 +0300
committerLeif Åstrand <leif@vaadin.com>2012-04-03 11:24:29 +0300
commitcaa1e536fd9719b996d1bbae407bbd9670f6ed8f (patch)
treeecafb7fb1caf5f6bd0d4352171ead560ce3db913
parent674b4377bc37bdf5c82566783221a65c562704db (diff)
downloadvaadin-framework-caa1e536fd9719b996d1bbae407bbd9670f6ed8f.tar.gz
vaadin-framework-caa1e536fd9719b996d1bbae407bbd9670f6ed8f.zip
Dump connector hierachy as a clickable tree
-rw-r--r--src/com/vaadin/terminal/gwt/client/VDebugConsole.java51
1 files changed, 41 insertions, 10 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/VDebugConsole.java b/src/com/vaadin/terminal/gwt/client/VDebugConsole.java
index 231e5f33a1..8067f0077e 100644
--- a/src/com/vaadin/terminal/gwt/client/VDebugConsole.java
+++ b/src/com/vaadin/terminal/gwt/client/VDebugConsole.java
@@ -21,6 +21,8 @@ import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.KeyCodes;
+import com.google.gwt.event.dom.client.MouseOutEvent;
+import com.google.gwt.event.dom.client.MouseOutHandler;
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.event.shared.UmbrellaException;
import com.google.gwt.http.client.Request;
@@ -816,15 +818,26 @@ public class VDebugConsole extends VOverlay implements Console {
log("Connector hierarchy for Root: " + root.getState().getCaption()
+ " (" + root.getConnectorId() + ")");
Set<ComponentConnector> connectorsInHierarchy = new HashSet<ComponentConnector>();
- dumpConnectorHierarchy(root, "", connectorsInHierarchy);
+ SimpleTree rootHierachy = dumpConnectorHierarchy(root, "",
+ connectorsInHierarchy);
+ if (panel.isAttached()) {
+ rootHierachy.open(true);
+ panel.add(rootHierachy);
+ }
+
ConnectorMap connectorMap = a.getConnectorMap();
Collection<? extends ServerConnector> registeredConnectors = connectorMap
.getConnectors();
log("Sub windows:");
Set<ComponentConnector> subWindowHierarchyConnectors = new HashSet<ComponentConnector>();
for (VWindow w : root.getWidget().getSubWindowList()) {
- dumpConnectorHierarchy(connectorMap.getConnector(w), "",
+ SimpleTree windowHierachy = dumpConnectorHierarchy(
+ connectorMap.getConnector(w), "",
subWindowHierarchyConnectors);
+ if (panel.isAttached()) {
+ windowHierachy.open(true);
+ panel.add(windowHierachy);
+ }
}
log("Registered connectors not in hierarchy (should be empty):");
for (ServerConnector registeredConnector : registeredConnectors) {
@@ -851,22 +864,40 @@ public class VDebugConsole extends VOverlay implements Console {
}
- private void dumpConnectorHierarchy(ComponentConnector connector,
- String indent, Set<ComponentConnector> connectors) {
+ private SimpleTree dumpConnectorHierarchy(
+ final ComponentConnector connector, String indent,
+ Set<ComponentConnector> connectors) {
+ SimpleTree simpleTree = new SimpleTree(getConnectorString(connector)) {
+ @Override
+ protected void select(ClickEvent event) {
+ super.select(event);
+ VUIDLBrowser.highlight(connector);
+ }
+ };
+ simpleTree.addDomHandler(new MouseOutHandler() {
+ public void onMouseOut(MouseOutEvent event) {
+ VUIDLBrowser.deHiglight();
+ }
+ }, MouseOutEvent.getType());
connectors.add(connector);
- log(indent + "* " + getConnectorString(connector));
+
+ String msg = indent + "* " + getConnectorString(connector);
+ GWT.log(msg);
+ consoleLog(msg);
+ System.out.println(msg);
+
if (connector instanceof ComponentContainerConnector) {
for (ComponentConnector c : ((ComponentContainerConnector) connector)
.getChildren()) {
- dumpConnectorHierarchy(c, indent + " ", connectors);
+ simpleTree.add(dumpConnectorHierarchy(c, indent + " ",
+ connectors));
}
}
-
+ return simpleTree;
}
- private String getConnectorString(ServerConnector connector) {
- return Util.getSimpleName(connector) + " ("
- + connector.getConnectorId() + ")";
+ private static String getConnectorString(ServerConnector connector) {
+ return Util.getConnectorString(connector);
}
public void setQuietMode(boolean quietDebugMode) {