diff options
author | Artur Signell <artur.signell@itmill.com> | 2011-02-07 14:06:21 +0000 |
---|---|---|
committer | Artur Signell <artur.signell@itmill.com> | 2011-02-07 14:06:21 +0000 |
commit | d71238ffc6e7b2584e0de28f862af681dd5caf69 (patch) | |
tree | b4c3e068003be50a0cbb2698a6bd90cc74a9a9f6 | |
parent | 293a01c9758e7e8f124e31cf46f73bed7c41bdf4 (diff) | |
download | vaadin-framework-d71238ffc6e7b2584e0de28f862af681dd5caf69.tar.gz vaadin-framework-d71238ffc6e7b2584e0de28f862af681dd5caf69.zip |
#6397 Empty Context Menu is shown
svn changeset:17192/svn branch:6.5
3 files changed, 43 insertions, 3 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VContextMenu.java b/src/com/vaadin/terminal/gwt/client/ui/VContextMenu.java index a5de7f9d22..c519990aee 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VContextMenu.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VContextMenu.java @@ -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)); diff --git a/tests/src/com/vaadin/tests/components/table/TableContextMenuAndIcons.html b/tests/src/com/vaadin/tests/components/table/TableContextMenuAndIcons.html index 5b93ff1100..54d8e624f1 100644 --- a/tests/src/com/vaadin/tests/components/table/TableContextMenuAndIcons.html +++ b/tests/src/com/vaadin/tests/components/table/TableContextMenuAndIcons.html @@ -151,7 +151,37 @@ <td></td>
<td>contextmenu-noicon</td>
</tr>
-
+<!--Empty context menu-->
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_Smenu#item0</td>
+ <td>25,8</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[0]/VMenuBar[0]#item8</td>
+ <td>72,8</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[1]/VMenuBar[0]#item2</td>
+ <td>77,2</td>
+</tr>
+<tr>
+ <td>mouseClick</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::Root/VOverlay[2]/VMenuBar[0]#item4</td>
+ <td>48,5</td>
+</tr>
+<tr>
+ <td>contextmenu</td>
+ <td>vaadin=runcomvaadintestscomponentstableTables::PID_StestComponent/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[3]/domChild[3]/domChild[0]</td>
+ <td></td>
+</tr>
+<tr>
+ <td>screenCapture</td>
+ <td></td>
+ <td>contextmenu-empty</td>
+</tr>
</tbody></table>
</body>
</html>
diff --git a/tests/src/com/vaadin/tests/components/table/Tables.java b/tests/src/com/vaadin/tests/components/table/Tables.java index b07be85177..46165a5fd4 100644 --- a/tests/src/com/vaadin/tests/components/table/Tables.java +++ b/tests/src/com/vaadin/tests/components/table/Tables.java @@ -182,6 +182,12 @@ public class Tables extends AbstractSelectTestCase<Table> implements options.put("With and without icon", cm);
options.put("Only one large icon", new ContextMenu("Icon",
ICON_64_EMAIL_REPLY_PNG_UNCACHEABLE));
+ options.put("Empty", new ContextMenu() {
+ @Override
+ public Action[] getActions() {
+ return null;
+ }
+ });
createSelectAction("Context menu", category, options, "None",
contextMenuCommand, true);
|