Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimeon Andreev2018-11-06 12:15:38 +0000
committerSimeon Andreev2018-11-06 14:00:20 +0000
commit6100ecd8a9da560a70f7f5eed283dc1002551715 (patch)
treef7a0616012158a161c06404de44ef45ac207c81e
parent41e56139f31670455d0c982d3baceb314c0a5cc5 (diff)
downloadeclipse.platform.ua-6100ecd8a9da560a70f7f5eed283dc1002551715.tar.gz
eclipse.platform.ua-6100ecd8a9da560a70f7f5eed283dc1002551715.tar.xz
eclipse.platform.ua-6100ecd8a9da560a70f7f5eed283dc1002551715.zip
Bug 540662 - [Tips] Preference to unsubscribe from a Tip ProviderI20181107-0200
This change adds a preference which can disable specific tip providers. The preference then lists tip provider ids separated by commas. The preference can be specified via product customization, with the following line: org.eclipse.tips.ide/disabled_providers=org.eclipse.tips.ide.internal.provider.TipsTipProvider,org.eclipse.tips.ide.internal.provider.TwitterTipProvider Change-Id: I133e4ef90b6272254d10ef0c76149d7c04385d8c Signed-off-by: Simeon Andreev <Simeon.Andreev@NashTech.com>
-rw-r--r--org.eclipse.tips.ide/META-INF/MANIFEST.MF2
-rw-r--r--org.eclipse.tips.ide/pom.xml2
-rw-r--r--org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Startup.java10
-rw-r--r--org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/TipsPreferences.java27
4 files changed, 37 insertions, 4 deletions
diff --git a/org.eclipse.tips.ide/META-INF/MANIFEST.MF b/org.eclipse.tips.ide/META-INF/MANIFEST.MF
index 8ee1c1528..767eadb39 100644
--- a/org.eclipse.tips.ide/META-INF/MANIFEST.MF
+++ b/org.eclipse.tips.ide/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: org.eclipse.tips.ide;singleton:=true
-Bundle-Version: 0.1.200.qualifier
+Bundle-Version: 0.1.300.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.ui;bundle-version="3.108.0",
org.eclipse.core.runtime;bundle-version="3.12.0",
diff --git a/org.eclipse.tips.ide/pom.xml b/org.eclipse.tips.ide/pom.xml
index 43856bf81..2b10abecf 100644
--- a/org.eclipse.tips.ide/pom.xml
+++ b/org.eclipse.tips.ide/pom.xml
@@ -22,6 +22,6 @@
</parent>
<groupId>org.eclipse.ui</groupId>
<artifactId>org.eclipse.tips.ide</artifactId>
- <version>0.1.200-SNAPSHOT</version>
+ <version>0.1.300-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Startup.java b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Startup.java
index 0298efcaf..3b5232c14 100644
--- a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Startup.java
+++ b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/Startup.java
@@ -13,6 +13,9 @@
*******************************************************************************/
package org.eclipse.tips.ide.internal;
+import java.util.HashSet;
+import java.util.Set;
+
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -57,6 +60,7 @@ public class Startup implements IStartup {
}
public static void loadProviders() {
+ Set<String> disabledProviders = new HashSet<>(TipsPreferences.getDisabledProviderIds());
IConfigurationElement[] elements = Platform.getExtensionRegistry()
.getConfigurationElementsFor("org.eclipse.tips.core.tips"); //$NON-NLS-1$
for (IConfigurationElement element : elements) {
@@ -64,7 +68,11 @@ public class Startup implements IStartup {
try {
TipProvider provider = (TipProvider) element.createExecutableExtension("class"); //$NON-NLS-1$
provider.setExpression(getExpression(element));
- IDETipManager.getInstance().register(provider);
+ String providerId = provider.getID();
+ boolean isDisabled = disabledProviders.contains(providerId);
+ if (!isDisabled) {
+ IDETipManager.getInstance().register(provider);
+ }
} catch (CoreException e) {
log(e);
}
diff --git a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/TipsPreferences.java b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/TipsPreferences.java
index 1627d3922..6aaf8f0c5 100644
--- a/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/TipsPreferences.java
+++ b/org.eclipse.tips.ide/src/org/eclipse/tips/ide/internal/TipsPreferences.java
@@ -16,6 +16,7 @@ package org.eclipse.tips.ide.internal;
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
@@ -26,7 +27,10 @@ import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.core.runtime.preferences.DefaultScope;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.core.runtime.preferences.IScopeContext;
import org.eclipse.jface.preference.PreferenceStore;
import org.eclipse.tips.core.internal.TipManager;
import org.osgi.framework.Bundle;
@@ -52,13 +56,20 @@ public class TipsPreferences extends AbstractPreferenceInitializer {
*/
public static final String PREF_SERVE_READ_TIPS = "serve_read_tips"; //$NON-NLS-1$
+ /**
+ * Preference store key to indicate providers which are disabled. I.e. no tips
+ * are shown from these providers. The providers are indicated by their
+ * identifiers, the identifiers are strings separated by commas.
+ */
+ public static final String PREF_DISABLED_PROVIDERS = "disabled_providers"; //$NON-NLS-1$
+
public TipsPreferences() {
}
@Override
public void initializeDefaultPreferences() {
IEclipsePreferences node = getPreferences();
- node.putInt(PREF_STARTUP_BEHAVIOR, TipManager.START_DIALOG);
+ node.putInt(PREF_STARTUP_BEHAVIOR, TipManager.START_BACKGROUND);
node.putBoolean(PREF_SERVE_READ_TIPS, false);
try {
node.flush();
@@ -228,4 +239,18 @@ public class TipsPreferences extends AbstractPreferenceInitializer {
public static boolean isConsoleLog() {
return !System.getProperty("org.eclipse.tips.consolelog", FALSE).equals(FALSE); //$NON-NLS-1$
}
+
+ /**
+ * @return A list of tip provider identifiers, which are disabled with a
+ * preference on the configuration scope.
+ */
+ public static List<String> getDisabledProviderIds() {
+ IScopeContext[] scopes = { ConfigurationScope.INSTANCE, DefaultScope.INSTANCE };
+ IPreferencesService preferencesService = Platform.getPreferencesService();
+ String defaultValue = "";
+ String disabledProviderIdsPreference = preferencesService.getString(Constants.BUNDLE_ID,
+ PREF_DISABLED_PROVIDERS, defaultValue, scopes);
+ String[] disabledProviderIds = disabledProviderIdsPreference.split(",");
+ return Arrays.asList(disabledProviderIds);
+ }
} \ No newline at end of file

Back to the top