Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use equinox preferences APIs in RefreshManager class #497 #695

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2004, 2022 IBM Corporation and others.
* Copyright (c) 2004, 2023 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
Expand All @@ -12,9 +12,11 @@
* IBM - Initial API and implementation
* Christoph Läubrich - Issue #84 - RefreshManager access ResourcesPlugin.getWorkspace in the init phase
* - Issue #97 - RefreshManager.manageAutoRefresh calls ResourcesPlugin.getWorkspace before the Workspace is fully open
* Latha Patil(ETAS GmbH) - Issue #497- Get rid of deprecated org.eclipse.core.runtime.Preferences in platform code
*******************************************************************************/
package org.eclipse.core.internal.refresh;

import org.eclipse.core.internal.preferences.EclipsePreferences;
import org.eclipse.core.internal.resources.IManager;
import org.eclipse.core.internal.resources.Workspace;
import org.eclipse.core.internal.utils.Messages;
Expand All @@ -23,7 +25,9 @@
import org.eclipse.core.resources.refresh.IRefreshMonitor;
import org.eclipse.core.resources.refresh.IRefreshResult;
import org.eclipse.core.runtime.*;
import org.eclipse.core.runtime.Preferences.PropertyChangeEvent;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
import org.eclipse.core.runtime.preferences.InstanceScope;

/**
* Manages auto-refresh functionality, including maintaining the active
Expand All @@ -32,7 +36,7 @@
*
* @since 3.0
*/
public class RefreshManager implements IRefreshResult, IManager, Preferences.IPropertyChangeListener {
public class RefreshManager implements IRefreshResult, IManager, EclipsePreferences.IPreferenceChangeListener {
public static final String DEBUG_PREFIX = "Auto-refresh: "; //$NON-NLS-1$
volatile MonitorManager monitors;
private volatile RefreshJob refreshJob;
Expand Down Expand Up @@ -75,16 +79,15 @@ public void monitorFailed(IRefreshMonitor monitor, IResource resource) {
}

/**
* Checks for changes to the PREF_AUTO_UPDATE property.
* @see org.eclipse.core.runtime.Preferences.IPropertyChangeListener#propertyChange(Preferences.PropertyChangeEvent)
* Checks for changes to the PREF_AUTO_REFRESH property.
* @see org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener#preferenceChange(IEclipsePreferences.PreferenceChangeEvent)
*/
@Deprecated
@Override
public void propertyChange(PropertyChangeEvent event) {
String property = event.getProperty();
public void preferenceChange(PreferenceChangeEvent event) {
String property = event.getKey();
if (ResourcesPlugin.PREF_AUTO_REFRESH.equals(property)) {
Preferences preferences = ResourcesPlugin.getPlugin().getPluginPreferences();
final boolean autoRefresh = preferences.getBoolean(ResourcesPlugin.PREF_AUTO_REFRESH);
final boolean autoRefresh = Platform.getPreferencesService().getBoolean(ResourcesPlugin.PI_RESOURCES,
ResourcesPlugin.PREF_AUTO_REFRESH, false, null);
String jobName = autoRefresh ? Messages.refresh_installMonitorsOnWorkspace : Messages.refresh_uninstallMonitorsOnWorkspace;
MonitorJob.createSystem(jobName, getWorkspace().getRoot(),
(ICoreRunnable) monitor -> manageAutoRefresh(autoRefresh, monitor)).schedule();
Expand All @@ -109,7 +112,7 @@ public void shutdown(IProgressMonitor monitor) {
// do nothing if we have already shutdown
return;
}
ResourcesPlugin.getPlugin().getPluginPreferences().removePropertyChangeListener(this);
InstanceScope.INSTANCE.getNode(ResourcesPlugin.PI_RESOURCES).removePreferenceChangeListener(this);
if (monitors != null) {
monitors.stop();
monitors = null;
Expand All @@ -129,9 +132,9 @@ public void startup(IProgressMonitor monitor) {
refreshJob = new RefreshJob(workspace);
monitors = new MonitorManager(workspace, this);

Preferences preferences = ResourcesPlugin.getPlugin().getPluginPreferences();
preferences.addPropertyChangeListener(this);
boolean autoRefresh = preferences.getBoolean(ResourcesPlugin.PREF_AUTO_REFRESH);
InstanceScope.INSTANCE.getNode(ResourcesPlugin.PI_RESOURCES).addPreferenceChangeListener(this);
boolean autoRefresh = Platform.getPreferencesService().getBoolean(ResourcesPlugin.PI_RESOURCES,
ResourcesPlugin.PREF_AUTO_REFRESH, false, null);
if (autoRefresh) {
SubMonitor subMonitor = SubMonitor.convert(monitor, 1);
manageAutoRefresh(autoRefresh, subMonitor.split(1));
Expand Down
Loading