r1803 - in trunk/src: main/java/cc/kune/client main/java/cc/kune/common/client main/java/cc/kune/common/client/actions main/java/cc/kune/common/client/actions/gwtui main/java/cc/kune/common/client/actions/ui/descrip main/java/cc/kune/common/client/events main/java/cc/kune/common/client/log main/java/cc/kune/common/client/shortcuts main/java/cc/kune/common/client/ui/dialogs main/java/cc/kune/common/public main/java/cc/kune/core/client main/java/cc/kune/core/client/sitebar main/java/cc/kune/cor
Author: vjrj_ Date: 2012-03-28 15:41:51 +0200 (Wed, 28 Mar 2012) New Revision: 1803 Added: trunk/src/main/java/cc/kune/common/client/events/ trunk/src/main/java/cc/kune/common/client/events/EventBusInstance.java trunk/src/main/java/cc/kune/common/client/events/EventBusWithLogging.java trunk/src/main/java/cc/kune/common/client/events/EventBusWithoutLogging.java trunk/src/main/java/cc/kune/common/client/shortcuts/GlobalShortcutRegisterDefault.java trunk/src/main/java/cc/kune/common/client/shortcuts/GlobalShortcuts.java trunk/src/main/java/cc/kune/common/client/shortcuts/OnEscapePressedEvent.java trunk/src/test/java/cc/kune/common/client/events/ Removed: trunk/src/main/java/cc/kune/common/client/log/EventBusWithLogging.java trunk/src/main/java/cc/kune/common/client/log/EventBusWithoutLogging.java trunk/src/main/java/cc/kune/common/client/shortcuts/DefaultGlobalShortcutRegister.java Modified: trunk/src/main/java/cc/kune/client/KuneGinjector.java trunk/src/main/java/cc/kune/common/client/SampleGinModule.java trunk/src/main/java/cc/kune/common/client/actions/KeyStroke.java trunk/src/main/java/cc/kune/common/client/actions/Shortcut.java trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuItemGui.java trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicDialog.java trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicDialogView.java trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java trunk/src/main/java/cc/kune/common/public/kune-common.css trunk/src/main/java/cc/kune/core/client/CoreGinModule.java trunk/src/main/java/cc/kune/core/client/CoreParts.java trunk/src/main/java/cc/kune/core/client/sitebar/MyGroupsMenu.java trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPanel.java trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java Log: CLOSED - # 226: New global shortcuts http://kune.ourproject.org/issues/ticket/226 Modified: trunk/src/main/java/cc/kune/client/KuneGinjector.java =================================================================== --- trunk/src/main/java/cc/kune/client/KuneGinjector.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/client/KuneGinjector.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -27,7 +27,7 @@ import cc.kune.chat.client.ChatGinjector; import cc.kune.common.client.actions.gwtui.GwtGuiProvider; import cc.kune.common.client.actions.ui.GuiProvider; -import cc.kune.common.client.log.EventBusWithLogging; +import cc.kune.common.client.events.EventBusWithLogging; import cc.kune.common.client.shortcuts.GlobalShortcutRegister; import cc.kune.common.shared.i18n.I18nTranslationService; import cc.kune.core.client.CoreGinModule; Modified: trunk/src/main/java/cc/kune/common/client/SampleGinModule.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/SampleGinModule.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/common/client/SampleGinModule.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -23,7 +23,7 @@ import cc.kune.common.client.actions.gxtui.GxtGuiProvider; import cc.kune.common.client.actions.ui.DefaultGuiProvider; import cc.kune.common.client.actions.ui.GuiProvider; -import cc.kune.common.client.shortcuts.DefaultGlobalShortcutRegister; +import cc.kune.common.client.shortcuts.GlobalShortcutRegisterDefault; import cc.kune.common.client.shortcuts.GlobalShortcutRegister; import com.google.gwt.inject.client.AbstractGinModule; @@ -36,6 +36,6 @@ bind(GuiProvider.class).to(DefaultGuiProvider.class).in(Singleton.class); bind(GxtGuiProvider.class).in(Singleton.class); bind(GwtGuiProvider.class).in(Singleton.class); - bind(GlobalShortcutRegister.class).to(DefaultGlobalShortcutRegister.class).in(Singleton.class); + bind(GlobalShortcutRegister.class).to(GlobalShortcutRegisterDefault.class).in(Singleton.class); } } Modified: trunk/src/main/java/cc/kune/common/client/actions/KeyStroke.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/actions/KeyStroke.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/common/client/actions/KeyStroke.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -41,6 +41,7 @@ import java.util.Map; import cc.kune.common.client.shortcuts.Keyboard; +import cc.kune.core.client.i18n.I18n; import com.google.gwt.dom.client.NativeEvent; import com.google.gwt.event.dom.client.KeyCodes; @@ -68,469 +69,471 @@ */ public class KeyStroke { - /** - * The cache of recently created keystrokes. This maps KeyStrokes to - * KeyStrokes in a cache which removes the least recently accessed entry, - * under the assumption that garbage collection of a new keystroke is easy - * when we find the old one that it matches in the cache. - */ - private static final Map<KeyStroke, KeyStroke> CACHE = new HashMap<KeyStroke, KeyStroke>(); + /** + * The cache of recently created keystrokes. This maps KeyStrokes to + * KeyStrokes in a cache which removes the least recently accessed entry, + * under the assumption that garbage collection of a new keystroke is easy + * when we find the old one that it matches in the cache. + */ + private static final Map<KeyStroke, KeyStroke> CACHE = new HashMap<KeyStroke, KeyStroke>(); - private static final char CHAR_UNDEFINED = '\uffff'; + private static final char CHAR_UNDEFINED = '\uffff'; - /** The most recently generated keystroke, or null. */ - private static KeyStroke recent; + /** The most recently generated keystroke, or null. */ + private static KeyStroke recent; - private static final int VK_UNDEFINED = 0; - /** - * A table of keyCode names to values. This is package-private to avoid an - * accessor method. - * - * @see #getKeyStroke(String) - */ - static final Map<String, Object> VKTABLE = new HashMap<String, Object>(); + private static final int VK_UNDEFINED = 0; + /** + * A table of keyCode names to values. This is package-private to avoid an + * accessor method. + * + * @see #getKeyStroke(String) + */ + static final Map<String, Object> VKTABLE = new HashMap<String, Object>(); - public static int getKeyboardModifiers(final NativeEvent event) { - return (event.getShiftKey() ? Keyboard.MODIFIER_SHIFT : 0) | (event.getMetaKey() ? Keyboard.MODIFIER_META : 0) - | (event.getCtrlKey() ? Keyboard.MODIFIER_CTRL : 0) | (event.getAltKey() ? Keyboard.MODIFIER_ALT : 0); - } + public static int getKeyboardModifiers(final NativeEvent event) { + return (event.getShiftKey() ? Keyboard.MODIFIER_SHIFT : 0) + | (event.getMetaKey() ? Keyboard.MODIFIER_META : 0) + | (event.getCtrlKey() ? Keyboard.MODIFIER_CTRL : 0) + | (event.getAltKey() ? Keyboard.MODIFIER_ALT : 0); + } - /** - * Returns a keystroke representing a typed character. - * - * @param keyChar - * the typed character - * @return the specified keystroke - */ - public static KeyStroke getKeyStroke(final char keyChar) { - return getKeyStroke(keyChar, VK_UNDEFINED, 0, false); - } + /** + * Returns a keystroke representing a typed character. + * + * @param keyChar + * the typed character + * @return the specified keystroke + */ + public static KeyStroke getKeyStroke(final char keyChar) { + return getKeyStroke(keyChar, VK_UNDEFINED, 0, false); + } - /** - * Gets the appropriate keystroke, creating one if necessary. - * - * @param keyChar - * the keyChar - * @param keyCode - * the keyCode - * @param modifiers - * the modifiers - * @param release - * true for key release - * @return the specified keystroke - */ - private static KeyStroke getKeyStroke(final char keyChar, final int keyCode, final int modifiers, - final boolean release) { - // Check level 0 cache. - KeyStroke stroke = recent; // Avoid thread races. - if (stroke != null && stroke.keyChar == keyChar && stroke.keyCode == keyCode && stroke.modifiers == modifiers - && stroke.onKeyRelease == release) { - return stroke; - } - stroke = new KeyStroke(keyChar, keyCode, modifiers, release); - // Check level 1 cache. - final KeyStroke cached = CACHE.get(stroke); - if (cached == null) { - CACHE.put(stroke, stroke); - } else { - stroke = cached; - } - return recent = stroke; + /** + * Gets the appropriate keystroke, creating one if necessary. + * + * @param keyChar + * the keyChar + * @param keyCode + * the keyCode + * @param modifiers + * the modifiers + * @param release + * true for key release + * @return the specified keystroke + */ + private static KeyStroke getKeyStroke(final char keyChar, final int keyCode, final int modifiers, + final boolean release) { + // Check level 0 cache. + KeyStroke stroke = recent; // Avoid thread races. + if (stroke != null && stroke.keyChar == keyChar && stroke.keyCode == keyCode + && stroke.modifiers == modifiers && stroke.onKeyRelease == release) { + return stroke; } - - /** - * Returns a keystroke representing a typed character with the given - * modifiers. Note that keyChar is a <code>Character</code> instead of a - * <code>char</code> to avoid accidental ambiguity with - * <code>getKeyStroke(int, int)</code>. The modifiers are the bitwise or of - * the masks found in InputEvent; the new style (*_DOWN_MASK) is preferred, - * but the old style will work. - * - * @param keyChar - * the typed character - * @param modifiers - * the modifiers, or 0 - * @return the specified keystroke - * @throws IllegalArgumentException - * if keyChar is null - */ - public static KeyStroke getKeyStroke(final Character keyChar, final int modifiers) { - if (keyChar == null) { - throw new IllegalArgumentException(); - } - return getKeyStroke(keyChar.charValue(), VK_UNDEFINED, modifiers, false); + stroke = new KeyStroke(keyChar, keyCode, modifiers, release); + // Check level 1 cache. + final KeyStroke cached = CACHE.get(stroke); + if (cached == null) { + CACHE.put(stroke, stroke); + } else { + stroke = cached; } + return recent = stroke; + } - /** - * Returns a keystroke representing a pressed key event, with the given - * modifiers. The "virtual key" should be one of the VK_* constants in - * {@link KeyEvent}. The modifiers are the bitwise or of the masks found in - * InputEvent; the new style (*_DOWN_MASK) is preferred, but the old style - * will work. - * - * @param keyCode - * the virtual key - * @param modifiers - * the modifiers, or 0 - * @return the specified keystroke - */ - public static KeyStroke getKeyStroke(final int keyCode, final int modifiers) { - return getKeyStroke(CHAR_UNDEFINED, keyCode, modifiers, false); + /** + * Returns a keystroke representing a typed character with the given + * modifiers. Note that keyChar is a <code>Character</code> instead of a + * <code>char</code> to avoid accidental ambiguity with + * <code>getKeyStroke(int, int)</code>. The modifiers are the bitwise or of + * the masks found in InputEvent; the new style (*_DOWN_MASK) is preferred, + * but the old style will work. + * + * @param keyChar + * the typed character + * @param modifiers + * the modifiers, or 0 + * @return the specified keystroke + * @throws IllegalArgumentException + * if keyChar is null + */ + public static KeyStroke getKeyStroke(final Character keyChar, final int modifiers) { + if (keyChar == null) { + throw new IllegalArgumentException(); } + return getKeyStroke(keyChar.charValue(), VK_UNDEFINED, modifiers, false); + } - /** - * Returns a keystroke representing a pressed or released key event, with - * the given modifiers. The "virtual key" should be one of the VK_* - * constants in {@link KeyEvent}. The modifiers are the bitwise or of the - * masks found in InputEvent; the new style (*_DOWN_MASK) is preferred, but - * the old style will work. - * - * @param keyCode - * the virtual key - * @param modifiers - * the modifiers, or 0 - * @param release - * true if this is a key release instead of a key press - * @return the specified keystroke - */ - public static KeyStroke getKeyStroke(final int keyCode, final int modifiers, final boolean release) { - return getKeyStroke(CHAR_UNDEFINED, keyCode, modifiers, release); - } + /** + * Returns a keystroke representing a pressed key event, with the given + * modifiers. The "virtual key" should be one of the VK_* constants in + * {@link KeyEvent}. The modifiers are the bitwise or of the masks found in + * InputEvent; the new style (*_DOWN_MASK) is preferred, but the old style + * will work. + * + * @param keyCode + * the virtual key + * @param modifiers + * the modifiers, or 0 + * @return the specified keystroke + */ + public static KeyStroke getKeyStroke(final int keyCode, final int modifiers) { + return getKeyStroke(CHAR_UNDEFINED, keyCode, modifiers, false); + } - /** - * Returns a keystroke representing what caused the key event. - * - * @param event - * the key event to convert - * @return the specified keystroke, or null if the event is invalid - * @throws NullPointerException - * if event is null - */ - public static KeyStroke getKeyStrokeForEvent(final Event event) { - final int eventModif = getKeyboardModifiers(event); - final int eventKeyCode = event.getKeyCode(); - // Log.info("key: " + eventKeyCode + " modifier: " + eventModif); - switch (DOM.eventGetType(event)) { - case Event.ONKEYDOWN: - return getKeyStroke(CHAR_UNDEFINED, eventKeyCode, eventModif, false); - case Event.ONKEYPRESS: - final char charac = (char) eventKeyCode; - return getKeyStroke(Character.isLowerCase(charac) ? Character.toUpperCase(charac) : charac, VK_UNDEFINED, - eventModif, false); - case Event.ONKEYUP: - return getKeyStroke(CHAR_UNDEFINED, eventKeyCode, eventModif, false); - default: - return null; - } + /** + * Returns a keystroke representing a pressed or released key event, with the + * given modifiers. The "virtual key" should be one of the VK_* constants in + * {@link KeyEvent}. The modifiers are the bitwise or of the masks found in + * InputEvent; the new style (*_DOWN_MASK) is preferred, but the old style + * will work. + * + * @param keyCode + * the virtual key + * @param modifiers + * the modifiers, or 0 + * @param release + * true if this is a key release instead of a key press + * @return the specified keystroke + */ + public static KeyStroke getKeyStroke(final int keyCode, final int modifiers, final boolean release) { + return getKeyStroke(CHAR_UNDEFINED, keyCode, modifiers, release); + } + + /** + * Returns a keystroke representing what caused the key event. + * + * @param event + * the key event to convert + * @return the specified keystroke, or null if the event is invalid + * @throws NullPointerException + * if event is null + */ + public static KeyStroke getKeyStrokeForEvent(final Event event) { + final int eventModif = getKeyboardModifiers(event); + final int eventKeyCode = event.getKeyCode(); + // Log.info("key: " + eventKeyCode + " modifier: " + eventModif); + switch (DOM.eventGetType(event)) { + case Event.ONKEYDOWN: + return getKeyStroke(CHAR_UNDEFINED, eventKeyCode, eventModif, false); + case Event.ONKEYPRESS: + final char charac = (char) eventKeyCode; + return getKeyStroke(Character.isLowerCase(charac) ? Character.toUpperCase(charac) : charac, + VK_UNDEFINED, eventModif, false); + case Event.ONKEYUP: + return getKeyStroke(CHAR_UNDEFINED, eventKeyCode, eventModif, false); + default: + return null; } + } - /** - * The typed character, or CHAR_UNDEFINED for key presses and releases. - * - * @serial the keyChar - */ - private final char keyChar; + /** + * The typed character, or CHAR_UNDEFINED for key presses and releases. + * + * @serial the keyChar + */ + private final char keyChar; - /** - * The virtual key code, or VK_UNDEFINED for key typed. Package visible for - * use by Component. - * - * @serial the keyCode - */ - int keyCode; + /** + * The virtual key code, or VK_UNDEFINED for key typed. Package visible for + * use by Component. + * + * @serial the keyCode + */ + int keyCode; - /** - * The modifiers in effect. To match Sun, this stores the old style masks - * for shift, control, alt, meta, and alt-graph (but not button1); as well - * as the new style of extended modifiers for all modifiers. - * - * @serial bitwise or of the *_DOWN_MASK modifiers - */ - private int modifiers; + /** + * The modifiers in effect. To match Sun, this stores the old style masks for + * shift, control, alt, meta, and alt-graph (but not button1); as well as the + * new style of extended modifiers for all modifiers. + * + * @serial bitwise or of the *_DOWN_MASK modifiers + */ + private int modifiers; - /** - * True if this is a key release; should only be true if keyChar is - * CHAR_UNDEFINED. - * - * @serial true to distinguish key pressed from key released - */ - private boolean onKeyRelease; + /** + * True if this is a key release; should only be true if keyChar is + * CHAR_UNDEFINED. + * + * @serial true to distinguish key pressed from key released + */ + private boolean onKeyRelease; - /** - * Construct a keystroke with default values: it will be interpreted as a - * key typed event with an invalid character and no modifiers. Client code - * should use the factory methods instead. - * - * @see #getKeyStroke(char) - * @see #getKeyStroke(Character, int) - * @see #getKeyStroke(int, int, boolean) - * @see #getKeyStroke(int, int) - * @see #getKeyStrokeForEvent(KeyEvent) - * @see #getKeyStroke(String) - */ - protected KeyStroke() { - keyChar = CHAR_UNDEFINED; - } + /** + * Construct a keystroke with default values: it will be interpreted as a key + * typed event with an invalid character and no modifiers. Client code should + * use the factory methods instead. + * + * @see #getKeyStroke(char) + * @see #getKeyStroke(Character, int) + * @see #getKeyStroke(int, int, boolean) + * @see #getKeyStroke(int, int) + * @see #getKeyStrokeForEvent(KeyEvent) + * @see #getKeyStroke(String) + */ + protected KeyStroke() { + keyChar = CHAR_UNDEFINED; + } - /** - * Construct a keystroke with the given values. Client code should use the - * factory methods instead. - * - * @param keyChar - * the character entered, if this is a key typed - * @param keyCode - * the key pressed or released, or VK_UNDEFINED for key typed - * @param modifiers - * the modifier keys for the keystroke, in old or new style - * @param onKeyRelease - * true if this is a key release instead of a press - * @see #getKeyStroke(char) - * @see #getKeyStroke(Character, int) - * @see #getKeyStroke(int, int, boolean) - * @see #getKeyStroke(int, int) - * @see #getKeyStrokeForEvent(KeyEvent) - * @see #getKeyStroke(String) - */ - protected KeyStroke(final char keyChar, final int keyCode, final int modifiers, final boolean onKeyRelease) { - this.keyChar = keyChar; - this.keyCode = keyCode; - // No need to call extend(), as only trusted code calls this - // constructor. - this.modifiers = modifiers; - this.onKeyRelease = onKeyRelease; - } + /** + * Construct a keystroke with the given values. Client code should use the + * factory methods instead. + * + * @param keyChar + * the character entered, if this is a key typed + * @param keyCode + * the key pressed or released, or VK_UNDEFINED for key typed + * @param modifiers + * the modifier keys for the keystroke, in old or new style + * @param onKeyRelease + * true if this is a key release instead of a press + * @see #getKeyStroke(char) + * @see #getKeyStroke(Character, int) + * @see #getKeyStroke(int, int, boolean) + * @see #getKeyStroke(int, int) + * @see #getKeyStrokeForEvent(KeyEvent) + * @see #getKeyStroke(String) + */ + protected KeyStroke(final char keyChar, final int keyCode, final int modifiers, + final boolean onKeyRelease) { + this.keyChar = keyChar; + this.keyCode = keyCode; + // No need to call extend(), as only trusted code calls this + // constructor. + this.modifiers = modifiers; + this.onKeyRelease = onKeyRelease; + } - /** - * Tests two keystrokes for equality. - * - * @param obj - * the object to test - * @return true if it is equal - */ - @Override - public final boolean equals(final Object obj) { - if (!(obj instanceof KeyStroke)) { - return false; - } - final KeyStroke stroke = (KeyStroke) obj; - return this == obj - || (keyChar == stroke.keyChar && keyCode == stroke.keyCode && modifiers == stroke.modifiers && onKeyRelease == stroke.onKeyRelease); + /** + * Tests two keystrokes for equality. + * + * @param obj + * the object to test + * @return true if it is equal + */ + @Override + public final boolean equals(final Object obj) { + if (!(obj instanceof KeyStroke)) { + return false; } + final KeyStroke stroke = (KeyStroke) obj; + return this == obj + || (keyChar == stroke.keyChar && keyCode == stroke.keyCode && modifiers == stroke.modifiers && onKeyRelease == stroke.onKeyRelease); + } - /** - * Returns the character of this keystroke, if it was typed. - * - * @return the character value, or CHAR_UNDEFINED - * @see #getKeyStroke(char) - */ - public final char getKeyChar() { - return keyChar; - } + /** + * Returns the character of this keystroke, if it was typed. + * + * @return the character value, or CHAR_UNDEFINED + * @see #getKeyStroke(char) + */ + public final char getKeyChar() { + return keyChar; + } - /** - * Returns the virtual key code of this keystroke, if it was pressed or - * released. This will be a VK_* constant from KeyEvent. - * - * @return the virtual key code value, or VK_UNDEFINED - * @see #getKeyStroke(int, int) - */ - public final int getKeyCode() { - return keyCode; - } + /** + * Returns the virtual key code of this keystroke, if it was pressed or + * released. This will be a VK_* constant from KeyEvent. + * + * @return the virtual key code value, or VK_UNDEFINED + * @see #getKeyStroke(int, int) + */ + public final int getKeyCode() { + return keyCode; + } - /** - * Returns the AWT event type of this keystroke. This is one of - * {@link KeyEvent#KEY_TYPED}, {@link KeyEvent#KEY_PRESSED}, or - * {@link KeyEvent#KEY_RELEASED}. - * - * @return the key event type - */ - public final int getKeyEventType() { - return keyCode == VK_UNDEFINED ? Event.ONKEYDOWN : onKeyRelease ? Event.ONKEYUP : Event.ONKEYPRESS; - } + /** + * Returns the AWT event type of this keystroke. This is one of + * {@link KeyEvent#KEY_TYPED}, {@link KeyEvent#KEY_PRESSED}, or + * {@link KeyEvent#KEY_RELEASED}. + * + * @return the key event type + */ + public final int getKeyEventType() { + return keyCode == VK_UNDEFINED ? Event.ONKEYDOWN : onKeyRelease ? Event.ONKEYUP : Event.ONKEYPRESS; + } - @SuppressWarnings("deprecation") - public String getKeyText() { - switch (keyCode) { - case KeyCodes.KEY_BACKSPACE: - return translateKey("Backspace"); - // case KeyCodes.KEY_DELETE: - // return translateKey("Delete"); - case KeyCodes.KEY_DOWN: - return translateKey("Down"); - case KeyCodes.KEY_END: - return translateKey("End"); - case KeyCodes.KEY_ENTER: - return translateKey("Enter"); - case KeyCodes.KEY_ESCAPE: - return translateKey("Escape"); - case KeyCodes.KEY_HOME: - return translateKey("Home"); - case KeyCodes.KEY_LEFT: - return translateKey("Left"); - case KeyCodes.KEY_PAGEDOWN: - return translateKey("Page Down"); - case KeyCodes.KEY_PAGEUP: - return translateKey("Page Up"); - case KeyCodes.KEY_RIGHT: - return translateKey("Right"); - case KeyCodes.KEY_TAB: - return translateKey("Tab"); - case KeyCodes.KEY_UP: - return translateKey("Up"); - case Keyboard.KEY_SPACE: - return translateKey("Space"); - case Keyboard.KEY_F1: - case Keyboard.KEY_F2: - case Keyboard.KEY_F3: - case Keyboard.KEY_F4: - case Keyboard.KEY_F5: - case Keyboard.KEY_F6: - case Keyboard.KEY_F7: - case Keyboard.KEY_F8: - case Keyboard.KEY_F9: - case Keyboard.KEY_F10: - case Keyboard.KEY_F11: - case Keyboard.KEY_F12: - return translateKey("F" + (keyCode - (Keyboard.KEY_F1 - 1))); - case Keyboard.KEY_COMMA: - case Keyboard.KEY_PERIOD: - case Keyboard.KEY_SLASH: - case Keyboard.KEY_0: - case Keyboard.KEY_1: - case Keyboard.KEY_2: - case Keyboard.KEY_3: - case Keyboard.KEY_4: - case Keyboard.KEY_5: - case Keyboard.KEY_6: - case Keyboard.KEY_7: - case Keyboard.KEY_8: - case Keyboard.KEY_9: - case Keyboard.KEY_SEMICOLON: - case Keyboard.KEY_EQUALS: - case Keyboard.KEY_A: - case Keyboard.KEY_B: - case Keyboard.KEY_C: - case Keyboard.KEY_D: - case Keyboard.KEY_E: - case Keyboard.KEY_F: - case Keyboard.KEY_G: - case Keyboard.KEY_H: - case Keyboard.KEY_I: - case Keyboard.KEY_J: - case Keyboard.KEY_K: - case Keyboard.KEY_L: - case Keyboard.KEY_M: - case Keyboard.KEY_N: - case Keyboard.KEY_O: - case Keyboard.KEY_P: - case Keyboard.KEY_Q: - case Keyboard.KEY_R: - case Keyboard.KEY_S: - case Keyboard.KEY_T: - case Keyboard.KEY_U: - case Keyboard.KEY_V: - case Keyboard.KEY_W: - case Keyboard.KEY_X: - case Keyboard.KEY_Y: - case Keyboard.KEY_Z: - case Keyboard.KEY_OPEN_BRACKET: - case Keyboard.KEY_BACK_SLASH: - case Keyboard.KEY_CLOSE_BRACKET: - return String.valueOf(keyCode).toUpperCase(); - default: - final String charS = String.valueOf(keyChar); - if (charS == null) { - return "Unknown keyCode: 0x" + (keyCode < 0 ? "-" : "") + Integer.toHexString(Math.abs(keyCode)); - } else { - if (" ".equals(charS)) { - return translateKey("Space"); - } else { - return charS; - } - } + @SuppressWarnings("deprecation") + public String getKeyText() { + switch (keyCode) { + case KeyCodes.KEY_BACKSPACE: + return translateKey("Backspace"); + // case KeyCodes.KEY_DELETE: + // return translateKey("Delete"); + case KeyCodes.KEY_DOWN: + return translateKey("Down"); + case KeyCodes.KEY_END: + return translateKey("End"); + case KeyCodes.KEY_ENTER: + return translateKey("Enter"); + case KeyCodes.KEY_ESCAPE: + return translateKey("Escape"); + case KeyCodes.KEY_HOME: + return translateKey("Home"); + case KeyCodes.KEY_LEFT: + return translateKey("Left"); + case KeyCodes.KEY_PAGEDOWN: + return translateKey("Page Down"); + case KeyCodes.KEY_PAGEUP: + return translateKey("Page Up"); + case KeyCodes.KEY_RIGHT: + return translateKey("Right"); + case KeyCodes.KEY_TAB: + return translateKey("Tab"); + case KeyCodes.KEY_UP: + return translateKey("Up"); + case Keyboard.KEY_SPACE: + return translateKey("Space"); + case Keyboard.KEY_F1: + case Keyboard.KEY_F2: + case Keyboard.KEY_F3: + case Keyboard.KEY_F4: + case Keyboard.KEY_F5: + case Keyboard.KEY_F6: + case Keyboard.KEY_F7: + case Keyboard.KEY_F8: + case Keyboard.KEY_F9: + case Keyboard.KEY_F10: + case Keyboard.KEY_F11: + case Keyboard.KEY_F12: + return translateKey("F" + (keyCode - (Keyboard.KEY_F1 - 1))); + case Keyboard.KEY_COMMA: + case Keyboard.KEY_PERIOD: + case Keyboard.KEY_SLASH: + case Keyboard.KEY_0: + case Keyboard.KEY_1: + case Keyboard.KEY_2: + case Keyboard.KEY_3: + case Keyboard.KEY_4: + case Keyboard.KEY_5: + case Keyboard.KEY_6: + case Keyboard.KEY_7: + case Keyboard.KEY_8: + case Keyboard.KEY_9: + case Keyboard.KEY_SEMICOLON: + case Keyboard.KEY_EQUALS: + case Keyboard.KEY_A: + case Keyboard.KEY_B: + case Keyboard.KEY_C: + case Keyboard.KEY_D: + case Keyboard.KEY_E: + case Keyboard.KEY_F: + case Keyboard.KEY_G: + case Keyboard.KEY_H: + case Keyboard.KEY_I: + case Keyboard.KEY_J: + case Keyboard.KEY_K: + case Keyboard.KEY_L: + case Keyboard.KEY_M: + case Keyboard.KEY_N: + case Keyboard.KEY_O: + case Keyboard.KEY_P: + case Keyboard.KEY_Q: + case Keyboard.KEY_R: + case Keyboard.KEY_S: + case Keyboard.KEY_T: + case Keyboard.KEY_U: + case Keyboard.KEY_V: + case Keyboard.KEY_W: + case Keyboard.KEY_X: + case Keyboard.KEY_Y: + case Keyboard.KEY_Z: + case Keyboard.KEY_OPEN_BRACKET: + case Keyboard.KEY_BACK_SLASH: + case Keyboard.KEY_CLOSE_BRACKET: + return String.valueOf(keyCode).toUpperCase(); + default: + final String charS = String.valueOf(keyChar); + if (charS == null) { + return "Unknown keyCode: 0x" + (keyCode < 0 ? "-" : "") + Integer.toHexString(Math.abs(keyCode)); + } else { + if (" ".equals(charS)) { + return translateKey("Space"); + } else { + return charS; } + } } + } - /** - * Returns the modifiers for this keystroke. This will be a bitwise or of - * constants from InputEvent; it includes the old style masks for shift, - * control, alt, meta, and alt-graph (but not button1); as well as the new - * style of extended modifiers for all modifiers. - * - * @return the modifiers - * @see #getKeyStroke(Character, int) - * @see #getKeyStroke(int, int) - */ - public final int getModifiers() { - return modifiers; - } + /** + * Returns the modifiers for this keystroke. This will be a bitwise or of + * constants from InputEvent; it includes the old style masks for shift, + * control, alt, meta, and alt-graph (but not button1); as well as the new + * style of extended modifiers for all modifiers. + * + * @return the modifiers + * @see #getKeyStroke(Character, int) + * @see #getKeyStroke(int, int) + */ + public final int getModifiers() { + return modifiers; + } - /** - * Returns a hashcode for this key event. It is not documented, but appears - * to be: <code>(getKeyChar() + 1) * (getKeyCode() + 1) - * * (getModifiers() + 1) * 2 + (isOnKeyRelease() ? 1 : 2)</code>. - * - * @return the hashcode - */ - @Override - public int hashCode() { - return (keyChar + 1) * (keyCode + 1) * (modifiers + 1) * 2 + (onKeyRelease ? 1 : 2); - } + /** + * Returns a hashcode for this key event. It is not documented, but appears to + * be: <code>(getKeyChar() + 1) * (getKeyCode() + 1) + * * (getModifiers() + 1) * 2 + (isOnKeyRelease() ? 1 : 2)</code>. + * + * @return the hashcode + */ + @Override + public int hashCode() { + return (keyChar + 1) * (keyCode + 1) * (modifiers + 1) * 2 + (onKeyRelease ? 1 : 2); + } - /** - * Tests if this keystroke is a key release. - * - * @return true if this is a key release - * @see #getKeyStroke(int, int, boolean) - */ - public final boolean isOnKeyRelease() { - return onKeyRelease; - } + /** + * Tests if this keystroke is a key release. + * + * @return true if this is a key release + * @see #getKeyStroke(int, int, boolean) + */ + public final boolean isOnKeyRelease() { + return onKeyRelease; + } - /** - * Returns a cached version of the deserialized keystroke, if available. - * - * @return a cached replacement if something goes wrong - */ - protected Object readResolve() { - final KeyStroke s = CACHE.get(this); - if (s != null) { - return s; - } - CACHE.put(this, this); - return this; + /** + * Returns a cached version of the deserialized keystroke, if available. + * + * @return a cached replacement if something goes wrong + */ + protected Object readResolve() { + final KeyStroke s = CACHE.get(this); + if (s != null) { + return s; } + CACHE.put(this, this); + return this; + } - @Override - public String toString() { - String s = " ("; - if ((modifiers & Keyboard.MODIFIER_META) != 0) { - s += translateKey("Meta") + "+"; - } - if ((modifiers & Keyboard.MODIFIER_CTRL) != 0) { - s += translateKey("Ctrl") + "+"; - } - if ((modifiers & Keyboard.MODIFIER_ALT) != 0) { - s += translateKey("Alt") + "+"; - } - if ((modifiers & Keyboard.MODIFIER_SHIFT) != 0) { - s += translateKey("Shift") + "+"; - } - /* - * if ((modifiers & Event.BUTTON_LEFT) != 0) { s += - * translateKey("Button1") + "+"; } if ((modifiers & Event.BUTTON_RIGHT) - * != 0) { s += translateKey("Button2") + "+"; } if ((modifiers & - * Event.BUTTON_MIDDLE) != 0) { s += translateKey("Button3") + "+"; } - */ - s += getKeyText() + ")"; - return s; + @Override + public String toString() { + String s = " ("; + if ((modifiers & Keyboard.MODIFIER_META) != 0) { + s += translateKey("Meta") + "+"; } - - protected String translateKey(final String keyNameToTranslate) { - // return Resources.i18n.tWithNT(keyNameToTranslate, "The '" + - // keyNameToTranslate + "' keyboard key"); - return keyNameToTranslate; + if ((modifiers & Keyboard.MODIFIER_CTRL) != 0) { + s += translateKey("Ctrl") + "+"; } + if ((modifiers & Keyboard.MODIFIER_ALT) != 0) { + s += translateKey("Alt") + "+"; + } + if ((modifiers & Keyboard.MODIFIER_SHIFT) != 0) { + s += translateKey("Shift") + "+"; + } + /* + * if ((modifiers & Event.BUTTON_LEFT) != 0) { s += translateKey("Button1") + * + "+"; } if ((modifiers & Event.BUTTON_RIGHT) != 0) { s += + * translateKey("Button2") + "+"; } if ((modifiers & Event.BUTTON_MIDDLE) != + * 0) { s += translateKey("Button3") + "+"; } + */ + s += getKeyText() + ")"; + return s; + } + protected String translateKey(final String keyNameToTranslate) { + return I18n.tWithNT(keyNameToTranslate, "The '" + keyNameToTranslate + "' keyboard key"); + // return keyNameToTranslate; + } + } // class KeyStroke Modified: trunk/src/main/java/cc/kune/common/client/actions/Shortcut.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/actions/Shortcut.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/common/client/actions/Shortcut.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -23,22 +23,39 @@ public final class Shortcut { - public static KeyStroke getShortcut(final boolean ctrl, final boolean alt, final boolean shift, final boolean meta, - final Character character) { - return KeyStroke.getKeyStroke(character, (ctrl ? Keyboard.MODIFIER_CTRL : 0) - + (alt ? Keyboard.MODIFIER_ALT : 0) + (shift ? Keyboard.MODIFIER_SHIFT : 0) - + (meta ? Keyboard.MODIFIER_META : 0)); - } + public static KeyStroke getShortcut(final boolean ctrl, final boolean alt, final boolean shift, + final boolean meta, final Character character) { + return KeyStroke.getKeyStroke(character, (ctrl ? Keyboard.MODIFIER_CTRL : 0) + + (alt ? Keyboard.MODIFIER_ALT : 0) + (shift ? Keyboard.MODIFIER_SHIFT : 0) + + (meta ? Keyboard.MODIFIER_META : 0)); + } - public static KeyStroke getShortcut(final boolean ctrl, final boolean shift, final Character character) { - return getShortcut(ctrl, false, shift, false, character); - } + public static KeyStroke getShortcut(final boolean ctrl, final boolean shift, final Character character) { + return getShortcut(ctrl, false, shift, false, character); + } - public static KeyStroke getShortcut(final boolean ctrl, final Character character) { - return getShortcut(ctrl, false, false, false, character); - } + public static KeyStroke getShortcut(final boolean ctrl, final Character character) { + return getShortcut(ctrl, false, false, false, character); + } - private Shortcut() { - } + /** + * Gets the shortcut using as parameter something like "Alt+A" "Ctrl+M" or + * "Meta+Shift+R" + * + * @param keys + * the keys + * @return the shortcut + */ + public static KeyStroke getShortcut(final String keys) { + final boolean hasCtrl = keys.contains("Ctrl"); + final boolean hasAlt = keys.contains("Alt"); + final boolean hasMeta = keys.contains("Meta"); + final boolean hasShift = keys.contains("Shift"); + final Character key = keys.charAt(keys.length() - 1); + return Shortcut.getShortcut(hasCtrl, hasAlt, hasShift, hasMeta, key); + } + private Shortcut() { + } + } Modified: trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuItemGui.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuItemGui.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/common/client/actions/gwtui/AbstractGwtMenuItemGui.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -38,8 +38,6 @@ import com.google.gwt.resources.client.ImageResource; import com.google.gwt.user.client.Command; -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.MenuItem; @@ -153,14 +151,6 @@ return checkItem; } - private String createShortCut(final KeyStroke key, final String style) { - // See: https://yui-ext.com/forum/showthread.php?t=5762 - final Element keyLabel = DOM.createSpan(); - keyLabel.setId(style); - keyLabel.setInnerText(key.toString()); - return keyLabel.getString(); - } - public GwtBaseMenuItem getItem() { return item; } @@ -224,9 +214,7 @@ if (key == null) { iconLabel.setText(text, descriptor.getDirection()); } else { - iconLabel.setText( - text + createShortCut(key, "oc-mshortcut-hidden") + createShortCut(key, "oc-mshortcut"), - descriptor.getDirection()); + iconLabel.setText(text + " " + key.toString(), descriptor.getDirection()); } } layout(); Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -340,12 +340,7 @@ @Override public GuiActionDescrip withShortcut(final String keys, final GlobalShortcutRegister register) { - final boolean hasCtrl = keys.contains("Ctrl"); - final boolean hasAlt = keys.contains("Alt"); - final boolean hasMeta = keys.contains("Meta"); - final boolean hasShift = keys.contains("Shift"); - final Character key = keys.charAt(keys.length() - 1); - final KeyStroke shortcut = Shortcut.getShortcut(hasCtrl, hasAlt, hasShift, hasMeta, key); + final KeyStroke shortcut = Shortcut.getShortcut(keys); putValue(Action.ACCELERATOR_KEY, shortcut); register.put(shortcut, action); return this; Added: trunk/src/main/java/cc/kune/common/client/events/EventBusInstance.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/events/EventBusInstance.java (rev 0) +++ trunk/src/main/java/cc/kune/common/client/events/EventBusInstance.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -0,0 +1,34 @@ +/* + * + * Copyright (C) 2007-2012 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +package cc.kune.common.client.events; + +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; + +public class EventBusInstance { + + @Inject + private static EventBus eventBus; + + public static EventBus get() { + return eventBus; + } +} Copied: trunk/src/main/java/cc/kune/common/client/events/EventBusWithLogging.java (from rev 1797, trunk/src/main/java/cc/kune/common/client/log/EventBusWithLogging.java) =================================================================== --- trunk/src/main/java/cc/kune/common/client/events/EventBusWithLogging.java (rev 0) +++ trunk/src/main/java/cc/kune/common/client/events/EventBusWithLogging.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -0,0 +1,34 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.common.client.events; + + +import cc.kune.common.client.log.Log; + +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.SimpleEventBus; + +public class EventBusWithLogging extends SimpleEventBus { + @Override + public void fireEvent(final GwtEvent<?> event) { + Log.debug(event.toDebugString() + " " + event.toString()); + super.fireEvent(event); + } +} Copied: trunk/src/main/java/cc/kune/common/client/events/EventBusWithoutLogging.java (from rev 1797, trunk/src/main/java/cc/kune/common/client/log/EventBusWithoutLogging.java) =================================================================== --- trunk/src/main/java/cc/kune/common/client/events/EventBusWithoutLogging.java (rev 0) +++ trunk/src/main/java/cc/kune/common/client/events/EventBusWithoutLogging.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -0,0 +1,30 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.common.client.events; + +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.SimpleEventBus; + +public class EventBusWithoutLogging extends SimpleEventBus { + @Override + public void fireEvent(final GwtEvent<?> event) { + super.fireEvent(event); + } +} Deleted: trunk/src/main/java/cc/kune/common/client/log/EventBusWithLogging.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/log/EventBusWithLogging.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/common/client/log/EventBusWithLogging.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -1,32 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.common.client.log; - - -import com.google.gwt.event.shared.GwtEvent; -import com.google.gwt.event.shared.SimpleEventBus; - -public class EventBusWithLogging extends SimpleEventBus { - @Override - public void fireEvent(final GwtEvent<?> event) { - Log.debug(event.toDebugString() + " " + event.toString()); - super.fireEvent(event); - } -} Deleted: trunk/src/main/java/cc/kune/common/client/log/EventBusWithoutLogging.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/log/EventBusWithoutLogging.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/common/client/log/EventBusWithoutLogging.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -1,30 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.common.client.log; - -import com.google.gwt.event.shared.GwtEvent; -import com.google.gwt.event.shared.SimpleEventBus; - -public class EventBusWithoutLogging extends SimpleEventBus { - @Override - public void fireEvent(final GwtEvent<?> event) { - super.fireEvent(event); - } -} Deleted: trunk/src/main/java/cc/kune/common/client/shortcuts/DefaultGlobalShortcutRegister.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/shortcuts/DefaultGlobalShortcutRegister.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/common/client/shortcuts/DefaultGlobalShortcutRegister.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -1,87 +0,0 @@ -/* - * - * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) - * This file is part of kune. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -package cc.kune.common.client.shortcuts; - -import cc.kune.common.client.actions.AbstractAction; -import cc.kune.common.client.actions.Action; -import cc.kune.common.client.actions.ActionEvent; -import cc.kune.common.client.actions.ChangeableObject; -import cc.kune.common.client.actions.InputMap; -import cc.kune.common.client.actions.KeyStroke; -import cc.kune.common.client.actions.Shortcut; -import cc.kune.common.client.log.Log; - -import com.google.gwt.dom.client.NativeEvent; -import com.google.gwt.event.shared.HandlerRegistration; -import com.google.gwt.user.client.Event; -import com.google.gwt.user.client.Event.NativePreviewEvent; -import com.google.gwt.user.client.Event.NativePreviewHandler; - -public class DefaultGlobalShortcutRegister extends InputMap implements GlobalShortcutRegister { - - private final NativePreviewHandler eventHandler; - private HandlerRegistration handlerReg; - - public DefaultGlobalShortcutRegister() { - super(); - eventHandler = new NativePreviewHandler() { - @Override - public void onPreviewNativeEvent(final NativePreviewEvent nativeEventPrev) { - if (nativeEventPrev.getTypeInt() == Event.ONKEYDOWN) { - final NativeEvent nativeEvent = nativeEventPrev.getNativeEvent(); - final Event event = Event.as(nativeEvent); - final AbstractAction action = get(Shortcut.getShortcut(event.getCtrlKey(), event.getAltKey(), - event.getShiftKey(), event.getShiftKey(), (char) event.getKeyCode())); - if (action != null) { - Log.debug("Not propagating event for action: " + action.getValue(Action.NAME)); - nativeEvent.stopPropagation(); - action.actionPerformed(new ActionEvent(nativeEvent.getCurrentEventTarget(), event)); - nativeEventPrev.cancel(); - } - } - } - }; - } - - @Override - public void disable() { - if (handlerReg != null) { - handlerReg.removeHandler(); - } - } - - @Override - public void enable() { - enableImpl(); - } - - private void enableImpl() { - handlerReg = Event.addNativePreviewHandler(eventHandler); - } - - @Override - public void put(final KeyStroke keystroke, final AbstractAction action) { - final ChangeableObject previous = super.get(keystroke); - if (previous != null) { - Log.info("Shortcut already registed by: " + previous + "(overriding)"); - } - super.put(keystroke, action); - } -} Copied: trunk/src/main/java/cc/kune/common/client/shortcuts/GlobalShortcutRegisterDefault.java (from rev 1797, trunk/src/main/java/cc/kune/common/client/shortcuts/DefaultGlobalShortcutRegister.java) =================================================================== --- trunk/src/main/java/cc/kune/common/client/shortcuts/GlobalShortcutRegisterDefault.java (rev 0) +++ trunk/src/main/java/cc/kune/common/client/shortcuts/GlobalShortcutRegisterDefault.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -0,0 +1,90 @@ +/* + * + * Copyright (C) 2007-2011 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ +package cc.kune.common.client.shortcuts; + +import cc.kune.common.client.actions.AbstractAction; +import cc.kune.common.client.actions.Action; +import cc.kune.common.client.actions.ActionEvent; +import cc.kune.common.client.actions.ChangeableObject; +import cc.kune.common.client.actions.InputMap; +import cc.kune.common.client.actions.KeyStroke; +import cc.kune.common.client.actions.Shortcut; +import cc.kune.common.client.log.Log; + +import com.google.gwt.dom.client.NativeEvent; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.user.client.Event; +import com.google.gwt.user.client.Event.NativePreviewEvent; +import com.google.gwt.user.client.Event.NativePreviewHandler; + +public class GlobalShortcutRegisterDefault extends InputMap implements GlobalShortcutRegister { + + private final NativePreviewHandler eventHandler; + private HandlerRegistration handlerReg; + + public GlobalShortcutRegisterDefault() { + super(); + eventHandler = new NativePreviewHandler() { + @Override + public void onPreviewNativeEvent(final NativePreviewEvent nativeEventPrev) { + if (nativeEventPrev.getTypeInt() == Event.ONKEYDOWN) { + final NativeEvent nativeEvent = nativeEventPrev.getNativeEvent(); + final Event event = Event.as(nativeEvent); + AbstractAction action = get(KeyStroke.getKeyStroke(event.getKeyCode(), 0)); + if (action == null) { + action = get(Shortcut.getShortcut(event.getCtrlKey(), event.getAltKey(), + event.getShiftKey(), event.getShiftKey(), (char) event.getKeyCode())); + } + if (action != null) { + Log.debug("Not propagating event for action: " + action.getValue(Action.NAME)); + nativeEvent.stopPropagation(); + action.actionPerformed(new ActionEvent(nativeEvent.getCurrentEventTarget(), event)); + nativeEventPrev.cancel(); + } + } + } + }; + } + + @Override + public void disable() { + if (handlerReg != null) { + handlerReg.removeHandler(); + } + } + + @Override + public void enable() { + enableImpl(); + } + + private void enableImpl() { + handlerReg = Event.addNativePreviewHandler(eventHandler); + } + + @Override + public void put(final KeyStroke keystroke, final AbstractAction action) { + final ChangeableObject previous = super.get(keystroke); + if (previous != null) { + Log.info("Shortcut already registed by: " + previous + "(overriding)"); + } + super.put(keystroke, action); + } +} Added: trunk/src/main/java/cc/kune/common/client/shortcuts/GlobalShortcuts.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/shortcuts/GlobalShortcuts.java (rev 0) +++ trunk/src/main/java/cc/kune/common/client/shortcuts/GlobalShortcuts.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -0,0 +1,45 @@ +/* + * + * Copyright (C) 2007-2012 The kune development team (see CREDITS for details) + * This file is part of kune. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +package cc.kune.common.client.shortcuts; + +import cc.kune.common.client.actions.AbstractExtendedAction; +import cc.kune.common.client.actions.ActionEvent; +import cc.kune.common.client.actions.KeyStroke; + +import com.google.gwt.event.dom.client.KeyCodes; +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; +import com.google.inject.Singleton; + +@Singleton +public class GlobalShortcuts { + + @Inject + public GlobalShortcuts(final GlobalShortcutRegister register, final EventBus eventBus) { + register.put(KeyStroke.getKeyStroke(KeyCodes.KEY_ESCAPE, 0), new AbstractExtendedAction() { + @Override + public void actionPerformed(final ActionEvent event) { + OnEscapePressedEvent.fire(eventBus); + } + }); + } + +} Added: trunk/src/main/java/cc/kune/common/client/shortcuts/OnEscapePressedEvent.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/shortcuts/OnEscapePressedEvent.java (rev 0) +++ trunk/src/main/java/cc/kune/common/client/shortcuts/OnEscapePressedEvent.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -0,0 +1,55 @@ +package cc.kune.common.client.shortcuts; + +import com.google.gwt.event.shared.EventHandler; +import com.google.gwt.event.shared.GwtEvent; +import com.google.gwt.event.shared.HandlerRegistration; +import com.google.gwt.event.shared.HasHandlers; + +public class OnEscapePressedEvent extends GwtEvent<OnEscapePressedEvent.OnEscapePressedHandler> { + + public interface HasOnEscapePressedHandlers extends HasHandlers { + HandlerRegistration addOnEscapePressedHandler(OnEscapePressedHandler handler); + } + + public interface OnEscapePressedHandler extends EventHandler { + public void onOnEscapePressed(OnEscapePressedEvent event); + } + + private static final Type<OnEscapePressedHandler> TYPE = new Type<OnEscapePressedHandler>(); + + public static void fire(final HasHandlers source) { + source.fireEvent(new OnEscapePressedEvent()); + } + + public static Type<OnEscapePressedHandler> getType() { + return TYPE; + } + + public OnEscapePressedEvent() { + } + + @Override + protected void dispatch(final OnEscapePressedHandler handler) { + handler.onOnEscapePressed(this); + } + + @Override + public boolean equals(final Object obj) { + return super.equals(obj); + } + + @Override + public Type<OnEscapePressedHandler> getAssociatedType() { + return TYPE; + } + + @Override + public int hashCode() { + return super.hashCode(); + } + + @Override + public String toString() { + return "OnEscapePressedEvent[" + "]"; + } +} Modified: trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicDialog.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicDialog.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicDialog.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -19,6 +19,7 @@ */ package cc.kune.common.client.ui.dialogs; +import cc.kune.common.client.tooltip.Tooltip; import cc.kune.common.client.ui.IconLabel; import cc.kune.common.shared.utils.TextUtils; @@ -106,6 +107,11 @@ } @Override + public void setCloseBtnTooltip(final String tooltip) { + Tooltip.to(closeBtn, tooltip); + } + + @Override public void setCloseBtnVisible(final boolean visible) { closeBtn.setVisible(visible); } Modified: trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicDialogView.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicDialogView.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicDialogView.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -27,24 +27,26 @@ ForIsWidget getBottomPanel(); + HasClickHandlers getCloseBtn(); + HasClickHandlers getFirstBtn(); ForIsWidget getInnerPanel(); HasClickHandlers getSecondBtn(); - HasClickHandlers getCloseBtn(); - HasDirectionalText getTitleText(); + void setCloseBtnTooltip(String tooltip); + + void setCloseBtnVisible(boolean visible); + void setFirstBtnText(String text); void setFirstBtnTitle(String title); void setFirstBtnVisible(boolean visible); - void setCloseBtnVisible(boolean visible); - void setSecondBtnText(String text); void setSecondBtnTitle(String title); Modified: trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java =================================================================== --- trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/common/client/ui/dialogs/BasicTopDialog.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -19,9 +19,13 @@ */ package cc.kune.common.client.ui.dialogs; +import cc.kune.common.client.events.EventBusInstance; +import cc.kune.common.client.shortcuts.OnEscapePressedEvent; +import cc.kune.common.client.shortcuts.OnEscapePressedEvent.OnEscapePressedHandler; import cc.kune.common.client.tooltip.Tooltip; import cc.kune.common.client.ui.PopupTopPanel; import cc.kune.common.shared.utils.TextUtils; +import cc.kune.core.client.i18n.I18n; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; @@ -188,6 +192,15 @@ private void setCloseBtn(final boolean closeBtn) { setCloseBtnVisible(closeBtn); if (closeBtn) { + setCloseBtnTooltip(I18n.t("Close") + " (Esc)"); + EventBusInstance.get().addHandler(OnEscapePressedEvent.getType(), new OnEscapePressedHandler() { + @Override + public void onOnEscapePressed(final OnEscapePressedEvent event) { + if (popup.isShowing()) { + popup.hide(); + } + } + }); if (closeClickHandler == null) { closeClickHandler = super.getCloseBtn().addClickHandler(new ClickHandler() { @Override Modified: trunk/src/main/java/cc/kune/common/public/kune-common.css =================================================================== --- trunk/src/main/java/cc/kune/common/public/kune-common.css 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/common/public/kune-common.css 2012-03-28 13:41:51 UTC (rev 1803) @@ -369,6 +369,8 @@ background: #ffffff; } +/* shorcuts, only used in gxt guidescriptors */ + #oc-mshortcut { position: absolute; right: 10px; Modified: trunk/src/main/java/cc/kune/core/client/CoreGinModule.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -22,9 +22,11 @@ import cc.kune.common.client.actions.gxtui.GxtGuiProvider; import cc.kune.common.client.actions.ui.DefaultGuiProvider; import cc.kune.common.client.actions.ui.GuiProvider; -import cc.kune.common.client.log.EventBusWithLogging; -import cc.kune.common.client.shortcuts.DefaultGlobalShortcutRegister; +import cc.kune.common.client.events.EventBusInstance; +import cc.kune.common.client.events.EventBusWithLogging; import cc.kune.common.client.shortcuts.GlobalShortcutRegister; +import cc.kune.common.client.shortcuts.GlobalShortcutRegisterDefault; +import cc.kune.common.client.shortcuts.GlobalShortcuts; import cc.kune.common.client.ui.MaskWidget; import cc.kune.common.client.ui.MaskWidgetView; import cc.kune.common.shared.i18n.HasRTL; @@ -139,6 +141,8 @@ @Override protected void configure() { bind(EventBus.class).to(EventBusWithLogging.class).in(Singleton.class); + requestStaticInjection(EventBusInstance.class); + bind(TokenFormatter.class).to(ParameterTokenFormatter.class).in(Singleton.class); bind(RootPresenter.class).asEagerSingleton(); bind(ProxyFailureHandler.class).to(DefaultProxyFailureHandler.class).in(Singleton.class); @@ -149,7 +153,8 @@ s(I18n.class); requestStaticInjection(I18n.class); - bind(GlobalShortcutRegister.class).to(DefaultGlobalShortcutRegister.class).in(Singleton.class); + bind(GlobalShortcutRegister.class).to(GlobalShortcutRegisterDefault.class).in(Singleton.class); + bind(GlobalShortcuts.class).in(Singleton.class); s(AnonUsersManager.class); Modified: trunk/src/main/java/cc/kune/core/client/CoreParts.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/CoreParts.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/core/client/CoreParts.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -19,6 +19,7 @@ */ package cc.kune.core.client; +import cc.kune.common.client.shortcuts.GlobalShortcuts; import cc.kune.core.client.auth.AnonUsersManager; import cc.kune.core.client.auth.Register; import cc.kune.core.client.auth.SignIn; @@ -66,7 +67,8 @@ final Provider<SubtitlesManager> subProvider, final EventBus eventBus, final Provider<VerifyEmailClientManager> verifyManager, final Provider<UserOptions> userOptionsDialog, final Provider<GroupOptions> groupOptionsDialog, - final Provider<PasswordResetPanel> passReset, final Provider<AskForPasswordResetPanel> askForPass) { + final Provider<PasswordResetPanel> passReset, final Provider<AskForPasswordResetPanel> askForPass, + final GlobalShortcuts shortcuts) { session.onAppStart(true, new AppStartHandler() { @Override public void onAppStart(final AppStartEvent event) { Modified: trunk/src/main/java/cc/kune/core/client/sitebar/MyGroupsMenu.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/sitebar/MyGroupsMenu.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/core/client/sitebar/MyGroupsMenu.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -70,7 +70,7 @@ withText(I18n.t("Your groups")); withToolTip(I18n.t("See your groups or create a new one")); withIcon(res.arrowdownsitebar()); - withShortcut("Alt+G", global); + withShortcut("Alt+M", global); eventBus.addHandler(MyGroupsChangedEvent.getType(), new MyGroupsChangedEvent.MyGroupsChangedHandler() { @Override Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -22,11 +22,13 @@ import cc.kune.common.client.actions.AbstractExtendedAction; import cc.kune.common.client.actions.Action; import cc.kune.common.client.actions.ActionEvent; +import cc.kune.common.client.actions.Shortcut; import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip; import cc.kune.common.client.actions.ui.descrip.MenuDescriptor; import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor; import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor; import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor.Type; +import cc.kune.common.client.shortcuts.GlobalShortcutRegister; import cc.kune.common.shared.i18n.I18nTranslationService; import cc.kune.core.client.events.UserSignInEvent; import cc.kune.core.client.events.UserSignInEvent.UserSignInHandler; @@ -50,18 +52,21 @@ private final CoreResources res; private ToolbarSeparatorDescriptor separator; private final Session session; + private final GlobalShortcutRegister shortCutRegister; private final SitebarActions siteOptions; private final StateManager stateManager; @Inject public SiteUserOptionsPresenter(final Session session, final StateManager stateManager, - final I18nTranslationService i18n, final CoreResources img, final SitebarActions siteOptions) { + final I18nTranslationService i18n, final CoreResources img, final SitebarActions siteOptions, + final GlobalShortcutRegister shortCutRegister) { super(); this.session = session; this.stateManager = stateManager; this.i18n = i18n; this.res = img; this.siteOptions = siteOptions; + this.shortCutRegister = shortCutRegister; createActions(); separator.setVisible(false); session.onUserSignIn(true, new UserSignInHandler() { @@ -106,6 +111,7 @@ userHomeAction.putValue(Action.NAME, i18n.t(CoreMessages.YOUR_HOMEPAGE)); userHomeAction.putValue(Action.SMALL_ICON, res.groupHome()); final MenuItemDescriptor item = new MenuItemDescriptor(userHomeAction); + item.withShortcut(Shortcut.getShortcut("Alt+U"), shortCutRegister); item.setPosition(0); addActionImpl(item); } Modified: trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPanel.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPanel.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPanel.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -64,16 +64,19 @@ armor.getSitebar().insert(uiBinder.createAndBindUi(this), 0); // homeButton.setVisible(false); final String siteCommonName = i18n.getSiteCommonName(); - homeSpaceTooltip = Tooltip.to(homeButton, i18n.t("Your home page in [%s]", siteCommonName)); + homeSpaceTooltip = Tooltip.to(homeButton, i18n.t("Your home page in [%s]", siteCommonName) + + " (Alt+H)"); userSpaceTooltip = Tooltip.to( userButton, i18n.t("User space: it shows a list of all documents and contents " + "in which you participate") + " (Alt+I)"); groupSpaceTooltip = Tooltip.to(groupButton, i18n.t("Group and personal space: Where you can create " - + "and publish contents for your personal or group web spaces")); + + "and publish contents for your personal or group web spaces") + + " (Alt+G)"); publicSpaceTooltip = Tooltip.to(publicButton, i18n.t("Public space: Where you can see a preview of how your Personal or " - + "Group Space looks like on the web")); + + "Group Space looks like on the web") + + " (Alt+P)"); // homeSpaceTooltip.setWidth(0); userSpaceTooltip.setWidth(190); groupSpaceTooltip.setWidth(170); Modified: trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java 2012-03-28 01:02:06 UTC (rev 1802) +++ trunk/src/main/java/cc/kune/core/client/sitebar/spaces/SpaceSelectorPresenter.java 2012-03-28 13:41:51 UTC (rev 1803) @@ -21,7 +21,6 @@ import cc.kune.common.client.actions.AbstractExtendedAction; import cc.kune.common.client.actions.ActionEvent; -import cc.kune.common.client.actions.KeyStroke; import cc.kune.common.client.actions.Shortcut; import cc.kune.common.client.log.Log; import cc.kune.common.client.notify.NotifyLevel; @@ -32,7 +31,6 @@ import cc.kune.core.client.events.AppStartEvent; import cc.kune.core.client.events.AppStartEvent.AppStartHandler; import cc.kune.core.client.events.UserSignOutEvent; -import cc.kune.core.client.events.WindowFocusEvent; import cc.kune.core.client.state.Session; import cc.kune.core.client.state.SiteTokens; import cc.kune.core.client.state.StateManager; @@ -115,6 +113,7 @@ private String inboxToken; private String publicToken; private final Session session; + private final GlobalShortcutRegister shortcutRegister; private final Provider<SignIn> signIn; private final StateManager stateManager; @@ -131,66 +130,86 @@ this.signIn = signIn; this.backManager = backManager; this.i18n = i18n; + this.shortcutRegister = shortcutRegister; currentSpace = null; homeToken = SiteTokens.HOME; inboxToken = SiteTokens.WAVE_INBOX; groupToken = SiteTokens.GROUP_HOME; publicToken = TokenUtils.preview(SiteTokens.GROUP_HOME); - view.getHomeBtn().addClickHandler(new ClickHandler() { + configureClickListeners(); + configureShortcuts(); + // eventBus.addHandler(WindowFocusEvent.getType(), new + // WindowFocusEvent.WindowFocusHandler() { + // @Override + // public void onWindowFocus(final WindowFocusEvent event) { + // if (event.isHasFocus() && !mask.isShowing()) { + // // showTooltipWithDelay(); + // } + // } + // }); + session.onAppStart(true, new AppStartHandler() { @Override + public void onAppStart(final AppStartEvent event) { + getView().setPublicVisible(event.getInitData().isPublicSpaceVisible()); + } + }); + } + + private void configureClickListeners() { + getView().getHomeBtn().addClickHandler(new ClickHandler() { + @Override public void onClick(final ClickEvent event) { - restoreToken(homeToken); - setDown(Space.homeSpace); + onHomeBtnClick(); } + }); - view.getUserBtn().addClickHandler(new ClickHandler() { + getView().getUserBtn().addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { - onUserBtnClick(stateManager, session, signIn); + onUserBtnClick(); } }); - view.getGroupBtn().addClickHandler(new ClickHandler() { + getView().getGroupBtn().addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { - if (groupToken.equals(SiteTokens.GROUP_HOME)) { - // as current home is equal to "no content" token, we shall go to - // group space def home page - stateManager.gotoDefaultHomepage(); - } else { - restoreToken(groupToken); - } - setDown(Space.groupSpace); + onGroupBtnClick(); } + }); - view.getPublicBtn().addClickHandler(new ClickHandler() { + getView().getPublicBtn().addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { - restoreToken(publicToken); - setDown(Space.publicSpace); + onPublicBtnClick(); } + }); + } + private void configureShortcuts() { + shortcutRegister.put(Shortcut.getShortcut("Alt+H"), new AbstractExtendedAction() { + @Override + public void actionPerformed(final ActionEvent event) { + onHomeBtnClick(); + } }); - eventBus.addHandler(WindowFocusEvent.getType(), new WindowFocusEvent.WindowFocusHandler() { + shortcutRegister.put(Shortcut.getShortcut("Alt+I"), new AbstractExtendedAction() { @Override - public void onWindowFocus(final WindowFocusEvent event) { - if (event.isHasFocus() && !mask.isShowing()) { - // showTooltipWithDelay(); - } + public void actionPerformed(final ActionEvent event) { + onUserBtnClick(); } }); - session.onAppStart(true, new AppStartHandler() { + shortcutRegister.put(Shortcut.getShortcut("Alt+G"), new AbstractExtendedAction() { @Override - public void onAppStart(final AppStartEvent event) { - getView().setPublicVisible(event.getInitData().isPublicSpaceVisible()); + public void actionPerformed(final ActionEvent event) { + onGroupBtnClick(); } }); - final KeyStroke shortcut = Shortcut.getShortcut(false, true, false, false, Character.valueOf('I')); - shortcutRegister.put(shortcut, new AbstractExtendedAction() { + shortcutRegister.put(Shortcut.getShortcut("Alt+P"), new AbstractExtendedAction() { @Override public void actionPerformed(final ActionEvent event) { - onUserBtnClick(stateManager, session, signIn); + onPublicBtnClick(); } }); + } @ProxyEvent @@ -198,6 +217,17 @@ showTooltipWithDelay(); } + private void onGroupBtnClick() { + if (groupToken.equals(SiteTokens.GROUP_HOME)) { + // as current home is equal to "no content" token, we shall go to + // group space def home page + stateManager.gotoDefaultHomepage(); + } else { + restoreToken(groupToken); + } + setDown(Space.groupSpace); + } + private void onGroupSpaceSelect(final boolean shouldRestoreToken) { restoreToken(shouldRestoreToken, groupToken); armor.selectGroupSpace(); @@ -206,6 +236,11 @@ currentSpace = Space.groupSpace; } + private void onHomeBtnClick() { + restoreToken(homeToken); + setDown(Space.homeSpace); + } + private void onHomeSpaceSelect(final boolean shouldRestoreToken) { restoreToken(shouldRestoreToken, homeToken); armor.selectHomeSpace(); @@ -215,8 +250,9 @@ getView().setWindowTitle(i18n.t("Home")); } - private void onPublicClick() { - + private void onPublicBtnClick() { + restoreToken(publicToken); + setDown(Space.publicSpace); } private void onPublicSpaceSelect(final boolean shouldRestoreToken) { @@ -271,8 +307,7 @@ } } - private void onUserBtnClick(final StateManager stateManager, final Session session, - final Provider<SignIn> signIn) { + private void onUserBtnClick() { signIn.get().setGotoTokenOnCancel(stateManager.getCurrentToken()); restoreToken(inboxToken); if (session.isLogged()) {
participants (1)
-
Vicente J. Ruiz Jurado