]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fixed #2995 - Tooltip for a TabSheet tab does not show
authorArtur Signell <artur.signell@itmill.com>
Thu, 21 May 2009 15:38:51 +0000 (15:38 +0000)
committerArtur Signell <artur.signell@itmill.com>
Thu, 21 May 2009 15:38:51 +0000 (15:38 +0000)
svn changeset:7941/svn branch:6.0

src/com/vaadin/terminal/gwt/client/ui/VTabsheet.java
src/com/vaadin/tests/components/tabsheet/TabsheetTooltip.java

index e9a63c86b22bc4b08637748541f940805de7fb1c..49d3546eb8788779d4bd1fb9713203c0ee0e5898 100644 (file)
@@ -22,6 +22,7 @@ import com.vaadin.terminal.gwt.client.BrowserInfo;
 import com.vaadin.terminal.gwt.client.Paintable;
 import com.vaadin.terminal.gwt.client.RenderInformation;
 import com.vaadin.terminal.gwt.client.RenderSpace;
+import com.vaadin.terminal.gwt.client.TooltipInfo;
 import com.vaadin.terminal.gwt.client.UIDL;
 import com.vaadin.terminal.gwt.client.Util;
 import com.vaadin.terminal.gwt.client.VCaption;
@@ -33,6 +34,24 @@ public class VTabsheet extends VTabsheetBase {
             super(null, client);
         }
 
+        @Override
+        public boolean updateCaption(UIDL uidl) {
+            if (uidl.hasAttribute(ATTRIBUTE_DESCRIPTION)
+                    || uidl.hasAttribute(ATTRIBUTE_ERROR)) {
+                TooltipInfo tooltipInfo = new TooltipInfo();
+                tooltipInfo.setTitle(uidl
+                        .getStringAttribute(ATTRIBUTE_DESCRIPTION));
+                if (uidl.hasAttribute(ATTRIBUTE_ERROR)) {
+                    tooltipInfo.setErrorUidl(uidl.getErrors());
+                }
+                client.registerTooltip(getElement(), tooltipInfo);
+            } else {
+                client.registerTooltip(getElement(), "");
+            }
+
+            return super.updateCaption(uidl);
+        }
+
         @Override
         public void onBrowserEvent(Event event) {
             super.onBrowserEvent(event);
@@ -43,6 +62,8 @@ public class VTabsheet extends VTabsheetBase {
                 }
                 updateTabScroller();
             }
+
+            client.handleTooltipEvent(event, VTabsheet.this);
         }
 
         @Override
index 9636125009a9b670c421212220fba3388b66ac7d..18934e93189ab5387cdd916c07c7d5e5dfe023cc 100644 (file)
@@ -1,5 +1,6 @@
 package com.vaadin.tests.components.tabsheet;
 
+import com.vaadin.terminal.UserError;
 import com.vaadin.tests.components.TestBase;
 import com.vaadin.ui.Label;
 import com.vaadin.ui.TabSheet;
@@ -25,6 +26,11 @@ public class TabsheetTooltip extends TestBase {
 
         Tab tab = tabSheet.addTab(l, "Tab", null);
         tab.setDescription("This is a tab");
+        tab.setComponentError(new UserError("abc error"));
+
+        Tab tab2 = tabSheet.addTab(new Label("Another label, d'oh"), "Tab 2",
+                null);
+        tab2.setDescription("This is another tab");
 
         addComponent(tabSheet);
     }