Lines 10-15
Link Here
|
10 |
* Juerg Billeter, juergbi@ethz.ch - 47136 Search view should show match objects |
10 |
* Juerg Billeter, juergbi@ethz.ch - 47136 Search view should show match objects |
11 |
* Ulrich Etter, etteru@ethz.ch - 47136 Search view should show match objects |
11 |
* Ulrich Etter, etteru@ethz.ch - 47136 Search view should show match objects |
12 |
* Roman Fuchs, fuchsro@ethz.ch - 47136 Search view should show match objects |
12 |
* Roman Fuchs, fuchsro@ethz.ch - 47136 Search view should show match objects |
|
|
13 |
* Vishal Gupta (Juniper Networks) - Show all the matches also in the List Mode https://bugs.eclipse.org/bugs/show_bug.cgi?id=332502 |
13 |
*******************************************************************************/ |
14 |
*******************************************************************************/ |
14 |
package org.eclipse.search.internal.ui.text; |
15 |
package org.eclipse.search.internal.ui.text; |
15 |
|
16 |
|
Lines 18-25
Link Here
|
18 |
import java.util.Iterator; |
19 |
import java.util.Iterator; |
19 |
import java.util.Set; |
20 |
import java.util.Set; |
20 |
|
21 |
|
|
|
22 |
import org.eclipse.swt.SWT; |
21 |
import org.eclipse.swt.dnd.DND; |
23 |
import org.eclipse.swt.dnd.DND; |
22 |
import org.eclipse.swt.dnd.Transfer; |
24 |
import org.eclipse.swt.dnd.Transfer; |
|
|
25 |
import org.eclipse.swt.events.SelectionAdapter; |
26 |
import org.eclipse.swt.events.SelectionEvent; |
27 |
import org.eclipse.swt.widgets.Composite; |
28 |
import org.eclipse.swt.widgets.Table; |
29 |
import org.eclipse.swt.widgets.TableColumn; |
23 |
|
30 |
|
24 |
import org.eclipse.core.runtime.IAdaptable; |
31 |
import org.eclipse.core.runtime.IAdaptable; |
25 |
|
32 |
|
Lines 38-43
Link Here
|
38 |
import org.eclipse.jface.viewers.StructuredSelection; |
45 |
import org.eclipse.jface.viewers.StructuredSelection; |
39 |
import org.eclipse.jface.viewers.StructuredViewer; |
46 |
import org.eclipse.jface.viewers.StructuredViewer; |
40 |
import org.eclipse.jface.viewers.TableViewer; |
47 |
import org.eclipse.jface.viewers.TableViewer; |
|
|
48 |
import org.eclipse.jface.viewers.TableViewerColumn; |
41 |
import org.eclipse.jface.viewers.TreeViewer; |
49 |
import org.eclipse.jface.viewers.TreeViewer; |
42 |
import org.eclipse.jface.viewers.Viewer; |
50 |
import org.eclipse.jface.viewers.Viewer; |
43 |
import org.eclipse.jface.viewers.ViewerComparator; |
51 |
import org.eclipse.jface.viewers.ViewerComparator; |
Lines 127-133
Link Here
|
127 |
return SHOW_IN_TARGETS; |
135 |
return SHOW_IN_TARGETS; |
128 |
} |
136 |
} |
129 |
}; |
137 |
}; |
|
|
138 |
|
139 |
// modified for bug 332502 |
140 |
public static final int FILE_NAME_COLUMN_INDEX = 0; |
141 |
/* public static final int LOCATION_COLUMN_INDEX = 1; |
142 |
public static final int LINE_NUMBER_COLUMN_INDEX = 2;*/ |
143 |
public static final int MATCH_COLUMN_INDEX = 1; |
130 |
|
144 |
|
|
|
145 |
private static final String[] fColumnLabels = new String[] { |
146 |
SearchMessages.FileSearchPageFilenameColumn_label, |
147 |
/* SearchMessages.FileSearchPageLocationColumn_label, |
148 |
SearchMessages.FileSearchPageLineNumberColumn_label,*/ |
149 |
SearchMessages.FileSearchPageMatchColumn_label |
150 |
}; |
151 |
|
152 |
private final int[] fColumnWidths = { /*150,*/ 300, /*100,*/ 300 }; |
153 |
private FileSearchTableViewerComparator comparator; |
154 |
|
131 |
public FileSearchPage() { |
155 |
public FileSearchPage() { |
132 |
fSortByNameAction= new SortAction(SearchMessages.FileSearchPage_sort_name_label, this, FileLabelProvider.SHOW_LABEL_PATH); |
156 |
fSortByNameAction= new SortAction(SearchMessages.FileSearchPage_sort_name_label, this, FileLabelProvider.SHOW_LABEL_PATH); |
133 |
fSortByPathAction= new SortAction(SearchMessages.FileSearchPage_sort_path_label, this, FileLabelProvider.SHOW_PATH_LABEL); |
157 |
fSortByPathAction= new SortAction(SearchMessages.FileSearchPage_sort_path_label, this, FileLabelProvider.SHOW_PATH_LABEL); |
Lines 153-162
Link Here
|
153 |
|
177 |
|
154 |
protected void configureTableViewer(TableViewer viewer) { |
178 |
protected void configureTableViewer(TableViewer viewer) { |
155 |
viewer.setUseHashlookup(true); |
179 |
viewer.setUseHashlookup(true); |
156 |
FileLabelProvider innerLabelProvider= new FileLabelProvider(this, fCurrentSortOrder); |
180 |
// modified for bug 332502 |
157 |
viewer.setLabelProvider(new DecoratingFileSearchLabelProvider(innerLabelProvider)); |
181 |
FileLabelProvider innerLabelProvider= new FileSearchLabelProvider(this, FileLabelProvider.SHOW_LABEL_PATH); |
|
|
182 |
FileSearchListLabelProvider labelProvider = new FileSearchListLabelProvider(innerLabelProvider, 0); |
183 |
viewer.setLabelProvider(labelProvider); |
184 |
createColumns(viewer, innerLabelProvider); |
158 |
viewer.setContentProvider(new FileTableContentProvider(this)); |
185 |
viewer.setContentProvider(new FileTableContentProvider(this)); |
159 |
viewer.setComparator(new DecoratorIgnoringViewerSorter(innerLabelProvider)); |
186 |
comparator = new FileSearchTableViewerComparator(innerLabelProvider); |
|
|
187 |
viewer.setComparator(comparator); |
160 |
fContentProvider= (IFileSearchContentProvider) viewer.getContentProvider(); |
188 |
fContentProvider= (IFileSearchContentProvider) viewer.getContentProvider(); |
161 |
addDragAdapters(viewer); |
189 |
addDragAdapters(viewer); |
162 |
} |
190 |
} |
Lines 195-200
Link Here
|
195 |
} |
223 |
} |
196 |
} |
224 |
} |
197 |
} |
225 |
} |
|
|
226 |
// modified for bug 332502 |
227 |
if(getLayout() == FLAG_LAYOUT_FLAT){ |
228 |
Object firstElement= ((IStructuredSelection)event.getSelection()).getFirstElement(); |
229 |
if (firstElement instanceof LineElement) { |
230 |
IFile file = (IFile) ((LineElement)firstElement).getParent(); |
231 |
try { |
232 |
open(getSite().getPage(), file, false); |
233 |
} catch (PartInitException e) { |
234 |
ErrorDialog.openError(getSite().getShell(), SearchMessages.FileSearchPage_open_file_dialog_title, SearchMessages.FileSearchPage_open_file_failed, e.getStatus()); |
235 |
} |
236 |
return; |
237 |
} |
238 |
} |
198 |
super.handleOpen(event); |
239 |
super.handleOpen(event); |
199 |
} |
240 |
} |
200 |
|
241 |
|
Lines 372-377
Link Here
|
372 |
} |
413 |
} |
373 |
return new Match[0]; |
414 |
return new Match[0]; |
374 |
} |
415 |
} |
|
|
416 |
// modified for bug 332502 |
417 |
if (element instanceof LineElement) { |
418 |
LineElement lineEntry= (LineElement) element; |
419 |
return lineEntry.getMatches(getInput()); |
420 |
} |
375 |
return super.getDisplayedMatches(element); |
421 |
return super.getDisplayedMatches(element); |
376 |
} |
422 |
} |
377 |
|
423 |
|
Lines 381-387
Link Here
|
381 |
changedElements.add(((FileMatch) matches[i]).getLineElement()); |
427 |
changedElements.add(((FileMatch) matches[i]).getLineElement()); |
382 |
} |
428 |
} |
383 |
} else { |
429 |
} else { |
384 |
super.evaluateChangedElements(matches, changedElements); |
430 |
// modified for bug 332502 |
|
|
431 |
for (int i = 0; i < matches.length; i++) { |
432 |
changedElements.add(((FileMatch) matches[i]).getLineElement()); |
433 |
} |
434 |
//super.evaluateChangedElements(matches, changedElements); |
385 |
} |
435 |
} |
386 |
} |
436 |
} |
387 |
|
437 |
|
Lines 389-393
Link Here
|
389 |
AbstractTextSearchResult input= getInput(); |
439 |
AbstractTextSearchResult input= getInput(); |
390 |
return getLayout() == FLAG_LAYOUT_TREE && input != null && !((FileSearchQuery) input.getQuery()).isFileNameSearch(); |
440 |
return getLayout() == FLAG_LAYOUT_TREE && input != null && !((FileSearchQuery) input.getQuery()).isFileNameSearch(); |
391 |
} |
441 |
} |
|
|
442 |
|
443 |
// added for bug 332502 |
444 |
protected TableViewer createTableViewer(Composite parent) { |
445 |
TableViewer tableViewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION); |
446 |
return tableViewer; |
447 |
} |
448 |
|
449 |
// added for bug 332502 |
450 |
private void createColumns(TableViewer viewer, FileLabelProvider innerLabelProvider) { |
451 |
for (int i = 0; i < fColumnLabels.length; i++) { |
452 |
TableViewerColumn viewerColumn = new TableViewerColumn(viewer, SWT.NONE); |
453 |
viewerColumn.setLabelProvider(new FileSearchListLabelProvider(innerLabelProvider, i)); |
454 |
TableColumn tableColumn = viewerColumn.getColumn(); |
455 |
tableColumn.setText(fColumnLabels[i]); |
456 |
tableColumn.setWidth(fColumnWidths[i]); |
457 |
tableColumn.setResizable(true); |
458 |
tableColumn.setMoveable(false); |
459 |
tableColumn.addSelectionListener(getSelectionAdapter(viewer, tableColumn, i)); |
460 |
} |
461 |
Table table = viewer.getTable(); |
462 |
table.setHeaderVisible(true); |
463 |
table.setLinesVisible(true); |
464 |
} |
465 |
|
466 |
// added for bug 332502 |
467 |
private SelectionAdapter getSelectionAdapter(final TableViewer viewer, |
468 |
final TableColumn column, final int index) { |
469 |
SelectionAdapter selectionAdapter = new SelectionAdapter() { |
470 |
public void widgetSelected(SelectionEvent e) { |
471 |
comparator.setColumn(index); |
472 |
int dir = comparator.getDirection(); |
473 |
viewer.getTable().setSortDirection(dir); |
474 |
viewer.getTable().setSortColumn(column); |
475 |
viewer.refresh(); |
476 |
} |
477 |
}; |
478 |
return selectionAdapter; |
479 |
} |
392 |
|
480 |
|
393 |
} |
481 |
} |