1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

apply setting in worksapce runnnable to reduce change notifications

This commit is contained in:
David Inglis 2003-09-25 17:05:47 +00:00
parent b06d6f62f6
commit 9bc3504cfd

View file

@ -13,6 +13,8 @@ import org.eclipse.cdt.ui.dialogs.AbstractCOptionPage;
import org.eclipse.cdt.ui.dialogs.ICOptionContainer;
import org.eclipse.cdt.utils.ui.controls.ControlFactory;
import org.eclipse.cdt.utils.ui.controls.RadioButtonsArea;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IWorkspaceRunnable;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
@ -223,7 +225,12 @@ public class SettingsBlock extends AbstractCOptionPage {
browse.setText(MakeUIPlugin.getResourceString(MAKE_BUILD_DIR_BROWSE));
browse.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
ContainerSelectionDialog dialog = new ContainerSelectionDialog(getShell(), getContainer().getProject(), true, "Selection Locations to build from.");
ContainerSelectionDialog dialog =
new ContainerSelectionDialog(
getShell(),
getContainer().getProject(),
true,
"Selection Locations to build from.");
if (dialog.open() == ContainerSelectionDialog.OK) {
Object[] selection = dialog.getResult();
if (selection.length > 0) {
@ -270,6 +277,10 @@ public class SettingsBlock extends AbstractCOptionPage {
if (monitor == null) {
monitor = new NullProgressMonitor();
}
IWorkspace workspace = MakeUIPlugin.getWorkspace();
// To avoid multi-build
IWorkspaceRunnable operation = new IWorkspaceRunnable() {
public void run(IProgressMonitor monitor) throws CoreException {
monitor.beginTask("Applying Settings...", 1);
IMakeBuilderInfo info;
if (getContainer().getProject() != null) {
@ -312,6 +323,9 @@ public class SettingsBlock extends AbstractCOptionPage {
info.setBuildLocation(new Path(buildLocation.getText().trim()));
}
}
};
workspace.run(operation, monitor);
}
public void performDefaults() {
IMakeBuilderInfo info;