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.ui.KeyboardListenerCollection;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.Widget;
import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection;
private String id;
+ IShortcutActionHandler shortcutHandler;
+
public IWindow() {
super();
int order = windowOrder.size();
DOM.sinkEvents(contents, Event.ONCLICK);
Element wrapper = getElement();
+
+ DOM.sinkEvents(wrapper, Event.ONKEYDOWN);
+
DOM.appendChild(wrapper, closeBox);
DOM.appendChild(wrapper, header);
DOM.appendChild(wrapper, contents);
setCaption(uidl.getStringAttribute("caption"));
}
lo.updateFromUIDL(childUidl, client);
+
+ // we may have actions
+ if(uidl.getChidlCount() > 1 ) {
+ childUidl = uidl.getChildUIDL(1);
+ if(childUidl.getTag().equals("actions")) {
+ if(shortcutHandler == null)
+ shortcutHandler = new IShortcutActionHandler(id, client);
+ shortcutHandler.updateActionMap(childUidl);
+ }
+
+ }
}
}
public void onBrowserEvent(Event event) {
- if( !isActive()) {
+ int type = DOM.eventGetType(event);
+ if (type == Event.ONKEYDOWN && shortcutHandler != null) {
+ int modifiers = KeyboardListenerCollection.getKeyboardModifiers(event);
+ shortcutHandler.handleKeyboardEvent(
+ (char) DOM.eventGetKeyCode(event), modifiers);
+ return;
+ }
+
+ if (!isActive()) {
bringToFront();
}
Element target = DOM.eventGetTarget(event);
else if (resizing || DOM.compare(resizeBox, target))
onResizeEvent(event);
else if (DOM.compare(target, closeBox) &&
- DOM.eventGetType(event) == Event.ONCLICK) {
+ type == Event.ONCLICK) {
onCloseClick();
}
}
//TODO return false when modal
return true;
}
+
}