注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

隐龙 为了一生的信念

今日默默沉于水,他日飞腾在九天...

 
 
 

日志

 
 

Eclipse插件扩展FacetProject  

2017-04-18 18:40:10|  分类: Eclipse SWT/JFac |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
eclipse插件可以根据基于facetedProject扩展实现自定义新建web工程。
扩展需要依赖org.eclipse.wst.common.project.facet.core和org.eclipse.wst.common.project.facet.ui两个包

1、扩展工程向导
向导继承于BasicFacetedProjectWizard,BasicFacetedProjectWizard向导自带四个页面,分别是
first.page-工程名及地址信息
FacetsSelectionPage-工程Facets
JavaFaceteInstallPage-源文件夹及build路径
WebFaceteInstallPage-context及content名称,默认为WebContent

若不需要这些页面中的信息,覆盖addPages()方法即可

2.扩展Preset
preset为FacetsSelectionPage页面中选择的内容,即为定义工程的功能,若想要新建向导中包含自定义的功能选项,可根据facetedProject提供的对应的扩展点扩展这部分内容
       point="org.eclipse.wst.common.project.facet.core.presets">
   
          id="atom.preset">
       
             class="com.atom.studio.project.AtomProjectPresetFactory">
       
   
 

AtomProjectPresetFactory中定义新的PresetDefinition
package com.atom.studio.project;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.wst.common.project.facet.core.IFacetedProjectBase;
import org.eclipse.wst.common.project.facet.core.IPresetFactory;
import org.eclipse.wst.common.project.facet.core.IProjectFacet;
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
import org.eclipse.wst.common.project.facet.core.PresetDefinition;
import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;

public class AtomProjectPresetFactory implements IPresetFactory {

@Override
public PresetDefinition createPreset(String presetName, Map context) throws CoreException {
IFacetedProjectBase fproj = (IFacetedProjectBase) context.get("CONTEXT_KEY_FACETED_PROJECT");
Set atomFacets = new HashSet();
Set facets = ProjectFacetsManager.getProjectFacets();
// facets.
Iterator it = facets.iterator();
while(it.hasNext()){
IProjectFacet pf = it.next();
if("java".equals(pf.getId()) || "jst.web".equals(pf.getId()) || "wst.jsdt.web".equals(pf.getId())){
atomFacets.add(pf.getDefaultVersion());
}
}
return new PresetDefinition("Atom Preset", "Atom Project default preset", atomFacets);
}

}

在新建向导的FacetsSelectionPage页面的下拉列表中就可以看到自定义的Preset了。
  评论这张
 
阅读(60)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017