contrib: hyperlink with image

13 views
Skip to first unread message

sluramod

unread,
May 19, 2006, 1:18:01 PM5/19/06
to Google Web Toolkit
I think this class is missing from standard library: ImageHyperlink.
You can use Image class, but it is not focusable, whereas
ImageHyperlink is. Here is the source:

package com.alexs.a3.web.fund.client;

import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.Hyperlink;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.MouseListener;
import com.google.gwt.user.client.ui.MouseListenerCollection;
import com.google.gwt.user.client.ui.SourcesMouseEvents;

public class ImageHyperlink extends Hyperlink implements
SourcesMouseEvents {

private MouseListenerCollection mouseListeners;

public ImageHyperlink(Image img) {
this(img, "");
}

public ImageHyperlink(Image img, String targetHistoryToken) {
super();
DOM.appendChild(DOM.getFirstChild(getElement()), img.getElement());
setTargetHistoryToken(targetHistoryToken);

sinkEvents(Event.ONCLICK | Event.MOUSEEVENTS);
}

public void addMouseListener(MouseListener listener) {
if (mouseListeners == null)
mouseListeners = new MouseListenerCollection();
mouseListeners.add(listener);
}

public void removeMouseListener(MouseListener listener) {
if (mouseListeners != null)
mouseListeners.remove(listener);
}

public void onBrowserEvent(Event event) {
super.onBrowserEvent(event);
switch (DOM.eventGetType(event)) {
case Event.ONMOUSEDOWN:
case Event.ONMOUSEUP:
case Event.ONMOUSEMOVE:
case Event.ONMOUSEOVER:
case Event.ONMOUSEOUT: {
if (mouseListeners != null)
mouseListeners.fireMouseEvent(this, event);
break;
}
}
}
}

Alex

sluramod

unread,
May 24, 2006, 1:13:53 PM5/24/06
to Google Web Toolkit

vivmenon

unread,
May 25, 2006, 1:23:13 AM5/25/06
to Google Web Toolkit
Hi Alex, I am new to this. Could you show me a sample of how to use
this class for rollover effects?

vivmenon

unread,
Jun 6, 2006, 9:03:39 AM6/6/06
to Google Web Toolkit
Tried the above. What I noticed is the click listeners/ mouse listeners
are called twice. So if I write some action on the mouse down, the the
action is called twice

Reply all
Reply to author
Forward
0 new messages