2008年2月24日星期日

maven 打包指定路径

在maven中,如何打包jar文件到指定目录?

sample,在pom.xml文件build部分中增加下面一行即可:

<build>

<directory>E:/eclipse/3.3/workspace/qualityone-rcp/lib</directory>

</build>

2008年2月23日星期六

RCP,Eclipse中UI程序的线程

类MyAction:

public class MyAction implements IRunnableWithProgress {

@Override
public void run(IProgressMonitor monitor) throws InvocationTargetException,
InterruptedException {
MyJob myJob = new MyJob("My Job ");
myJob
.addJobChangeListener(new MyJobChangeAdapter(Display
.getCurrent()));
myJob.setUser(true);
myJob.schedule();
monitor.subTask("Scheduled sending for recipient: ");
}

class MyJob extends Job {

public MyJob(String name) {
super(name);
}

@Override
protected IStatus run(IProgressMonitor monitor) {
try {
System.out.println("发呆中...");
Thread.sleep(15000);// 模拟一个需要10秒的工作
} catch (InterruptedException e) {
e.printStackTrace();
}
return Status.OK_STATUS;
}

}

class MyJobChangeAdapter extends JobChangeAdapter {

private final Display display;

/**
* @param display
*/
public MyJobChangeAdapter(Display display) {
super();
this.display = display;
}

/*
* (non-Javadoc)
*
* @see org.eclipse.core.runtime.jobs.JobChangeAdapter#done(org.eclipse.core.runtime.jobs.IJobChangeEvent)
*/
@Override
public void done(final IJobChangeEvent event) {
display.asyncExec(new Runnable() {
public void run() {
IStatus iStatus = event.getResult();
String errorMessage = iStatus.getMessage();

Shell shell = display.getActiveShell();
if (IStatus.OK == iStatus.getCode())
MessageDialog.openInformation(shell, event.getJob()
.getName(), "Mail Sent Successfully");
else
MessageDialog.openError(shell, "Error sending mail",
errorMessage);
}
});
}

}
}

测试类:ThreadTest

public class ThreadTest {

/**
* @param args
*/
public static void main(String[] args) {

final Display display = new Display();
Shell shell = new Shell(display);
shell.setSize(600, 400);
shell.setLayout(new FillLayout());

MyAction myAction = new MyAction ();
ProgressMonitorDialog progressMonitorDialog = new ProgressMonitorDialog (Display.getCurrent().getActiveShell() );

boolean separateThread = false;
boolean cancelable = true;
try {
progressMonitorDialog.run (separateThread, cancelable, myAction);
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}

display.dispose();


}

}

2008年2月18日星期一

RCP开发:如何在产品发布关于对话框中换行

在RCP开发完后,需要产品发布,如何提供在产品"关于"对话框中输入多行数据呢?

由于"关于"对话框中的数据是保存在plugin.xml里,XML是不支持回车换行的,找了个RCP的例子.发现在plugin.xml文件里换行符号用转义符代替(如下图所示)即可.

2008年2月1日星期五

免费eclipse国际化插件

eclipse的国际化插件,免费的哦.

可到 http://www.guh-software.de/jinto.html 下载

最新版本为
JInto 0.10.9 ZIP Archiv (for Eclipse 3.1.x und 3.2.x)
JInto 0.11.0 ZIP Archiv (for Eclipse 3.3.x)