]> source.dussan.org Git - vaadin-framework.git/commitdiff
now listening on focus hints
authorMatti Tahvonen <matti.tahvonen@itmill.com>
Tue, 28 Aug 2007 07:06:48 +0000 (07:06 +0000)
committerMatti Tahvonen <matti.tahvonen@itmill.com>
Tue, 28 Aug 2007 07:06:48 +0000 (07:06 +0000)
svn changeset:2138/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ApplicationConnection.java

index 1eb3942a7b8984930600a5f24f6a23fb64cf2081..4c1b7d4e8799cc65768eb7d3be8069d83d2408eb 100755 (executable)
@@ -18,6 +18,7 @@ import com.google.gwt.json.client.JSONString;
 import com.google.gwt.json.client.JSONValue;
 import com.google.gwt.user.client.ui.FocusListener;
 import com.google.gwt.user.client.ui.FocusWidget;
+import com.google.gwt.user.client.ui.HasFocus;
 import com.google.gwt.user.client.ui.HasWidgets;
 import com.google.gwt.user.client.ui.RootPanel;
 import com.google.gwt.user.client.ui.Widget;
@@ -172,13 +173,25 @@ public class ApplicationConnection implements EntryPoint, FocusListener {
                                                                + uidl.getTag()
                                                                + ", but there is no such paintable ("
                                                                + uidl.getId() + ") registered yet.");
-                                               view.updateFromUIDL(uidl, this);
-                                               }
+                                       view.updateFromUIDL(uidl, this);
+                               }
                        } catch (Throwable e) {
                                e.printStackTrace();
                        }
-
                }
+               
+               if(((JSONObject) json).containsKey("meta")) {
+                       JSONObject meta = ((JSONObject) json).get("meta").isObject();
+                       if(meta.containsKey("focus")) {
+                               String focusPid = meta.get("focus").isString().stringValue();
+                               Paintable toBeFocused = this.getPaintable(focusPid);
+                               if (toBeFocused instanceof HasFocus) {
+                                       HasFocus toBeFocusedWidget = (HasFocus) toBeFocused;
+                                       toBeFocusedWidget.setFocus(true);
+                               }
+                       }
+               }
+               
                long prosessingTime = (new Date().getTime()) - start.getTime();
                console.log(" Processing time was " + String.valueOf(prosessingTime)
                                + "ms for " + jsonText.length() + " characters of JSON");