2014-12-01 11 views
0

내 CellTable에 TextBox (TextInputCell)가있는 사용자 정의 헤더를 사용하고 싶습니다. 내 CellTable에 TextBox (TextInputCell)가있는 GWT 사용자 정의 헤더 -> onBrowserEvent를 재정의하는 방법?

나는이 예제를 발견하고 적응하려고 : GWT 2: how can I add Button to the CellTable's header?

public static class BtnHeader extends Header<String>{ 

public BtnHeader(ButtonCell cell) { 
    super(cell); 

} 
@Override 
    public void onBrowserEvent(Context context, Element elem, NativeEvent nativeEvent) 
    { 
     int eventType = Event.as(nativeEvent).getTypeInt(); 
     if (eventType == Event.ONCLICK) 
     { 
     nativeEvent.preventDefault(); 
     updateHeader(); 
     } 
    } 
@Override 
public String getValue() { 
    return "Click!"; 
} 
protected void updateHeader() { 
    // TODO to redefine in a defiant class 

} 

}

그리고 코드에서

:
tnHeader header = new BtnHeader(new ButtonCell()){ 
      @Override 
      protected void updateHeader(){ 
       // Actions when clicking button 
      } 

cTable.addColumn(column, header); 

가 어떻게 내 사용 사례에이를 적용 할 수

?

public class TextBoxHeader extends Header<String> { 

private String myCaption; 

public TextBoxHeader(TextInputCell cell, String caption) { 
    super(cell); 
    myCaption = caption; 
} 

@Override 
public String getValue() { 
    // TODO Auto-generated method stub 
    return myCaption; 
} 

protected void updateHeader() { 
    // TODO to redefine in a defiant class 
} 

}

onBrowserEvent와 전체 부분이 누락되었습니다

나는 다음 시도했다. 그것을 구현하는 방법? 설명서 ( http://www.gwtproject.org/javadoc/latest/com/google/gwt/cell/client/TextInputCell.html)는 onBrowserEvent가 보호되어 있지 않음을 보여줍니다. 지금 무엇을해야할까요?

건배, 팀

+0

당신은 당신의 헤더 onBrowserEvent' '@Override 공공 무효을 추가 할 수 있지만, 당신이 무엇을 기대합니까? –

+0

내 머리글에있는 TextInputField에 입력되는 이벤트에 반응하고 싶습니다. onBrowserEvent가 대답이라고 생각했습니다. 명백하게 나는 틀렸다. 이 작업을 수행하는 방법? – Tim

답변

0

좋아, 나는 해결책을 찾아 냈다. Header를 확장하는 대신 TextInputCell을 사용하여 Header에 넣습니다. 그런 다음 헤더에 ValueUpdater를 추가하고 입력 필드의 변경 사항에 대응할 수있었습니다.

 TextInputCell cell = new TextInputCell("Program"); 
    com.google.gwt.user.cellview.client.Header<String> header = new com.google.gwt.user.cellview.client.Header<String>(cell) { 

     @Override 
     public String getValue() { 
      // TODO Auto-generated method stub 
      return ""; 
     } 
    }; 

    header.setUpdater(new ValueUpdater<String>() { 

     @Override 
     public void update(String value) { 

     } 
    }); 

건배, 팀이