org.eclipse.ui.preferences.IWorkbenchPreferenceContainer#registerUpdateJob ( )源码实例Demo

下面列出了org.eclipse.ui.preferences.IWorkbenchPreferenceContainer#registerUpdateJob ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: n4js   文件: N4JSBuilderPreferencePage.java
/**
 * This method has been copied from org.eclipse.xtext.builder.preferences.BuilderPreferencePage.
 */
private void scheduleCleanerJob(IPreferencePageContainer preferencePageContainer, String folderNameToClean) {
	DerivedResourceCleanerJob derivedResourceCleanerJob = cleanerProvider.get();
	derivedResourceCleanerJob.setUser(true);
	derivedResourceCleanerJob.initialize(getProject(), folderNameToClean);
	if (preferencePageContainer != null) {
		IWorkbenchPreferenceContainer container = (IWorkbenchPreferenceContainer) getContainer();
		container.registerUpdateJob(derivedResourceCleanerJob);
	} else {
		derivedResourceCleanerJob.schedule();
	}
}
 
源代码2 项目: n4js   文件: N4JSBuilderPreferencePage.java
/**
 * This method has been copied and adapted from org.eclipse.xtext.ui.preferences.OptionsConfigurationBlock.
 */
@Override
protected boolean processChanges(IWorkbenchPreferenceContainer container) {
	boolean needsBuild = !getPreferenceChanges().isEmpty() | projectSpecificChanged;
	boolean doBuild = false;
	if (needsBuild) {
		int count = getRebuildCount();
		if (count > rebuildCount) {
			needsBuild = false;
			rebuildCount = count;
		}
	}
	if (needsBuild) {
		String[] strings = getFullBuildDialogStrings(project == null);
		if (strings != null) {
			MessageDialog dialog = new MessageDialog(this.getShell(), strings[0], null, strings[1],
					MessageDialog.QUESTION,
					new String[] { IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL,
							IDialogConstants.CANCEL_LABEL },
					2);
			int res = dialog.open();
			if (res == 0) {
				doBuild = true;
			} else if (res != 1) {
				return false;
			}
		}
	}
	if (container != null) {
		if (doBuild) {
			incrementRebuildCount();
			container.registerUpdateJob(getBuildJob(getProject()));
		}
	} else {
		if (doBuild) {
			getBuildJob(getProject()).schedule();
		}
	}
	return true;
}
 
源代码3 项目: xtext-eclipse   文件: OptionsConfigurationBlock.java
protected boolean processChanges(IWorkbenchPreferenceContainer container) {
	boolean needsBuild = buildPreferenceEvaluator.isAffectingBuild(getPreferenceChanges());
	boolean doBuild = false;
	if (needsBuild) {
		int count = getRebuildCount();
		if (count > rebuildCount) {
			needsBuild = false;
			rebuildCount = count;
		}
	}
	if (needsBuild) {
		String[] strings = getFullBuildDialogStrings(project == null);
		if (strings != null) {
			MessageDialog dialog = new MessageDialog(shell, strings[0], null, strings[1], MessageDialog.QUESTION,
					new String[] { IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL,
							IDialogConstants.CANCEL_LABEL }, 2);
			int res = dialog.open();
			if (res == 0) {
				doBuild = true;
			} else if (res != 1) {
				return false;
			}
		}
	}
	savePreferences();
	if (container != null) {
		if (doBuild) {
			incrementRebuildCount();
			container.registerUpdateJob(getBuildJob(getProject()));
		}
	} else {
		if (doBuild) {
			getBuildJob(getProject()).schedule();
		}
	}
	captureOriginalSettings(keys);
	return true;
}
 
源代码4 项目: xtext-eclipse   文件: BuilderPreferencePage.java
private void scheduleCleanerJob(IPreferencePageContainer preferencePageContainer, String folderNameToClean) {
	DerivedResourceCleanerJob derivedResourceCleanerJob = cleanerProvider.get();
	derivedResourceCleanerJob.setUser(true);
	derivedResourceCleanerJob.initialize(getProject(), folderNameToClean);
	if (preferencePageContainer != null) {
		IWorkbenchPreferenceContainer container = (IWorkbenchPreferenceContainer) getContainer();
		container.registerUpdateJob(derivedResourceCleanerJob);
	} else {
		derivedResourceCleanerJob.schedule();
	}
}
 
protected boolean processChanges(IWorkbenchPreferenceContainer container) {
	IScopeContext currContext= fLookupOrder[0];


	List<Key> changedOptions= new ArrayList<Key>();
	boolean needsBuild= getChanges(currContext, changedOptions);
	if (changedOptions.isEmpty()) {
		return true;
	}
	if (needsBuild) {
		int count= getRebuildCount();
		if (count > fRebuildCount) {
			needsBuild= false; // build already requested
			fRebuildCount= count;
		}
	}

	boolean doBuild= false;
	if (needsBuild) {
		String[] strings= getFullBuildDialogStrings(fProject == null);
		if (strings != null) {
			if (ResourcesPlugin.getWorkspace().getRoot().getProjects().length == 0) {
				doBuild= true; // don't bother the user
			} else {
				MessageDialog dialog= new MessageDialog(getShell(), strings[0], null, strings[1], MessageDialog.QUESTION, new String[] { IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL, IDialogConstants.CANCEL_LABEL }, 2);
				int res= dialog.open();
				if (res == 0) {
					doBuild= true;
				} else if (res != 1) {
					return false; // cancel pressed
				}
			}
		}
	}
	if (container != null) {
		// no need to apply the changes to the original store: will be done by the page container
		if (doBuild) { // post build
			incrementRebuildCount();
			container.registerUpdateJob(CoreUtility.getBuildJob(fProject));
		}
	} else {
		// apply changes right away
		try {
			fManager.applyChanges();
		} catch (BackingStoreException e) {
			JavaPlugin.log(e);
			return false;
		}
		if (doBuild) {
			CoreUtility.getBuildJob(fProject).schedule();
		}

	}
	return true;
}