RCP 为action添加操作进度条

public class StartAction extends BaseAction {

private Shell shell;
private ProgressMonitorDialog pmd;

public StartAction(TableViewer tableViewer, Shell shell) {
}

@Override
public void run() {

shell.getDisplay().asyncExec(new Runnable() {

@Override
public void run() {
try {
// TODO Auto-generated method stub
pmd.run(true, true, new StartRunningOperation(
StartAction.this));
} catch (InvocationTargetException e) {
} catch (InterruptedException e) {
}
}
});

}

}

/**
* @author zhz
*
*/
class StartRunningOperation implements IRunnableWithProgress {
// The increment sleep time
private static final int INCREMENT = 500;
private StartAction startAction;

/**
* 进度控制
*
* @param startAction
*
*/
public StartRunningOperation(StartAction startAction) {
this.startAction = startAction;
startAction.setText("子系统启动中.....");
startAction.setDescription("执行进度");
}

/**
* Runs the long running operation
*
* @param monitor
* the progress monitor
*/
public void run(final IProgressMonitor monitor)
throws InvocationTargetException, InterruptedException {
monitor.beginTask("启动中...", IProgressMonitor.UNKNOWN);
monitor.subTask("正在远程启动...");
// Thread.sleep(INCREMENT);
monitor.worked(INCREMENT);
//添加操作的内容
monitor.subTask("操作完成!");
monitor.done();
}
}

你可能感兴趣的:(action,RCP)