]> source.dussan.org Git - vaadin-framework.git/commitdiff
fixes #3715
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Mon, 14 Dec 2009 15:58:25 +0000 (15:58 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Mon, 14 Dec 2009 15:58:25 +0000 (15:58 +0000)
svn changeset:10292/svn branch:6.2

src/com/vaadin/terminal/gwt/client/VUIDLBrowser.java

index 757ed1300b5ef35787512dd105386116dc96db09..3b019c3b15d79a63f4b5c37071791ffbf60863e6 100644 (file)
@@ -13,6 +13,7 @@ import com.google.gwt.user.client.DOM;
 import com.google.gwt.user.client.ui.Tree;
 import com.google.gwt.user.client.ui.TreeItem;
 import com.vaadin.terminal.gwt.client.ui.VUnknownComponent;
+import com.vaadin.terminal.gwt.client.ui.VView;
 
 public class VUIDLBrowser extends Tree {
     /**
@@ -54,15 +55,7 @@ public class VUIDLBrowser extends Tree {
                 String name = uidl.getTag();
                 try {
                     Integer.parseInt(name);
-                    Class<? extends Paintable> widgetClassByDecodedTag = conf
-                            .getWidgetClassByEncodedTag(name);
-                    if (widgetClassByDecodedTag == VUnknownComponent.class) {
-                        name = conf
-                                .getUnknownServerClassNameByEncodedTagName(name)
-                                + "(NO CLIENT IMPLEMENTATION FOUND)";
-                    } else {
-                        name = widgetClassByDecodedTag.getName();
-                    }
+                    name = getNodeName(uidl, conf, name);
                 } catch (Exception e) {
                     // NOP
                 }
@@ -73,6 +66,21 @@ public class VUIDLBrowser extends Tree {
             }
         }
 
+        private String getNodeName(UIDL uidl, ApplicationConfiguration conf,
+                String name) {
+            Class<? extends Paintable> widgetClassByDecodedTag = conf
+                    .getWidgetClassByEncodedTag(name);
+            if (widgetClassByDecodedTag == VUnknownComponent.class) {
+                return conf.getUnknownServerClassNameByEncodedTagName(name)
+                        + "(NO CLIENT IMPLEMENTATION FOUND)";
+            } else if (widgetClassByDecodedTag == VView.class
+                    && uidl.hasAttribute("sub")) {
+                return "com.vaadin.terminal.gwt.ui.VWindow";
+            } else {
+                return widgetClassByDecodedTag.getName();
+            }
+        }
+
         public void dir() {
             TreeItem temp = getChild(0);
             removeItem(temp);
@@ -80,15 +88,7 @@ public class VUIDLBrowser extends Tree {
             String nodeName = uidl.getTag();
             try {
                 Integer.parseInt(nodeName);
-                Class<? extends Paintable> widgetClassByDecodedTag = conf
-                        .getWidgetClassByEncodedTag(nodeName);
-                if (widgetClassByDecodedTag == VUnknownComponent.class) {
-                    nodeName = conf
-                            .getUnknownServerClassNameByEncodedTagName(nodeName)
-                            + "(NO CLIENT IMPLEMENTATION FOUND)";
-                } else {
-                    nodeName = widgetClassByDecodedTag.getName();
-                }
+                nodeName = getNodeName(uidl, conf, nodeName);
             } catch (Exception e) {
                 // NOP
             }