2014-10-29 6 views
0

저는 지난 몇 달간 GWT를 배웠고 Mvp가 프로젝트를 설계하는 가장 좋은 방법 중 하나임을 확인했습니다. Google의 자습서 MVP part 1 을 읽고 자습서에 clickHandlers (예 :)를 표현 자에 넣습니다. 이제 동일한 HTML ID를 가진 많은 버튼을 가진 많은 뷰 클래스를 구성한 다음 사용자가이 버튼과 상호 작용할 때 문제가 발생했습니다. 따라서 모든보기에 대해 하나의 버튼이 있으면 총 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"); 
       } 
      }); 

발표자 클래스 : (이벤트 핸들러)

private void bind() { 
     . 
     . 
     . 

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

       } 
      };  
      display.setSelectHandler(selectHandler); 

이보기가 호출되는 것와 발표자에 대한 호출 MainPagePresenter 클래스에서 :

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

이제 내 문제는보기에서 단추를 클릭해도 아무 것도 발생하지 않습니다 ... 발표자와보기가 연결되지 않은 것처럼 문제가 될 수 있습니까?

답변

0

미안하지만 ... 내 버튼은 rb0, rb1, rb2 ... 같은 버튼 ID로 클릭 핸들러를 복사했습니다. 나는 부끄럽다.