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>
처럼 내보기에이 소비하고, 나는
@UiHandler("myList")
void onMyListCliced(ClickEvent e) {
//TODO: handle it
}
수있는 사람처럼 내보기에이 "myList에"필드에 온 클릭 핸들러를 만들고 싶었 달성 방법을 안내하십시오.
감사합니다, 스리
내가 내 MultiListBox.java의 class'code ' \t @Override \t 공공 HandlerRegistration addClickHandler (경우 clickHandler 처리기에 아래의 방법을 추가 ... – Sree
가 답장을 너무 감사 ... 회신 주셔서 너무 감사) { \t \t this.addHandler (핸들러, ClickEvent.getType());을 반환합니다. \t} 와는 Clickevent \t @UiHandler ("특별") \t 무효 onSpecialtyChange (ClickEvent 전자) { \t} 그러나 나는 위젯의 체크 박스를 CLIK 때,이 방법으로 얻을 해달라고을 취급했다. 확인란이 동적으로 추가됩니다. – Sree
나는 지금 당신의 문제가 무엇인지 이해하지 못한다고 생각합니다. 어디에서 onSpecialtyChange (ClickEvent e)를 추가 했습니까? – jusio