1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-07 01:36:01 +02:00

use new platform progress service

This commit is contained in:
David Inglis 2004-06-01 20:28:39 +00:00
parent 89bbf55f97
commit d85af02c70
3 changed files with 136 additions and 116 deletions

View file

@ -19,15 +19,16 @@ import org.eclipse.cdt.ui.dialogs.ICOptionContainer;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Preferences; import org.eclipse.core.runtime.Preferences;
import org.eclipse.jface.dialogs.ProgressMonitorDialog; import org.eclipse.jface.dialogs.DialogPage;
import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.preference.IPreferencePageContainer; import org.eclipse.jface.preference.IPreferencePageContainer;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT; import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation; import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.dialogs.PropertyPage; import org.eclipse.ui.dialogs.PropertyPage;
public class MakePropertyPage extends PropertyPage implements ICOptionContainer { public class MakePropertyPage extends PropertyPage implements ICOptionContainer {
@ -82,9 +83,8 @@ public class MakePropertyPage extends PropertyPage implements ICOptionContainer
fOptionBlock.performApply(monitor); fOptionBlock.performApply(monitor);
} }
}; };
IRunnableWithProgress op = new WorkspaceModifyDelegatingOperation(runnable);
try { try {
new ProgressMonitorDialog(getShell()).run(false, true, op); PlatformUI.getWorkbench().getProgressService().runInUI(PlatformUI.getWorkbench().getProgressService() ,runnable, MakeUIPlugin.getWorkspace().getRoot());
} catch (InvocationTargetException e) { } catch (InvocationTargetException e) {
Throwable e1 = e.getTargetException(); Throwable e1 = e.getTargetException();
MakeUIPlugin.errorDialog(getShell(), MakeUIPlugin.getResourceString("MakeProjectPropertyPage.internalError"),e1.toString(), e1); //$NON-NLS-1$ MakeUIPlugin.errorDialog(getShell(), MakeUIPlugin.getResourceString("MakeProjectPropertyPage.internalError"),e1.toString(), e1); //$NON-NLS-1$

View file

@ -33,6 +33,7 @@ import org.eclipse.cdt.ui.dialogs.AbstractCOptionPage;
import org.eclipse.cdt.ui.dialogs.ICOptionContainer; import org.eclipse.cdt.ui.dialogs.ICOptionContainer;
import org.eclipse.cdt.utils.ui.controls.ControlFactory; import org.eclipse.cdt.utils.ui.controls.ControlFactory;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IWorkspaceRunnable; import org.eclipse.core.resources.IWorkspaceRunnable;
import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IConfigurationElement;
@ -66,10 +67,12 @@ import org.eclipse.ui.help.WorkbenchHelp;
* @author vhirsl * @author vhirsl
*/ */
public class DiscoveryOptionsBlock extends AbstractCOptionPage { public class DiscoveryOptionsBlock extends AbstractCOptionPage {
private static final String PREFIX_BP = "BuildPathInfoBlock"; //$NON-NLS-1$ private static final String PREFIX_BP = "BuildPathInfoBlock"; //$NON-NLS-1$
private static final String SC_GROUP_LABEL = PREFIX_BP + ".scGroup.label"; //$NON-NLS-1$ private static final String SC_GROUP_LABEL = PREFIX_BP + ".scGroup.label"; //$NON-NLS-1$
private static final String SC_ENABLED_LABEL = PREFIX_BP + ".scGroup.enabled.label"; //$NON-NLS-1$ private static final String SC_ENABLED_LABEL = PREFIX_BP + ".scGroup.enabled.label"; //$NON-NLS-1$
// private static final String SC_OPTIONS_LABEL = PREFIX + ".scGroup.options.label"; //$NON-NLS-1$ // private static final String SC_OPTIONS_LABEL = PREFIX +
// ".scGroup.options.label"; //$NON-NLS-1$
private static final String MISSING_BUILDER_MSG = "ScannerConfigOptionsDialog.label.missingBuilderInformation"; //$NON-NLS-1$ private static final String MISSING_BUILDER_MSG = "ScannerConfigOptionsDialog.label.missingBuilderInformation"; //$NON-NLS-1$
private static final String PREFIX = "ScannerConfigOptionsDialog"; //$NON-NLS-1$ private static final String PREFIX = "ScannerConfigOptionsDialog"; //$NON-NLS-1$
@ -104,13 +107,14 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
private String initialProviderParserId = null; private String initialProviderParserId = null;
private boolean fCreatePathContainer = false; private boolean fCreatePathContainer = false;
public DiscoveryOptionsBlock() { public DiscoveryOptionsBlock() {
super(MakeUIPlugin.getResourceString(DIALOG_TITLE)); super(MakeUIPlugin.getResourceString(DIALOG_TITLE));
setDescription(MakeUIPlugin.getResourceString(DIALOG_DESCRIPTION)); setDescription(MakeUIPlugin.getResourceString(DIALOG_DESCRIPTION));
} }
/* (non-Javadoc) /*
* (non-Javadoc)
*
* @see org.eclipse.cdt.ui.dialogs.ICOptionPage#setContainer(org.eclipse.cdt.ui.dialogs.ICOptionContainer) * @see org.eclipse.cdt.ui.dialogs.ICOptionPage#setContainer(org.eclipse.cdt.ui.dialogs.ICOptionContainer)
*/ */
public void setContainer(ICOptionContainer container) { public void setContainer(ICOptionContainer container) {
@ -123,14 +127,12 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
if (project != null) { if (project != null) {
try { try {
fBuildInfo = MakeCorePlugin.createScannerConfigBuildInfo(project, ScannerConfigBuilder.BUILDER_ID); fBuildInfo = MakeCorePlugin.createScannerConfigBuildInfo(project, ScannerConfigBuilder.BUILDER_ID);
} } catch (CoreException e) {
catch (CoreException e) {
fInitialized = false; fInitialized = false;
fBuildInfo = MakeCorePlugin.createScannerConfigBuildInfo(fPrefs, ScannerConfigBuilder.BUILDER_ID, true); fBuildInfo = MakeCorePlugin.createScannerConfigBuildInfo(fPrefs, ScannerConfigBuilder.BUILDER_ID, true);
} }
fCreatePathContainer = true; fCreatePathContainer = true;
} } else {
else {
fBuildInfo = MakeCorePlugin.createScannerConfigBuildInfo(fPrefs, ScannerConfigBuilder.BUILDER_ID, false); fBuildInfo = MakeCorePlugin.createScannerConfigBuildInfo(fPrefs, ScannerConfigBuilder.BUILDER_ID, false);
} }
retrieveSIConsoleParsers(); retrieveSIConsoleParsers();
@ -138,12 +140,23 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
initialProviderParserId = fBuildInfo.getESIProviderConsoleParserId(); //$NON-NLS-1$ initialProviderParserId = fBuildInfo.getESIProviderConsoleParserId(); //$NON-NLS-1$
} }
/* (non-Javadoc) /*
* (non-Javadoc)
*
* @see org.eclipse.cdt.ui.dialogs.ICOptionPage#performApply(org.eclipse.core.runtime.IProgressMonitor) * @see org.eclipse.cdt.ui.dialogs.ICOptionPage#performApply(org.eclipse.core.runtime.IProgressMonitor)
*/ */
public void performApply(IProgressMonitor monitor) throws CoreException { public void performApply(IProgressMonitor monitor) throws CoreException {
IProject project = getContainer().getProject(); 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 {
IScannerConfigBuilderInfo buildInfo; IScannerConfigBuilderInfo buildInfo;
IProject project = getContainer().getProject();
if (project != null) { if (project != null) {
buildInfo = MakeCorePlugin.createScannerConfigBuildInfo(project, ScannerConfigBuilder.BUILDER_ID); buildInfo = MakeCorePlugin.createScannerConfigBuildInfo(project, ScannerConfigBuilder.BUILDER_ID);
if (fCreatePathContainer) { if (fCreatePathContainer) {
@ -151,33 +164,33 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
// create a new discovered scanner config store // create a new discovered scanner config store
MakeCorePlugin.getDefault().getDiscoveryManager().removeDiscoveredInfo(project); MakeCorePlugin.getDefault().getDiscoveryManager().removeDiscoveredInfo(project);
} }
} } else {
else {
buildInfo = MakeCorePlugin.createScannerConfigBuildInfo(fPrefs, ScannerConfigBuilder.BUILDER_ID, false); buildInfo = MakeCorePlugin.createScannerConfigBuildInfo(fPrefs, ScannerConfigBuilder.BUILDER_ID, false);
} }
final IScannerConfigBuilderInfo fInfo = buildInfo; buildInfo.setAutoDiscoveryEnabled(isScannerConfigDiscoveryEnabled());
MakeUIPlugin.getWorkspace().run(new IWorkspaceRunnable() {
public void run(IProgressMonitor monitor) throws CoreException {
fInfo.setAutoDiscoveryEnabled(isScannerConfigDiscoveryEnabled());
if (isScannerConfigDiscoveryEnabled()) { if (isScannerConfigDiscoveryEnabled()) {
fInfo.setMakeBuilderConsoleParserEnabled(isBuilderParserEnabled()); buildInfo.setMakeBuilderConsoleParserEnabled(isBuilderParserEnabled());
if (isBuilderParserEnabled()) { if (isBuilderParserEnabled()) {
fInfo.setMakeBuilderConsoleParserId((String) builderParsers.get(makeBuilderSIParserComboBox.getText())); buildInfo.setMakeBuilderConsoleParserId((String)builderParsers.get(makeBuilderSIParserComboBox.getText()));
} }
fInfo.setESIProviderCommandEnabled(isProviderCommandEnabled()); buildInfo.setESIProviderCommandEnabled(isProviderCommandEnabled());
if (isProviderCommandEnabled()) { if (isProviderCommandEnabled()) {
fInfo.setUseDefaultESIProviderCmd(useDefaultESIProviderCmd()); buildInfo.setUseDefaultESIProviderCmd(useDefaultESIProviderCmd());
if (!useDefaultESIProviderCmd()) { if (!useDefaultESIProviderCmd()) {
storeSIProviderCommandLine(fInfo); storeSIProviderCommandLine(buildInfo);
} }
fInfo.setESIProviderConsoleParserId((String) providerParsers.get(esiProviderParserComboBox.getText())); buildInfo.setESIProviderConsoleParserId((String)providerParsers.get(esiProviderParserComboBox.getText()));
} }
} }
} }
} /* IWorkspaceRunnable */, monitor); };
if (getContainer().getProject() != null) {
workspace.run(operation, monitor);
} else {
operation.run(monitor);
}
} }
/** /**
* @param project * @param project
* @throws CModelException * @throws CModelException
@ -190,13 +203,15 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
List newEntries = new ArrayList(Arrays.asList(entries)); List newEntries = new ArrayList(Arrays.asList(entries));
if (!newEntries.contains(container)) { if (!newEntries.contains(container)) {
newEntries.add(container); newEntries.add(container);
cProject.setRawPathEntries((IPathEntry[])newEntries. cProject.setRawPathEntries((IPathEntry[])newEntries.toArray(new IPathEntry[newEntries.size()]),
toArray(new IPathEntry[newEntries.size()]), new NullProgressMonitor()); new NullProgressMonitor());
} }
} }
} }
/* (non-Javadoc) /*
* (non-Javadoc)
*
* @see org.eclipse.cdt.ui.dialogs.ICOptionPage#performDefaults() * @see org.eclipse.cdt.ui.dialogs.ICOptionPage#performDefaults()
*/ */
public void performDefaults() { public void performDefaults() {
@ -205,8 +220,7 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
if (getContainer().getProject() != null) { if (getContainer().getProject() != null) {
// get the preferences // get the preferences
info = MakeCorePlugin.createScannerConfigBuildInfo(fPrefs, ScannerConfigBuilder.BUILDER_ID, false); info = MakeCorePlugin.createScannerConfigBuildInfo(fPrefs, ScannerConfigBuilder.BUILDER_ID, false);
} } else {
else {
// get the defaults // get the defaults
info = MakeCorePlugin.createScannerConfigBuildInfo(fPrefs, ScannerConfigBuilder.BUILDER_ID, true); info = MakeCorePlugin.createScannerConfigBuildInfo(fPrefs, ScannerConfigBuilder.BUILDER_ID, true);
} }
@ -238,7 +252,9 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
return consoleParserId; return consoleParserId;
} }
/* (non-Javadoc) /*
* (non-Javadoc)
*
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite) * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
*/ */
public void createControl(Composite parent) { public void createControl(Composite parent) {
@ -269,13 +285,11 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
IProject project = getContainer().getProject(); IProject project = getContainer().getProject();
boolean showMissingBuilder = false; boolean showMissingBuilder = false;
try { try {
if (project != null && if (project != null && project.hasNature(MakeProjectNature.NATURE_ID)
project.hasNature(MakeProjectNature.NATURE_ID) && && !project.hasNature(ScannerConfigNature.NATURE_ID)) {
!project.hasNature(ScannerConfigNature.NATURE_ID)) {
needsSCNature = true; // an old project needsSCNature = true; // an old project
} }
} } catch (CoreException e) {
catch (CoreException e) {
showMissingBuilder = true; showMissingBuilder = true;
} }
@ -298,6 +312,7 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
// VMIR* old projects will have discovery disabled by default // VMIR* old projects will have discovery disabled by default
scEnabledButton.setSelection(needsSCNature ? false : fBuildInfo.isAutoDiscoveryEnabled()); scEnabledButton.setSelection(needsSCNature ? false : fBuildInfo.isAutoDiscoveryEnabled());
scEnabledButton.addSelectionListener(new SelectionAdapter() { scEnabledButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) { public void widgetSelected(SelectionEvent e) {
handleScannerConfigEnable(); handleScannerConfigEnable();
} }
@ -316,8 +331,7 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
try { try {
ScannerConfigNature.addScannerConfigNature(getContainer().getProject()); ScannerConfigNature.addScannerConfigNature(getContainer().getProject());
needsSCNature = false; needsSCNature = false;
} } catch (CoreException e) {
catch (CoreException e) {
MakeCorePlugin.log(e.getStatus()); MakeCorePlugin.log(e.getStatus());
} }
} }
@ -328,8 +342,8 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
* Fills console parser maps * Fills console parser maps
*/ */
private void retrieveSIConsoleParsers() { private void retrieveSIConsoleParsers() {
IExtensionPoint ep = Platform.getExtensionRegistry(). IExtensionPoint ep = Platform.getExtensionRegistry().getExtensionPoint(MakeCorePlugin.getUniqueIdentifier(),
getExtensionPoint(MakeCorePlugin.getUniqueIdentifier(), MakeCorePlugin.SI_CONSOLE_PARSER_SIMPLE_ID); MakeCorePlugin.SI_CONSOLE_PARSER_SIMPLE_ID);
if (ep != null) { if (ep != null) {
IExtension[] extensions = ep.getExtensions(); IExtension[] extensions = ep.getExtensions();
for (int i = 0; i < extensions.length; ++i) { for (int i = 0; i < extensions.length; ++i) {
@ -349,26 +363,24 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
private void createBuildOutputParserControls(Composite parent) { private void createBuildOutputParserControls(Composite parent) {
// ControlFactory.insertSpace(parent, 1, 10); // ControlFactory.insertSpace(parent, 1, 10);
Group bopGroup = ControlFactory.createGroup(parent, Group bopGroup = ControlFactory.createGroup(parent, MakeUIPlugin.getResourceString(SI_BUILD_PARSER_GROUP), 2);
MakeUIPlugin.getResourceString(SI_BUILD_PARSER_GROUP), 2);
((GridLayout)bopGroup.getLayout()).marginHeight = 5; ((GridLayout)bopGroup.getLayout()).marginHeight = 5;
((GridLayout)bopGroup.getLayout()).marginWidth = 5; ((GridLayout)bopGroup.getLayout()).marginWidth = 5;
((GridData)bopGroup.getLayoutData()).verticalAlignment = GridData.FILL; ((GridData)bopGroup.getLayoutData()).verticalAlignment = GridData.FILL;
((GridData)bopGroup.getLayoutData()).horizontalSpan = 2; ((GridData)bopGroup.getLayoutData()).horizontalSpan = 2;
enableBuilderParserButton = ControlFactory.createCheckBox(bopGroup, enableBuilderParserButton = ControlFactory.createCheckBox(bopGroup, MakeUIPlugin.getResourceString(ENABLE_SI_BUILD_PARSER));
MakeUIPlugin.getResourceString(ENABLE_SI_BUILD_PARSER));
((GridData)enableBuilderParserButton.getLayoutData()).horizontalSpan = 2; ((GridData)enableBuilderParserButton.getLayoutData()).horizontalSpan = 2;
boolean enabledBuilderParser = fBuildInfo.isMakeBuilderConsoleParserEnabled(); boolean enabledBuilderParser = fBuildInfo.isMakeBuilderConsoleParserEnabled();
enableBuilderParserButton.setSelection(enabledBuilderParser); enableBuilderParserButton.setSelection(enabledBuilderParser);
enableBuilderParserButton.addSelectionListener(new SelectionAdapter() { enableBuilderParserButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) { public void widgetSelected(SelectionEvent e) {
makeBuilderSIParserComboBox.setEnabled(isBuilderParserEnabled()); makeBuilderSIParserComboBox.setEnabled(isBuilderParserEnabled());
} }
}); });
Label label = ControlFactory.createLabel(bopGroup, Label label = ControlFactory.createLabel(bopGroup, MakeUIPlugin.getResourceString(SI_BUILD_PARSER_LABEL));
MakeUIPlugin.getResourceString(SI_BUILD_PARSER_LABEL));
((GridData)label.getLayoutData()).grabExcessHorizontalSpace = false; ((GridData)label.getLayoutData()).grabExcessHorizontalSpace = false;
makeBuilderSIParserComboBox = new Combo(bopGroup, SWT.DROP_DOWN | SWT.READ_ONLY); makeBuilderSIParserComboBox = new Combo(bopGroup, SWT.DROP_DOWN | SWT.READ_ONLY);
@ -385,8 +397,7 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
} }
private void createAfterBuildCmdControls(Composite parent) { private void createAfterBuildCmdControls(Composite parent) {
Group abcGroup = ControlFactory.createGroup(parent, Group abcGroup = ControlFactory.createGroup(parent, MakeUIPlugin.getResourceString(SI_PROVIDER_CMD_GROUP), 2);
MakeUIPlugin.getResourceString(SI_PROVIDER_CMD_GROUP), 2);
((GridData)abcGroup.getLayoutData()).horizontalSpan = 2; ((GridData)abcGroup.getLayoutData()).horizontalSpan = 2;
enableProviderCommandButton = ControlFactory.createCheckBox(abcGroup, enableProviderCommandButton = ControlFactory.createCheckBox(abcGroup,
@ -396,6 +407,7 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
boolean enabledProviderCommand = fBuildInfo.isESIProviderCommandEnabled(); boolean enabledProviderCommand = fBuildInfo.isESIProviderCommandEnabled();
enableProviderCommandButton.setSelection(enabledProviderCommand); enableProviderCommandButton.setSelection(enabledProviderCommand);
enableProviderCommandButton.addSelectionListener(new SelectionAdapter() { enableProviderCommandButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) { public void widgetSelected(SelectionEvent e) {
defESIProviderCommandButton.setEnabled(isProviderCommandEnabled()); defESIProviderCommandButton.setEnabled(isProviderCommandEnabled());
esiProviderCommand.setEnabled(isProviderCommandEnabled() && !useDefaultESIProviderCmd()); esiProviderCommand.setEnabled(isProviderCommandEnabled() && !useDefaultESIProviderCmd());
@ -406,8 +418,7 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
createESIProviderCmdControls(abcGroup); createESIProviderCmdControls(abcGroup);
Label label = ControlFactory.createLabel(abcGroup, Label label = ControlFactory.createLabel(abcGroup, MakeUIPlugin.getResourceString(SI_PROVIDER_PARSER_LABEL));
MakeUIPlugin.getResourceString(SI_PROVIDER_PARSER_LABEL));
((GridData)label.getLayoutData()).grabExcessHorizontalSpace = false; ((GridData)label.getLayoutData()).grabExcessHorizontalSpace = false;
esiProviderParserComboBox = new Combo(abcGroup, SWT.DROP_DOWN | SWT.READ_ONLY); esiProviderParserComboBox = new Combo(abcGroup, SWT.DROP_DOWN | SWT.READ_ONLY);
@ -429,6 +440,7 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
defESIProviderCommandButton = ControlFactory.createCheckBox(parent, defESIProviderCommandButton = ControlFactory.createCheckBox(parent,
MakeUIPlugin.getResourceString(SI_PROVIDER_CMD_USE_DEFAULT)); MakeUIPlugin.getResourceString(SI_PROVIDER_CMD_USE_DEFAULT));
defESIProviderCommandButton.addSelectionListener(new SelectionAdapter() { defESIProviderCommandButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) { public void widgetSelected(SelectionEvent e) {
esiProviderCommand.setEnabled(!useDefaultESIProviderCmd()); esiProviderCommand.setEnabled(!useDefaultESIProviderCmd());
getContainer().updateContainer(); getContainer().updateContainer();
@ -436,8 +448,7 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
}); });
((GridData) (defESIProviderCommandButton.getLayoutData())).horizontalAlignment = GridData.FILL_HORIZONTAL; ((GridData) (defESIProviderCommandButton.getLayoutData())).horizontalAlignment = GridData.FILL_HORIZONTAL;
((GridData) (defESIProviderCommandButton.getLayoutData())).horizontalSpan = 2; ((GridData) (defESIProviderCommandButton.getLayoutData())).horizontalSpan = 2;
Label label = ControlFactory.createLabel(parent, Label label = ControlFactory.createLabel(parent, MakeUIPlugin.getResourceString(SI_PROVIDER_CMD_LABEL));
MakeUIPlugin.getResourceString(SI_PROVIDER_CMD_LABEL));
((GridData) (label.getLayoutData())).horizontalAlignment = GridData.BEGINNING; ((GridData) (label.getLayoutData())).horizontalAlignment = GridData.BEGINNING;
((GridData) (label.getLayoutData())).grabExcessHorizontalSpace = false; ((GridData) (label.getLayoutData())).grabExcessHorizontalSpace = false;
esiProviderCommand = ControlFactory.createTextField(parent, SWT.SINGLE | SWT.BORDER); esiProviderCommand = ControlFactory.createTextField(parent, SWT.SINGLE | SWT.BORDER);
@ -448,6 +459,7 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
esiProviderCommand.setEnabled(false); esiProviderCommand.setEnabled(false);
} }
esiProviderCommand.addListener(SWT.Modify, new Listener() { esiProviderCommand.addListener(SWT.Modify, new Listener() {
public void handleEvent(Event e) { public void handleEvent(Event e) {
getContainer().updateContainer(); getContainer().updateContainer();
} }
@ -479,7 +491,8 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
makeBuilderSIParserComboBox.setEnabled(isScannerConfigDiscoveryEnabled() && isBuilderParserEnabled()); makeBuilderSIParserComboBox.setEnabled(isScannerConfigDiscoveryEnabled() && isBuilderParserEnabled());
enableProviderCommandButton.setEnabled(isScannerConfigDiscoveryEnabled()); enableProviderCommandButton.setEnabled(isScannerConfigDiscoveryEnabled());
defESIProviderCommandButton.setEnabled(isScannerConfigDiscoveryEnabled() && isProviderCommandEnabled()); defESIProviderCommandButton.setEnabled(isScannerConfigDiscoveryEnabled() && isProviderCommandEnabled());
esiProviderCommand.setEnabled(isScannerConfigDiscoveryEnabled() && isProviderCommandEnabled() && !useDefaultESIProviderCmd()); esiProviderCommand.setEnabled(isScannerConfigDiscoveryEnabled() && isProviderCommandEnabled()
&& !useDefaultESIProviderCmd());
esiProviderParserComboBox.setEnabled(isScannerConfigDiscoveryEnabled() && isProviderCommandEnabled()); esiProviderParserComboBox.setEnabled(isScannerConfigDiscoveryEnabled() && isProviderCommandEnabled());
} }
@ -511,7 +524,8 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
/** /**
* Enables or disables the scanner config discovery * Enables or disables the scanner config discovery
* *
* @param enabled (boolean) * @param enabled
* (boolean)
*/ */
private void setScannerConfigDiscoveryEnabled(boolean enabled) { private void setScannerConfigDiscoveryEnabled(boolean enabled) {
scEnabledButton.setSelection(enabled); scEnabledButton.setSelection(enabled);
@ -528,8 +542,7 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
if (esiProviderLine.startsWith("\"")) { //$NON-NLS-1$ if (esiProviderLine.startsWith("\"")) { //$NON-NLS-1$
start = 1; start = 1;
end = esiProviderLine.indexOf('"', 1); end = esiProviderLine.indexOf('"', 1);
} } else {
else {
end = esiProviderLine.indexOf(' '); end = esiProviderLine.indexOf(' ');
} }
IPath path; IPath path;
@ -545,12 +558,13 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
} }
buildInfo.setESIProviderArguments(args); buildInfo.setESIProviderArguments(args);
} }
/* (non-Javadoc) /*
* (non-Javadoc)
*
* @see org.eclipse.cdt.ui.dialogs.ICOptionPage#isValid() * @see org.eclipse.cdt.ui.dialogs.ICOptionPage#isValid()
*/ */
public boolean isValid() { public boolean isValid() {
if (isProviderCommandEnabled() == true && if (isProviderCommandEnabled() == true && useDefaultESIProviderCmd() == false) {
useDefaultESIProviderCmd() == false) {
String cmd = getSIProviderCommandLine(); String cmd = getSIProviderCommandLine();
if (cmd == null || cmd.length() == 0) { if (cmd == null || cmd.length() == 0) {
return false; return false;
@ -558,7 +572,9 @@ public class DiscoveryOptionsBlock extends AbstractCOptionPage {
} }
return true; return true;
} }
/* (non-Javadoc) /*
* (non-Javadoc)
*
* @see org.eclipse.jface.dialogs.IDialogPage#getErrorMessage() * @see org.eclipse.jface.dialogs.IDialogPage#getErrorMessage()
*/ */
public String getErrorMessage() { public String getErrorMessage() {

View file

@ -327,7 +327,11 @@ public class SettingsBlock extends AbstractCOptionPage {
} }
} }
}; };
if (getContainer().getProject() != null) {
workspace.run(operation, monitor); workspace.run(operation, monitor);
} else {
operation.run(monitor);
}
} }
public void performDefaults() { public void performDefaults() {