diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2008-11-26 09:08:17 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2008-11-26 09:08:17 +0000 |
commit | 840ee8f5e823aa6fc8b01b223b737cf0df9ff33b (patch) | |
tree | b1a13370617603a15cf88b0b50286786276eb6aa /org.rtems.cdt.toolchain2 | |
parent | Removed explicit version requirements. (diff) | |
download | rtems-eclipse-plug-in-840ee8f5e823aa6fc8b01b223b737cf0df9ff33b.tar.bz2 |
Fixed property storage issues.
Preferences and properties now sufficient for further development steps.
Diffstat (limited to 'org.rtems.cdt.toolchain2')
5 files changed, 145 insertions, 129 deletions
diff --git a/org.rtems.cdt.toolchain2/.classpath b/org.rtems.cdt.toolchain2/.classpath index 4d3ad09..6c9b5f1 100644 --- a/org.rtems.cdt.toolchain2/.classpath +++ b/org.rtems.cdt.toolchain2/.classpath @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> <classpathentry kind="src" path=""/> <classpathentry kind="output" path="bin"/> diff --git a/org.rtems.cdt.toolchain2/.settings/org.eclipse.jdt.core.prefs b/org.rtems.cdt.toolchain2/.settings/org.eclipse.jdt.core.prefs index 20eeb2e..a24d9b6 100644 --- a/org.rtems.cdt.toolchain2/.settings/org.eclipse.jdt.core.prefs +++ b/org.rtems.cdt.toolchain2/.settings/org.eclipse.jdt.core.prefs @@ -1,7 +1,7 @@ -#Mon Nov 24 10:29:32 CET 2008 +#Wed Nov 26 08:27:29 CET 2008 eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.6 +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java new file mode 100644 index 0000000..d3684ef --- /dev/null +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2008 + * Embedded Brains GmbH + * Obere Lagerstr. 30 + * D-82178 Puchheim + * Germany + * rtems@embedded-brains.de + * + * The license and distribution terms for this file may be found in the file + * LICENSE in this distribution or at http://www.rtems.com/license/LICENSE. + */ + +package org.rtems.cdt; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.QualifiedName; +import org.rtems.cdt.Activator; + +public class Storage { + public static String getProperty( IProject project, String key) { + String value = null; + try { + value = project.getPersistentProperty( new QualifiedName( "", key)); + } catch (CoreException e) { + e.printStackTrace(); + } + if (value == null) { + value = Activator.getDefault().getPreferenceStore().getString( key); + try { + project.setPersistentProperty( new QualifiedName( "", key), value); + } catch (CoreException e) { + e.printStackTrace(); + } + } + return value; + } + + public static void setProperty( IProject project, String key, String value) { + try { + project.setPersistentProperty( new QualifiedName( "", key), value); + } catch (CoreException e) { + e.printStackTrace(); + } + } + + private Storage() { + // Do nothing + } +} diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/VolatilePreferenceStore.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/VolatilePreferenceStore.java new file mode 100644 index 0000000..546ace0 --- /dev/null +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/VolatilePreferenceStore.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2008 + * Embedded Brains GmbH + * Obere Lagerstr. 30 + * D-82178 Puchheim + * Germany + * rtems@embedded-brains.de + * + * The license and distribution terms for this file may be found in the file + * LICENSE in this distribution or at http://www.rtems.com/license/LICENSE. + */ + +package org.rtems.cdt; + +import java.io.OutputStream; +import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.preference.PreferenceStore; + +public class VolatilePreferenceStore extends PreferenceStore implements IPreferenceStore { + public VolatilePreferenceStore() { + // Do nothing + } + + public void save() { + // Do nothing + } + + public void save( OutputStream out, String header) { + // Do nothing + } +} diff --git a/org.rtems.cdt.toolchain2/org/rtems/cdt/properties/PropertyPage.java b/org.rtems.cdt.toolchain2/org/rtems/cdt/properties/PropertyPage.java index 8cb6cb1..fc63160 100644 --- a/org.rtems.cdt.toolchain2/org/rtems/cdt/properties/PropertyPage.java +++ b/org.rtems.cdt.toolchain2/org/rtems/cdt/properties/PropertyPage.java @@ -14,18 +14,17 @@ package org.rtems.cdt.properties; import org.eclipse.core.resources.IProject; 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.preference.DirectoryFieldEditor; import org.eclipse.jface.preference.ComboFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.jface.preference.PreferenceStore; import org.eclipse.jface.preference.StringFieldEditor; import org.eclipse.ui.IWorkbenchPropertyPage; import org.rtems.cdt.Activator; import org.rtems.cdt.Constants; +import org.rtems.cdt.Storage; +import org.rtems.cdt.VolatilePreferenceStore; public class PropertyPage extends FieldEditorPreferencePage implements IWorkbenchPropertyPage { private IAdaptable mElement; @@ -34,140 +33,76 @@ public class PropertyPage extends FieldEditorPreferencePage implements IWorkbenc public PropertyPage() { super( GRID); - - // Get the default values from the workbench preferences - IPreferenceStore store = Activator.getDefault().getPreferenceStore(); - - mStore = new PreferenceStore(); - mStore.setDefault( Constants.BASE_PATH_KEY, store.getString( Constants.BASE_PATH_KEY)); - mStore.setDefault( Constants.VERSION_KEY, store.getString( Constants.VERSION_KEY)); - mStore.setDefault( Constants.TARGET_KEY, store.getString( Constants.TARGET_KEY)); - mStore.setDefault( Constants.BSP_PATH_KEY, store.getString( Constants.BSP_PATH_KEY)); - System.out.println( store.getString( Constants.BASE_PATH_KEY)); - System.out.println( store.getString( Constants.VERSION_KEY)); - System.out.println( store.getString( Constants.TARGET_KEY)); - System.out.println( store.getString( Constants.BSP_PATH_KEY)); + + // Store properties in a volatile preference store + mStore = new VolatilePreferenceStore(); setPreferenceStore( mStore); setDescription( "You can change the RTEMS base installation path, the RTEMS version, the target architecture and the board support package (BSP) installation path. This affects only the current project."); } - protected void createFieldEditors() { - IProject project = ((IResource) getElement()).getProject(); + private void setupStoreValue( IProject project, IPreferenceStore defaultStore, String key) { + mStore.setDefault( key, defaultStore.getString( key)); + mStore.setValue( key, Storage.getProperty( project, key)); + } + + protected void createFieldEditors() { + // Get the default values from the current workbench preferences + IPreferenceStore store = Activator.getDefault().getPreferenceStore(); - // Store current values - try { - mStore.setValue( + // Setup store values + IProject project = ((IResource) getElement()).getProject(); + setupStoreValue( project, store, Constants.BASE_PATH_KEY); + setupStoreValue( project, store, Constants.VERSION_KEY); + setupStoreValue( project, store, Constants.TARGET_KEY); + setupStoreValue( project, store, Constants.BSP_PATH_KEY); + + // Add field editors + addField( + new DirectoryFieldEditor( Constants.BASE_PATH_KEY, - project.getPersistentProperty( - new QualifiedName( "", Constants.BASE_PATH_KEY) - ) - ); - } catch (CoreException e) { - // TODO - e.printStackTrace(); - } - try { - mStore.setValue( + "Base path:", + getFieldEditorParent() + ) + ); + addField( + new StringFieldEditor( Constants.VERSION_KEY, - project.getPersistentProperty( - new QualifiedName( "", Constants.VERSION_KEY) - ) - ); - } catch (CoreException e) { - // TODO - e.printStackTrace(); - } - try { - mStore.setValue( + "Version:", + getFieldEditorParent() + ) + ); + addField( + new ComboFieldEditor( Constants.TARGET_KEY, - project.getPersistentProperty( - new QualifiedName( "", Constants.TARGET_KEY) - ) - ); - } catch (CoreException e) { - // TODO - e.printStackTrace(); - } - try { - mStore.setValue( - Constants.BSP_PATH_KEY, - project.getPersistentProperty( - new QualifiedName( "", Constants.BSP_PATH_KEY) - ) - ); - } catch (CoreException e) { - // TODO - e.printStackTrace(); - } - System.out.println("addFields..."); + "Target:", + Constants.TARGETS, + getFieldEditorParent() + ) + ); addField( - new DirectoryFieldEditor( - Constants.BASE_PATH_KEY, - "Base path:", - getFieldEditorParent() - ) - ); - addField( - new StringFieldEditor( - Constants.VERSION_KEY, - "Version:", - getFieldEditorParent() - ) - ); - addField( - new ComboFieldEditor( - Constants.TARGET_KEY, - "Target:", - Constants.TARGETS, - getFieldEditorParent() - ) - ); - addField( - new DirectoryFieldEditor( - Constants.BSP_PATH_KEY, - "BSP path:", - getFieldEditorParent() - ) - ); - System.out.println("...done"); + new DirectoryFieldEditor( + Constants.BSP_PATH_KEY, + "BSP path:", + getFieldEditorParent() + ) + ); + } + + private void setProperty( IProject project, String key) { + Storage.setProperty( project, key, mStore.getString( key)); } public boolean performOk() { - System.out.println("performOk"); - try { - IProject project = ((IResource) getElement()).getProject(); - project.setPersistentProperty( - new QualifiedName( - "", - Constants.BASE_PATH_KEY - ), - mStore.getString( Constants.BASE_PATH_KEY) - ); - project.setPersistentProperty( - new QualifiedName( - "", - Constants.VERSION_KEY - ), - mStore.getString( Constants.VERSION_KEY) - ); - project.setPersistentProperty( - new QualifiedName( - "", - Constants.TARGET_KEY - ), - mStore.getString( Constants.TARGET_KEY) - ); - project.setPersistentProperty( - new QualifiedName( - "", - Constants.BSP_PATH_KEY - ), - mStore.getString( Constants.BSP_PATH_KEY) - ); - } catch (CoreException e) { - return false; - } + super.performOk(); + + // Set the new properties + IProject project = ((IResource) getElement()).getProject(); + setProperty( project, Constants.BASE_PATH_KEY); + setProperty( project, Constants.VERSION_KEY); + setProperty( project, Constants.TARGET_KEY); + setProperty( project, Constants.BSP_PATH_KEY); + return true; } |