好久没有写blog了。好象只要一放假,我就没有心情写blog,大概是现在太忙了吧:P
现在在bstek做实习生,看现在的情况来看的话,我可能做研发,这是我最有兴趣的,我想研发
应该是所有喜欢编程的朋友最喜欢的事了吧。做自己的事,总是不会觉得累;相反,如果是做自己
没有兴趣的或者枯燥乏味的工作,每天晚上睡10个小时白天都会犯困。
还有一个好消息,我们经理把他以前用的笔记本给我用,可以带回家的。感觉太爽了。。。
这个星期是在编程中度过的,好久没有写代码了,有点手生,但是还是完成了任务:)
技术笔记:
昨天写了一段代码,不过老是出错,是这样子的:
一、错误代码:
List list = logic.getChildren();
for (Iterator iterator = list.iterator(); iterator.hasNext();){
A a = (A)iterator().next();
if(aIsUseFul){
doXXX(a);
continue;
}
iterator.remove(a); //throw Exception!!!
}
看来遍历一个List时,不能对它进行remove或add。呵呵,写在这里,记下来。
二、TreeView选择对象类型的判断:
还有就是jface中的TreeView:
它的getSelection方法返回的IStructuredSelection并不是我们的model,而是一个
数据集合,所以用它的类型来和model比较是不会一样的。
可以这样写:
IStructuredSelection selection= (IStructuredSelection)viewer.getSelection();
if (selection.size() == 1) {
Object element= selection.getFirstElement();
if (element instanceof DataSet) {
((AddColumnAction)addColumnAction).setDataSet((DataSet)element);
addColumnAction.setEnabled(true);
}else
addColumnAction.setEnabled(false);
}
好久没写插件了,好多都忘了呵呵。
三、引入第三方包:
有一个比较重要的,就是在做eclipse插件时,如果引入第三方包的设置问题。
如果一般的包,用以前《RCP》里讲的方法,新建一个Plug-in from existing JAR就ok了。
但是如果是象log4j,commons包里的digester,这样做就不行了,会抛出许多
ClassNotFoundExceptions 和 NoClassDefFoundErrors。因为它们用到了java的反射机制,
而它们的classloader不能访问到我们的类。
解决办法非常简单,eclipse 3.2的plugin.xml编辑器里就能搞定:
1.先在project属性里找到Java Build Path,在Libraries面板中加入第三方jar文件,然后在
Order and Export中选择这些包。
2.回到plugin.xml编辑器,在runtime面板中的Exported Package中添加所有包。
然后在右下角的Classpath中加入第三方jar文件就ok了。
四、解析xml文件
commons包中的digester包非常好用:P
这个星期写了个eclipse小插件,主要是通过UI来编辑xml配置文件。
发几张截图上来。
现在在bstek做实习生,看现在的情况来看的话,我可能做研发,这是我最有兴趣的,我想研发
应该是所有喜欢编程的朋友最喜欢的事了吧。做自己的事,总是不会觉得累;相反,如果是做自己
没有兴趣的或者枯燥乏味的工作,每天晚上睡10个小时白天都会犯困。
还有一个好消息,我们经理把他以前用的笔记本给我用,可以带回家的。感觉太爽了。。。
这个星期是在编程中度过的,好久没有写代码了,有点手生,但是还是完成了任务:)
技术笔记:
昨天写了一段代码,不过老是出错,是这样子的:
一、错误代码:
List list = logic.getChildren();
for (Iterator iterator = list.iterator(); iterator.hasNext();){
A a = (A)iterator().next();
if(aIsUseFul){
doXXX(a);
continue;
}
iterator.remove(a); //throw Exception!!!
}
看来遍历一个List时,不能对它进行remove或add。呵呵,写在这里,记下来。
二、TreeView选择对象类型的判断:
还有就是jface中的TreeView:
它的getSelection方法返回的IStructuredSelection并不是我们的model,而是一个
数据集合,所以用它的类型来和model比较是不会一样的。
可以这样写:
IStructuredSelection selection= (IStructuredSelection)viewer.getSelection();
if (selection.size() == 1) {
Object element= selection.getFirstElement();
if (element instanceof DataSet) {
((AddColumnAction)addColumnAction).setDataSet((DataSet)element);
addColumnAction.setEnabled(true);
}else
addColumnAction.setEnabled(false);
}
好久没写插件了,好多都忘了呵呵。
三、引入第三方包:
有一个比较重要的,就是在做eclipse插件时,如果引入第三方包的设置问题。
如果一般的包,用以前《RCP》里讲的方法,新建一个Plug-in from existing JAR就ok了。
但是如果是象log4j,commons包里的digester,这样做就不行了,会抛出许多
ClassNotFoundExceptions 和 NoClassDefFoundErrors。因为它们用到了java的反射机制,
而它们的classloader不能访问到我们的类。
解决办法非常简单,eclipse 3.2的plugin.xml编辑器里就能搞定:
1.先在project属性里找到Java Build Path,在Libraries面板中加入第三方jar文件,然后在
Order and Export中选择这些包。
2.回到plugin.xml编辑器,在runtime面板中的Exported Package中添加所有包。
然后在右下角的Classpath中加入第三方jar文件就ok了。
四、解析xml文件
commons包中的digester包非常好用:P
这个星期写了个eclipse小插件,主要是通过UI来编辑xml配置文件。
发几张截图上来。