]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fix for #3932 - Disabled menus can still be opened
authorArtur Signell <artur.signell@itmill.com>
Thu, 14 Jan 2010 15:24:32 +0000 (15:24 +0000)
committerArtur Signell <artur.signell@itmill.com>
Thu, 14 Jan 2010 15:24:32 +0000 (15:24 +0000)
svn changeset:10723/svn branch:6.2

src/com/vaadin/terminal/gwt/client/ui/VMenuBar.java

index 4e17dcb8798d27ef47625ffe977d51e6bf7472f2..0a28fd6b41f65532895d2808601cd31c960201db 100644 (file)
@@ -57,6 +57,8 @@ public class VMenuBar extends Widget implements Paintable,
 
     private Timer layoutTimer;
 
+    private boolean enabled = true;
+
     public VMenuBar() {
         // Create an empty horizontal menubar
         this(false);
@@ -107,6 +109,7 @@ public class VMenuBar extends Widget implements Paintable,
         if (client.updateComponent(this, uidl, true)) {
             return;
         }
+        this.enabled = !uidl.getBooleanAttribute("disabled");
 
         // For future connections
         this.client = client;
@@ -371,13 +374,13 @@ public class VMenuBar extends Widget implements Paintable,
             switch (DOM.eventGetType(e)) {
 
             case Event.ONCLICK:
-                if (targetItem.isEnabled()) {
+                if (isEnabled() && targetItem.isEnabled()) {
                     itemClick(targetItem);
                 }
                 break;
 
             case Event.ONMOUSEOVER:
-                if (targetItem.isEnabled()) {
+                if (isEnabled() && targetItem.isEnabled()) {
                     itemOver(targetItem);
                 }
                 break;
@@ -389,6 +392,10 @@ public class VMenuBar extends Widget implements Paintable,
         }
     }
 
+    private boolean isEnabled() {
+        return enabled;
+    }
+
     private void requestLayout() {
         if (layoutTimer == null) {
             layoutTimer = new Timer() {