2015-03-27 1 views
0

У меня есть список из трех GWT FlowPanels, который содержит две кнопки, каждый в Ui вяжущего:Как получить индекс списка прослушанного элемента списка?

<g:FlowPanel> 

    <g:FlowPanel> 
    <g:FocusPanel ui:field="buttonA1">...</g:FocusPanel> 
    <g:FocusPanel ui:field="buttonB1">...</g:FocusPanel> 
    </g:FlowPanel> 

    <g:FlowPanel> 
    <g:FocusPanel ui:field="buttonA2">...</g:FocusPanel> 
    <g:FocusPanel ui:field="buttonB2">...</g:FocusPanel> 
    </g:FlowPanel> 

    <g:FlowPanel> 
    <g:FocusPanel ui:field="buttonA3">...</g:FocusPanel> 
    <g:FocusPanel ui:field="buttonB3">...</g:FocusPanel> 
    </g:FlowPanel> 

</g:FlowPanel> 

ButtonA1, ButtonA2, ButtonA3 поделиться с ClickHandler. ButtonB1, ButtonB2, ButtonB3 совместно используют ClickHandler.

Здесь ClickHandler для кнопок A:

ClickHandler clickA = new ClickHandler() { 

    @Override 
    public void onClick(ClickEvent event) { 

    } 
}); 

Если одна из кнопок A или B щелкают, как я знаю, внутри обработчика щелчка, который один из трех FlowPanel групп пострадавших?

ответ

0

Вы можете оценить источник события. Это должна быть кнопка, если вы добавили обработчик кликов к этим.

кнопка имеет имя, а кнопки elementId также могут быть оценены, и последнее, но не в последнюю очередь, источник кнопку сам, так как вы добавили поля к кнопкам, вы можете попросить идентичности между thebuttons

if(ev.getSource() instanceof Button) { 
    if(buttonA == (Button)ev.getSource()) ...; 
... 

Другой обычный шаблон - это избежать того, что нажата кнопка, и дать каждому клиенту обработчик кликов.

@UiHandler("buttonA") 
protected void onButtonA(ClickEvent ev) { 
    .... 

@UiHandler("buttonB") 
protected void onButtonB(ClickEvent ev) { 
    .... 

При создании кнопки динамически, вы можете добавить обработчик динамически:

buttonA.addClickHandler(new ClickEventHandler() { ... 
    implement the interface in place 
0

Share пользовательский интерфейс Обработчики между кнопками и для определения родительского виджета

// АКЦИЮ обработчики щелчков между кнопками

@UiHandler ({"buttonA1", "buttonA2", "buttonA3"})
недействительным OnClick (ClickEvent е) {
// определить, какая кнопка нажата

Window.alert (((Button) e.getSource()) GetText().);

//determine the parent widget 
Widget w=(Button)e.getSource()).getParent();  
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^