Ленивые и Задержанные вопросы о TreeViewer

Существует что-то вроде учебного руководства (с - по-видимому - работающий код, который можно усилить), в CodeProject.

единственная вещь, которой необходимо немного остерегаться, состоит в том, что "совершенно нормально" для файла WAV состоять из нескольких блоков - таким образом, необходимо подвинуться весь файл, чтобы гарантировать, что все блоки составляются.

9
задан flavio.donze 31 March 2016 в 21:24
поделиться

1 ответ

Я считаю, что структура Eclipse иногда шизофренична. Я подозреваю, что DeferredTreeContentManager , поскольку он связан с ILazyTreeContentProvider , является одним из таких случаев.

В другом примере, в EclipseCon в прошлом году они рекомендовали вам использовать фабрики адаптеров (IAdapterFactory ), чтобы адаптировать ваши модели к контексту привязки, необходимому в данный момент. Например, если вы хотите, чтобы ваша модель отображалась в дереве, сделайте это следующим образом.

treeViewer = new TreeViewer(parent, SWT.BORDER);
IAdapterFactory adapterFactory = new AdapterFactory();
Platform.getAdapterManager().registerAdapters(adapterFactory, SomePojo.class);
treeViewer.setLabelProvider(new WorkbenchLabelProvider());
treeViewer.setContentProvider(new BaseWorkbenchContentProvider());

Зарегистрируйте свой адаптер, и BaseWorkbenchContentProvider найдет адаптацию на заводе. Замечательно. Звучит как план.

«О, кстати, когда у вас есть большие наборы данных, сделайте это так», - говорят они:

TableViewertableViewer = new TableViewer(parent, SWT.VIRTUAL);
// skipping the noise
tableViewer.setItemCount(100000);
tableViewer.setContentProvider(new LazyContentProvider());
tableViewer.setLabelProvider(new TableLabelProvider());
tableViewer.setUseHashlookup(true);
tableViewer.setInput(null);

Оказывается, первый и второй примеры не только несовместимы, но и взаимоисключающие. Эти два подхода, вероятно, реализованы разными командами, у которых не было общего плана, или, возможно, API находится в середине перехода к общей структуре. Тем не менее, вы сами по себе.

11
ответ дан 3 November 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: