2014-06-12 4 views
1

nameColumn이있는 테이블이 있습니다.왜 "mouseover".equals (event.getType())가 GWT 헤더에서 인식되지 않습니까?

Header<String> nameColumnHeader = new Header<String>(new ClickableTextCell()) { 
     @Override 
     public String getValue() { 
      return "Name"; 
     } 

     @Override 
     public final void onBrowserEvent(Context context, Element elem, NativeEvent event) { 
     if ("mouseover".equals(event.getType())) { 
      // 
      meaningMessagesPopup.show(); 
     } 
     else if("mouseout".equals(event.getType())){ 
      meaningMessagesPopup.hide(); 
     } 
     } 
    }; 
table.addColumn(nameColumn, nameColumnHeader); 

을하지만 GWT는 "mouseover".equals(event.getType())

은 당신이하는 방법을 알아 인식하지 않은 것 :

나는 사용자가 nameColumn의 제목을 마우스 오버 할 때 내가 시도하는 방법을

를 실행할 것이라고합니다 GWT 헤더의 MOUSEOVER 이벤트? 내가 답을 발견

+0

GWT.log 추가 ("이벤트 :"+ event.getType()); onBrowserEvent() 메서드에 전달합니다. 이벤트가 캡처 된 것을 보시겠습니까? "mouseover"이벤트가 보이십니까? –

+0

System.out.println (event.getType()); 칼럼의 제목을 클릭 할 때 "클릭"을 표시하지만, 마우스 오버시 아무 것도 표시하지 않습니다. – Tum

답변

2

, 즉 AbstractCell 다음

 private class HeaderCell extends AbstractCell<String> { 

      private String text; 

      public HeaderCell(String text) { 
       /* 
       * Let the parent class know that our cell responds to click events and 
       * keydown events. 
       */ 
       //super("click", "keydown"); 
       super("mouseover"); 
       this.text=text; 

      } 

      @Override 
      public void onBrowserEvent(Context context, Element parent, String value, 
       NativeEvent event, ValueUpdater<String> valueUpdater) { 
       // Check that the value is not null. 
       if (value == null) { 
       return; 
       } 

       // Call the super handler, which handlers the enter key. 
       super.onBrowserEvent(context, parent, value, event, valueUpdater); 


       if ("mouseover".equals(event.getType())) { 
        SafeHtmlBuilder sb=new SafeHtmlBuilder(); 
        sb.appendHtmlConstant("<b>"); 


        sb.appendHtmlConstant("<font color=\"blue\">"); 
        sb.appendEscaped(text); 
        sb.appendHtmlConstant("</font></b>"); 

        meaningMessagesPopup.setWidget(new HTML(sb.toSafeHtml())); 


        int left = event.getClientX() -140; 
        int top = event.getClientY() +30; 
        meaningMessagesPopup.setPopupPosition(left, top); 

         // Show the popup 
        meaningMessagesPopup.show(); 
       } 
       else if ("mouseout".equals(event.getType())) { 
        meaningMessagesPopup.hide(); 
       } 
      } 

      @Override 
      public void render(Context context, String value, SafeHtmlBuilder sb) { 
       /* 
       * Always do a null check on the value. Cell widgets can pass null to 
       * cells if the underlying data contains a null, or if the data arrives 
       * out of order. 
       */ 
       if (value == null) { 
       return; 
       } 

       sb.appendEscaped(value); 
      } 


     } 

를 확장하는 CustomCell를 만드는 것입니다

Header<String> nameColumnHeader = new Header<String>(new HeaderCell("my Text...")) { 
        @Override 
        public String getValue() { 
         return "Name"; 
        } 
    }; 
    table.addColumn(nameColumn, nameColumnHeader);