Skip to content
kumattau edited this page Mar 28, 2016 · 4 revisions

SWT/JFace

SWT Graphic and AWT Graphic2D Mappings

ILazyTreeContentProvider

updateElementからupdateChildCount(child, -1)を呼び出すと、 childが表示されたタイミングでその子要素まで作成される。 childの子要素の作成を子要素が表示されるまで遅延させる場合、 代わりに viewer.setHasChildren(child, <true or false>)を 呼び出して、展開可否のみ更新しておく。

@Override
public void updateChildCount(Object element, int currentChildCount) {

    int length = 0;
    if (element instanceof IntermediateNode) {
        IntermediateNode node = (IntermediateNode) element;
        length =  node.children.length;
    }
    if(element == elements)
        length = elements.length;
    viewer.setChildCount(element, length);


}

@Override
public void updateElement(Object parent, int index) {

    Object element;
    if (parent instanceof IntermediateNode)
        element = ((IntermediateNode) parent).children[index];

    else
        element =  elements[index];
    viewer.replace(parent, index, element);
    updateChildCount(element, -1);
}

Clone this wiki locally