0

ListEditorはチルレンのリストの編集を許可するために使用し、いくつかの例で見たのと同じようにすべてを行います。例との唯一の違いは、子を編集するウィジェットをいくつかのタブとして追加することTabLayoutPanelです。

問題は、この新しいタブにヘッダーを付けたいのですが、このヘッダーは一定ではなく、新しく作成されたサブエディターによって編集されているオブジェクトに依存しているため (ヘッダーを にします)、メソッドchild.getName()内ではわかりません。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()ですか? ヘルプ/回避策をいただければ幸いです。

4

2 に答える 2

0

私のために働いたのは、合格tabPanelindex、新しく作成されChildPanel()、それを作ることでしたValueAwareEditor。それから私は与えられたで参照にsetValue()ヘッダーを設定していました。tabPanelindex

于 2012-05-06T06:45:29.117 に答える
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>ん!

于 2012-05-05T21:58:13.427 に答える