2012-05-05 4 views
0

나는 chilren의 목록을 편집 할 수 있도록 ListEditor을 사용하고 일부 예제에서 보았 듯이 모든 작업을 수행합니다. 예제와의 유일한 차이점은 하위를 편집하여 탭으로 추가되도록하려는 것입니다 일부 TabLayoutPanel목록 하위 편집기를 탭 패널에 추가

문제는이 새 탭에 머리글을 붙이고 싶지만이 머리글은 상수가 아니라 새로 만든 하위 편집기 (머리글이 child.getName())로 편집중인 개체에 따라 다릅니다. inside EditorSource#create() 방법.

ListEditor<ChildProxy, ChildPanel> children = ListEditor 
     .of(new EditorSource<ChildPanel>() { 

      @Override 
      public ChildPanel create(int index) { 
       ChildPanel tab = new ChildPanel(); 
       //here's a problem, how I can get tabHeader here? 
       tabPanel.add(tab,tabHeader); 
      } 

     }); 

어떻게 값에 의존하는 헤더 create() 만든 탭으로 설정할 수 있습니까? 어떤 도움/해결 방법이라도 대단히 감사하겠습니다.

답변

0

나를 위해 일한 것은 tabPanelindex을 새로 작성한 ChildPanel()에 전달하고 ValueAwareEditor으로 만드는 것입니다. 그런 다음 setValue()에 이라는 참조 번호가 지정된 index에 헤더를 설정하고있었습니다.

0

당신을 위해이 방법을 사용할 수 있습니까 :

public class ChildrenEditor extends Composite implements 
     IsEditor<ListEditor<Child, ChildInTabEditor>> { 


    ListEditor<Child, ChildInTabEditor> editor; 

    public ChildrenEditor() { 
     initWidget(uiBinder.createAndBindUi(this)); 
     editor = ListEditor.of(new ChildInTabEditorSource()); 
    } 


    private class ChildInTabEditorSource extends EditorSource<ChildInTabEditor> { 

      public ChildInTabEditor create(int index) { 
       ChildInTabEditor tab = new ChildInTabEditor(); 
       // here's the trick : 
       Child child = editor.getList().get(index); 
       tabPanel.add(tab,child.getTabTitle()); 
       return tab; 
      } 

     } 

    @Override 
    public ListEditor<Child, ChildInTabEditor> asEditor() { 
     return editor; 
    } 


} 

ChildInTabEditor도 다음 Editor<Child>를 구현하는 탭해야합니다!

+0

이상하지만'editor.getList()'는 null 인 것으로 보입니다 :-( –

+0

http://code.google.com/p/google-web-toolkit/source/browse/trunk /user/src/com/google/gwt/editor/client/adapters/ListEditor.java?r=9666#66.이'EditorSource # create()'의 첫 번째 호출은'list' 필드의 초기화 전에 완료된 것으로 보입니다 :(그러므로 나는'NullPointerException'을'create'에서이 목록에 접근하려고합니다 :(. –

+1

Ok, 내 잘못 .ChildInTabEditor를 ValueAwareEditor로 만들고 그 다음에 자신의 제목을 설정할 수 있습니까? – koma