How to add double click event for ListBox?

390 views
Skip to first unread message

anuradh...@gmail.com

unread,
Aug 8, 2008, 8:39:15 AM8/8/08
to Google Web Toolkit
Hi,

I am using com.google.gwt.user.client.ui.ListBox of GWT 1.4.61.
I want to perform some operation on double click event of the List box
item.
So did anybody implemented this before?

Thanks in advance.
Anuradha Badve

wangzhengjiang

unread,
Aug 14, 2008, 7:11:05 AM8/14/08
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.



Reply all
Reply to author
Forward
0 new messages