-
Notifications
You must be signed in to change notification settings - Fork 0
SWT
kumattau edited this page Mar 28, 2016
·
4 revisions
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);
}
-
redraw … 次回再描画するようにマークする
-
update … 再描画する (完了するまでブロック)
-
layout … 子要素のサイズや位置を調整する (結果、再描画されるかもしれない)
再描画時にPaintListener#paintControl(PaintEvent e)が呼び出される。
|
Note
|
Note: Layout is different from painting. If a child is moved or resized such that an area in the parent is exposed, then the parent will paint. If no child is affected, the parent will not paint. |
選択状態を公開するインタフェース。リスナをきちんと実装しないと通知されないので注意。
-
setSelection
-
getSelection
-
addSelectionChangeListener
-
removeSelecitonChangeListener
getAdaptor で問い合わせに必要なオブジェクトを返却する。