分享
 
 
 

eclipse财务管理小插件

王朝java/jsp·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

说到就要做到,一晚上把插件搞定。因为主要部分的代码已经写好了,要做的不过是把它做成插件,所以一小时不到就弄的差不多了,没想到

后来出了两个小问题,很是烦人,浪费了不少,其实是很多很多时间...

第一个问题就是关于生成Image的问题,我开始想的是下面这个方法:

private ImageDescriptor getImageDescriptor(String relativePath) {

String iconPath = "icons/";

try {

ViewsPlugin plugin = ViewsPlugin.getDefault();

URL installURL = plugin.getDescriptor().getInstallURL();

URL url = new URL(installURL, iconPath + relativePath);

return ImageDescriptor.createFromURL(url);

}

catch (MalformedURLException e) {

// should not happen

return ImageDescriptor.getMissingImageDescriptor();

}

}

然后要用到某个图片只需要这样的代码就可以了:

deleteItemAction.setImageDescriptor(getImageDescriptor("delete.gif"));

我的编译器给出了警告,说.getDescriptor().getInstallURL()这两个方法都已经deprecated了,我不听,希望能这样运行通过,可是Viewer

就是出不来,没办法,我去网上查,在eclipseplugin网站上下了个小插件,那个作者也是这样弄的,郁闷...

最后只有查API了,既然这两个方法不行,那么对 AbstractUIPlugin这个类一定有好的新办法了,果然,我找到这个方法:

imageDescriptorFromPlugin

public static ImageDescriptor imageDescriptorFromPlugin(String pluginId,

String imageFilePath)Creates and returns a new image descriptor for

an image file located within the specified plug-in.

This is a convenience method that simply locates the image file in within the plug-in (no image registries are involved). The

path is relative to the root of the plug-in, and takes into account files coming from plug-in fragments. The path may include

$arg$ elements. However, the path must not have a leading "." or path separator. Clients should use a path like

"icons/mysample.gif" rather than "./icons/mysample.gif" or "/icons/mysample.gif".

Parameters:

pluginId - the id of the plug-in containing the image file; null is returned if the plug-in does not exist

imageFilePath - the relative path of the image file, relative to the root of the plug-in; the path must be legal

Returns:

an image descriptor, or null if no image could be found

Since:

3.0

在我的代码是这样用的:

private String FINANCE_PLUGIN_ID="starshus.csdn.blog.finance2";

public ImageDescriptor getImageDescriptor(String relativePath) {

String iconPath = "icons/";

try {

return FinancePlugin.imageDescriptorFromPlugin(FINANCE_PLUGIN_ID, iconPath+relativePath);

}

catch (Exception e) {

// should not happen

return ImageDescriptor.getMissingImageDescriptor();

}

}

调用图片的时候这样:

saveAction.setImageDescriptor(getImageDescriptor("save.gif"));

image的问题解决了.还有个问题是我在View的createPartControl()方法里生成一个TableTreeView后,直接自己设定layoutData,结果这个插件怎么都无法初始化...也花了不少时间来debug...

还有个小技巧,在写插件,如果要启动一个Dialog,往往需要向dialog里传入一个Shell,我找了不少时间才找到这个方法:

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();

不要忘记把org.eclise.ui放入build_path的:P

这个插件在3.0和3.1下运行都没有问题,把我的插件直接解压到eclipse的plugin目录,重启动eclipse就可以了.

打开这个View方法是:Window--> Show View--> other--> Finance --> Table View

是这个样子:

打开:

插件界面:

在eclipse里就是爽:P

插件下载地址:

http://rapidshare.de/files/9717855/Finance.zip.html

JUnit Plugin test的代码:

public class SomeTest extends TestCase {

/*

* @see TestCase#setUp()

*/

protected void setUp() throws Exception {

super.setUp();

}

/*

* @see TestCase#tearDown()

*/

protected void tearDown() throws Exception {

super.tearDown();

}

/**

* Constructor for SomeTest.

* @param name

*/

public SomeTest(String name) {

super(name);

}

private IWorkbenchPage getPage(){

IWorkbench workbench = PlatformUI.getWorkbench();

IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();

return window.getActivePage();

}

public void test()throws PartInitException{

//System.out.println(FinancePlugin.getDefault());

IViewPart view = getPage().showView("starshus.csdn.blog.finance.MyTableView");

getPage().hideView(view);

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有