Java/GWT/Tooltip

Материал из Java эксперт
Перейти к: навигация, поиск

Tooltip component for GWT

   <source lang="java">

package com.jexp.gwt.client; import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.ui.MouseListenerAdapter; import com.google.gwt.user.client.ui.PopupPanel; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.ClickListener; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.client.ui.DialogBox; import com.google.gwt.user.client.ui.DockPanel; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.Image; public class GWTClient implements EntryPoint {

 public void onModuleLoad() {
   Image img = new Image("./yourImage.jpg");
   img.addMouseListener(
       new TooltipListener(
         "your text", 5000 /* timeout in milliseconds*/,"yourcssclass"));
   RootPanel.get().add(img);
 }

} /* Tooltip component for GWT Copyright (C) 2006 Alexei Sokolov http://gwt.ruponents.googlepages.ru/ This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

  • /

class TooltipListener extends MouseListenerAdapter {

 private static final String DEFAULT_TOOLTIP_STYLE = "TooltipPopup";
 private static final int DEFAULT_OFFSET_X = 10;
 private static final int DEFAULT_OFFSET_Y = 35;
 private static class Tooltip extends PopupPanel {
   private int delay;
   public Tooltip(Widget sender, int offsetX, int offsetY, 
       final String text, final int delay, final String styleName) {
     super(true);
     this.delay = delay;
     HTML contents = new HTML(text);
     add(contents);
     int left = sender.getAbsoluteLeft() + offsetX;
     int top = sender.getAbsoluteTop() + offsetY;
     setPopupPosition(left, top);
     setStyleName(styleName);
   }
   public void show() {
     super.show();
     Timer t = new Timer() {
       public void run() {
         Tooltip.this.hide();
       }
     };
     t.schedule(delay);
   }
 }
 private Tooltip tooltip;
 private String text;
 private String styleName;
 private int delay;
 private int offsetX = DEFAULT_OFFSET_X;
 private int offsetY = DEFAULT_OFFSET_Y;
 public TooltipListener(String text, int delay) {
   this(text, delay, DEFAULT_TOOLTIP_STYLE);
 }
 public TooltipListener(String text, int delay, String styleName) {
   this.text = text;
   this.delay = delay;
   this.styleName = styleName;
 }
 public void onMouseEnter(Widget sender) {
   if (tooltip != null) {
     tooltip.hide();
   }
   tooltip = new Tooltip(sender, offsetX, offsetY, text, delay, styleName);
   tooltip.show();
 }
 public void onMouseLeave(Widget sender) {
   if (tooltip != null) {
     tooltip.hide();
   }
 }
 public String getStyleName() {
   return styleName;
 }
 public void setStyleName(String styleName) {
   this.styleName = styleName;
 }
 public int getOffsetX() {
   return offsetX;
 }
 public void setOffsetX(int offsetX) {
   this.offsetX = offsetX;
 }
 public int getOffsetY() {
   return offsetY;
 }
 public void setOffsetY(int offsetY) {
   this.offsetY = offsetY;
 }

}

      </source>