RCP 插件动态刷新视图中的图片

原创 2015年11月19日 17:23:37

写一个视图,里面放置一个label,设置图片


public class PlotView extends ViewPart {

	public static final String ID = "com.ccnt.miner.view.plot"; //$NON-NLS-1$
	
	private Label label;
	public PlotView() {
		// TODO Auto-generated constructor stub
	}

	@Override
	public void createPartControl(Composite parent) {
		// TODO Auto-generated method stub
		Composite composite = new Composite(parent, SWT.NONE);  // 不带边框
		composite.setLayout(new GridLayout(1, false));
		label = new Label(composite, SWT.FILL);
		label.setImage(Activator.getImage("icons/arrowup.gif"));
		label.setLayoutData(new GridData(GridData.FILL_BOTH));
	}

	@Override
	public void setFocus() {
		// TODO Auto-generated method stub

	}

	public void updateImage(String imagepath)
	{
//		label.setImage(Activator.getImage(imagepath));
		label.setImage(SWTResourceManager.getImage(imagepath));
//		label.setImage(SWTResourceManager.getImage("d://a.png"));//用<span style="font-family: Arial, Helvetica, sans-serif;">SWTResourceManager 可以加载任意路径下的图片如C盘,D盘,</span><span style="font-family: Arial, Helvetica, sans-serif;">Activator只能加载工程下的图片</span><span style="font-family: Arial, Helvetica, sans-serif;">
</span>

	}
}

打开图片的Action操作

//值打开一个plot视图 
		try { 
				IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
				IViewPart vPart =	page.showView(PlotView.ID); 
			    
				((PlotView)vPart).updateImage("d://icons/a.png") ;//调用视图的更新方法,用于更新视图内的表数据    
				
			          
			    } catch (PartInitException e) { 
			      // handle exception 
		   } 

打开多个视图

		//打开多个plot视图
	 try { 
			Random rand = new Random();
			int instanceNum = rand.nextInt(100);
			
			System.out.println("instanceNum:" + instanceNum);
			IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
			IViewPart vPart =	page.showView(PlotView.ID, Integer.toString(instanceNum), IWorkbenchPage.VIEW_ACTIVATE); 
		    
			((PlotView)vPart).updateImage(imgpath) ;//调用视图的更新方法,用于更新视图内的表数据    
			
			instanceNum++; 
		          
	    } catch (PartInitException e) { 
	      // handle exception 
	    } 		
plugin.xml中设置 添加allowMultiple

 <view
            allowMultiple="true"
            class="com.ccnt.miner.view.PlotView"
            id="com.ccnt.miner.view.plot"
            name="Plot"
            restorable="true">
      </view>

SWTResourceManager.jar 包下载:http://download.csdn.net/detail/luoww1/9283305



版权声明:本文为博主原创文章,未经博主允许不得转载。

Eclipse RCP中多线程Job以及UIJob使用

引用:http://hi.baidu.com/zzcache/blog/item/b5caae6416a8eff9f6365473.html 本文分析了Eclipse中多线程程序的实现,讨论...

RCP 透视图页面布局

1、在透视图java代码中布局 2、在pluins.xml配置文件中布局

EclipseRCP开发之动态的加入视图

需求如题,解决如下:一、1.首先在Perspective类的public void createInitialLayout(IPageLayout layout)方法中将你需要动态加载的视图指定在固定...

rcp 界面刷新

最近有不少的事情,没有坚持写博客,今晚心还是没有静下来,不过还是把一些这段时间的工作和学习的经验写下来与大家分享。 最近在使用eclipse的rcp作为平台在做一些工具类的应用。其中有一些就...

SWT开发--自定义图片按钮的实现

最近开发RCP控件,需要页面较为美观,虽然使用SWT/JF有点

一个实现了ViewPart和EditorPart的简单RCP例子

这儿结合一个实例来更进一步的了解RCP的一些原理,怎样开发rcp程序,以及在初学RCP时会遇到哪些问题。示例开发时环境:------eclipse3.2 ------jdk1.5.0_08 首...

SWT Browser(内嵌浏览器)

browser浏览器swtbuttonurlstring 原文地址:http://blog.csdn.net/hemingwang0902/article/details/4405310 ...
  • luoww1
  • luoww1
  • 2013年11月12日 09:36
  • 4340

JAVA下OLE对象使用

在一个视图中包含一个Active X控件需要两个对象的支持,即一个OleFrame和一个OleClientSite对象。如果需要创建一个OLE应用,需要先后创建他们。创建OleFrame对象比较简单,...

rcp(插件开发)通过代码获取当前选择的视图ID

这个方法挺好的,在大家为未知视图渴望的时候,可以通过此方法实现对视图ID的获取, 进而可以定位插件。 具体如下: import org.eclipse.swt.widgets.Composite...
  • soszou
  • soszou
  • 2012年09月19日 17:46
  • 2316

rcp(插件开发)org.eclipse.ui.menus-可以添加在视图上

以下是eclipse help中的内容   org.eclipse.ui.menus Commands can be implemented using org.eclipse.ui.han...
  • soszou
  • soszou
  • 2012年11月08日 10:29
  • 4012
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RCP 插件动态刷新视图中的图片
举报原因:
原因补充:

(最多只允许输入30个字)