2014-10-29 2 views
0

Я изучаю GWT последние пару месяцев и узнал, что Mvp - один из лучших способов разработки вашего проекта. Я прочитал учебник Google MVP part 1 , и в их учебнике они помещают clickHandlers (например) в презентаторе. Теперь у меня были проблемы с этим при построении большого класса представлений с множеством кнопок с одним и тем же идентификатором HTML, а затем пользователь взаимодействует с этими кнопками ... поэтому, если у меня есть одна кнопка для каждого вида, общая кнопка 6. и пользователь нажимает на одну из них, кнопка будет работать 6 раз для одного и того же объекта ... Итак, я прочитал и выяснил, что лучше поместить обработчики в класс представления и создать событие для ведущего.GWT Mvp и обработчики

Так что то, что я сделал:

Просмотр Класс:

  rb0.addClickHandler(new ClickHandler() { 

      @Override 
      public void onClick(ClickEvent event) { 

       selectHandler.onEvent(1); 
       System.out.print("rate 1"); 
      } 
     }); 
     rb1.addClickHandler(new ClickHandler() { 

       @Override 
       public void onClick(ClickEvent event) { 

        selectHandler.onEvent(2); 
        System.out.print("rate 2"); 
       } 
      }); 

     rb1.addClickHandler(new ClickHandler() { 

       @Override 
       public void onClick(ClickEvent event) { 

        selectHandler.onEvent(3); 
        System.out.print("rate 3"); 
       } 
      }); 

     rb1.addClickHandler(new ClickHandler() { 

       @Override 
       public void onClick(ClickEvent event) { 

        selectHandler.onEvent(4); 
        System.out.print("rate 4"); 
       } 
      }); 

     rb1.addClickHandler(new ClickHandler() { 

       @Override 
       public void onClick(ClickEvent event) { 

        selectHandler.onEvent(5); 
        System.out.print("rate 5"); 
       } 
      }); 

Presenter класс: (обработчик события)

private void bind() { 
     . 
     . 
     . 

     DoEvent selectHandler = new DoEvent(){ 
       public void onEvent(int select) { 
        fetchRating(select, user.getUserId()); 

       } 
      };  
      display.setSelectHandler(selectHandler); 

Призыв к Presenter с его точки зрения, это называется от класса MainPagePresenter:

 presenter = new AssetViewPresenter(rpcService,eventBus,new AssetView(),result.get(i)); 

теперь моя проблема в том, что когда я нажимаю кнопки в представлении, ничего не происходит ... как презентатор и представление не связаны, что может быть проблемой?

ответ

0

Извините, это была глупая ошибка ... моя кнопка rb0, rb1, rb2 ... и я скопировал обработчики кликов с тем же идентификатором кнопки !!! YUP Мне стыдно за себя

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