aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur Signell <artur.signell@itmill.com>2011-02-07 14:06:21 +0000
committerArtur Signell <artur.signell@itmill.com>2011-02-07 14:06:21 +0000
commitd71238ffc6e7b2584e0de28f862af681dd5caf69 (patch)
treeb4c3e068003be50a0cbb2698a6bd90cc74a9a9f6
parent293a01c9758e7e8f124e31cf46f73bed7c41bdf4 (diff)
downloadvaadin-framework-d71238ffc6e7b2584e0de28f862af681dd5caf69.tar.gz
vaadin-framework-d71238ffc6e7b2584e0de28f862af681dd5caf69.zip
#6397 Empty Context Menu is shown
svn changeset:17192/svn branch:6.5
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VContextMenu.java8
-rw-r--r--tests/src/com/vaadin/tests/components/table/TableContextMenuAndIcons.html32
-rw-r--r--tests/src/com/vaadin/tests/components/table/Tables.java6
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);