1 /********************************************************************** 2 * Copyright (c) 2003 IBM Corporation and others. 3 * All rights reserved. This program and the accompanying materials 4 * are made available under the terms of the Common Public License v1.0 5 * which accompanies this distribution, and is available at 6 * http://www.eclipse.org/legal/cpl-v10.html 7 �* 8 * Contributors: 9 * IBM - Initial API and implementation 10 **********************************************************************/ 11 package net.sourceforge.phpeclipse.webbrowser.internal; 12 13 import java.util.ArrayList; 14 import java.util.Iterator; 15 import java.util.List; 16 17 import net.sourceforge.phpeclipse.webbrowser.IWebBrowser; 18 19 import org.eclipse.jface.viewers.IStructuredContentProvider; 20 import org.eclipse.jface.viewers.Viewer; 21 22 /** 23 * Monitor content provider. 24 */ 25 public class BrowserContentProvider implements IStructuredContentProvider { 26 /** 27 * BrowserContentProvider constructor comment. 28 */ BrowserContentProvider()29 public BrowserContentProvider() { 30 super(); 31 } 32 33 /** 34 * Disposes of this content provider. This is called by the viewer when it 35 * is disposed. 36 */ dispose()37 public void dispose() { 38 } 39 40 /** 41 * Returns the elements to display in the viewer when its input is set to 42 * the given element. These elements can be presented as rows in a table, 43 * items in a list, etc. The result is not modified by the viewer. 44 * 45 * @param inputElement 46 * the input element 47 * @return the array of elements to display in the viewer 48 */ getElements(Object inputElement)49 public Object[] getElements(Object inputElement) { 50 List list = new ArrayList(); 51 Iterator iterator = BrowserManager.getInstance().getWebBrowsers() 52 .iterator(); 53 while (iterator.hasNext()) { 54 IWebBrowser browser = (IWebBrowser) iterator.next(); 55 list.add(browser); 56 } 57 return list.toArray(); 58 } 59 60 /** 61 * Notifies this content provider that the given viewer's input has been 62 * switched to a different element. 63 * <p> 64 * A typical use for this method is registering the content provider as a 65 * listener to changes on the new input (using model-specific means), and 66 * deregistering the viewer from the old input. In response to these change 67 * notifications, the content provider propagates the changes to the viewer. 68 * </p> 69 * 70 * @param viewer 71 * the viewer 72 * @param oldInput 73 * the old input element, or <code>null</code> if the viewer 74 * did not previously have an input 75 * @param newInput 76 * the new input element, or <code>null</code> if the viewer 77 * does not have an input 78 */ inputChanged(Viewer viewer, Object oldInput, Object newInput)79 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { 80 } 81 }