/*
 * 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) {
	}
}

/*
 * 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.apache.forrest.eclipse.ForrestPlugin;
import org.eclipse.jface.preference.DirectoryFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;

/**
 * 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 FORREST_HOME = "FORREST_HOME";
	

	public ForrestPreferences() {
		super(GRID);
		setPreferenceStore(ForrestPlugin.getDefault().getPreferenceStore());
		setDescription("Configuration for Forrest");
	}
	
	/**
	 * 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(FORREST_HOME, "&Forrest Home:",
				getFieldEditorParent()));

	}

	public void init(IWorkbench workbench) {
		setPreferenceStore(ForrestPlugin.getDefault().getPreferenceStore());
	}
	
}

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