Author: norman
Date: Wed Sep  2 07:07:36 2009
New Revision: 810385

URL: http://svn.apache.org/viewvc?rev=810385&view=rev
Log:
Better implementation of Tooltip

Modified:
    labs/hupa/widgets/src/main/java/org/apache/hupa/widgets/ui/ToolTip.java

Modified: 
labs/hupa/widgets/src/main/java/org/apache/hupa/widgets/ui/ToolTip.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/widgets/src/main/java/org/apache/hupa/widgets/ui/ToolTip.java?rev=810385&r1=810384&r2=810385&view=diff
==============================================================================
--- labs/hupa/widgets/src/main/java/org/apache/hupa/widgets/ui/ToolTip.java 
(original)
+++ labs/hupa/widgets/src/main/java/org/apache/hupa/widgets/ui/ToolTip.java Wed 
Sep  2 07:07:36 2009
@@ -26,6 +26,10 @@
 import com.google.gwt.event.dom.client.MouseOutHandler;
 import com.google.gwt.event.dom.client.MouseOverEvent;
 import com.google.gwt.event.dom.client.MouseOverHandler;
+import com.google.gwt.event.logical.shared.CloseEvent;
+import com.google.gwt.event.logical.shared.CloseHandler;
+import com.google.gwt.user.client.Timer;
+import com.google.gwt.user.client.ui.Label;
 import com.google.gwt.user.client.ui.PopupPanel;
 import com.google.gwt.user.client.ui.Widget;
 
@@ -34,8 +38,17 @@
  *  
  *
  */
-public class ToolTip extends PopupPanel {
+public class ToolTip extends Label {
+       
+       private final PopupPanel popup = new PopupPanel();
+       private final Timer showTimer = new Timer() {
 
+               @Override
+               public void run() {
+                       popup.show();
+               }
+               
+       };
        public ToolTip(Widget w) {
                if (!(w instanceof HasMouseOverHandlers) || (!( w instanceof 
HasMouseOutHandlers))) {
                        throw new IllegalArgumentException("Widget must 
implement HasMouseOverHandlers and HasMouseOutHandlers");
@@ -43,7 +56,7 @@
                ((HasMouseOverHandlers) w).addMouseOverHandler(new 
MouseOverHandler() {
 
                        public void onMouseOver(MouseOverEvent event) {
-                               show();
+                               showTimer.schedule(2000);
                        }
                        
                });
@@ -51,12 +64,28 @@
                ((HasMouseOutHandlers)w).addMouseOutHandler(new 
MouseOutHandler() {
 
                        public void onMouseOut(MouseOutEvent event) {
-                               hide();
+                               showTimer.cancel();
+                               popup.hide();
+                       }
+                       
+               });
+               popup.addCloseHandler(new CloseHandler<PopupPanel>() {
+
+                       public void onClose(CloseEvent<PopupPanel> event) {
+                               showTimer.cancel();
                        }
                        
                });
                addStyleName("hupa-ToolTip");
-               setAnimationEnabled(true);
-               setAutoHideEnabled(true);
+               popup.addStyleName("hupa-ToolTip");
+               popup.setAnimationEnabled(true);
+               popup.setAutoHideEnabled(true);
+       }
+       
+       public void setText(String text) {
+               super.setText(text);
+               popup.setWidget(this);
        }
+       
+       
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to