2016-12-14 3 views
0

Я разрабатываю плагин IDE с Eclipse на работе и нуждаюсь в создании пользовательской функции импорта, которая добавляет существующий проект в дерево Project Explorer БЕЗ копирования файлов в рабочее пространство. В идеале пользователь сможет импортировать существующий проект в Дерево проводника проекта, предоставив программе каталог проекта с помощью специализированного мастера импорта. Я могу получить доступ к дереву Project Explorer с помощью jface AbstractTreeViewer, но у меня возникают трудности с добавлением к нему функции «add()». В частности, я не уверен, какую информацию мне нужно предоставить в поля parentElementOrTreePath и childElement.Eclipse: Добавить в Project Explorer Tree Viewer Programatically

Код настоящее время я работаю с таким образом:

final IWorkbenchPart activePart = getActivePart(); 
    if (activePart != null && activePart instanceof IPackagesViewPart) { 
     AbstractTreeViewer tree = ((IPackagesViewPart) activePart).getTreeViewer(); 
     tree.add(parentElementOrTreePath, childElement); 
    } 
+0

Код вроде этого просто не работает. Средство просмотра дерева будет использовать контент-провайдер, и многие действия будут обновлять представление от поставщика, теряя все сделанные вами изменения. Кроме того, IPackagesViewPart представляет собой представление Проводника пакетов, а не представление Project Explorer. –

+0

О, моя ошибка, я перепутал их, но идея такая же. Что-то вроде этого невозможно в Eclipse? –

ответ

0

код как это просто не будет работать. Средство просмотра дерева будет использовать контент-провайдер, и многие действия будут обновлять представление от поставщика, теряя все сделанные вами изменения. Также IPackagesViewPart - это представление Проводника пакетов, а не представление Project Explorer.

Вы можете добавлять только к таким представлениям, используя соответствующие интерфейсы и точки расширения, которые обеспечивает Eclipse. Вы не можете просто попытаться взломать вещи. Вы не сможете получить вещи, которые не находятся в рабочей области, чтобы показывать в представлении «Пакеты/Проект» - все эти представления ожидают правильные объекты рабочего пространства.

Для создания ссылок на объекты за пределами рабочей области можно использовать методы IFolder.createLink и IFile.createLink.

+0

А я пробовал использовать createLink раньше, но безрезультатно, я попробую начать снова с этого момента. Я очень ценю ответ, так как я не на 100% уверен, что Eclipse может/не может сделать. –

Смежные вопросы