package org.eclipse.maven.ui.preferences;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.jface.preference.*;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.preferences.ScopedPreferenceStore;
import org.eclipse.maven.Activator;
public class MavenGeneralPreferences extends FieldEditorPreferencePage
implements IWorkbenchPreferencePage {
private DirectoryFieldEditor mavenHome;
private DirectoryFieldEditor jdkHome;
private DirectoryFieldEditor m2Repo;
public MavenGeneralPreferences() {
super(GRID);
}
public void createFieldEditors() {
mavenHome = new DirectoryFieldEditor(PreferencesConstants.MAVEN_HOME,
"Maven Home", getFieldEditorParent());
addField(mavenHome);
jdkHome = new DirectoryFieldEditor(PreferencesConstants.JAVA_HOME,
"JDK", getFieldEditorParent());
addField(jdkHome);
m2Repo = new DirectoryFieldEditor(PreferencesConstants.M2_REPO,
"M2Repo", getFieldEditorParent());
addField(m2Repo);
}
@Override
protected void initialize() {
super.initialize();
// We want to store M2_REPO property into java classpath vars
ScopedPreferenceStore store = new ScopedPreferenceStore(
new InstanceScope(), "org.eclipse.jdt.core");
m2Repo.setPreferenceStore(store);
store.addPropertyChangeListener(new IPropertyChangeListener(){
@Override
public void propertyChange(PropertyChangeEvent event) {
// We want to erase the value if the M2_REPO was deleted from the classpath variables ui...
if( event.getProperty().equals(PreferencesConstants.M2_REPO)) {
m2Repo.load();
}
}
});
m2Repo.load();
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
*/
public void init(IWorkbench workbench) {
setPreferenceStore(Activator.getDefault().getPreferenceStore());
noDefaultAndApplyButton();
setDescription("Configure the maven plugin.");
}
}