`
sunway
  • 浏览: 114742 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

RCP PackageExplorer里不能显示工程图片的问题解决

阅读更多
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工程详解** RCP(Rich Client Platform)是Eclipse框架提供的一种应用程序开发平台,全称为富客户端平台。它允许开发者构建功能丰富的桌面应用程序,同时利用了Java的跨平台特性,使得应用可以在多种操作系统...

    eclipse RCP mp3工程

    【标题】"eclipse RCP mp3工程"指的是一个基于Eclipse Rich Client Platform(RCP)构建的专门处理MP3音频文件的应用程序。Eclipse RCP是一个强大的开发框架,允许开发者创建桌面应用,它提供了丰富的用户界面组件和...

    导入RCP工程SuperCRM遇到的bug问题解决方案

    ECLIPSE+SWTJFACE核心应用 附有案例的源代码光盘Eclipse+SWT+JFace核心应用光盘,其中工程SuperCRM是一个比较完整的介绍RCP应用的项目,但是在真正运行该工程时,却存在许多bug问题,本人通过调试解决了上述问题,...

    RCP 产品介绍图片

    【RCP产品介绍图片】是针对RCP(Rich Client Platform)技术的一种视觉呈现方式,它通过图像化的形式向用户展示了RCP平台的核心特性和应用场景。RCP是Eclipse基金会推出的一种构建桌面应用的框架,其全称为富客户端...

    RCP,RCP开发

    **RCP(Rich Client Platform)与OSGI详解** **RCP概述** RCP,全称为Rich Client Platform,是由Eclipse基金会开发的一种软件框架,...在实际项目中,理解并熟练运用RCP和OSGI技术,能大大提高开发效率和软件质量。

    Eclipse RCP工程包(内附抽取的场景重现)

    这个工程包“Eclipse RCP工程包(内附抽取的场景重现)”显然包含了用于演示或重现特定问题的示例代码,可能是针对Eclipse RCP开发者在开发过程中遇到的问题。虽然具体的描述链接已经失效,但我们可以根据Eclipse ...

    在RCP中显示JFreeChart报表

    在本文中,我们将深入探讨如何在Eclipse Rich Client Platform (RCP)应用程序中集成和显示JFreeChart报表。JFreeChart是一个强大的Java库,用于创建各种图表类型,如折线图、柱状图、饼图等,而RCP是Eclipse框架的一...

    RCP弹出日期控件

    在IT领域,特别是软件开发中,RCP(Rich Client Platform)是一种基于Eclipse框架的应用程序开发模型,它允许开发者创建功能丰富的桌面应用程序。RCP弹出日期控件是这种环境中用于用户界面交互的一个重要组件,它...

    eclipse RCP 数独工程

    【标题】:“eclipse RCP 数独工程” 这个标题揭示了一个基于Eclipse Rich Client Platform (RCP) 的项目,它是一个实现数独游戏的应用程序。Eclipse RCP 是一个用于构建桌面应用程序的框架,它提供了丰富的用户...

    RCP 视图显示GEF图

    用视图显示在GEF编辑器编辑好的图形 在视图里加入GraphicalViewer viewer = new ScrollingGraphicalViewer(); viewer.createControl(parent);

    RCP 创建plugin frament project

    它们之间的关系是,Fragment工程作为HOST工程的一部分,可以在不修改原始HOST工程源码的情况下,提供额外的功能或修复问题。 **创建FRAGMENT工程的步骤:** 1. **Modify the Host package Manifest settings**: ...

    RCP 嵌入Google map(rcp执行JavaScrit方法,解决打包后路径问题)

    本文将深入探讨如何在RCP应用中实现这一功能,以及如何解决打包后JavaScript方法调用及资源路径的问题。 首先,集成Google Maps通常涉及到以下几个步骤: 1. 获取API密钥:在Google Cloud Console中创建一个新的...

    RCP在线升级,RCP在线升级

    RCP在线升级是指在不卸载原有版本的情况下,通过网络更新来安装RCP应用的新版本,以确保用户始终能够使用最新功能并获得安全补丁。本文将详细介绍RCP在线升级的过程和相关技术。 首先,理解RCP升级的基础架构是至关...

    RCP项目导出exe 步骤

    RCP导出EXE 老大难问题。 RCp 程序导出步骤,保证能够导出~

    RCP工程转成RAP,并在浏览器中运行

    本文主要介绍如何将一个基于Eclipse RCP(Rich Client Platform)的工程转换为可以在浏览器中运行的RAP(Rapid Application Platform)工程。RCP和RAP都是Eclipse基金会开发的框架,前者用于构建桌面应用程序,后者...

    Eclipse RCP Common Navigator Demo

    在Eclipse RCP中,Common Navigator Framework (CNF) 是一个关键组件,它提供了一种灵活的方式来展示资源树结构,类似于Eclipse IDE中的“Package Explorer”或“Project Explorer”。"Eclipse RCP Common Navigator...

    RCP开发之TableViewer 列的显示与隐藏

    RCP开发比Table更高级的TableViewer的使用。实现列的隐藏与显示

    Eclipse RCP

    5. **视图(View)**和**编辑器(Editor)**:视图是显示特定信息或功能的UI组件,如项目浏览器、问题视图等。编辑器则是用来编辑文件或数据的组件,如Java源代码编辑器。 6. **服务(Service)**:Eclipse RCP提供...

Global site tag (gtag.js) - Google Analytics