/*
  * (non-Javadoc)
  *
  * @see org.eclipse.search.internal.ui.text.IFileSearchContentProvider#
  * elementsChanged(java.lang.Object[])
  */
 public synchronized void elementsChanged(Object[] updatedElements) {
   for (int i = 0; i < updatedElements.length; i++) {
     if (!(updatedElements[i] instanceof LineElement)) {
       // change events to elements are reported in file search
       if (fResult.getMatchCount(updatedElements[i]) > 0) insert(updatedElements[i], true);
       else remove(updatedElements[i], true);
     } else {
       // change events to line elements are reported in text search
       LineElement lineElement = (LineElement) updatedElements[i];
       int nMatches = lineElement.getNumberOfMatches(fResult);
       if (nMatches > 0) {
         if (hasChild(lineElement.getParent(), lineElement)) {
           fTreeViewer.update(new Object[] {lineElement, lineElement.getParent()}, null);
         } else {
           insert(lineElement, true);
         }
       } else {
         remove(lineElement, true);
       }
     }
   }
 }