import java.net.URL;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart;
import org.eclipse.jface.action.GroupMarker;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.application.IActionBarConfigurer;
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
import org.eclipse.ui.application.WorkbenchAdvisor;
import org.eclipse.ui.application.WorkbenchWindowAdvisor;
import org.eclipse.ui.internal.ide.model.WorkbenchAdapterBuilder;
import org.eclipse.ui.internal.intro.impl.util.ImageUtil;
import org.eclipse.ui.views.navigator.ResourceNavigator;
import org.osgi.framework.Bundle;
public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
@Override
public void postStartup() {
// TODO Auto-generated method stub
try {
IWorkbenchPage activePage = this.getWorkbenchConfigurer().getWorkbench().getActiveWorkbenchWindow().getActivePage();
IViewPart view = activePage.showView("org.eclipse.jdt.ui.PackageExplorer");
PackageExplorerPart packageExplorer = ((PackageExplorerPart)view);
packageExplorer.getTreeViewer().setLabelProvider(new PackageExplorerLabelProvider());
} catch (PartInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
super.postStartup();
}
class PackageExplorerLabelProvider extends LabelProvider{
@Override
public Image getImage(Object element) {
// TODO Auto-generated method stub
Image image = null;
String text = element.toString();
System.out.println(text);
final Bundle bundle = Platform.getBundle("pluginid");
final URL url = bundle.getEntry("icons/full/eview16/projects.gif");
final URL wfUrl = bundle.getEntry("icons/wfeditor.gif");
// image = ImageDescriptor.createFromURL(url).createImage();
if(text.startsWith("P/",0)){
image = ImageDescriptor.createFromURL(url).createImage();
}
if(text.startsWith("L/",0)){
image = ImageDescriptor.createFromURL(wfUrl).createImage();
}
return image;
}
@Override
public String getText(Object element) {
// TODO Auto-generated method stub
String text = element.toString();
text = text.substring(2,text.length());
int pos = text.indexOf("/");
if(pos == -1){
return text;
}else{
if(text.endsWith(".project")){
return "Your name";
}else{
text = text.substring(pos+1,text.length());
}
}
return text;
}
}
}
注意要在rcp插件的dependencies里加入org.eclipse.jdt.ui依赖才行,否则PackageExplorerPart packageExplorer = ((PackageExplorerPart)view);不能引用到。
分享到:
相关推荐
**RCP工程详解** RCP(Rich Client Platform)是Eclipse框架提供的一种应用程序开发平台,全称为富客户端平台。它允许开发者构建功能丰富的桌面应用程序,同时利用了Java的跨平台特性,使得应用可以在多种操作系统...
【标题】"eclipse RCP mp3工程"指的是一个基于Eclipse Rich Client Platform(RCP)构建的专门处理MP3音频文件的应用程序。Eclipse RCP是一个强大的开发框架,允许开发者创建桌面应用,它提供了丰富的用户界面组件和...
ECLIPSE+SWTJFACE核心应用 附有案例的源代码光盘Eclipse+SWT+JFace核心应用光盘,其中工程SuperCRM是一个比较完整的介绍RCP应用的项目,但是在真正运行该工程时,却存在许多bug问题,本人通过调试解决了上述问题,...
【RCP产品介绍图片】是针对RCP(Rich Client Platform)技术的一种视觉呈现方式,它通过图像化的形式向用户展示了RCP平台的核心特性和应用场景。RCP是Eclipse基金会推出的一种构建桌面应用的框架,其全称为富客户端...
**RCP(Rich Client Platform)与OSGI详解** **RCP概述** RCP,全称为Rich Client Platform,是由Eclipse基金会开发的一种软件框架,...在实际项目中,理解并熟练运用RCP和OSGI技术,能大大提高开发效率和软件质量。
这个工程包“Eclipse RCP工程包(内附抽取的场景重现)”显然包含了用于演示或重现特定问题的示例代码,可能是针对Eclipse RCP开发者在开发过程中遇到的问题。虽然具体的描述链接已经失效,但我们可以根据Eclipse ...
在本文中,我们将深入探讨如何在Eclipse Rich Client Platform (RCP)应用程序中集成和显示JFreeChart报表。JFreeChart是一个强大的Java库,用于创建各种图表类型,如折线图、柱状图、饼图等,而RCP是Eclipse框架的一...
在IT领域,特别是软件开发中,RCP(Rich Client Platform)是一种基于Eclipse框架的应用程序开发模型,它允许开发者创建功能丰富的桌面应用程序。RCP弹出日期控件是这种环境中用于用户界面交互的一个重要组件,它...
【标题】:“eclipse RCP 数独工程” 这个标题揭示了一个基于Eclipse Rich Client Platform (RCP) 的项目,它是一个实现数独游戏的应用程序。Eclipse RCP 是一个用于构建桌面应用程序的框架,它提供了丰富的用户...
用视图显示在GEF编辑器编辑好的图形 在视图里加入GraphicalViewer viewer = new ScrollingGraphicalViewer(); viewer.createControl(parent);
它们之间的关系是,Fragment工程作为HOST工程的一部分,可以在不修改原始HOST工程源码的情况下,提供额外的功能或修复问题。 **创建FRAGMENT工程的步骤:** 1. **Modify the Host package Manifest settings**: ...
本文将深入探讨如何在RCP应用中实现这一功能,以及如何解决打包后JavaScript方法调用及资源路径的问题。 首先,集成Google Maps通常涉及到以下几个步骤: 1. 获取API密钥:在Google Cloud Console中创建一个新的...
RCP在线升级是指在不卸载原有版本的情况下,通过网络更新来安装RCP应用的新版本,以确保用户始终能够使用最新功能并获得安全补丁。本文将详细介绍RCP在线升级的过程和相关技术。 首先,理解RCP升级的基础架构是至关...
RCP导出EXE 老大难问题。 RCp 程序导出步骤,保证能够导出~
本文主要介绍如何将一个基于Eclipse RCP(Rich Client Platform)的工程转换为可以在浏览器中运行的RAP(Rapid Application Platform)工程。RCP和RAP都是Eclipse基金会开发的框架,前者用于构建桌面应用程序,后者...
在Eclipse RCP中,Common Navigator Framework (CNF) 是一个关键组件,它提供了一种灵活的方式来展示资源树结构,类似于Eclipse IDE中的“Package Explorer”或“Project Explorer”。"Eclipse RCP Common Navigator...
RCP开发比Table更高级的TableViewer的使用。实现列的隐藏与显示
5. **视图(View)**和**编辑器(Editor)**:视图是显示特定信息或功能的UI组件,如项目浏览器、问题视图等。编辑器则是用来编辑文件或数据的组件,如Java源代码编辑器。 6. **服务(Service)**:Eclipse RCP提供...