花开有时

花开有时,花落有时,来有时,去有时。不撕扯,只关切;不纪念,只牵挂;不感动,只明白;不寻找,只记得。
随笔 - 24, 文章 - 0, 评论 - 54, 引用 - 0
数据加载中……

2008年2月3日

在导出RCP时把插件打包成文件夹的形式而不是jar包

     摘要: 在使用RCP做项目时,最后的发布一般是用.product文件的Export wizard导出Product,但是导出的插件默认情况下都是以jar包的形式导出,而有的时候会有在项目中使用的第三方包不允许我们在导出的产品中进行发布,但可以允许用户自己下载后进行添加,因为jar包的形式是把所有依赖的jar包也一起打包成jar,因此jar的形式就不能达到我们发布的要求。在试过了很多方法后,我们觉得如果导出的形式改成文件夹的形式是可行的。因为一般来说,发布的插件都会有一个lib文件夹存放依赖的jar,如果我们在build.properties文件中设置不把依赖的lib下jar包发布,并且以文件夹的形式发布插件,让用户自己下载添加到lib文件夹里,这样就ok了。  阅读全文

posted @ 2008-12-02 11:18 花开有时 阅读(2996) | 评论 (3)编辑 收藏

JME研究群(42691979)建立!

    对JME感兴趣的同志请加入JME研究群(群号:42691979),大家一起研究,共同进步!

posted @ 2008-04-29 14:13 花开有时 阅读(1531) | 评论 (2)编辑 收藏

定义Eclipse Editor应该要注意的问题

1.Editor必须要设置icon,否则会出异常。
2.必须要重写EditorPart#init(IEditorSite site, IEditorInput input)方法,内容一般为
this.setSite(site);
this.setInput(input);
this.setPartName(input.getName());
否则会出异常。 3.自定义的EditorInput的以下方法的返回值不能为null:getName()、getToolTipText(),否则会出异常。

posted @ 2008-02-05 13:41 花开有时 阅读(451) | 评论 (0)编辑 收藏

如何自定义SWT Table的每一个Cell的height and width

demonstration code:
Display display = new Display();
Shell shell = new Shell(display);
shell.setBounds(10,10,200,250);
final Table table = new Table(shell, SWT.NONE);
table.setBounds(10,10,150,200);
table.setLinesVisible(true);
for (int i = 0; i < 5; i++) {
new TableItem(table, SWT.NONE).setText("item " + i);
}
table.addListener(SWT.MeasureItem, new Listener() { 
public void handleEvent(Event event) { 
int clientWidth = table.getClientArea().width;
event.height = event.gc.getFontMetrics().getHeight() * 2; 
event.width = clientWidth * 2; 
 } 
});  
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();

说明:黑体部分是关键,主要是要为table添加一个监听器并要用到SWT.MeasureItem属性,如果是在TableView下则需要调用TableView#getTable()方法获得Table再添加监听器。
还需要注意的是:
1)这个特性可能只在Eclipse3.2以上的版本中才有。
2)不能对单行(Item)进行height的设置。
3)如果设置了width,则column的width以它为准。
参考文章:[[1]]http://www.eclipse.org/articles/Article-CustomDrawingTableAndTreeItems/customDraw.htm#_tb10D

posted @ 2008-02-03 16:26 花开有时 阅读(2392) | 评论 (1)编辑 收藏

RCP开发--对PropertyView定义自己的排序器

在RCP开发中难免要使用要PropertyView对自己的一些Object进行属性描述,但是有时候需要对PropertyView (org.eclipse.ui.views.properties.PropertySheetPage)
进行自己的排序(PropertySheetPage有定义好的排序器),经研究发现PropertySheetPage并没有提供方法可以设置排序器,怎么办呢?
方法是实现一个自己的PropertySheetPage,因为在PropertySheetPage中实际上是提供了一个设置排序器的方法的,但是这个方法是受保护的(protected),
并不是公开的(public),所以我们需要实现自己的PropertySheetPage,而且还需要实现自己的排序器PropertySheetSorter。
1.实现自己的PropertySheetSorter:需要继承PropertySheetSorter类并实现sort(IPropertySheetEntry[] entries)方法,具体可以看父类的实现。
2.实现自己的PropertySheetPage:需要继承PropertySheetPage类并重写createControl(Composite parent)方法,
在方法中首先调用setSorter(自己定义的PropertySheetSorter类的对象),然后调用super.createControl(parent)方法。

posted @ 2008-02-03 15:52 花开有时 阅读(664) | 评论 (0)编辑 收藏

定义自己的CellEditor

     摘要: 定义自己的CellEditor其实不难,完整的实例可以看Eclipse的TextCellEditor与ComboBoxCellEditor(原理都差不多,但推荐看CmboboxCellEditor,它的实现简单些)  阅读全文

posted @ 2008-02-03 14:51 花开有时 阅读(3721) | 评论 (1)编辑 收藏