diff options
author | Leif Åstrand <leif@vaadin.com> | 2012-04-03 11:24:29 +0300 |
---|---|---|
committer | Leif Åstrand <leif@vaadin.com> | 2012-04-03 11:24:29 +0300 |
commit | caa1e536fd9719b996d1bbae407bbd9670f6ed8f (patch) | |
tree | ecafb7fb1caf5f6bd0d4352171ead560ce3db913 | |
parent | 674b4377bc37bdf5c82566783221a65c562704db (diff) | |
download | vaadin-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.java | 51 |
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) { |