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:
parent
6764511b39
commit
6621f5653e
1 changed files with 85 additions and 70 deletions
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue