Класс объекта для проекта Android - PullRequest
1 голос
/ 24 ноября 2011

Я работаю над плагином Eclipse для Android.Чтобы сделать элементы управления плагином видимыми, только если выбранная папка является проектом, я добавил

org.eclipse.core.resources.IProject

в качестве класса объекта в манифесте плагина.Однако это делает элементы управления видимыми для любого проекта Eclipse.Есть ли возможность сделать плагин видимым только для проектов Android?Я не нашел такой интерфейс, как IAndroidProject.

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

Это не будет сделано с помощью интерфейсов или тестов "instanceof". Вы должны использовать концепцию Eclipe «природа».

По сути, вам нужно вызвать «IProject.getNature ()» и проверить, возвращает ли это «null» (не проект Android) или фактический экземпляр IProjectNature. Если я правильно помню, идентификатор для проектов Android является com.android.ide.eclipse.adt.AndroidNature.

Edit: Обратите внимание, что если вы пытаетесь достичь этого с помощью объявлений plugin.xml («когда» или «enabledWhen» или тому подобное), вам нужно иметь «и», содержащий оба:

  • проверка «instanceof» для org.eclipse.core.resources.IProject и
  • тест org.eclipse.core.resources.projectNature, который проверяет вышеупомянутую строку.

Это дает что-то вроде:

<and>
    <instanceof value="org.eclipse.core.resources.IProject"/>
    <test
        property="org.eclipse.core.resources.projectNature"
        value="com.android.ide.eclipse.adt.AndroidNature">
    </test>
</and>
0 голосов
/ 26 декабря 2011

Просто добавьте тег, указанный ниже, к вам plugin.xml:

<filter name="projectNature" value="com.android.ide.eclipse.adt.AndroidNature"> </filter>

Создает магию.

...