From 31a7ae9a20ba6c85b7f40fcbeb5f24ae23515d44 Mon Sep 17 00:00:00 2001 From: Chris Recoskie Date: Thu, 6 Nov 2008 14:50:44 +0000 Subject: RESOLVED - bug 237176: XL C/C++ Compiler Preferences page is annoying https://bugs.eclipse.org/bugs/show_bug.cgi?id=237176 --- .../cdt/managedbuilder/xlc/ui/Messages.java | 1 + .../cdt/managedbuilder/xlc/ui/messages.properties | 1 + .../xlc/ui/properties/XLCompilerPropertyPage.java | 36 ++++++++++++++++++++-- 3 files changed, 36 insertions(+), 2 deletions(-) (limited to 'xlc') diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/Messages.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/Messages.java index 6f254945653..35fd16fff90 100644 --- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/Messages.java +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/Messages.java @@ -22,6 +22,7 @@ public class Messages extends NLS { public static String XLCompilerPreferencePage_2; public static String XLCompilerPropertyPage_0; public static String XLCompilerPropertyPage_1; + public static String XLCompilerPropertyPage_2; public static String XLCSettingsWizardPage_0; public static String XLCSettingsWizardPage_1; public static String XLCSettingsWizardPage_2; diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/messages.properties b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/messages.properties index 4811c0920b7..cec1f7aafd9 100644 --- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/messages.properties +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/messages.properties @@ -16,6 +16,7 @@ XLCompilerPreferencePage_1=Compiler Root Path: XLCompilerPreferencePage_2=Compiler Version: XLCompilerPropertyPage_0=Compiler Root Path: XLCompilerPropertyPage_1=Compiler Version: +XLCompilerPropertyPage_2=Compiler path does not exist on the local machine. XLCSettingsWizardPage_0=XL C/C++ Settings XLCSettingsWizardPage_1=Compiler Root Path: XLCSettingsWizardPage_2=Browse... diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCompilerPropertyPage.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCompilerPropertyPage.java index 823d53ec81b..a7ba60a341c 100644 --- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCompilerPropertyPage.java +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/src/org/eclipse/cdt/managedbuilder/xlc/ui/properties/XLCompilerPropertyPage.java @@ -19,15 +19,19 @@ import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.QualifiedName; +import org.eclipse.jface.dialogs.IMessageProvider; import org.eclipse.jface.preference.DirectoryFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.resource.JFaceResources; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.IWorkbenchPropertyPage; public class XLCompilerPropertyPage extends FieldEditorPreferencePage implements IWorkbenchPropertyPage { + private String originalMessage; + /* (non-Javadoc) * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors() */ @@ -35,8 +39,34 @@ public class XLCompilerPropertyPage extends FieldEditorPreferencePage implements Composite parent = getFieldEditorParent(); - fPathEditor = new DirectoryFieldEditor(PreferenceConstants.P_XL_COMPILER_ROOT, - Messages.XLCompilerPropertyPage_0, parent); + fPathEditor = new DirectoryFieldEditor(PreferenceConstants.P_XL_COMPILER_ROOT, Messages.XLCompilerPropertyPage_0, parent) + { + protected boolean doCheckState() + { + // always return true, as we don't want to fail cases when compiler is installed remotely + // just warn user + if (getPage() != null) + { + if (!super.doCheckState()) + { + getPage().setMessage(Messages.XLCompilerPropertyPage_2, IMessageProvider.WARNING); + } + else + { + getPage().setMessage(originalMessage, 0); + } + } + + return true; + } + + protected boolean checkState() + { + return doCheckState(); + } + + }; + addField(fPathEditor); IProject project = ((IResource) getElement()).getProject(); @@ -101,6 +131,8 @@ public class XLCompilerPropertyPage extends FieldEditorPreferencePage implements */ public XLCompilerPropertyPage() { super(FieldEditorPreferencePage.FLAT); + + originalMessage = getMessage(); } -- cgit v1.2.3