aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatti Tahvonen <matti.tahvonen@itmill.com>2008-05-06 11:47:49 +0000
committerMatti Tahvonen <matti.tahvonen@itmill.com>2008-05-06 11:47:49 +0000
commit9e8bfbb5b47ae5d9522aa6dd1dd7e9a63c48839c (patch)
treef6a9441d20233db2bf3fa8b6823ff96f34c3d70f
parentc7475109dd86f80638154bf91d1da690b4577f00 (diff)
downloadvaadin-framework-9e8bfbb5b47ae5d9522aa6dd1dd7e9a63c48839c.tar.gz
vaadin-framework-9e8bfbb5b47ae5d9522aa6dd1dd7e9a63c48839c.zip
fixes #1412
svn changeset:4345/svn branch:trunk
-rw-r--r--src/com/itmill/toolkit/demo/KeyboardShortcut.java6
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/IView.java18
2 files changed, 20 insertions, 4 deletions
diff --git a/src/com/itmill/toolkit/demo/KeyboardShortcut.java b/src/com/itmill/toolkit/demo/KeyboardShortcut.java
index 3dd157ea8c..0c13f4d6c3 100644
--- a/src/com/itmill/toolkit/demo/KeyboardShortcut.java
+++ b/src/com/itmill/toolkit/demo/KeyboardShortcut.java
@@ -35,9 +35,8 @@ public class KeyboardShortcut extends Application implements Handler {
+ "applications. (see our article on <a href=\"http://www.itmill"
+ ".com/articles/Keybindings_in_Web_Browsers.htm\">"
+ "www.itmill.com)</a></p>"
- + "Events are attached to Window in this application, so a "
- + "component inside window must be focused to fire event on"
- + " keyboard shortcut.</p>"
+ + "<p>Focus must be inside web application (eg. not in address "
+ + "bar) for shortcuts to work. By default app element is focused.</p>"
+ "<strong>Shortcuts used in this example:</strong> "
+ "<br/>ESC restarts program, ctrl-shift-a (Button A), "
+ "ctrl-shift-z (Button Z), ctrl-shift-x (Button X)",
@@ -104,7 +103,6 @@ public class KeyboardShortcut extends Application implements Handler {
w.addActionHandler(this);
- f.focus();
}
public Action[] getActions(Object target, Object sender) {
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IView.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IView.java
index fe849a6bb2..128c9160cf 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IView.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IView.java
@@ -8,6 +8,7 @@ import java.util.HashSet;
import java.util.Iterator;
import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
@@ -55,13 +56,30 @@ public class IView extends SimplePanel implements Paintable,
public IView(String elementId) {
super();
setStyleName(CLASSNAME);
+
DOM.sinkEvents(getElement(), Event.ONKEYDOWN);
+ DOM.setElementPropertyInt(getElement(), "tabIndex", 0);
+
RootPanel.get(elementId).add(this);
Window.addWindowResizeListener(this);
+
+ // set focus to iview element by default to listen possible keyboard
+ // shortcuts
+ focus(getElement());
+
}
+ private static native void focus(Element el)
+ /*-{
+ try {
+ el.focus();
+ } catch (e) {
+
+ }
+ }-*/;
+
public String getTheme() {
return theme;
}