1
我有一个自己的小部件,它模拟多选列表框。 它将有一个复选框列表。如何处理自定义gwt小部件的单击事件
public class MultiListBox extends Composite implements IsWidget
{
private static MultiListBoxUiBinder uiBinder = GWT
.create(MultiListBoxUiBinder.class);
interface MultiListBoxUiBinder extends
UiBinder<Widget, MultiListBox> {
}
public MultiListBox() {
initWidget(uiBinder.createAndBindUi(this));
}
@UiField ScrollPanel scrollPanel;
@UiField FlowPanel flowPanel;
private final List<CheckBox> checkboxes = new ArrayList<CheckBox>();
private final List<String> selectedValues = new ArrayList<String>();
@Override
public void addItem(final String value, final String text){
final CheckBox checkbox = new CheckBox(text);
checkbox.setFormValue(value);
checkbox.addClickHandler(new ClickHandler()
{
public void onClick(final ClickEvent event)
{
final CheckBox chkbox = (CheckBox)event.getSource();
if(chkbox.getValue())
{
selectedValues.add(value);
}
else
{
selectedValues.remove(value);
}
}
});
flowPanel.add(checkbox);
checkboxes.add(checkbox);
}
@Override
public List<String> getSelectedValues(){
return selectedValues;
}
@Override
public void clear() {
checkboxes.clear();
selectedValues.clear();
flowPanel.clear();
}
@Override
public int getItemCount() {
return checkboxes.size();
}
}
我在我的观点一样
<my:MultiListBox ui:field="myList"></my:MultiListBox>
耗时现在这个样子,我想在我看来,创建这个“myList中”领域的onClick处理程序一样
@UiHandler("myList")
void onMyListCliced(ClickEvent e) {
//TODO: handle it
}
能
人请指导如何实现它。
问候, SREE
非常感谢你的答复... – Sree
非常感谢你的答复......我加入了以下方法MY MultiListBox.java class'code” \t @覆盖 \t公共HandlerRegistration addClickHandler(clickHandler事件处理程序){ \t \t return this.addHandler(handler,ClickEvent.getType()); \t} 和处理的Clickevent \t @UiHandler( “专业”) \t无效onSpecialtyChange(ClickEvent E){ \t} 但是,我进入这个方法,当我在短声的插件的复选框。 复选框将被动态添加。 – Sree
我不认为我现在明白你的问题。你在哪里添加了'onSpecialtyChange(ClickEvent e)'? – jusio