intial source from htp://www.sf.net/projects/wdte
[phpeclipse.git] / net.sourceforge.phpeclipse.webbrowser / src / org / eclipse / webbrowser / internal / BrowserContentProvider.java
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 org.eclipse.webbrowser.internal;
12
13 import java.util.*;
14 import org.eclipse.jface.viewers.Viewer;
15 import org.eclipse.jface.viewers.IStructuredContentProvider;
16 import org.eclipse.webbrowser.IWebBrowser;
17
18 /**
19  * Monitor content provider.
20  */
21 public class BrowserContentProvider implements IStructuredContentProvider {
22         /**
23          * BrowserContentProvider constructor comment.
24          */
25         public BrowserContentProvider() {
26                 super();
27         }
28
29         /**
30          * Disposes of this content provider.  
31          * This is called by the viewer when it is disposed.
32          */
33         public void dispose() { }
34
35         /**
36          * Returns the elements to display in the viewer 
37          * when its input is set to the given element. 
38          * These elements can be presented as rows in a table, items in a list, etc.
39          * The result is not modified by the viewer.
40          *
41          * @param inputElement the input element
42          * @return the array of elements to display in the viewer
43          */
44         public Object[] getElements(Object inputElement) {
45                 List list = new ArrayList();
46                 Iterator iterator = BrowserManager.getInstance().getWebBrowsers().iterator();
47                 while (iterator.hasNext()) {
48                         IWebBrowser browser = (IWebBrowser) iterator.next();
49                         list.add(browser);
50                 }
51                 return list.toArray();
52                 }
53
54         /**
55          * Notifies this content provider that the given viewer's input
56          * has been switched to a different element.
57          * <p>
58          * A typical use for this method is registering the content provider as a listener
59          * to changes on the new input (using model-specific means), and deregistering the viewer 
60          * from the old input. In response to these change notifications, the content provider
61          * propagates the changes to the viewer.
62          * </p>
63          *
64          * @param viewer the viewer
65          * @param oldInput the old input element, or <code>null</code> if the viewer
66          *   did not previously have an input
67          * @param newInput the new input element, or <code>null</code> if the viewer
68          *   does not have an input
69          */
70         public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
71 }