summaryrefslogtreecommitdiffstats
path: root/org.rtems.cdt.toolchain2
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2008-11-26 09:08:17 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2008-11-26 09:08:17 +0000
commit840ee8f5e823aa6fc8b01b223b737cf0df9ff33b (patch)
treeb1a13370617603a15cf88b0b50286786276eb6aa /org.rtems.cdt.toolchain2
parentRemoved explicit version requirements. (diff)
downloadrtems-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')
-rw-r--r--org.rtems.cdt.toolchain2/.classpath2
-rw-r--r--org.rtems.cdt.toolchain2/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--org.rtems.cdt.toolchain2/org/rtems/cdt/Storage.java50
-rw-r--r--org.rtems.cdt.toolchain2/org/rtems/cdt/VolatilePreferenceStore.java31
-rw-r--r--org.rtems.cdt.toolchain2/org/rtems/cdt/properties/PropertyPage.java183
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;
}