Я очень долго работал над ответами здесь и множеством других ответов и обнаружил, что наконец-то у меня появилось то, что я должен был сделать цикл Java Reflection для изучения структуры класса и интерфейса выбора из дерева в дереве. навигатор. Цикл интроспекции класса находится в своем последнем месте покоя, но изначально был намного ближе к вершине метода execute.
у плагин Eclipse, который будет отображать пункт меню в контекстном меню для проекта Java. Я написал plugin.xml следующим образом:
<plugin>
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="popup:org.eclipse.jdt.ui.PackageExplorer">
<dynamic
class="uk.co.dajohnston.plugin.classpathswitcher.menu.MenuContribution"
id="uk.co.dajohnston.plugin.classpathSwitcher.switchMenuContribution">
<visibleWhen>
<with
variable="activeMenuSelection">
<iterate>
<adapt
type="org.eclipse.jdt.core.IJavaProject">
</adapt>
</iterate>
<count
value="1">
</count>
</with>
</visibleWhen>
</dynamic>
</menuContribution>
</extension>
</plugin>
Поэтому я сейчас пытаюсь написатьMenuContribution
класс, который расширяетсяCompoundContributionItem
так что я могу создать динамическое меню, и его содержимое будет основано на наборе файлов, которые существуют в корневом каталоге проекта Java. Но я застрял, пытаясь получить путь к корневому каталогу изнутриgetContributionItems
метод.
Основываясь на файле plugin.xml, я могу быть уверен, что метод будет вызываться только в том случае, если выбран один проект Java, поэтому все, что мне нужно сделать, это получить текущий выбор и затем получить его абсолютный путь. Есть идеи? Или есть лучший способ сделать это?