Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUwe Stieber2012-11-09 14:55:03 +0000
committerUwe Stieber2012-11-09 14:55:03 +0000
commit3f3a38a809fe6829a328862a117409e57a77dae3 (patch)
treea71ff4e5a1cb7691fe289477477bd423c626f1bf /target_explorer
parentca3c8f15be036f4fe82613df683c9c0790e200f1 (diff)
downloadorg.eclipse.tcf-3f3a38a809fe6829a328862a117409e57a77dae3.tar.gz
org.eclipse.tcf-3f3a38a809fe6829a328862a117409e57a77dae3.tar.xz
org.eclipse.tcf-3f3a38a809fe6829a328862a117409e57a77dae3.zip
Target Explorer: Allow customizable default activation state of current user filter
Diffstat (limited to 'target_explorer')
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/preferences/IPreferenceKeys.java5
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/preferences/PreferencesInitializer.java2
-rw-r--r--target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/ContentProviderDelegate.java43
3 files changed, 46 insertions, 4 deletions
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/preferences/IPreferenceKeys.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/preferences/IPreferenceKeys.java
index 5d4edc3d6..c9deafc5e 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/preferences/IPreferenceKeys.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/preferences/IPreferenceKeys.java
@@ -27,4 +27,9 @@ public interface IPreferenceKeys {
* Preference key to access the flag to hide proxies and value-add's in the "System Management" tree.
*/
public static final String PREF_HIDE_PROXIES_AND_VALUEADDS = PREFIX + ".model.proxies_valueadds.hide"; //$NON-NLS-1$
+
+ /**
+ * Preference key to access the flag to activate the current user filter on first launch.
+ */
+ public static final String PREF_ACTIVATE_CURRENT_USER_FILTER = PREFIX + ".model.currentUserFilter.activate"; //$NON-NLS-1$
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/preferences/PreferencesInitializer.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/preferences/PreferencesInitializer.java
index 52cd3e895..4d8e539d4 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/preferences/PreferencesInitializer.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/internal/preferences/PreferencesInitializer.java
@@ -35,5 +35,7 @@ public class PreferencesInitializer extends AbstractPreferenceInitializer {
store.setDefault(IPreferenceKeys.PREF_HIDE_DYNAMIC_TARGET_DISCOVERY_EXTENSION, true);
// [Hidden] Hide proxy and value-add's in the "System Management" view: default on
store.setDefault(IPreferenceKeys.PREF_HIDE_PROXIES_AND_VALUEADDS, true);
+ // [Hidden] Activate current user filter: default off
+ store.setDefault(IPreferenceKeys.PREF_ACTIVATE_CURRENT_USER_FILTER, false);
}
}
diff --git a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/ContentProviderDelegate.java b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/ContentProviderDelegate.java
index 79081716c..7947148f8 100644
--- a/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/ContentProviderDelegate.java
+++ b/target_explorer/plugins/org.eclipse.tcf.te.tcf.ui/src/org/eclipse/tcf/te/tcf/ui/navigator/ContentProviderDelegate.java
@@ -17,6 +17,7 @@ import java.util.concurrent.atomic.AtomicReference;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.viewers.ITreePathContentProvider;
import org.eclipse.jface.viewers.TreePath;
import org.eclipse.jface.viewers.Viewer;
@@ -46,6 +47,7 @@ import org.eclipse.ui.internal.navigator.NavigatorFilterService;
import org.eclipse.ui.navigator.CommonViewer;
import org.eclipse.ui.navigator.ICommonContentExtensionSite;
import org.eclipse.ui.navigator.ICommonContentProvider;
+import org.eclipse.ui.navigator.ICommonFilterDescriptor;
import org.eclipse.ui.navigator.INavigatorContentService;
import org.eclipse.ui.navigator.INavigatorFilterService;
@@ -59,6 +61,9 @@ public class ContentProviderDelegate implements ICommonContentProvider, ITreePat
// The "Redirected Peers" filter id
private final static String REDIRECT_PEERS_FILTER_ID = "org.eclipse.tcf.te.tcf.ui.navigator.RedirectPeersFilter"; //$NON-NLS-1$
+ // The current user filter id
+ private final static String CURRENT_USER_FILTER_ID = "org.eclipse.tcf.te.tcf.ui.navigator.PeersByCurrentUserFilter"; //$NON-NLS-1$
+
// The locator model listener instance
/* default */ IModelListener modelListener = null;
@@ -473,14 +478,44 @@ public class ContentProviderDelegate implements ICommonContentProvider, ITreePat
// Make sure that the hidden "Redirected Peers" filter is active
INavigatorContentService cs = config.getService();
navFilterService = cs != null ? cs.getFilterService() : null;
- if (navFilterService != null && !navFilterService.isActive(REDIRECT_PEERS_FILTER_ID)) {
- if (navFilterService instanceof NavigatorFilterService) {
- ((NavigatorFilterService)navFilterService).addActiveFilterIds(new String[] { REDIRECT_PEERS_FILTER_ID });
+ if (navFilterService instanceof NavigatorFilterService) {
+ final NavigatorFilterService filterService = (NavigatorFilterService)navFilterService;
+ boolean activeFiltersChanged = false;
+
+ // Reconstruct the list of active filters based on the visible filter descriptors
+ List<String> activeFilderIds = new ArrayList<String>();
+
+ ICommonFilterDescriptor[] descriptors = filterService.getVisibleFilterDescriptors();
+ for (ICommonFilterDescriptor descriptor : descriptors) {
+ if (descriptor.getId() != null && !"".equals(descriptor.getId()) && filterService.isActive(descriptor.getId())) { //$NON-NLS-1$
+ activeFilderIds.add(descriptor.getId());
+ }
+ }
+
+ if (!activeFilderIds.contains(REDIRECT_PEERS_FILTER_ID)) {
+ activeFilderIds.add(REDIRECT_PEERS_FILTER_ID);
+ activeFiltersChanged = true;
+ }
+
+ if (UIPlugin.getDefault().getPreferenceStore().getBoolean(IPreferenceKeys.PREF_ACTIVATE_CURRENT_USER_FILTER)
+ && !navFilterService.isActive(CURRENT_USER_FILTER_ID)) {
+ IDialogSettings settings = UIPlugin.getDefault().getDialogSettings();
+ IDialogSettings section = settings.getSection(this.getClass().getSimpleName());
+ if (section == null) section = settings.addNewSection(this.getClass().getSimpleName());
+ if (!section.getBoolean(IPreferenceKeys.PREF_ACTIVATE_CURRENT_USER_FILTER + ".done")) { //$NON-NLS-1$
+ activeFilderIds.add(CURRENT_USER_FILTER_ID);
+ activeFiltersChanged = true;
+ section.put(IPreferenceKeys.PREF_ACTIVATE_CURRENT_USER_FILTER + ".done", true); //$NON-NLS-1$
+ }
+ }
+
+ if (activeFiltersChanged) {
+ final String[] finActiveFilterIds = activeFilderIds.toArray(new String[activeFilderIds.size()]);
// Do the update view asynchronous to avoid reentrant viewer calls
DisplayUtil.safeAsyncExec(new Runnable() {
@Override
public void run() {
- ((NavigatorFilterService)navFilterService).updateViewer();
+ filterService.activateFilterIdsAndUpdateViewer(finActiveFilterIds);
}
});
}

Back to the top