如何以编程方式定义WizardNewFileCreationPage中的项目资源管理器将显示的项目类型

时间:2016-06-13 14:49:39

标签: eclipse wizard project-explorer

我正在开发一个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

在此链接中找到:SS

我假设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();

这对我想要的东西有用吗?或者是使用扩展点的情况?

提前感谢您的回答。

1 个答案:

答案 0 :(得分:0)

没有办法做到这一点。

虽然WizardNewFileCreationPage中显示的树看起来与项目浏览器类似,但它并不基于该代码。

用于显示树的代码是org.eclipse.ui.internal.ide.misc.ContainerSelectionGroup,它本身包含在org.eclipse.ui.internal.ide.misc.ResourceAndContainerGroup中。这些类不支持太多自定义,并且在任何情况下都无法在WizardNewFileCreationPage之外访问。