///******************************************************************************* // * Copyright (c) 2000, 2006 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // *******************************************************************************/ //package org.eclipse.search2.internal.ui.text; // //import java.util.ArrayList; //import java.util.HashMap; //import java.util.Iterator; //import java.util.Map; // //import org.eclipse.ui.IEditorPart; //import org.eclipse.ui.IEditorReference; //import org.eclipse.ui.IPartListener2; //import org.eclipse.ui.IWorkbenchPage; //import org.eclipse.ui.IWorkbenchPartReference; //import org.eclipse.ui.IWorkbenchWindow; // //import org.eclipse.search.ui.text.AbstractTextSearchResult; // //public class WindowAnnotationManager { // private IWorkbenchWindow fWindow; // private Map fAnnotationManagers; // private IPartListener2 fPartListener; // private ArrayList fSearchResults; // // public WindowAnnotationManager(IWorkbenchWindow window) { // fWindow = window; // fAnnotationManagers = new HashMap(); // // fSearchResults= new ArrayList(); // // initEditors(); // fPartListener= new IPartListener2() { // public void partActivated(IWorkbenchPartReference partRef) { // startHighlighting(getEditor(partRef)); // } // // public void partBroughtToTop(IWorkbenchPartReference partRef) { // startHighlighting(getEditor(partRef)); // } // // public void partClosed(IWorkbenchPartReference partRef) { // stopHighlighting(getEditor(partRef)); // } // // public void partDeactivated(IWorkbenchPartReference partRef) { // } // // public void partOpened(IWorkbenchPartReference partRef) { // } // // public void partHidden(IWorkbenchPartReference partRef) { // stopHighlighting(getEditor(partRef)); // } // // public void partVisible(IWorkbenchPartReference partRef) { // startHighlighting(getEditor(partRef)); // } // // public void partInputChanged(IWorkbenchPartReference partRef) { // updateHighlighting(getEditor(partRef)); // } // }; // fWindow.getPartService().addPartListener(fPartListener); // // } // // private void startHighlighting(IEditorPart editor) { // if (editor == null) // return; // EditorAnnotationManager mgr= (EditorAnnotationManager) fAnnotationManagers.get(editor); // if (mgr == null) { // mgr= new EditorAnnotationManager(editor); // fAnnotationManagers.put(editor, mgr); // mgr.setSearchResults(fSearchResults); // } // } // // private void updateHighlighting(IEditorPart editor) { // if (editor == null) // return; // EditorAnnotationManager mgr= (EditorAnnotationManager) fAnnotationManagers.get(editor); // if (mgr != null) { // mgr.doEditorInputChanged(); // } // } // // // private void initEditors() { // IWorkbenchPage[] pages= fWindow.getPages(); // for (int i = 0; i < pages.length; i++) { // IEditorReference[] editors= pages[i].getEditorReferences(); // for (int j = 0; j < editors.length; j++) { // IEditorPart editor= editors[j].getEditor(false); // if (editor != null && pages[i].isPartVisible(editor)) { // startHighlighting(editor); // } // } // } // } // // private void stopHighlighting(IEditorPart editor) { // if (editor == null) // return; // EditorAnnotationManager mgr= (EditorAnnotationManager) fAnnotationManagers.remove(editor); // if (mgr != null) // mgr.dispose(); // } // // private IEditorPart getEditor(IWorkbenchPartReference partRef) { // if (partRef instanceof IEditorReference) { // return ((IEditorReference)partRef).getEditor(false); // } // return null; // } // // void dispose() { // fWindow.getPartService().removePartListener(fPartListener); // for (Iterator mgrs = fAnnotationManagers.values().iterator(); mgrs.hasNext();) { // EditorAnnotationManager mgr = (EditorAnnotationManager) mgrs.next(); // mgr.dispose(); // } // fAnnotationManagers= null; // } // // void addSearchResult(AbstractTextSearchResult result) { // boolean alreadyShown= fSearchResults.contains(result); // fSearchResults.add(result); // if (!alreadyShown) { // for (Iterator mgrs = fAnnotationManagers.values().iterator(); mgrs.hasNext();) { // EditorAnnotationManager mgr = (EditorAnnotationManager) mgrs.next(); // mgr.addSearchResult(result); // } // } // } // // void removeSearchResult(AbstractTextSearchResult result) { // fSearchResults.remove(result); // boolean stillShown= fSearchResults.contains(result); // if (!stillShown) { // for (Iterator mgrs = fAnnotationManagers.values().iterator(); mgrs.hasNext();) { // EditorAnnotationManager mgr = (EditorAnnotationManager) mgrs.next(); // mgr.removeSearchResult(result); // } // } // } // //}