我有插件A,它通過org.eclipse.ui.exportWizard ExtensionPoint擴展了'導出嚮導'。 插件B依賴於插件A,是否可以將插件B中定義的WizardPages添加到插件A中? 我知道動態添加頁面可能與DynamicWizard和函數getNextPage具有相同的插件。擴展在插件A中定義的ExportWizard依賴插件
0
A
回答
1
一種方法是在插件A中定義一個擴展點「plugin_a_wizard_page」,並用插件B擴展它。這樣,插件A可以掃描擴展擴展點的插件並將所有這些添加到嚮導中。
你不得不看看巴迪級加載。簡而言之:PluginA必須定義一個Eclipse-BuddyPolicy: registered
的策略,而PluginB必須將自己註冊爲PluginA的好友。
參見:Eclipse RCP: ClassNotFoundException or How to make other bundle load my class
然後PluginA可以做以下循環:
IExtensionRegistry registry = Platform.getExtensionRegistry();
IConfigurationElement[] wizardContributions = extensionRegistry
.getConfigurationElementsFor(
"my.plugin",
"myExtensionPoint");
for (IConfigurationElement wizardContribution : wizardContributions) {
try {
IMyWizardContributionInterface listenerClass = (IContactsListener) wizardContribution.createExecutableExtension("class");
// User your class and add it to the wizard
} catch (final Exception e) {
e.printStackTrace();
}
}
0
是的,只要插件B在插件A的需求插件列表中(在插件A的清單中),那麼您可以在插件A中定義的任何擴展點訪問它。插件編輯器將幫助您這是因爲如果您指的是在嚮導擴展點無法訪問的類,它會給您一個警告。
相關問題
- 1. Eclipse插件:依賴關係和擴展之間的區別
- 2. Lazerycode jmeter maven插件Java擴展下載排除依賴關係
- 3. Firefox擴展插件?
- 4. 擴展cakephp插件
- 5. 擴展maven插件
- 6. maven從庫定義中排除項目依賴項的插件
- 7. Gradle中的自定義依賴關係管理插件
- 8. Flexforms在擴展插件不
- 9. 寫VS 2010插件/插件/擴展
- 10. Firefox插件vs.擴展與插件
- 11. 依賴檢查Maven插件
- 12. ClassLoader類依賴(插件)
- 13. Maven插件依賴關係
- 14. Maven2插件依賴關係
- 15. 調試eclipse插件依賴
- 16. Gradle插件依賴項(NoClassDefFoundError)
- 17. Grails插件依賴關係
- 18. mvn依賴插件和Hadoop
- 19. 插件依賴關係
- 20. struts2約定插件依賴關係
- 21. 在Typo3中創建自定義擴展或插件6.0.4
- 22. 爲沒有定義文件的JQuery插件擴展JQueryStatic
- 23. 擴展WordPress的插件類
- 24. 的Maven插件發佈和全局定義的依賴版本
- 25. pom.xml中的maven插件依賴範圍
- 26. 如何依賴Sonarqube插件中的log4j?
- 27. Maven插件中的依賴注入
- 28. Eclipse插件的依賴正在解決
- 29. 如何解決自定義Nutch插件的依賴關係?
- 30. 依賴擴展對象的任務的Gradle插件最佳實踐
我想保持插件插件B的獨立 我有監聽功能,它通知某些插件的使用b事件插件A中,因此我掃描了ExtensionRegistry。但插件B中的所需插件列表插件A使插件A的插件(插件B已取決於插件A) – 2009-12-14 09:40:24
感謝您的澄清(並對不起您的需求不正確地閱讀)。我認爲唯一的解決方案可能是擁有B和A所依賴的第三個插件,因爲據我所知,您無法在Eclipse中實現對插件的循環依賴。 – 2009-12-14 09:46:07