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
9 * IBM - Initial API and implementation
10 **********************************************************************/
11 package net.sourceforge.phpeclipse.webbrowser.internal;
13 import java.util.ArrayList;
14 import java.util.Iterator;
15 import java.util.List;
17 import net.sourceforge.phpeclipse.webbrowser.IWebBrowser;
19 import org.eclipse.jface.viewers.IStructuredContentProvider;
20 import org.eclipse.jface.viewers.Viewer;
23 * Monitor content provider.
25 public class BrowserContentProvider implements IStructuredContentProvider {
27 * BrowserContentProvider constructor comment.
29 public BrowserContentProvider() {
34 * Disposes of this content provider.
35 * This is called by the viewer when it is disposed.
37 public void dispose() { }
40 * Returns the elements to display in the viewer
41 * when its input is set to the given element.
42 * These elements can be presented as rows in a table, items in a list, etc.
43 * The result is not modified by the viewer.
45 * @param inputElement the input element
46 * @return the array of elements to display in the viewer
48 public Object[] getElements(Object inputElement) {
49 List list = new ArrayList();
50 Iterator iterator = BrowserManager.getInstance().getWebBrowsers().iterator();
51 while (iterator.hasNext()) {
52 IWebBrowser browser = (IWebBrowser) iterator.next();
55 return list.toArray();
59 * Notifies this content provider that the given viewer's input
60 * has been switched to a different element.
62 * A typical use for this method is registering the content provider as a listener
63 * to changes on the new input (using model-specific means), and deregistering the viewer
64 * from the old input. In response to these change notifications, the content provider
65 * propagates the changes to the viewer.
68 * @param viewer the viewer
69 * @param oldInput the old input element, or <code>null</code> if the viewer
70 * did not previously have an input
71 * @param newInput the new input element, or <code>null</code> if the viewer
72 * does not have an input
74 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}