]> source.dussan.org Git - vaadin-framework.git/commitdiff
#6397 Empty Context Menu is shown
authorArtur Signell <artur.signell@itmill.com>
Mon, 7 Feb 2011 14:06:21 +0000 (14:06 +0000)
committerArtur Signell <artur.signell@itmill.com>
Mon, 7 Feb 2011 14:06:21 +0000 (14:06 +0000)
svn changeset:17192/svn branch:6.5

src/com/vaadin/terminal/gwt/client/ui/VContextMenu.java
tests/src/com/vaadin/tests/components/table/TableContextMenuAndIcons.html
tests/src/com/vaadin/tests/components/table/Tables.java

index a5de7f9d22e1b3eab1d7bfa83d40b328da620d10..c519990aee6ee4f2c568db3498199edafa7dd18a 100644 (file)
@@ -81,16 +81,20 @@ public class VContextMenu extends VOverlay implements SubPartAware {
     }
 
     /**
-     * Shows context menu at given location.
+     * Shows context menu at given location IF it contain at least one item.
      * 
      * @param left
      * @param top
      */
     public void showAt(int left, int top) {
+        final Action[] actions = actionOwner.getActions();
+        if (actions == null || actions.length == 0) {
+            // Only show if there really are actions
+            return;
+        }
         this.left = left;
         this.top = top;
         menu.clearItems();
-        final Action[] actions = actionOwner.getActions();
         for (int i = 0; i < actions.length; i++) {
             final Action a = actions[i];
             menu.addItem(new MenuItem(a.getHTML(), true, a));
index 5b93ff110009ed83a4f2b2bd9879a38fb474c53d..54d8e624f1d639b9c60107ac65379d2d0618e478 100644 (file)
        <td></td>\r
        <td>contextmenu-noicon</td>\r
 </tr>\r
-\r
+<!--Empty context menu-->\r
+<tr>\r
+       <td>mouseClick</td>\r
+       <td>vaadin=runcomvaadintestscomponentstableTables::PID_Smenu#item0</td>\r
+       <td>25,8</td>\r
+</tr>\r
+<tr>\r
+       <td>mouseClick</td>\r
+       <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[0]/VMenuBar[0]#item8</td>\r
+       <td>72,8</td>\r
+</tr>\r
+<tr>\r
+       <td>mouseClick</td>\r
+       <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[1]/VMenuBar[0]#item2</td>\r
+       <td>77,2</td>\r
+</tr>\r
+<tr>\r
+       <td>mouseClick</td>\r
+       <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[2]/VMenuBar[0]#item4</td>\r
+       <td>48,5</td>\r
+</tr>\r
+<tr>\r
+       <td>contextmenu</td>\r
+       <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[3]/domChild[3]/domChild[0]</td>\r
+       <td></td>\r
+</tr>\r
+<tr>\r
+       <td>screenCapture</td>\r
+       <td></td>\r
+       <td>contextmenu-empty</td>\r
+</tr>\r
 </tbody></table>\r
 </body>\r
 </html>\r
index b07be85177aef9c7f79eedcb96be2ff608cbadb0..46165a5fd4a32a8ffd60cf734323ad9e3badb020 100644 (file)
@@ -182,6 +182,12 @@ public class Tables extends AbstractSelectTestCase<Table> implements
         options.put("With and without icon", cm);\r
         options.put("Only one large icon", new ContextMenu("Icon",\r
                 ICON_64_EMAIL_REPLY_PNG_UNCACHEABLE));\r
+        options.put("Empty", new ContextMenu() {\r
+            @Override\r
+            public Action[] getActions() {\r
+                return null;\r
+            }\r
+        });\r
 \r
         createSelectAction("Context menu", category, options, "None",\r
                 contextMenuCommand, true);\r