Lines 27-32
Link Here
|
27 |
import org.eclipse.swt.events.MouseEvent; |
27 |
import org.eclipse.swt.events.MouseEvent; |
28 |
import org.eclipse.swt.events.MouseListener; |
28 |
import org.eclipse.swt.events.MouseListener; |
29 |
import org.eclipse.swt.graphics.Point; |
29 |
import org.eclipse.swt.graphics.Point; |
|
|
30 |
import org.eclipse.swt.widgets.Display; |
30 |
import org.eclipse.swt.widgets.Table; |
31 |
import org.eclipse.swt.widgets.Table; |
31 |
import org.eclipse.swt.widgets.TableItem; |
32 |
import org.eclipse.swt.widgets.TableItem; |
32 |
import org.eclipse.swt.widgets.Tree; |
33 |
import org.eclipse.swt.widgets.Tree; |
Lines 55-61
Link Here
|
55 |
InterestFilter filter = getInterestFilter(treeViewer); |
56 |
InterestFilter filter = getInterestFilter(treeViewer); |
56 |
Object targetObject = targetSelection.getFirstElement(); |
57 |
Object targetObject = targetSelection.getFirstElement(); |
57 |
if (filter != null && targetObject != null) { |
58 |
if (filter != null && targetObject != null) { |
58 |
filter.setTemporarilyUnfiltered(targetObject); |
59 |
filter.addTemporarilyUnfiltered(targetObject); |
59 |
if (targetObject instanceof Tree) { |
60 |
if (targetObject instanceof Tree) { |
60 |
treeViewer.refresh(); |
61 |
treeViewer.refresh(); |
61 |
} else { |
62 |
} else { |
Lines 67-73
Link Here
|
67 |
|
68 |
|
68 |
private void unfilter(final InterestFilter filter, final TreeViewer treeViewer, Object targetObject) { |
69 |
private void unfilter(final InterestFilter filter, final TreeViewer treeViewer, Object targetObject) { |
69 |
if (targetObject != null) { |
70 |
if (targetObject != null) { |
70 |
filter.setTemporarilyUnfiltered(targetObject); |
71 |
filter.addTemporarilyUnfiltered(targetObject); |
71 |
if (targetObject instanceof Tree) { |
72 |
if (targetObject instanceof Tree) { |
72 |
treeViewer.refresh(); |
73 |
treeViewer.refresh(); |
73 |
} else { |
74 |
} else { |
Lines 132-154
Link Here
|
132 |
if ((event.stateMask & SWT.MOD1) != 0) { |
133 |
if ((event.stateMask & SWT.MOD1) != 0) { |
133 |
viewer.refresh(selectedObject); |
134 |
viewer.refresh(selectedObject); |
134 |
} else { |
135 |
} else { |
135 |
final Object unfiltered = filter.getTemporarilyUnfiltered(); |
136 |
final Object unfiltered = filter.getLastTemporarilyUnfiltered(); |
136 |
if (unfiltered != null) { |
137 |
if (unfiltered != null) { |
137 |
// NOTE: delaying refresh to ensure double click is handled, see bug 208702 |
138 |
// NOTE: delaying refresh to ensure double click is handled, see bug 208702 |
138 |
new UIJob("") { //$NON-NLS-1$ |
139 |
resetUnfiltered(); |
139 |
@Override |
|
|
140 |
public IStatus runInUIThread(IProgressMonitor monitor) { |
141 |
filter.resetTemporarilyUnfiltered(); |
142 |
viewer.refresh(unfiltered); |
143 |
return Status.OK_STATUS; |
144 |
} |
145 |
}.schedule(event.display.getDoubleClickTime() + 50); |
146 |
} |
140 |
} |
147 |
} |
141 |
} |
148 |
} |
142 |
} |
149 |
} |
143 |
} |
150 |
} |
144 |
} |
151 |
|
145 |
|
|
|
146 |
public void resetUnfiltered() { |
147 |
new UIJob("") { //$NON-NLS-1$ |
148 |
@Override |
149 |
public IStatus runInUIThread(IProgressMonitor monitor) { |
150 |
final InterestFilter filter = getInterestFilter(viewer); |
151 |
filter.resetTemporarilyUnfiltered(); |
152 |
viewer.refresh(); |
153 |
return Status.OK_STATUS; |
154 |
} |
155 |
}.schedule(Display.getDefault().getDoubleClickTime() + 50); |
156 |
} |
157 |
|
152 |
private Object getClickedItem(MouseEvent event) { |
158 |
private Object getClickedItem(MouseEvent event) { |
153 |
if (event.getSource() instanceof Table) { |
159 |
if (event.getSource() instanceof Table) { |
154 |
TableItem item = ((Table) event.getSource()).getItem(new Point(event.x, event.y)); |
160 |
TableItem item = ((Table) event.getSource()).getItem(new Point(event.x, event.y)); |