Android项目的对象类
问题描述:
我正在研究Android的Eclipse插件。为了使插件如果选择的文件夹是一个项目,我在插件清单添加Android项目的对象类
org.eclipse.core.resources.IProject
为对象类控制才可见。但是,这使得控件对于任何Eclipse项目都可见。是否有可能让插件仅对Android项目可见?我没有找到像IAndroidProject这样的界面。
答
这不会通过接口或“instanceof”测试来完成。您需要利用Eclipe的“自然”概念。
基本上,您需要调用“IProject.getNature()”并检查它是否返回“null”(不是Android项目)或实际的IProjectNature实例。如果我没有记错,Android项目的ID本质是com.android.ide.eclipse.adt.AndroidNature
。
编辑:请注意,如果你想通过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>
答
只需添加下面你给出的标签的plugin.xml:
<filter name="projectNature" value="com.android.ide.eclipse.adt.AndroidNature"> </filter>
这使得魔术。
感谢您的宝贵信息。你尽力回答你的问题。但我无法这样做。但后来我搜索了我的问题,发现了这一点。我只是添加了标签 其中有诀窍。这工作正常。可以吗?或者这是做错的方式? –
做同样的事情通常有多种方式,基本的想法是指向你的“自然”,因为它是你所需要的;然后我只给了你在plugin.xml的一些地方给出的例子......但是根据扩展点,它不是通过我在这里突出显示的语法的_always_。如果你找到了适合你的方式,那就是好方法:)。 – Kellindil