下面列出了org.eclipse.core.runtime.jobs.Job#addJobChangeListener ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void runInJob(DiagramFileStore diagramFileStore, DeployProcessOperation deployOperation) {
Job deployJob = new Job(String.format(Messages.deployingProcessesFrom, diagramFileStore.getName())) {
@Override
protected IStatus run(IProgressMonitor monitor) {
return deployOperation.run(monitor);
}
};
deployJob.addJobChangeListener(new JobChangeAdapter() {
@Override
public void done(IJobChangeEvent event) {
Display.getDefault().syncExec(() -> displayDeployResult(event.getResult()));
}
});
deployJob.setUser(true);
deployJob.schedule();
}
private void insertEntry ( final String value )
{
final Job job = this.factoryInput.createCreateJob ( value );
job.addJobChangeListener ( new JobChangeAdapter () {
@Override
public void done ( final IJobChangeEvent event )
{
refresh ();
}
} );
job.schedule ();
}
public void syncLog() throws ADBException {
if (!logListenning) {
ScriptingConsole.getInstance().clear();
ScriptLogger.logError("开启日志监听...");
logListenning = true;
Job startADBJob = new Job("Start ADB log") {
protected IStatus run(IProgressMonitor monitor) {
if (isStarted) {
try {
ADBCmdProcessor.callProcess(new ADBCommand(
ADBCommand.CMD_TYPE_LOGCAT));
logListenning = true;
} catch (ADBException e) {
e.printStackTrace();
logListenning = false;
//throw adbEx;
}
}
return Status.OK_STATUS;
}
};
startADBJob.setSystem(true);
startADBJob.schedule(500L);
startADBJob.addJobChangeListener(new JobChangeAdapter() {
public void done(IJobChangeEvent event) {
if (event.getResult().isOK()) {
ScriptLogger.logError("\u65AD\u5F00\u8FDE\u63A5...");
logListenning = false;
}
}
});
}
}
/**
* schedule a meta file reader job to check if there are updates
*/
private void executeUpdateJob() {
Job readMetaFileJob = new UpdateMetaFileReaderJob(updateManager);
readMetaFileJob.schedule();
readMetaFileJob.addJobChangeListener(
new UpdateMetaFileReaderJobListener(updateManager, ActiveTab.UPDATE_FEATURES, true));
}
@Override
public Object execute(ExecutionEvent arg0) throws ExecutionException {
Job updateJob = new UpdateCheckerJob(updateManager);
updateJob.schedule();
updateJob.addJobChangeListener(new UpdateCheckerJobListener(
updateManager, ActiveTab.UPDATE_FEATURES, false));
try {
PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getActivePage().showView(IProgressConstants.PROGRESS_VIEW_ID);
} catch (PartInitException e) {
log.error(e);
}
return null;
}
@Override
public Object execute(ExecutionEvent arg0) throws ExecutionException {
Job updateJob = new UpdateCheckerJob(updateManager);
updateJob.schedule();
updateJob.addJobChangeListener(new UpdateCheckerJobListener(
updateManager, ActiveTab.ALL_FEATURES, false));
try {
PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getActivePage().showView(IProgressConstants.PROGRESS_VIEW_ID);
} catch (PartInitException e) {
log.error(e);
}
return null;
}
@Override
public void modelDirtyStateChanged(IStructuredModel model, boolean isDirty) {
if (!isDirty) {
synchronized (this) {
final HybridProject project = getProject();
final IDOMModel domModel = (IDOMModel) model;
Job updatePlugins = new Job(
"Synchronize project " + project.getProject().getName() + " with config.xml") {
@Override
protected IStatus run(IProgressMonitor monitor) {
if (project.getProject().exists()) {
reloadEditableWidget();
Widget newWidget = load(domModel.getDocument());
syncEngines(project, newWidget, monitor);
syncPlugins(project, newWidget, monitor);
}
return Status.OK_STATUS;
}
};
updatePlugins.addJobChangeListener(new JobChangeAdapter() {
@Override
public void done(IJobChangeEvent event) {
lastWidget.reload(domModel.getDocument().getDocumentElement());
reloadEditableWidget();
readonlyWidget = null;
readonlyTimestamp = -1;
}
});
ISchedulingRule rule = ResourcesPlugin.getWorkspace().getRuleFactory().modifyRule(project.getProject());
updatePlugins.setRule(rule);
updatePlugins.schedule();
}
}
}
public void checkIDEUpdate() {
if (isFinished) {
Display.getDefault().syncExec(new Runnable() {
public void run() {
MessageDialog.openInformation(null,
Messages.TIPINFORMATION, Messages.UPDATEINFO);
}
});
return;
}
if (!isUpdate) {
isUpdate = true;
Job job = new WorkspaceJob("check out") {
@Override
public IStatus runInWorkspace(IProgressMonitor monitor)
throws CoreException {
IDEUpdateModel model = null;
try {
model = getIDEUpdate();
} catch (JSONException e) {
return Status.CANCEL_STATUS;
}
if (model == null || oUpdateUrl == null
&& iUpdateUrl == null && aUpdateUrl == null
&& bUpdateUrl == null) {
if (!isAuto) {
Display.getDefault().syncExec(new Runnable() {
public void run() {
MessageDialog.openInformation(null,
Messages.TIPINFORMATION,
Messages.LATESTVERSION);
}
});
}
return Status.OK_STATUS;
}
if (dialog == null) {
dialog = new IDEUpdateDialog(null, model,
CheckUpateManager.this);
}
dialog.setModel(model);
if ("1".equals(basic_updateType)||"1".equals(third_updateType)) {
IDEUpdate();
} else {
Display.getDefault().syncExec(new Runnable() {
public void run() {
dialog.open();
}
});
}
return Status.OK_STATUS;
}
};
job.schedule(100L);
job.addJobChangeListener(new JobChangeAdapter() {
public void done(IJobChangeEvent event) {
isUpdate = false;
}
});
}
}
private void runUpdateMetaFileReaderJob() {
Job readMetaFileJob = new UpdateMetaFileReaderJob(updateManager);
readMetaFileJob.schedule();
readMetaFileJob.addJobChangeListener(
new UpdateMetaFileReaderJobListener(updateManager, ActiveTab.UPDATE_FEATURES, true));
}