private synchronized void initialize(AbstractTextSearchResult result) { fResult = result; fChildrenMap = new HashMap(); boolean showLineMatches = !((Q7SearchQuery) fResult.getQuery()).isFileNameSearch(); if (result != null) { Object[] elements = result.getElements(); for (int i = 0; i < elements.length; i++) { if (showLineMatches) { Match[] matches = result.getMatches(elements[i]); for (int j = 0; j < matches.length; j++) { insert( ((org.eclipse.search.internal.ui.text.FileMatch) matches[j]).getLineElement(), false); } } else { insert(elements[i], false); } } } }
private void insert(Object child, boolean refreshViewer) { int searchFor = ((Q7SearchQuery) fResult.getQuery()).getSearchFor(); boolean isDependencySearch = searchFor == Q7SearchQuery.CONTEXTS_BY_ID || searchFor == Q7SearchQuery.TESTCASE_BY_ID || searchFor == Q7SearchQuery.VERIFICATION_BY_ID; if (isDependencySearch) { child = getParent(child); } Object parent = getParent(child); while (parent != null) { if (insertChild(parent, child)) { if (refreshViewer) fTreeViewer.add(parent, child); } else { if (refreshViewer) fTreeViewer.refresh(parent); return; } child = parent; parent = getParent(child); } if (insertChild(fResult, child)) { if (refreshViewer) fTreeViewer.add(fResult, child); } }