17a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luopackage autotest.common.ui; 27a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo 37a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luoimport com.google.gwt.event.dom.client.MouseOverHandler; 47a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luoimport com.google.gwt.event.dom.client.MouseOverEvent; 57a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luoimport com.google.gwt.event.dom.client.MouseOutHandler; 67a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luoimport com.google.gwt.event.dom.client.MouseOutEvent; 77a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luoimport com.google.gwt.user.client.Window; 87a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luoimport com.google.gwt.user.client.ui.Label; 97a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luoimport com.google.gwt.user.client.ui.PopupPanel; 107a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo 117a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luopublic class ToolTip extends Label implements MouseOverHandler, MouseOutHandler { 127a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo protected PopupPanel popup; 137a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo protected final int LEFT_OFFSET = 20; 147a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo protected final int TOP_OFFSET = -20; 157a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo 167a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo public ToolTip(String labelMessage, String toolTipMessage) { 177a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo super(labelMessage); 187a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo popup = new PopupPanel(); 197a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo setStyleName("tooltip_label"); 207a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo popup.setStyleName("tooltip"); 217a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo popup.add(new Label(toolTipMessage)); 227a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo addMouseOverHandler(this); 237a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo addMouseOutHandler(this); 247a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo } 257a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo 267a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo public void showAtWindow(int left, int top) { 277a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo popup.setPopupPosition(left + Window.getScrollLeft() + LEFT_OFFSET, 287a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo top + Window.getScrollTop() + TOP_OFFSET); 297a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo popup.show(); 307a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo } 317a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo 327a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo public void hide() { 337a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo popup.hide(); 347a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo } 357a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo 367a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo public void onMouseOver(MouseOverEvent event) { 377a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo showAtWindow(event.getClientX(), event.getClientY()); 387a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo } 397a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo 407a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo public void onMouseOut(MouseOutEvent event) { 417a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo hide(); 427a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo } 437a776a607e84e5101818142f67cae3d81c18dcd0Jiaxi Luo} 44