View | Details | Raw Unified | Return to bug 302015 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/mylyn/internal/context/ui/BrowseFilteredListener.java (-3 / +3 lines)
Lines 55-61 Link Here
55
		InterestFilter filter = getInterestFilter(treeViewer);
55
		InterestFilter filter = getInterestFilter(treeViewer);
56
		Object targetObject = targetSelection.getFirstElement();
56
		Object targetObject = targetSelection.getFirstElement();
57
		if (filter != null && targetObject != null) {
57
		if (filter != null && targetObject != null) {
58
			filter.setTemporarilyUnfiltered(targetObject);
58
			filter.addTemporarilyUnfiltered(targetObject);
59
			if (targetObject instanceof Tree) {
59
			if (targetObject instanceof Tree) {
60
				treeViewer.refresh();
60
				treeViewer.refresh();
61
			} else {
61
			} else {
Lines 67-73 Link Here
67
67
68
	private void unfilter(final InterestFilter filter, final TreeViewer treeViewer, Object targetObject) {
68
	private void unfilter(final InterestFilter filter, final TreeViewer treeViewer, Object targetObject) {
69
		if (targetObject != null) {
69
		if (targetObject != null) {
70
			filter.setTemporarilyUnfiltered(targetObject);
70
			filter.addTemporarilyUnfiltered(targetObject);
71
			if (targetObject instanceof Tree) {
71
			if (targetObject instanceof Tree) {
72
				treeViewer.refresh();
72
				treeViewer.refresh();
73
			} else {
73
			} else {
Lines 132-138 Link Here
132
				if ((event.stateMask & SWT.MOD1) != 0) {
132
				if ((event.stateMask & SWT.MOD1) != 0) {
133
					viewer.refresh(selectedObject);
133
					viewer.refresh(selectedObject);
134
				} else {
134
				} else {
135
					final Object unfiltered = filter.getTemporarilyUnfiltered();
135
					final Object unfiltered = filter.getLastTemporarilyUnfiltered();
136
					if (unfiltered != null) {
136
					if (unfiltered != null) {
137
						// NOTE: delaying refresh to ensure double click is handled, see bug 208702
137
						// NOTE: delaying refresh to ensure double click is handled, see bug 208702
138
						new UIJob("") { //$NON-NLS-1$
138
						new UIJob("") { //$NON-NLS-1$
(-)src/org/eclipse/mylyn/context/ui/InterestFilter.java (-6 / +17 lines)
Lines 13-18 Link Here
13
13
14
package org.eclipse.mylyn.context.ui;
14
package org.eclipse.mylyn.context.ui;
15
15
16
import java.util.HashSet;
17
import java.util.Set;
18
16
import org.eclipse.core.resources.IProject;
19
import org.eclipse.core.resources.IProject;
17
import org.eclipse.core.resources.IProjectNature;
20
import org.eclipse.core.resources.IProjectNature;
18
import org.eclipse.core.resources.IResource;
21
import org.eclipse.core.resources.IResource;
Lines 42-48 Link Here
42
 */
45
 */
43
public class InterestFilter extends ViewerFilter {
46
public class InterestFilter extends ViewerFilter {
44
47
45
	private Object temporarilyUnfiltered = null;
48
	private Set<Object> temporarilyUnfiltered = null;
49
50
	private Object lastTemporarilyUnfiltered = null;
46
51
47
	@Override
52
	@Override
48
	public boolean select(Viewer viewer, Object parent, Object object) {
53
	public boolean select(Viewer viewer, Object parent, Object object) {
Lines 144-154 Link Here
144
			TreePath treePath = (TreePath) parent;
149
			TreePath treePath = (TreePath) parent;
145
			parent = treePath.getLastSegment();
150
			parent = treePath.getLastSegment();
146
		}
151
		}
147
		return temporarilyUnfiltered != null && temporarilyUnfiltered.equals(parent);
152
		return temporarilyUnfiltered != null && temporarilyUnfiltered.contains(parent);
153
148
	}
154
	}
149
155
150
	public void setTemporarilyUnfiltered(Object temprarilyUnfiltered) {
156
	public void addTemporarilyUnfiltered(Object temprarilyUnfiltered) {
151
		this.temporarilyUnfiltered = temprarilyUnfiltered;
157
		if (temporarilyUnfiltered == null) {
158
			temporarilyUnfiltered = new HashSet<Object>();
159
		}
160
		this.temporarilyUnfiltered.add(temprarilyUnfiltered);
161
		this.lastTemporarilyUnfiltered = temprarilyUnfiltered;
152
	}
162
	}
153
163
154
	/**
164
	/**
Lines 157-170 Link Here
157
	public boolean resetTemporarilyUnfiltered() {
167
	public boolean resetTemporarilyUnfiltered() {
158
		if (temporarilyUnfiltered != null) {
168
		if (temporarilyUnfiltered != null) {
159
			this.temporarilyUnfiltered = null;
169
			this.temporarilyUnfiltered = null;
170
			this.lastTemporarilyUnfiltered = null;
160
			return true;
171
			return true;
161
		} else {
172
		} else {
162
			return false;
173
			return false;
163
		}
174
		}
164
	}
175
	}
165
176
166
	public Object getTemporarilyUnfiltered() {
177
	public Object getLastTemporarilyUnfiltered() {
167
		return temporarilyUnfiltered;
178
		return lastTemporarilyUnfiltered;
168
	}
179
	}
169
180
170
}
181
}

Return to bug 302015