Skip to content

Commit

Permalink
Use "standard" org.eclipse.jdt.ui.prefs
Browse files Browse the repository at this point in the history
  • Loading branch information
vladt committed Mar 15, 2011
1 parent e23c451 commit 118285e
Show file tree
Hide file tree
Showing 8 changed files with 97 additions and 32 deletions.
16 changes: 12 additions & 4 deletions org.eclipse.m2e.core.ui/.settings/org.eclipse.jdt.ui.prefs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@

import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.m2e.core.MavenPlugin;
Expand All @@ -24,6 +26,7 @@
import org.eclipse.m2e.core.ui.internal.wizards.IImportWizardPageFactory;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.ui.preferences.ScopedPreferenceStore;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;

Expand All @@ -35,10 +38,25 @@ public class M2EUIPluginActivator extends AbstractUIPlugin {

private static M2EUIPluginActivator instance;

/**
* Storage for preferences.
*/
private ScopedPreferenceStore preferenceStore;

public M2EUIPluginActivator() {
M2EUIPluginActivator.instance = this;
}

@Override
public IPreferenceStore getPreferenceStore() {
// Create the preference store lazily.
if(preferenceStore == null) {
preferenceStore = new ScopedPreferenceStore(new InstanceScope(), IMavenConstants.PLUGIN_ID);

}
return preferenceStore;
}

private MavenConsoleImpl console;

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@
import java.net.URL;
import java.util.List;

import org.apache.maven.settings.building.SettingsProblem;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import org.eclipse.core.filesystem.EFS;
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.runtime.CoreException;
Expand All @@ -39,16 +41,6 @@
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.m2e.core.MavenPlugin;
import org.eclipse.m2e.core.embedder.IMaven;
import org.eclipse.m2e.core.embedder.IMavenConfiguration;
import org.eclipse.m2e.core.embedder.MavenRuntime;
import org.eclipse.m2e.core.embedder.MavenRuntimeManager;
import org.eclipse.m2e.core.index.IndexManager;
import org.eclipse.m2e.core.internal.embedder.MavenEmbeddedRuntime;
import org.eclipse.m2e.core.internal.preferences.MavenPreferenceConstants;
import org.eclipse.m2e.core.ui.internal.M2EUIPluginActivator;
import org.eclipse.m2e.core.ui.internal.Messages;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
Expand Down Expand Up @@ -81,8 +73,19 @@
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.browser.IWebBrowser;
import org.eclipse.ui.ide.IDE;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import org.apache.maven.settings.building.SettingsProblem;

import org.eclipse.m2e.core.MavenPlugin;
import org.eclipse.m2e.core.embedder.IMaven;
import org.eclipse.m2e.core.embedder.IMavenConfiguration;
import org.eclipse.m2e.core.embedder.MavenRuntime;
import org.eclipse.m2e.core.embedder.MavenRuntimeManager;
import org.eclipse.m2e.core.index.IndexManager;
import org.eclipse.m2e.core.internal.embedder.MavenEmbeddedRuntime;
import org.eclipse.m2e.core.internal.preferences.MavenPreferenceConstants;
import org.eclipse.m2e.core.ui.internal.M2EUIPluginActivator;
import org.eclipse.m2e.core.ui.internal.Messages;


/**
Expand Down Expand Up @@ -125,6 +128,7 @@ public MavenInstallationsPreferencePage() {
public void init(IWorkbench workbench) {
}

@Override
protected void performDefaults() {
runtimeManager.reset();
defaultRuntime = runtimeManager.getDefaultRuntime();
Expand All @@ -136,7 +140,11 @@ protected void performDefaults() {

storeCustom(""); //$NON-NLS-1$
globalSettingsText.setText(""); //$NON-NLS-1$
mavenConfiguration.setGlobalSettingsFile(""); //$NON-NLS-1$
try {
mavenConfiguration.setGlobalSettingsFile(""); //$NON-NLS-1$
} catch(CoreException e) {
log.error(e.getMessage(), e);
}

updateGlobals(true);
super.performDefaults();
Expand All @@ -147,14 +155,13 @@ protected void performDefaults() {
protected void storeCustom(String dir){
M2EUIPluginActivator.getDefault().getPreferenceStore().setValue(P_MAVEN_CUSTOM_GLOBAL, dir == null ? "" : dir); //$NON-NLS-1$
}
/* (non-Javadoc)
* @see org.eclipse.jface.preference.PreferencePage#performApply()
*/

@Override
protected void performApply() {
updateSettings();
}

public void updateSettings(){
private void updateSettings() {
new Job(Messages.MavenInstallationsPreferencePage_job_updating) {
protected IStatus run(IProgressMonitor monitor) {
String dir = getGlobalSettingsText();
Expand All @@ -163,7 +170,12 @@ protected IStatus run(IProgressMonitor monitor) {
runtimeManager.setDefaultRuntime(defaultRuntime);
String oldSettings = mavenConfiguration.getGlobalSettingsFile();

mavenConfiguration.setGlobalSettingsFile(dir);
try {
mavenConfiguration.setGlobalSettingsFile(dir);
} catch(CoreException e) {
log.error(e.getMessage(), e);
throw new RuntimeException(e.getMessage(), e);
}
if(defaultRuntime == null || defaultRuntime instanceof MavenEmbeddedRuntime){
storeCustom(dir);
}
Expand All @@ -181,6 +193,7 @@ protected IStatus run(IProgressMonitor monitor) {
}.schedule();
}

@Override
public boolean performOk() {
if (dirty) {
updateSettings();
Expand Down Expand Up @@ -266,7 +279,7 @@ private void updateGlobalSettingsText(boolean useLastCustomGlobal) {
* Use this to retrieve the global settings file which has not been applied yet
* @return
*/
public String getGlobalSettingsFile(boolean useLastCustomGlobal) {
private String getGlobalSettingsFile(boolean useLastCustomGlobal) {
if(defaultRuntime == null || defaultRuntime instanceof MavenEmbeddedRuntime){
String globalSettings = null;
if(useLastCustomGlobal){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,13 +156,18 @@ protected IStatus run(IProgressMonitor monitor) {
subMonitor.beginTask(NLS.bind(org.eclipse.m2e.core.ui.internal.Messages.MavenSettingsPreferencePage_task_updating, projects[i].getProject().getName()), 1);
allProjects.add(projects[i].getProject());
}
IMavenConfiguration configuration = MavenPlugin.getDefault().getMavenConfiguration();
MavenPlugin.getDefault().getMavenProjectManager().refresh(new MavenUpdateRequest(allProjects.toArray(new IProject[]{}), configuration.isOffline(), true));
MavenPlugin
.getDefault()
.getMavenProjectManager()
.refresh(
new MavenUpdateRequest(allProjects.toArray(new IProject[] {}), mavenConfiguration.isOffline(),
true));
subMonitor.done();
}
}
return Status.OK_STATUS;
} catch (CoreException e) {
log.error(e.getMessage(), e);
return e.getStatus();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

package org.eclipse.m2e.core.embedder;

import org.eclipse.core.runtime.CoreException;


/**
Expand All @@ -31,11 +32,11 @@ public interface IMavenConfiguration {
public String getGlobalSettingsFile();

//settable for embedded maven
public void setGlobalSettingsFile(String absolutePath);
public void setGlobalSettingsFile(String absolutePath) throws CoreException;

public String getUserSettingsFile();

public void setUserSettingsFile(String absolutePath);
public void setUserSettingsFile(String absolutePath) throws CoreException;

// resolution

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,13 @@

package org.eclipse.m2e.core.internal.preferences;

import java.util.Map;

import org.osgi.service.prefs.BackingStoreException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.ListenerList;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.preferences.DefaultScope;
Expand All @@ -23,6 +26,7 @@
import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
import org.eclipse.core.runtime.preferences.IEclipsePreferences.NodeChangeEvent;
import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
import org.eclipse.core.runtime.preferences.IPreferenceFilter;
import org.eclipse.core.runtime.preferences.IPreferencesService;
import org.eclipse.core.runtime.preferences.InstanceScope;

Expand Down Expand Up @@ -111,12 +115,14 @@ public boolean isOffline() {
return Boolean.parseBoolean(preferenceStore.get(MavenPreferenceConstants.P_OFFLINE, null, preferencesLookup));
}

public void setUserSettingsFile(String settingsFile) {
public void setUserSettingsFile(String settingsFile) throws CoreException {
preferencesLookup[0].put(MavenPreferenceConstants.P_USER_SETTINGS_FILE, nvl(settingsFile));
preferenceStore.applyPreferences(preferencesLookup[0], new IPreferenceFilter[] {getPreferenceFilter()});
}

public void setGlobalSettingsFile(String globalSettingsFile) {
public void setGlobalSettingsFile(String globalSettingsFile) throws CoreException {
preferencesLookup[0].put(MavenPreferenceConstants.P_GLOBAL_SETTINGS_FILE, nvl(globalSettingsFile));
preferenceStore.applyPreferences(preferencesLookup[0], new IPreferenceFilter[] {getPreferenceFilter()});
}

private static String nvl(String s) {
Expand Down Expand Up @@ -157,4 +163,16 @@ public void removed(NodeChangeEvent event) {
init();
}
}

private IPreferenceFilter getPreferenceFilter() {
return new IPreferenceFilter() {
public String[] getScopes() {
return new String[] {InstanceScope.SCOPE, DefaultScope.SCOPE};
}

public Map getMapping(String scope) {
return null;
}
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -1340,7 +1340,7 @@ public void run() {
});
}

protected static String setUserSettings(String settingsFile) {
protected static String setUserSettings(String settingsFile) throws CoreException {
if(settingsFile != null) {
settingsFile = new File(settingsFile).getAbsolutePath();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,15 @@

import java.io.File;

import org.eclipse.core.runtime.CoreException;

import org.eclipse.m2e.core.MavenPlugin;
import org.eclipse.m2e.core.embedder.IMavenConfiguration;


public class MavenHelpers {

public static String setUserSettings(String settingsFile) {
public static String setUserSettings(String settingsFile) throws CoreException {
if(settingsFile != null && settingsFile.length() > 0) {
settingsFile = new File(settingsFile).getAbsolutePath();
}
Expand Down

0 comments on commit 118285e

Please sign in to comment.