我正在开发一个Eclipse插件项目,该项目实现了一个Import文件向导,该向导专为与自定义项目类型相关的文件而设计。其中一个向导的页面是 List<IProject> projectList = new LinkedList<IProject>();
try {
IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
IProject[] projects = workspaceRoot.getProjects();
for(int i = 0; i < projects.length; i++) {
IProject project = projects[i];
if(project.hasNature("com.example.www.myNature")) {
projectList.add(project);
}
}
}
catch(CoreException ce) {
ce.printStackTrace();
}
页面,其中显示了一个项目浏览器(据我所见)。此项目资源管理器显示工作区中可用的所有项目。但是,正如我所说,因为向导处理的文件对一个特定的项目类型很有用,我想限制资源管理器并只显示该自定义类型的项目。
我知道如何选择自定义类型的项目:
WizardNewFileCreationPage
我假设TreeViewer
类在幕后包含activePart
或类似内容。在任何情况下,如何在此向导页面中过滤项目资源管理器的内容?
我查看了以下问题:Get a list of all java projects open in an Eclipse workspace,但就我而言,org.eclipse.ui.navigator.resources.ProjectExplorer
变量的类型为
getTreeViewer()
没有createPartControl()
方法。它有一个public void createPartControl(Composite aParent);
方法:
$product = $event->getProduct();
$product_gift = $this->_initProduct($gift); // function returns product based on ID
$params = array(
'product' => $product_gift->getId(),
'qty' => 1
);
$request = new Varien_Object();
$request->setData($params);
$product_gift->addCustomOption('child_product', 1);
$cart->addProduct($product_gift, $request);
$cart->save();
这对我想要的东西有用吗?或者是使用扩展点的情况?
提前感谢您的回答。
答案 0 :(得分:0)
没有办法做到这一点。
虽然WizardNewFileCreationPage
中显示的树看起来与项目浏览器类似,但它并不基于该代码。
用于显示树的代码是org.eclipse.ui.internal.ide.misc.ContainerSelectionGroup
,它本身包含在org.eclipse.ui.internal.ide.misc.ResourceAndContainerGroup
中。这些类不支持太多自定义,并且在任何情况下都无法在WizardNewFileCreationPage
之外访问。