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

来源:互联网 发布:sql语句中的distinct 编辑:程序博客网 时间:2024/05/16 13:44

写一个视图,里面放置一个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}@Overridepublic void createPartControl(Composite parent) {// TODO Auto-generated method stubComposite 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));}@Overridepublic 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



1 0