[kune-commits] r1130 - in trunk: . src/main/java/org/ourproject/kune/app src/main/java/org/ourproject/kune/blogs src/main/java/org/ourproject/kune/chat src/main/java/org/ourproject/kune/chat/client src/main/java/org/ourproject/kune/docs src/main/java/org/ourproject/kune/gallery src/main/java/org/ourproject/kune/platf src/main/java/org/ourproject/kune/platf/client/actions src/main/java/org/ourproject/kune/platf/client/actions/toolbar src/main/java/org/ourproject/kune/platf/client/dto src/main/java/org/ourproject/kune/platf/client/shortcuts src/main/java/org/ourproject/kune/platf/client/ui/img src/main/java/org/ourproject/kune/platf/client/ui/rte/basic src/main/java/org/ourproject/kune/wiki src/main/java/org/ourproject/kune/workspace src/main/java/org/ourproject/kune/workspace/client src/main/java/org/ourproject/kune/workspace/client/hello src/test/java/org/ourproject/kune/platf/client/actions

vjrj vjrj at ourproject.org
Thu Jun 25 16:55:24 CEST 2009


Author: vjrj
Date: 2009-06-25 16:55:19 +0200 (Thu, 25 Jun 2009)
New Revision: 1130

Added:
   trunk/src/main/java/org/ourproject/kune/platf/client/actions/Shortcut.java
   trunk/src/test/java/org/ourproject/kune/platf/client/actions/ShortcutTest.java
Removed:
   trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionShortcutTest.java
Modified:
   trunk/TODO
   trunk/pom.xml
   trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
   trunk/src/main/java/org/ourproject/kune/blogs/KuneBlogs.gwt.xml
   trunk/src/main/java/org/ourproject/kune/chat/KuneChat.gwt.xml
   trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java
   trunk/src/main/java/org/ourproject/kune/docs/KuneDocs.gwt.xml
   trunk/src/main/java/org/ourproject/kune/gallery/KuneGallery.gwt.xml
   trunk/src/main/java/org/ourproject/kune/platf/KunePlatform.gwt.xml
   trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java
   trunk/src/main/java/org/ourproject/kune/platf/client/dto/ExtMediaDescripDTO.java
   trunk/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTELinkPopup.java
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java
   trunk/src/main/java/org/ourproject/kune/wiki/KuneWiki.gwt.xml
   trunk/src/main/java/org/ourproject/kune/workspace/KuneWorkspace.gwt.xml
   trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
   trunk/src/main/java/org/ourproject/kune/workspace/client/hello/HelloWorldModule.java
Log:
Complete - taskShortcuts refactorization 


Modified: trunk/TODO
===================================================================
--- trunk/TODO	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/TODO	2009-06-25 14:55:19 UTC (rev 1130)
@@ -140,6 +140,11 @@
 ** vjrj <v> IconHyperlink.java and IconLabel.java to gwt1.5
 
 * MID-TERM
+** TODO <v> karma, reputation, trust metrics:
+http://wiki.couchsurfing.com/en/Trust
+http://p2pfoundation.net/Trust_Metrics
+http://en.wikipedia.org/wiki/Trust_metric
+http://www.advogato.org/trust-metric.html
 ** TODO <v> use guice 2.0
    http://google-code-updates.blogspot.com/2009/05/guice-deuce.html
    http://code.google.com/docreader/#p=google-guice&s=google-guice
@@ -152,6 +157,7 @@
 ** TODO <v,s> harden our privacy policy. Goals:
    - permit user/projects/contents how much private or public are
    - APIs public only to associated sites (in study) ( http://oauth.net ? )
+http://raibledesigns.com/rd/entry/implementing_oauth_with_gwt
    - the social net info (xmpp ids) must follow the mobile numbers/email info interchange mode (if I don't have yor email/mobile, I can't contact you)
    - keep always the user informed
    - consider integration of chryptopgraphy (keyczar.org ? )

Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/pom.xml	2009-06-25 14:55:19 UTC (rev 1130)
@@ -470,8 +470,8 @@
         <version>2.0-RC1</version>
         <configuration>
           <logLevel>INFO</logLevel>
-          <style>OBF</style>
-          <!-- <style>OBF PRETTY</style> -->
+          <!-- <style>OBF or PRETTY</style> -->
+          <style>PRETTY</style>
           <!--
             <output>${project.build.directory}/gwt/www</output>
           -->

Modified: trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/app/Kune.gwt.xml	2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,4 +1,4 @@
-<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<!DOCTYPE document SYSTEM "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/src/gwt-module.dtd">
 <module rename-to='ws'>
     <inherits name='com.google.gwt.i18n.I18N' />
     <inherits name='com.google.gwt.user.User' />

Modified: trunk/src/main/java/org/ourproject/kune/blogs/KuneBlogs.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/blogs/KuneBlogs.gwt.xml	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/blogs/KuneBlogs.gwt.xml	2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,4 +1,4 @@
-<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<!DOCTYPE document SYSTEM "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/src/gwt-module.dtd">
 <module>
         <inherits name='org.ourproject.kune.platf.KunePlatform' />
         <inherits name='org.ourproject.kune.workspace.KuneWorkspace' />

Modified: trunk/src/main/java/org/ourproject/kune/chat/KuneChat.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/KuneChat.gwt.xml	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/chat/KuneChat.gwt.xml	2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,4 +1,4 @@
-<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<!DOCTYPE document SYSTEM "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/src/gwt-module.dtd">
 <module>
   <inherits name='org.ourproject.kune.platf.KunePlatform' />
   <inherits name='org.ourproject.kune.workspace.KuneWorkspace' />

Modified: trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/chat/client/ChatEngineDefault.java	2009-06-25 14:55:19 UTC (rev 1130)
@@ -22,13 +22,16 @@
 import java.util.Collection;
 import java.util.Date;
 
+import org.ourproject.kune.platf.client.actions.AbstractExtendedAction;
+import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.actions.KeyStroke;
+import org.ourproject.kune.platf.client.actions.Shortcut;
 import org.ourproject.kune.platf.client.app.Application;
 import org.ourproject.kune.platf.client.dto.InitDataDTO;
 import org.ourproject.kune.platf.client.dto.StateToken;
 import org.ourproject.kune.platf.client.dto.UserInfoDTO;
 import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
 import org.ourproject.kune.platf.client.shortcuts.GlobalShortcutRegister;
-import org.ourproject.kune.platf.client.shortcuts.ShortcutDescriptor;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.ui.WindowUtils;
 import org.ourproject.kune.platf.client.ui.download.FileDownloadUtils;
@@ -61,28 +64,29 @@
 class ChatEngineDefault implements ChatEngine {
     private ChatConnectionOptions chatOptions;
     private final I18nTranslationService i18n;
-    private final WorkspaceSkeleton ws;
+    private final WorkspaceSkeleton wskel;
     private ToolbarButton traybarButton;
     private final Provider<EmiteUIDialog> emiteUIProvider;
     private final Provider<FileDownloadUtils> downloadUtils;
     private Collection<RosterItem> roster;
     private final Event0 onRosterChanged;
-    private final ShortcutDescriptor shortcut;
+    private final KeyStroke shortcut;
 
-    public ChatEngineDefault(final I18nTranslationService i18n, final WorkspaceSkeleton ws,
+    public ChatEngineDefault(final I18nTranslationService i18n, final WorkspaceSkeleton wskel,
             final Application application, final Session session, final Provider<EmiteUIDialog> emiteUIProvider,
-            final Provider<FileDownloadUtils> downloadUtils, final GlobalShortcutRegister globalShortcutRegister) {
+            final Provider<FileDownloadUtils> downloadUtils, final GlobalShortcutRegister shortcutRegister) {
         this.i18n = i18n;
-        this.ws = ws;
+        this.wskel = wskel;
         this.emiteUIProvider = emiteUIProvider;
         this.downloadUtils = downloadUtils;
         this.onRosterChanged = new Event0("onRosterChanged");
-        shortcut = new ShortcutDescriptor(false, true, false, 'C');
-        globalShortcutRegister.put(shortcut, new Listener0() {
-            public void onEvent() {
+        shortcut = Shortcut.getShortcut(false, true, false, false, Character.valueOf('C'));
+        shortcutRegister.put(shortcut, new AbstractExtendedAction() {
+            public void actionPerformed(final ActionEvent event) {
                 if (isDialogStarted()) {
                     toggleShow();
                 }
+
             }
         });
         session.onInitDataReceived(new Listener<InitDataDTO>() {
@@ -177,7 +181,7 @@
                 });
             }
         } else {
-            ws.showAlertMessage(i18n.t("Error"), i18n.t("To join a chatroom you need to be 'online'"));
+            wskel.showAlertMessage(i18n.t("Error"), i18n.t("To join a chatroom you need to be 'online'"));
         }
     }
 
@@ -220,7 +224,7 @@
                     toggleShow();
                 }
             });
-            ws.getSiteTraybar().addButton(traybarButton);
+            wskel.getSiteTraybar().addButton(traybarButton);
             emiteUIProvider.get().onChatAttended(new Listener<String>() {
                 public void onEvent(final String parameter) {
                     traybarButton.setIcon("images/e-icon.gif");

Modified: trunk/src/main/java/org/ourproject/kune/docs/KuneDocs.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/docs/KuneDocs.gwt.xml	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/docs/KuneDocs.gwt.xml	2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,4 +1,4 @@
-<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<!DOCTYPE document SYSTEM "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/src/gwt-module.dtd">
 <module>
         <inherits name='org.ourproject.kune.platf.KunePlatform' />
         <inherits name='org.ourproject.kune.workspace.KuneWorkspace' />

Modified: trunk/src/main/java/org/ourproject/kune/gallery/KuneGallery.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/gallery/KuneGallery.gwt.xml	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/gallery/KuneGallery.gwt.xml	2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,4 +1,4 @@
-<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<!DOCTYPE document SYSTEM "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/src/gwt-module.dtd">
 <module>
         <inherits name='org.ourproject.kune.platf.KunePlatform' />
         <inherits name='org.ourproject.kune.workspace.KuneWorkspace' />

Modified: trunk/src/main/java/org/ourproject/kune/platf/KunePlatform.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/KunePlatform.gwt.xml	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/platf/KunePlatform.gwt.xml	2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,4 +1,4 @@
-<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<!DOCTYPE document SYSTEM "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/src/gwt-module.dtd">
 <module>
   <!-- Inherit the core Web Toolkit stuff.                  -->
   <inherits name='com.google.gwt.user.User' />

Added: trunk/src/main/java/org/ourproject/kune/platf/client/actions/Shortcut.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/Shortcut.java	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/Shortcut.java	2009-06-25 14:55:19 UTC (rev 1130)
@@ -0,0 +1,25 @@
+package org.ourproject.kune.platf.client.actions;
+
+import org.ourproject.kune.platf.client.shortcuts.Keyboard;
+
+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 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);
+    }
+
+    private Shortcut() {
+    }
+
+}

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/actions/toolbar/ActionToolbarPresenter.java	2009-06-25 14:55:19 UTC (rev 1130)
@@ -39,7 +39,7 @@
         this.view = toolbar;
     }
 
-    public void addActions(final ActionItemCollection<T> actions, ActionToolbarPosition position) {
+    public void addActions(final ActionItemCollection<T> actions, final ActionToolbarPosition position) {
         for (final ActionItem<T> actionItem : actions) {
             final ActionDescriptor<T> action = actionItem.getAction();
             if (actionItem.mustBeAdded()) {
@@ -82,11 +82,11 @@
         view.clear();
     }
 
-    public int getLeftPosition(ActionDescriptor<T> action) {
+    public int getLeftPosition(final ActionDescriptor<T> action) {
         return view.getLeftPosition(action);
     }
 
-    public int getTopPosition(ActionDescriptor<T> action) {
+    public int getTopPosition(final ActionDescriptor<T> action) {
         return view.getTopPosition(action);
     }
 
@@ -98,7 +98,7 @@
         view.hideAllMenus();
     }
 
-    public void setButtonEnable(ActionDescriptor<T> action, boolean enable) {
+    public void setButtonEnable(final ActionDescriptor<T> action, final boolean enable) {
         view.setButtonEnable(action, enable);
     }
 
@@ -110,15 +110,16 @@
         view.setNormalStyle();
     }
 
-    public void setParentMenuTitle(ActionToolbarPosition position, String origTitle, String origTooltip, String newTitle) {
+    public void setParentMenuTitle(final ActionToolbarPosition position, final String origTitle,
+            final String origTooltip, final String newTitle) {
         view.setParentMenuTitle(position, origTitle, origTooltip, newTitle);
     }
 
-    public void setPushButtonPressed(ActionDescriptor<T> action, boolean pressed) {
+    public void setPushButtonPressed(final ActionDescriptor<T> action, final boolean pressed) {
         view.setPushButtonPressed(action, pressed);
     }
 
-    private boolean addInPosition(ActionDescriptor<T> action, ActionToolbarPosition position) {
+    private boolean addInPosition(final ActionDescriptor<T> action, final ActionToolbarPosition position) {
         if (position.equals(IN_ANY) || ((ActionToolbarDescriptor<T>) action).getActionPosition().equals(position)) {
             return true;
         }
@@ -126,15 +127,15 @@
     }
 
     private boolean isToolbarButton(final ActionDescriptor<T> action) {
-        return action instanceof ActionToolbarButtonDescriptor
-                || action instanceof ActionToolbarButtonAndItemDescriptor;
+        return action instanceof ActionToolbarButtonDescriptor<?>
+                || action instanceof ActionToolbarButtonAndItemDescriptor<?>;
     }
 
     private boolean isToolbarMenu(final ActionDescriptor<T> action) {
         return action instanceof ActionToolbarMenuDescriptor || action instanceof ActionToolbarMenuAndItemDescriptor;
     }
 
-    private boolean isToolbarPushButton(ActionDescriptor<T> action) {
+    private boolean isToolbarPushButton(final ActionDescriptor<T> action) {
         return action instanceof ActionToolbarPushButtonDescriptor;
     }
 }

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/dto/ExtMediaDescripDTO.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/dto/ExtMediaDescripDTO.java	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/dto/ExtMediaDescripDTO.java	2009-06-25 14:55:19 UTC (rev 1130)
@@ -14,15 +14,14 @@
     private String idRegex;
     private String embedTemplate;
     private int width;
-
     private int height;
 
     public ExtMediaDescripDTO() {
         this(null, null, null, null, null, 0, 0);
     }
 
-    public ExtMediaDescripDTO(final String name, final String siteurl, final String detectRegex,
-            final String idRegex, final String embedTemplate, final int defWidth, final int defHeight) {
+    public ExtMediaDescripDTO(final String name, final String siteurl, final String detectRegex, final String idRegex,
+            final String embedTemplate, final int defWidth, final int defHeight) {
         this.name = name;
         this.siteurl = siteurl;
         this.detectRegex = detectRegex;
@@ -37,7 +36,7 @@
     }
 
     public String getEmbed(final String url) {
-        String id = getId(url);
+        final String id = getId(url);
         String result = embedTemplate.replaceAll(URL, id);
         result = result.replaceAll(HEIGHT, "" + height);
         result = result.replaceAll(WIDTH, "" + width);
@@ -53,7 +52,7 @@
     }
 
     public String getId(final String url) {
-        String id = url.replaceFirst(idRegex, "$1");
+        final String id = url.replaceFirst(idRegex, "$1");
         return id;
     }
 

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/shortcuts/GlobalShortcutRegister.java	2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,32 +1,35 @@
 package org.ourproject.kune.platf.client.shortcuts;
 
-import org.ourproject.kune.platf.client.actions.ActionItem;
-import org.ourproject.kune.platf.client.actions.ActionManager;
+import org.ourproject.kune.platf.client.actions.AbstractAction;
+import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.actions.InputMap;
+import org.ourproject.kune.platf.client.actions.Shortcut;
 
+import com.allen_sauer.gwt.log.client.Log;
 import com.google.gwt.dom.client.NativeEvent;
-import com.google.gwt.event.dom.client.KeyDownEvent;
 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 GlobalShortcutRegister extends ShortcutRegister {
+public class GlobalShortcutRegister extends InputMap {
 
     private final NativePreviewHandler eventHandler;
     private HandlerRegistration handlerReg;
 
-    public GlobalShortcutRegister(final ActionManager actionManager) {
+    public GlobalShortcutRegister() {
         super();
         eventHandler = new NativePreviewHandler() {
-            @SuppressWarnings("unchecked")
             public void onPreviewNativeEvent(final NativePreviewEvent nativeEventPrev) {
-                final NativeEvent event = nativeEventPrev.getNativeEvent();
-                if (nativeEventPrev.getAssociatedType().equals(KeyDownEvent.getType())) {
-                    final ActionItem actionItem = get(event);
-                    if (actionItem != null) {
-                        // Log.debug("Not propagating event");
-                        event.stopPropagation();
-                        actionManager.doAction(actionItem);
+                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");
+                        nativeEvent.stopPropagation();
+                        action.actionPerformed(new ActionEvent(nativeEvent.getCurrentEventTarget(), event));
                         nativeEventPrev.cancel();
                     }
                 }

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/img/kimg.css	2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,3 +1,19 @@
 @sprite div .k-icon-info {
   gwt-image: 'info';
 }
+
+ at sprite div .k-icon-language {
+  gwt-image: 'language';
+}
+
+ at sprite div .k-icon-kuneIcon16 {
+  gwt-image: 'kuneIcon16';
+}
+
+ at sprite div .k-icon-prefs {
+  gwt-image: 'prefs';
+}
+
+ at sprite div .k-icon-groupHome {
+  gwt-image: 'groupHome';
+}

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTELinkPopup.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTELinkPopup.java	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTELinkPopup.java	2009-06-25 14:55:19 UTC (rev 1130)
@@ -41,7 +41,7 @@
         KuneUiUtils.setUnselectable(actionLabel.getElement());
         actionLabel.addClickHandler(new ClickHandler() {
             public void onClick(final ClickEvent event) {
-                item.fire(new ActionEvent(actionLabel, (Event) event.getNativeEvent()));
+                item.fire(new ActionEvent(actionLabel, Event.as(event.getNativeEvent())));
             }
         });
         hpanel.insert(actionLabel, 0);

Modified: trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/basic/RTEditorPresenter.java	2009-06-25 14:55:19 UTC (rev 1130)
@@ -15,6 +15,7 @@
 import org.ourproject.kune.platf.client.actions.ActionEvent;
 import org.ourproject.kune.platf.client.actions.InputMap;
 import org.ourproject.kune.platf.client.actions.KeyStroke;
+import org.ourproject.kune.platf.client.actions.Shortcut;
 import org.ourproject.kune.platf.client.actions.ui.AbstractActionExtensiblePresenter;
 import org.ourproject.kune.platf.client.actions.ui.ButtonDescriptor;
 import org.ourproject.kune.platf.client.actions.ui.GuiActionDescCollection;
@@ -29,7 +30,6 @@
 import org.ourproject.kune.platf.client.actions.ui.ToolbarSeparatorDescriptor;
 import org.ourproject.kune.platf.client.actions.ui.ToolbarSeparatorDescriptor.Type;
 import org.ourproject.kune.platf.client.i18n.I18nTranslationService;
-import org.ourproject.kune.platf.client.shortcuts.Keyboard;
 import org.ourproject.kune.platf.client.state.Session;
 import org.ourproject.kune.platf.client.ui.img.ImgConstants;
 import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
@@ -901,71 +901,71 @@
         final SelectAllAction selectAllAction = new SelectAllAction(i18n.t("Select all"),
                 AbstractExtendedAction.NO_TEXT, imgResources.selectall());
         final MenuItemDescriptor select = new MenuItemDescriptor(editMenu, selectAllAction);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('A'), Keyboard.MODIFIER_CTRL), selectAllAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('A')), selectAllAction);
 
         final BoldAction boldAction = new BoldAction(NO_TEXT, i18n.t("Bold"), imgResources.bold());
         bold = new PushButtonDescriptor(boldAction);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('B'), Keyboard.MODIFIER_CTRL), boldAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('B')), boldAction);
 
         final ItalicAction italicAction = new ItalicAction(NO_TEXT, i18n.t("Italic"), imgResources.italic());
         italic = new PushButtonDescriptor(italicAction);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('I'), Keyboard.MODIFIER_CTRL), italicAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('I')), italicAction);
 
         final UnderlineAction underlineAction = new UnderlineAction(NO_TEXT, i18n.t("Underline"),
                 imgResources.underline());
         underline = new PushButtonDescriptor(underlineAction);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('U'), Keyboard.MODIFIER_CTRL), underlineAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('U')), underlineAction);
 
         final SubscriptAction subscriptAction = new SubscriptAction(i18n.t("Subscript"), NO_TEXT,
                 imgResources.subscript());
         final MenuItemDescriptor subscript = new MenuItemDescriptor(formatMenu, subscriptAction);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf(','), Keyboard.MODIFIER_CTRL), subscriptAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf(',')), subscriptAction);
 
         final SuperscriptAction superscriptAction = new SuperscriptAction(i18n.t("Superscript"), NO_TEXT,
                 imgResources.superscript());
         final MenuItemDescriptor superscript = new MenuItemDescriptor(formatMenu, superscriptAction);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('.'), Keyboard.MODIFIER_CTRL), superscriptAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('.')), superscriptAction);
 
         final JustifyLeftAction jfyLeftAction = new JustifyLeftAction(NO_TEXT, i18n.t("Left Justify"),
                 imgResources.alignleft());
         final ButtonDescriptor justifyLeft = new ButtonDescriptor(jfyLeftAction);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('L'), Keyboard.MODIFIER_CTRL), jfyLeftAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('L')), jfyLeftAction);
 
         final JustifyCentreAction jfyCentreAction = new JustifyCentreAction(NO_TEXT, i18n.t("Centre Justify"),
                 imgResources.centerpara());
         final ButtonDescriptor justifyCentre = new ButtonDescriptor(jfyCentreAction);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('E'), Keyboard.MODIFIER_CTRL), jfyCentreAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('E')), jfyCentreAction);
 
         final JustifyRightAction jfyRightAction = new JustifyRightAction(NO_TEXT, i18n.t("Right Justify"),
                 imgResources.alignright());
         final ButtonDescriptor justifyRight = new ButtonDescriptor(jfyRightAction);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('R'), Keyboard.MODIFIER_CTRL), jfyRightAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('R')), jfyRightAction);
 
         final UndoAction undoAction = new UndoAction(i18n.t("Undo"), NO_TEXT, imgResources.undo());
         final UndoAction undoActionBtn = new UndoAction(NO_TEXT, i18n.t("Undo"), imgResources.undo());
         final MenuItemDescriptor undo = new MenuItemDescriptor(editMenu, undoAction);
         final ButtonDescriptor undoBtn = new ButtonDescriptor(undoActionBtn);
         undoBtn.setPosition(0);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('Z'), Keyboard.MODIFIER_CTRL), undoAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('Z')), undoAction);
 
         final RedoAction redoAction = new RedoAction(i18n.t("Redo"), NO_TEXT, imgResources.redo());
         final RedoAction redoActionBtn = new RedoAction(NO_TEXT, i18n.t("Redo"), imgResources.redo());
         final MenuItemDescriptor redo = new MenuItemDescriptor(editMenu, redoAction);
         final ButtonDescriptor redoBtn = new ButtonDescriptor(redoActionBtn);
         redoBtn.setPosition(1);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('Y'), Keyboard.MODIFIER_CTRL), redoAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('Y')), redoAction);
 
         final CopyAction copyAction = new CopyAction(i18n.t("Copy"), NO_TEXT, imgResources.copy());
         final MenuItemDescriptor copy = new MenuItemDescriptor(editMenu, copyAction);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('C'), Keyboard.MODIFIER_CTRL), copyAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('C')), copyAction);
 
         final CutAction cutAction = new CutAction(i18n.t("Cut"), NO_TEXT, imgResources.cut());
         final MenuItemDescriptor cut = new MenuItemDescriptor(editMenu, cutAction);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('X'), Keyboard.MODIFIER_CTRL), cutAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('X')), cutAction);
 
         final PasteAction pasteAction = new PasteAction(i18n.t("Paste"), NO_TEXT, imgResources.paste());
         final MenuItemDescriptor paste = new MenuItemDescriptor(editMenu, pasteAction);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('V'), Keyboard.MODIFIER_CTRL), pasteAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('V')), pasteAction);
 
         final EditHtmlAction editHtmlAction = new EditHtmlAction(i18n.t("Edit HTML"), NO_TEXT, imgResources.edithtml());
         final MenuItemDescriptor editHtml = new MenuItemDescriptor(editMenu, editHtmlAction);
@@ -974,7 +974,7 @@
         final CommentAction commentAction = new CommentAction(i18n.t("Comment"), NO_TEXT, NO_ICON);
         final MenuItemDescriptor comment = new MenuItemDescriptor(insertMenu, commentAction);
         comment.setAddCondition(extendedAddCond);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('M'), Keyboard.MODIFIER_CTRL), commentAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('M')), commentAction);
 
         final HrAction hlineAction = new HrAction(i18n.t("Horizontal line"), NO_TEXT, imgResources.hfixedline());
         final HrAction hlineBtnAction = new HrAction(NO_TEXT, i18n.t("Horizontal line"), imgResources.hfixedline());
@@ -982,8 +982,7 @@
         final ButtonDescriptor hlineBtn = new ButtonDescriptor(hlineBtnAction);
         hline.setAddCondition(extendedAddCond);
         hlineBtn.setAddCondition(extendedAddCond);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf(' '), Keyboard.MODIFIER_CTRL
-                + Keyboard.MODIFIER_SHIFT), hlineAction);
+        setActionShortcut(Shortcut.getShortcut(true, true, Character.valueOf(' ')), hlineAction);
 
         final BlockquoteAction blockquoteAction = new BlockquoteAction(i18n.t("Block Quotation"), NO_TEXT, NO_ICON);
         final MenuItemDescriptor blockquote = new MenuItemDescriptor(formatMenu, blockquoteAction);
@@ -1007,12 +1006,12 @@
         final OlAction olistAction = new OlAction(NO_TEXT, i18n.t("Numbered List"), imgResources.defaultnumbering());
         final ButtonDescriptor olist = new ButtonDescriptor(olistAction);
         olist.setAddCondition(extendedAddCond);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('7'), Keyboard.MODIFIER_CTRL), olistAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('7')), olistAction);
 
         final UlAction ulistAction = new UlAction(NO_TEXT, i18n.t("Bullet List"), imgResources.defaultbullet());
         final ButtonDescriptor ulist = new ButtonDescriptor(ulistAction);
         ulist.setAddCondition(extendedAddCond);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('8'), Keyboard.MODIFIER_CTRL), ulistAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('8')), ulistAction);
 
         final ImgAction imgAction = new ImgAction(i18n.t("Image..."), NO_TEXT, imgResources.images());
         final ImgAction imgBtnAction = new ImgAction(NO_TEXT, i18n.t("Insert Image"), imgResources.images());
@@ -1038,11 +1037,9 @@
         editLink.setAddCondition(extendedAddCond);
         editLinkBtn.setAddCondition(extendedAddCond);
         editLinkCtx.setAddCondition(extendedAddCond);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('K'), Keyboard.MODIFIER_CTRL), editLinkAction,
-                editLinkBtnAction);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf('K')), editLinkAction, editLinkBtnAction);
 
-        final KeyStroke key_SK = KeyStroke.getKeyStroke(Character.valueOf('K'), Keyboard.MODIFIER_CTRL
-                + Keyboard.MODIFIER_SHIFT);
+        final KeyStroke key_SK = Shortcut.getShortcut(true, true, Character.valueOf('K'));
         final RemoveLinkAction delLinkBtnAction = new RemoveLinkAction(NO_TEXT, i18n.t("Remove Link"),
                 imgResources.linkbreak());
         final RemoveLinkAction delLinkCtxAction = new RemoveLinkAction(i18n.t("Remove"), NO_TEXT,
@@ -1061,8 +1058,7 @@
         final ButtonDescriptor removeFormatBtn = new ButtonDescriptor(remFormatBtnAc);
         removeFormat.setAddCondition(extendedAddCond);
         removeFormatBtn.setAddCondition(extendedAddCond);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf(' '), Keyboard.MODIFIER_CTRL), remFormatAction,
-                remFormatBtnAc);
+        setActionShortcut(Shortcut.getShortcut(true, Character.valueOf(' ')), remFormatAction, remFormatBtnAc);
 
         final InsertSpecialCharAction insCharAction = new InsertSpecialCharAction(i18n.t("Special characters..."),
                 NO_TEXT, imgResources.specialchars());
@@ -1092,7 +1088,7 @@
                 imgResources.specialchars());
         final MenuItemDescriptor devInfo = new MenuItemDescriptor(formatMenu, devInfoAction);
         devInfo.setAddCondition(extendedAddCond);
-        setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf('I'), Keyboard.MODIFIER_ALT), devInfoAction);
+        setActionShortcut(Shortcut.getShortcut(false, true, false, false, Character.valueOf('I')), devInfoAction);
 
         actions = new GuiActionDescCollection();
         addActions(fileMenu, editMenu, formatMenu, insertMenu, undo, redo, editMenuSep, copy, cut, paste, editMenuSep,
@@ -1138,8 +1134,9 @@
         final MenuRadioItemDescriptor fontSizeItem = new MenuRadioItemDescriptor(fontSizeMenu, fontSizeAction,
                 FONT_SIZEGROUP);
         fontSizeItem.setAddCondition(basicAddCond);
-        // setActionShortcut(KeyStroke.getKeyStroke(Character.valueOf(((char)
-        // (48 + fontSize))), Keyboard.MODIFIER_CTRL),
+        // setActionShortcut(Shortcut.getShortcut(true,
+        // Character.valueOf(((char)
+        // (48 + fontSize)))),
         // fontSizeAction);
         fontSizeItem.setLocation(SNDBAR);
         actions.add(fontSizeItem);

Modified: trunk/src/main/java/org/ourproject/kune/wiki/KuneWiki.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/wiki/KuneWiki.gwt.xml	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/wiki/KuneWiki.gwt.xml	2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,4 +1,4 @@
-<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<!DOCTYPE document SYSTEM "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/src/gwt-module.dtd">
 <module>
         <inherits name='org.ourproject.kune.platf.KunePlatform' />
         <inherits name='org.ourproject.kune.workspace.KuneWorkspace' />

Modified: trunk/src/main/java/org/ourproject/kune/workspace/KuneWorkspace.gwt.xml
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/KuneWorkspace.gwt.xml	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/workspace/KuneWorkspace.gwt.xml	2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,4 +1,4 @@
-<!DOCTYPE document SYSTEM "src/main/java/gwt-module.dtd">
+<!DOCTYPE document SYSTEM "http://google-web-toolkit.googlecode.com/svn/tags/1.6.4/distro-source/core/src/gwt-module.dtd">
 <module>
     <inherits name='org.ourproject.kune.platf.KunePlatform' />
     <inherits name="com.google.gwt.core.Core" />

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/WorkspaceModule.java	2009-06-25 14:55:19 UTC (rev 1130)
@@ -995,7 +995,7 @@
         register(ApplicationComponentGroup.class, new Factory<GlobalShortcutRegister>(GlobalShortcutRegister.class) {
             @Override
             public GlobalShortcutRegister create() {
-                return new GlobalShortcutRegister(i(ActionManager.class));
+                return new GlobalShortcutRegister();
             }
         });
 

Modified: trunk/src/main/java/org/ourproject/kune/workspace/client/hello/HelloWorldModule.java
===================================================================
--- trunk/src/main/java/org/ourproject/kune/workspace/client/hello/HelloWorldModule.java	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/main/java/org/ourproject/kune/workspace/client/hello/HelloWorldModule.java	2009-06-25 14:55:19 UTC (rev 1130)
@@ -21,8 +21,10 @@
 
 import org.ourproject.kune.platf.client.View;
 import org.ourproject.kune.platf.client.actions.AbstractAction;
+import org.ourproject.kune.platf.client.actions.AbstractExtendedAction;
 import org.ourproject.kune.platf.client.actions.Action;
 import org.ourproject.kune.platf.client.actions.ActionEvent;
+import org.ourproject.kune.platf.client.actions.Shortcut;
 import org.ourproject.kune.platf.client.actions.ui.MenuCheckItemDescriptor;
 import org.ourproject.kune.platf.client.actions.ui.MenuDescriptor;
 import org.ourproject.kune.platf.client.actions.ui.MenuItemDescriptor;
@@ -33,7 +35,6 @@
 import org.ourproject.kune.platf.client.i18n.I18nTranslationServiceMocked;
 import org.ourproject.kune.platf.client.services.AbstractExtendedModule;
 import org.ourproject.kune.platf.client.shortcuts.GlobalShortcutRegister;
-import org.ourproject.kune.platf.client.shortcuts.ShortcutDescriptor;
 import org.ourproject.kune.platf.client.ui.img.ImgResources;
 import org.ourproject.kune.platf.client.ui.noti.NotifyUser;
 import org.ourproject.kune.workspace.client.editor.ContentEditor;
@@ -41,7 +42,6 @@
 import org.ourproject.kune.workspace.client.skel.WorkspaceSkeleton;
 
 import com.allen_sauer.gwt.log.client.Log;
-import com.calclab.suco.client.events.Listener0;
 import com.calclab.suco.client.ioc.Provider;
 import com.calclab.suco.client.ioc.decorator.Singleton;
 import com.calclab.suco.client.ioc.module.Factory;
@@ -294,11 +294,12 @@
         /**
          * Global shortcut sample definition
          */
-        i(GlobalShortcutRegister.class).put(new ShortcutDescriptor(false, true, false, 'S'), new Listener0() {
-            public void onEvent() {
-                NotifyUser.info("Global Ctrl+S pressed");
-            }
-        });
+        i(GlobalShortcutRegister.class).put(Shortcut.getShortcut(true, Character.valueOf('S')),
+                new AbstractExtendedAction() {
+                    public void actionPerformed(final ActionEvent event) {
+                        NotifyUser.info("Global Ctrl+S pressed");
+                    }
+                });
 
         // And because nobody use this module, we get the class (to force the
         // creation of the Helloworld instance):

Deleted: trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionShortcutTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionShortcutTest.java	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/actions/ActionShortcutTest.java	2009-06-25 14:55:19 UTC (rev 1130)
@@ -1,63 +0,0 @@
-package org.ourproject.kune.platf.client.actions;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.ourproject.kune.platf.client.i18n.I18nTranslationServiceMocked;
-import org.ourproject.kune.platf.client.i18n.Resources;
-import org.ourproject.kune.platf.client.shortcuts.Keyboard;
-import org.ourproject.kune.platf.client.shortcuts.ShortcutDescriptor;
-
-public class ActionShortcutTest {
-
-    @Test
-    public void altS() {
-        final ShortcutDescriptor shortcut = new ShortcutDescriptor(false, true, false, 'S', null);
-        assertEquals(" (Alt+S)", shortcut.toString());
-        assertTrue(shortcut.is('S', Keyboard.MODIFIER_ALT));
-        assertTrue(!shortcut.is('S', Keyboard.MODIFIER_CTRL));
-        assertTrue(!shortcut.is('S', Keyboard.MODIFIER_SHIFT));
-    }
-
-    @Before
-    public void before() {
-        new Resources(new I18nTranslationServiceMocked());
-    }
-
-    @Test
-    public void ctrlComa() {
-        final ShortcutDescriptor shortcut = new ShortcutDescriptor(true, ',');
-        assertEquals(" (Ctrl+,)", shortcut.toString());
-        assertTrue(shortcut.is(',', Keyboard.MODIFIER_CTRL));
-        assertTrue(!shortcut.is(',', Keyboard.MODIFIER_ALT));
-        assertTrue(!shortcut.is(',', Keyboard.MODIFIER_SHIFT));
-    }
-
-    @Test
-    public void ctrlS() {
-        final ShortcutDescriptor shortcut = new ShortcutDescriptor(true, 's');
-        assertEquals(" (Ctrl+S)", shortcut.toString());
-        assertTrue(shortcut.is('s', Keyboard.MODIFIER_CTRL));
-        assertTrue(!shortcut.is('s', Keyboard.MODIFIER_ALT));
-        assertTrue(!shortcut.is('s', Keyboard.MODIFIER_SHIFT));
-    }
-
-    @Test
-    public void ctrlSCapital() {
-        final ShortcutDescriptor shortcut = new ShortcutDescriptor(true, 'S');
-        assertEquals(" (Ctrl+S)", shortcut.toString());
-        assertTrue(shortcut.is('S', Keyboard.MODIFIER_CTRL));
-        assertTrue(!shortcut.is('S', Keyboard.MODIFIER_ALT));
-        assertTrue(!shortcut.is('S', Keyboard.MODIFIER_SHIFT));
-    }
-
-    @Test
-    public void ctrlShiftS() {
-        final ShortcutDescriptor shortcut = new ShortcutDescriptor(true, false, true, 'S', null);
-        assertEquals(" (Ctrl+Shift+S)", shortcut.toString());
-        assertTrue(!shortcut.is('S', Keyboard.MODIFIER_ALT));
-        assertTrue(shortcut.is('S', Keyboard.MODIFIER_SHIFT | Keyboard.MODIFIER_CTRL));
-    }
-}

Added: trunk/src/test/java/org/ourproject/kune/platf/client/actions/ShortcutTest.java
===================================================================
--- trunk/src/test/java/org/ourproject/kune/platf/client/actions/ShortcutTest.java	2009-06-14 20:00:52 UTC (rev 1129)
+++ trunk/src/test/java/org/ourproject/kune/platf/client/actions/ShortcutTest.java	2009-06-25 14:55:19 UTC (rev 1130)
@@ -0,0 +1,39 @@
+package org.ourproject.kune.platf.client.actions;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.ourproject.kune.platf.client.i18n.I18nTranslationServiceMocked;
+import org.ourproject.kune.platf.client.i18n.Resources;
+
+public class ShortcutTest {
+    @Test
+    public void altS() {
+        final KeyStroke shortcut = Shortcut.getShortcut(false, true, false, false, 'S');
+        assertEquals(" (Alt+S)", shortcut.toString());
+    }
+
+    @Before
+    public void before() {
+        new Resources(new I18nTranslationServiceMocked());
+    }
+
+    @Test
+    public void ctrlComa() {
+        final KeyStroke shortcut = Shortcut.getShortcut(true, ',');
+        assertEquals(" (Ctrl+,)", shortcut.toString());
+    }
+
+    @Test
+    public void ctrlSCapital() {
+        final KeyStroke shortcut = Shortcut.getShortcut(true, 'S');
+        assertEquals(" (Ctrl+S)", shortcut.toString());
+    }
+
+    @Test
+    public void ctrlShiftS() {
+        final KeyStroke shortcut = Shortcut.getShortcut(true, false, true, false, 'S');
+        assertEquals(" (Ctrl+Shift+S)", shortcut.toString());
+    }
+}




More information about the kune-commits mailing list