wangzhengjiang
unread,Aug 14, 2008, 7:11:05 AM8/14/08Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Google Web Toolkit
I wrote code for Label to catch double click event:
the code as below
package com.thg.srp.gwt.client;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.ChangeListener;
import com.google.gwt.user.client.ui.ChangeListenerCollection;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.SourcesChangeEvents;
public class LabelCatchDoubleClick extends Label implements
SourcesChangeEvents {
private ChangeListenerCollection changeListeners;
public LabelCatchDoubleClick(){
super();
this.sinkEvents(Event.ONDBLCLICK);
}
public void onBrowserEvent(Event event) {
super.onBrowserEvent(event);
int type = DOM.eventGetType(event);
switch (type) {
case Event.ONDBLCLICK: {
if (changeListeners != null) {
changeListeners.fireChange(this);
}
break;
}
}
}
public void addChangeListener(ChangeListener arg0) {
if (changeListeners == null)
changeListeners = new ChangeListenerCollection();
changeListeners.add(arg0);
}
public void removeChangeListener(ChangeListener arg0) {
if (changeListeners != null)
changeListeners.remove(arg0);
}
}
for testing, using following class.
package com.thg.srp.gwt.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.ChangeListener;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
public class GWTTest implements EntryPoint {
LabelCatchDoubleClick lcdc=new LabelCatchDoubleClick();
public void onModuleLoad() {
FlexTable ft = new FlexTable();
lcdc.setText("testing");
ft.setWidget(0,0,lcdc);
lcdc.addChangeListener(new ChangeListener() {
public void onChange(Widget arg0) {
Window.alert("Double click "+lcdc.getText());
}
});
RootPanel rootpanel = RootPanel.get();
rootpanel.add(ft);
}
}
Maybe you can use same method, basically extends the class you want to
use, then catching the double click event and fire change event when
user double click.