1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-16 20:55:44 +02:00

Bug 300917 - need a new version of XL C/C++ Compiler properties page for John Liu

This commit is contained in:
Vivian Kong 2010-01-27 19:45:01 +00:00
parent 6764511b39
commit 6621f5653e

View file

@ -29,46 +29,55 @@ import org.eclipse.ui.IWorkbenchPropertyPage;
public class XLCompilerPropertyPage extends FieldEditorPreferencePage implements IWorkbenchPropertyPage { public class XLCompilerPropertyPage extends FieldEditorPreferencePage implements IWorkbenchPropertyPage {
private String originalMessage; protected String originalMessage;
/* (non-Javadoc) /* (non-Javadoc)
* @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors() * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
*/ */
protected void createFieldEditors() { protected void createFieldEditors() {
createPathEditor();
createVersionEditor();
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors
* ()
*/
protected void createPathEditor() {
Composite parent = getFieldEditorParent(); 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() protected boolean doCheckState() {
{ // always return true, as we don't want to fail cases when
// always return true, as we don't want to fail cases when compiler is installed remotely // compiler is installed remotely
// just warn user // just warn user
if (!super.doCheckState()) if (!super.doCheckState()) {
{
setMessage(Messages.XLCompilerPropertyPage_2, IMessageProvider.WARNING); setMessage(Messages.XLCompilerPropertyPage_2, IMessageProvider.WARNING);
} } else {
else
{
setMessage(originalMessage); setMessage(originalMessage);
} }
return true; return true;
} }
protected boolean checkState() protected boolean checkState() {
{
return doCheckState(); return doCheckState();
} }
}; };
addField(fPathEditor); addField(fPathEditor);
IProject project = ((IResource) (getElement().getAdapter(IResource.class))).getProject(); IProject project = ((IResource) (getElement().getAdapter(IResource.class))).getProject();
String currentPath = null; String currentPath = null;
try { try {
currentPath = project.getPersistentProperty(new QualifiedName("", //$NON-NLS-1$ currentPath = project.getPersistentProperty(new QualifiedName("", //$NON-NLS-1$
PreferenceConstants.P_XL_COMPILER_ROOT)); PreferenceConstants.P_XL_COMPILER_ROOT));
@ -76,26 +85,30 @@ public class XLCompilerPropertyPage extends FieldEditorPreferencePage implements
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
if(currentPath == null) { if (currentPath == null) {
// if the property isn't set, then use the workbench preference // if the property isn't set, then use the workbench preference
IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore(); IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore();
currentPath = prefStore.getString(PreferenceConstants.P_XL_COMPILER_ROOT); currentPath = prefStore.getString(PreferenceConstants.P_XL_COMPILER_ROOT);
} }
fPathEditor.setStringValue(currentPath); fPathEditor.setStringValue(currentPath);
String[] versionEntries = {PreferenceConstants.P_XL_COMPILER_VERSION_8_NAME, }
PreferenceConstants.P_XL_COMPILER_VERSION_9_NAME,
PreferenceConstants.P_XL_COMPILER_VERSION_10_NAME}; protected void createVersionEditor() {
IProject project = ((IResource) (getElement().getAdapter(IResource.class))).getProject();
String[] versionEntries = { PreferenceConstants.P_XL_COMPILER_VERSION_8_NAME,
PreferenceConstants.P_XL_COMPILER_VERSION_9_NAME, PreferenceConstants.P_XL_COMPILER_VERSION_10_NAME };
Composite versionParent = getFieldEditorParent(); Composite versionParent = getFieldEditorParent();
fVersionEditor = new BuildOptionComboFieldEditor(PreferenceConstants.P_XLC_COMPILER_VERSION, fVersionEditor = new BuildOptionComboFieldEditor(PreferenceConstants.P_XLC_COMPILER_VERSION,
Messages.XLCompilerPropertyPage_1, versionEntries, null, versionParent); Messages.XLCompilerPropertyPage_1, versionEntries, null, versionParent);
addField(fVersionEditor); addField(fVersionEditor);
String currentVersion = null; String currentVersion = null;
try { try {
currentVersion = project.getPersistentProperty(new QualifiedName("", //$NON-NLS-1$ currentVersion = project.getPersistentProperty(new QualifiedName("", //$NON-NLS-1$
@ -104,49 +117,50 @@ public class XLCompilerPropertyPage extends FieldEditorPreferencePage implements
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
if(currentVersion == null) { if (currentVersion == null) {
// if the property isn't set, then use the workbench preference // if the property isn't set, then use the workbench preference
IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore(); IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore();
currentVersion = prefStore.getString(PreferenceConstants.P_XLC_COMPILER_VERSION); currentVersion = prefStore.getString(PreferenceConstants.P_XLC_COMPILER_VERSION);
} }
Combo versionCombo = fVersionEditor.getComboControl(versionParent); Combo versionCombo = fVersionEditor.getComboControl(versionParent);
versionCombo.setText(PreferenceConstants.getVersionLabel(currentVersion)); versionCombo.setText(PreferenceConstants.getVersionLabel(currentVersion));
} }
private DirectoryFieldEditor fPathEditor; protected DirectoryFieldEditor fPathEditor;
private BuildOptionComboFieldEditor fVersionEditor; protected BuildOptionComboFieldEditor fVersionEditor;
//private Composite parent;
// private Composite parent;
/** /**
* Constructor for SamplePropertyPage. * Constructor for SamplePropertyPage.
*/ */
public XLCompilerPropertyPage() { public XLCompilerPropertyPage() {
super(FieldEditorPreferencePage.FLAT); super(FieldEditorPreferencePage.FLAT);
originalMessage = getMessage(); originalMessage = getMessage();
} }
protected void performDefaults() { protected void performDefaults() {
// default to whatever is set on the workbench preference // default to whatever is set on the workbench preference
IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore(); IPreferenceStore prefStore = XLCUIPlugin.getDefault().getPreferenceStore();
String currentPath = prefStore.getString(PreferenceConstants.P_XL_COMPILER_ROOT); String currentPath = prefStore.getString(PreferenceConstants.P_XL_COMPILER_ROOT);
String currentVersion = prefStore.getString(PreferenceConstants.P_XLC_COMPILER_VERSION); String currentVersion = prefStore.getString(PreferenceConstants.P_XLC_COMPILER_VERSION);
String currentVersionLabel = PreferenceConstants.getVersionLabel(currentVersion); String currentVersionLabel = PreferenceConstants.getVersionLabel(currentVersion);
if (fPathEditor != null) {
fPathEditor.setStringValue(currentPath); fPathEditor.setStringValue(currentPath);
}
fVersionEditor.getComboControl(getFieldEditorParent()).setText(currentVersionLabel); fVersionEditor.getComboControl(getFieldEditorParent()).setText(currentVersionLabel);
} }
/* (non-Javadoc) /*
* (non-Javadoc)
*
* @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk() * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
*/ */
public boolean performOk() { public boolean performOk() {
@ -154,14 +168,14 @@ public class XLCompilerPropertyPage extends FieldEditorPreferencePage implements
try { try {
IProject project = ((IResource) (getElement().getAdapter(IResource.class))).getProject(); IProject project = ((IResource) (getElement().getAdapter(IResource.class))).getProject();
project.setPersistentProperty(new QualifiedName("", //$NON-NLS-1$ if (fPathEditor != null) {
PreferenceConstants.P_XL_COMPILER_ROOT), fPathEditor project.setPersistentProperty(new QualifiedName("", //$NON-NLS-1$
.getStringValue()); PreferenceConstants.P_XL_COMPILER_ROOT), fPathEditor.getStringValue());
}
String version = null; String version = null;
if (fVersionEditor.getSelection() != null) { if (fVersionEditor.getSelection() != null) {
version = PreferenceConstants.getVersion(fVersionEditor.getSelection()); version = PreferenceConstants.getVersion(fVersionEditor.getSelection());
project.setPersistentProperty(new QualifiedName("", //$NON-NLS-1$ project.setPersistentProperty(new QualifiedName("", //$NON-NLS-1$
PreferenceConstants.P_XLC_COMPILER_VERSION), version); PreferenceConstants.P_XLC_COMPILER_VERSION), version);
} }
@ -170,28 +184,29 @@ public class XLCompilerPropertyPage extends FieldEditorPreferencePage implements
} }
return true; return true;
} }
/**
* The element.
*/
private IAdaptable element;
/* /**
* (non-Javadoc) * The element.
* @see org.eclipse.ui.IWorkbenchPropertyPage#getElement() */
*/ private IAdaptable element;
public IAdaptable getElement() {
return element;
}
/** /*
* Sets the element that owns properties shown on this page. * (non-Javadoc)
* *
* @param element * @see org.eclipse.ui.IWorkbenchPropertyPage#getElement()
* the element */
*/ public IAdaptable getElement() {
public void setElement(IAdaptable element) { return element;
this.element = element; }
}
/**
* Sets the element that owns properties shown on this page.
*
* @param element
* the element
*/
public void setElement(IAdaptable element) {
this.element = element;
}
} }