/*
 * Copyright 1999-2004 The Apache Software Foundation.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.forrest.eclipse.preference;

import org.eclipse.jface.preference.*;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.IWorkbench;
import org.apache.forrest.eclipse.ForrestPlugin;
import org.eclipse.jface.preference.IPreferenceStore;

/**
 * This class represents a preference page that is contributed to the
 * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage </samp>,
 * we can use the field support built into JFace that allows us to create a page
 * that is small and knows how to save, restore and apply itself.
 * <p>
 * This page is used to modify preferences only. They are stored in the
 * preference store that belongs to the main plug-in class. That way,
 * preferences can be accessed directly via the preference store.
 */

public class ForrestPreferences extends FieldEditorPreferencePage implements
		IWorkbenchPreferencePage {
	public static final String WORKING_DIR = "WORKING_DIR";

	public static final String FORREST_HOME = "FORREST_HOME";

	public ForrestPreferences() {
		super(GRID);
		setPreferenceStore(ForrestPlugin.getDefault().getPreferenceStore());
		setDescription("Configuration for Forrest");
		initializeDefaults();
	}

	/**
	 * Sets the default values of the preferences.
	 * TODO Initialise FORREST_HOME from environment variable if available
	 */
	private void initializeDefaults() {
		IPreferenceStore store = getPreferenceStore();

	}

	/**
	 * Creates the field editors. Field editors are abstractions of the common
	 * GUI blocks needed to manipulate various types of preferences. Each field
	 * editor knows how to save and restore itself.
	 */
	public void createFieldEditors() {
		addField(new DirectoryFieldEditor(WORKING_DIR, "&Working Directory:",
				getFieldEditorParent()));
		addField(new DirectoryFieldEditor(FORREST_HOME, "&Forrest Home:",
				getFieldEditorParent()));

	}

	public void init(IWorkbench workbench) {
	}
}

@@ -665,16 +665,65 @@
 rence;%0A%0A
+import org.apache.forrest.eclipse.ForrestPlugin;%0A
 import o
@@ -750,17 +750,36 @@
 ference.
-*
+DirectoryFieldEditor
 ;%0Aimport
@@ -791,29 +791,44 @@
 eclipse.
-ui.IWorkbench
+jface.preference.FieldEditor
 Preferen
@@ -884,83 +884,29 @@
 org.
-apache.forrest.eclipse.ForrestPlugin;%0Aimport org.eclipse.jface.preference.I
+eclipse.ui.IWorkbench
 Pref
@@ -911,20 +911,19 @@
 eference
-Stor
+Pag
 e;%0A%0A/**%0A
@@ -1548,66 +1548,8 @@
 e %7B%0A
-%09public static final String WORKING_DIR = %22WORKING_DIR%22;%0A%0A
 %09pub
@@ -1602,16 +1602,18 @@
 T_HOME%22;
+%0A%09
 %0A%0A%09publi
@@ -1774,256 +1774,12 @@
 %22);%0A
-%09%09initializeDefaults();%0A%09%7D%0A%0A%09/**%0A%09 * Sets the default values of the preferences.%0A%09 * TODO Initialise FORREST_HOME from environment variable if available%0A%09 */%0A%09private void initializeDefaults() %7B%0A%09%09IPreferenceStore store = getPreferenceStore();%0A%0A
 %09%7D%0A
+%09
 %0A%09/*
@@ -2027,110 +2027,8 @@
 ) %7B%0A
-%09%09addField(new DirectoryFieldEditor(WORKING_DIR, %22&Working Directory:%22,%0A%09%09%09%09getFieldEditorParent()));%0A
 %09%09ad
@@ -2169,12 +2169,85 @@
 nch) %7B%0A%09
-%7D
+%09setPreferenceStore(ForrestPlugin.getDefault().getPreferenceStore());%0A%09%7D%0A%09
 %0A%7D%0A

Remove the working directory property, we now have the various actions working on the project context menu so we can derive the working directory from there