How to use DeferredTreeContentManager? [message #502607] |
Wed, 09 December 2009 03:26 |
Philipp Kursawe Messages: 135 Registered: July 2009 |
Senior Member |
|
|
Hello,
I have sublassed it like this:
private class MyContentProvider extends DeferredTreeContentManager
implements ITreeContentProvider {
public MyContentProvider(final AbstractTreeViewer viewer) {
super(viewer, getSite());
}
public Object getParent(final Object element) {
return ((IWorkbenchAdapter) element).getParent(element);
}
public boolean hasChildren(final Object element) {
return element instanceof FolderModel;
}
public Object[] getElements(final Object inputElement) {
return getChildren(inputElement);
}
public void dispose() {
}
public void inputChanged(final Viewer viewer, final Object oldInput,
final Object newInput) {
viewer.getControl().setEnabled(newInput != null);
}
@Override
protected PendingUpdateAdapter createPendingUpdateAdapter() {
return new PendingUpdateAdapter() {
@Override
public String getLabel(final Object o) {
return "Loading...";
}
};
}
@Override
protected String getFetchJobName(final Object parent, final
IDeferredWorkbenchAdapter adapter) {
return NLS.bind("Loading {0}...", adapter.getLabel(parent));
}
}
Is this how its supposed to be used?
I am still not happy, that the PendingUpdate element is even shown. It
disturbs the tree. Also the update of the tree is now somehow more
fluent I would still prefer the UI not update so often but stay responsive.
Also the German translation of the default label for the
PendingUpdateAdapter and Job name are awful. I am going to change them
in the Babel project.
Thanks,
Phil
|
|
|
Powered by
FUDForum. Page generated in 0.03700 seconds