X-Git-Url: http://secure.phpeclipse.com

diff --git a/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/internal/WebBrowser.java b/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/internal/WebBrowser.java
index 829d813..4c4f9ee 100644
--- a/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/internal/WebBrowser.java
+++ b/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/internal/WebBrowser.java
@@ -1,62 +1,101 @@
 /**
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- *    IBM - Initial API and implementation
+ * Copyright (c) 2003 IBM Corporation and others. All rights reserved. � This
+ * program and the accompanying materials are made available under the terms of
+ * the Common Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/cpl-v10.html �* Contributors: IBM -
+ * Initial API and implementation
  */
 
-//TODO 1. Handle the sizing of a popup running in shelled out secondary window.
-//TODO 2. Support printing: waiting on eclipse bug 47937/44823.
-
+// TODO 1. Handle the sizing of a popup running in shelled out secondary window.
+// TODO 2. Support printing: waiting on eclipse bug 47937/44823.
 package net.sourceforge.phpeclipse.webbrowser.internal;
 
-import java.util.*;
+import java.util.Iterator;
 
 import net.sourceforge.phpeclipse.webbrowser.IURLMap;
 
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.browser.CloseWindowListener;
+import org.eclipse.swt.browser.LocationEvent;
+import org.eclipse.swt.browser.LocationListener;
+import org.eclipse.swt.browser.OpenWindowListener;
+import org.eclipse.swt.browser.ProgressEvent;
+import org.eclipse.swt.browser.ProgressListener;
+import org.eclipse.swt.browser.StatusTextEvent;
+import org.eclipse.swt.browser.StatusTextListener;
+import org.eclipse.swt.browser.TitleEvent;
+import org.eclipse.swt.browser.TitleListener;
+import org.eclipse.swt.browser.WindowEvent;
 import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.events.*;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.swt.browser.*;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.ProgressBar;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.ui.PlatformUI;
 
 public class WebBrowser extends Composite {
 	protected Composite toolbarComp;
+
 	protected Composite statusComp;
+
 	protected Combo combo;
+
 	protected Clipboard clipboard;
+
 	protected boolean showToolbar;
+
 	protected ToolItem back;
+
 	protected ToolItem forward;
+
 	protected ToolItem stop;
+
 	protected ToolItem favorites;
+
 	protected ToolItem refresh;
+
 	protected BusyIndicator busy;
+
 	protected boolean showStatusbar;
+
 	protected ProgressBar progress;
+
 	protected Label status;
+
 	private static int MAX_HISTORY = 50;
+
 	protected static java.util.List history;
-	protected Browser browser; 
+
+	protected Browser browser;
+
 	protected Shell shell;
+
 	protected WebBrowserEditor editor;
+
 	protected String title;
-	
-	public WebBrowser(Composite parent, final boolean showToolbar, final boolean showStatusbar) {
+
+	public WebBrowser(Composite parent, final boolean showToolbar,
+			final boolean showStatusbar) {
 		super(parent, SWT.NONE);
 
 		this.showToolbar = showToolbar;
-		this.showStatusbar = showStatusbar;	
+		this.showStatusbar = showStatusbar;
 
 		GridLayout layout = new GridLayout();
 		layout.marginHeight = 3;
@@ -67,8 +106,9 @@ public class WebBrowser extends Composite {
 		setLayout(layout);
 		setLayoutData(new GridData(GridData.FILL_BOTH));
 		clipboard = new Clipboard(parent.getDisplay());
-		WorkbenchHelp.setHelp(this, ContextIds.WEB_BROWSER);
-		
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
+				ContextIds.WEB_BROWSER);
+
 		if (showToolbar) {
 			toolbarComp = new Composite(this, SWT.NONE);
 			GridLayout outerLayout = new GridLayout();
@@ -76,27 +116,32 @@ public class WebBrowser extends Composite {
 			outerLayout.marginWidth = 0;
 			outerLayout.marginHeight = 0;
 			toolbarComp.setLayout(outerLayout);
-			toolbarComp.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL));
-			
-			// create the top line, with a combo box for history and a "go" button
+			toolbarComp.setLayoutData(new GridData(
+					GridData.VERTICAL_ALIGN_BEGINNING
+							| GridData.FILL_HORIZONTAL));
+
+			// create the top line, with a combo box for history and a "go"
+			// button
 			Composite top = new Composite(toolbarComp, SWT.NONE);
 			GridLayout topLayout = new GridLayout();
 			topLayout.numColumns = 2;
 			topLayout.marginWidth = 0;
 			topLayout.marginHeight = 0;
 			top.setLayout(topLayout);
-			top.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.FILL_HORIZONTAL));
-			
+			top.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER
+					| GridData.FILL_HORIZONTAL));
+
 			combo = new Combo(top, SWT.DROP_DOWN);
-			
+
 			updateHistory();
-			
+
 			combo.addSelectionListener(new SelectionAdapter() {
 				public void widgetSelected(SelectionEvent we) {
 					try {
 						if (combo.getSelectionIndex() != -1)
 							setURL(combo.getItem(combo.getSelectionIndex()));
-					} catch (Exception e) { }
+					} catch (Exception e) {
+					}
 				}
 			});
 			combo.addListener(SWT.DefaultSelection, new Listener() {
@@ -105,31 +150,37 @@ public class WebBrowser extends Composite {
 				}
 			});
 			combo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			WorkbenchHelp.setHelp(combo, ContextIds.WEB_BROWSER_URL);
-			
+			PlatformUI.getWorkbench().getHelpSystem().setHelp(combo,
+					ContextIds.WEB_BROWSER_URL);
+
 			ToolBar toolbar = new ToolBar(top, SWT.FLAT);
 			fillToolBar(toolbar);
-			
+
 			new ToolItem(toolbar, SWT.SEPARATOR);
-			
+
 			busy = new BusyIndicator(toolbarComp, SWT.NONE);
 			busy.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
 		}
 
-		// create a new SWT Web browser widget, checking once again to make sure we can use it in this environment
-		if (WebBrowserUtil.canUseInternalWebBrowser() & WebBrowserUtil.isInternalBrowserOperational())
+		// create a new SWT Web browser widget, checking once again to make sure
+		// we can use it in this environment
+		// if (WebBrowserUtil.canUseInternalWebBrowser() &
+		// WebBrowserUtil.isInternalBrowserOperational())
+		if (WebBrowserUtil.isInternalBrowserOperational())
 			this.browser = new Browser(this, SWT.NONE);
 		else {
-			WebBrowserUtil.openError(WebBrowserUIPlugin.getResource("%errorCouldNotLaunchInternalWebBrowser"));
+			WebBrowserUtil.openError(WebBrowserUIPlugin
+					.getResource("%errorCouldNotLaunchInternalWebBrowser"));
 			return;
 		}
-		
+
 		if (showToolbar) {
 			back.setEnabled(browser.isBackEnabled());
 			forward.setEnabled(browser.isForwardEnabled());
 		}
 
-		WorkbenchHelp.setHelp(browser, ContextIds.WEB_BROWSER_WEB);
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(browser,
+				ContextIds.WEB_BROWSER_WEB);
 		GridData data = new GridData();
 		data.horizontalAlignment = GridData.FILL;
 		data.verticalAlignment = GridData.FILL;
@@ -137,57 +188,64 @@ public class WebBrowser extends Composite {
 		data.grabExcessHorizontalSpace = true;
 		data.grabExcessVerticalSpace = true;
 		browser.setLayoutData(data);
-		
+
 		if (showStatusbar)
 			createStatusArea(this);
-		
+
 		addBrowserListeners();
 	}
+
 	/**
-	 *
+	 * 
 	 */
-	protected void addBrowserListeners() {	
+	protected void addBrowserListeners() {
 		if (showStatusbar) {
-			// respond to Browser StatusTextEvents events by updating the status Text label
+			// respond to Browser StatusTextEvents events by updating the status
+			// Text label
 			browser.addStatusTextListener(new StatusTextListener() {
 				public void changed(StatusTextEvent event) {
-					status.setText(event.text);	
+					status.setText(event.text);
 				}
 			});
 		}
 
-		/** Add listener for new window creation so that we can instead of opening a separate
-		 *  new window in which the session is lost, we can instead open a new window in a new
-		 *  shell within the browser area thereby maintaining the session.
+		/**
+		 * Add listener for new window creation so that we can instead of
+		 * opening a separate new window in which the session is lost, we can
+		 * instead open a new window in a new shell within the browser area
+		 * thereby maintaining the session.
 		 */
 		browser.addOpenWindowListener(new OpenWindowListener() {
 			public void open(WindowEvent event) {
 				Shell shell2 = new Shell(getDisplay());
 				shell2.setLayout(new FillLayout());
-				shell2.setText(WebBrowserUIPlugin.getResource("%viewWebBrowserTitle"));
+				shell2.setText(WebBrowserUIPlugin
+						.getResource("%viewWebBrowserTitle"));
 				shell2.setImage(getShell().getImage());
-				WebBrowser browser2 = new WebBrowser(shell2, showToolbar, showStatusbar);
+				WebBrowser browser2 = new WebBrowser(shell2, showToolbar,
+						showStatusbar);
 				browser2.shell = shell2;
 				event.browser = browser2.browser;
 				shell2.open();
 			}
 		});
-		
-		browser.addCloseWindowListener(new CloseWindowListener(){
+
+		browser.addCloseWindowListener(new CloseWindowListener() {
 			public void close(WindowEvent event) {
-				// if shell is not null, it must be a secondary popup window, else its an editor window
+				// if shell is not null, it must be a secondary popup window,
+				// else its an editor window
 				if (shell != null)
 					shell.dispose();
 				else
 					editor.closeEditor();
 			}
 		});
-		
+
 		browser.addProgressListener(new ProgressListener() {
 			public void changed(ProgressEvent event) {
 				if (event.total == 0)
 					return;
-				
+
 				boolean done = (event.current == event.total);
 
 				int percentProgress = event.current * 100 / event.total;
@@ -197,18 +255,20 @@ public class WebBrowser extends Composite {
 					else
 						progress.setSelection(percentProgress);
 				}
-				
+
 				if (showToolbar) {
-					if (!busy.isBusy() && (percentProgress > 0 && percentProgress < 100)) {
+					if (!busy.isBusy()
+							&& (percentProgress > 0 && percentProgress < 100)) {
 						busy.setBusy(true);
 					}
-					// Once the progress hits 100 percent, done, set busy to false
+					// Once the progress hits 100 percent, done, set busy to
+					// false
 					else if (busy.isBusy() && done) {
 						busy.setBusy(false);
 					}
 				}
 			}
-			
+
 			public void completed(ProgressEvent event) {
 				if (showStatusbar)
 					progress.setSelection(0);
@@ -232,11 +292,12 @@ public class WebBrowser extends Composite {
 					} else
 						combo.setText("");
 				}
-				
-				public void changing(LocationEvent event) { }
+
+				public void changing(LocationEvent event) {
+				}
 			});
 		}
-		
+
 		browser.addTitleListener(new TitleListener() {
 			public void changed(TitleEvent event) {
 				title = event.title;
@@ -266,7 +327,7 @@ public class WebBrowser extends Composite {
 	protected void back() {
 		browser.back();
 	}
-	
+
 	/**
 	 * 
 	 */
@@ -299,7 +360,7 @@ public class WebBrowser extends Composite {
 			home();
 			return;
 		}
-		
+
 		if (url.endsWith(WebBrowserPreference.getHomePageURL().substring(9)))
 			return;
 
@@ -310,14 +371,15 @@ public class WebBrowser extends Composite {
 			try {
 				IURLMap map = (IURLMap) iterator.next();
 				newURL = map.getMappedURL(url);
-			} catch (Exception e) { }
+			} catch (Exception e) {
+			}
 		}
 		if (newURL != null)
 			url = newURL;
-		
+
 		if (browse)
 			navigate(url);
-		
+
 		addToHistory(url);
 		updateHistory();
 	}
@@ -327,14 +389,14 @@ public class WebBrowser extends Composite {
 			history = WebBrowserPreference.getInternalWebBrowserHistory();
 		int found = -1;
 		int size = history.size();
-		for (int i = 0; i < size; i++){
+		for (int i = 0; i < size; i++) {
 			String s = (String) history.get(i);
 			if (s.equals(url)) {
 				found = i;
 				break;
 			}
 		}
-		
+
 		if (found == -1) {
 			if (size >= MAX_HISTORY)
 				history.remove(size - 1);
@@ -350,7 +412,7 @@ public class WebBrowser extends Composite {
 	public void setURL(String url) {
 		setURL(url, true);
 	}
-	
+
 	/**
 	 * Creates the Web browser status area.
 	 */
@@ -364,77 +426,94 @@ public class WebBrowser extends Composite {
 		layout.verticalSpacing = 0;
 		composite.setLayout(layout);
 		composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-	
-		// Add a label for displaying status messages as they are received from the control
+
+		// Add a label for displaying status messages as they are received from
+		// the control
 		status = new Label(composite, SWT.SINGLE | SWT.READ_ONLY);
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
+		GridData gridData = new GridData(GridData.FILL_HORIZONTAL
+				| GridData.VERTICAL_ALIGN_FILL);
 		gridData.horizontalIndent = 2;
 		status.setLayoutData(gridData);
-	
+
 		// Add a progress bar to display downloading progress information
 		progress = new ProgressBar(composite, SWT.BORDER);
-		gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_FILL);
+		gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING
+				| GridData.VERTICAL_ALIGN_FILL);
 		gridData.widthHint = 100;
 		gridData.heightHint = 10;
 		progress.setLayoutData(gridData);
 	}
-	
+
 	/**
-	 *
+	 * 
 	 */
 	public void dispose() {
 		super.dispose();
 
 		showStatusbar = false;
 		showToolbar = false;
-	
+
 		if (busy != null)
 			busy.dispose();
 		busy = null;
 
 		browser = null;
 	}
-	
+
 	/**
 	 * Populate the toolbar.
-	 * @param toolbar org.eclipse.swt.widgets.ToolBar
+	 * 
+	 * @param toolbar
+	 *            org.eclipse.swt.widgets.ToolBar
 	 */
 	private void fillToolBar(final ToolBar toolbar) {
 		ToolItem go = new ToolItem(toolbar, SWT.NONE);
 		go.setImage(ImageResource.getImage(ImageResource.IMG_ELCL_NAV_GO));
 		go.setHotImage(ImageResource.getImage(ImageResource.IMG_CLCL_NAV_GO));
-		go.setDisabledImage(ImageResource.getImage(ImageResource.IMG_DLCL_NAV_GO));
-		go.setToolTipText(WebBrowserUIPlugin.getResource("%actionWebBrowserGo"));
+		go.setDisabledImage(ImageResource
+				.getImage(ImageResource.IMG_DLCL_NAV_GO));
+		go
+				.setToolTipText(WebBrowserUIPlugin
+						.getResource("%actionWebBrowserGo"));
 		go.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent event) {
 				setURL(combo.getText());
 			}
 		});
-	
+
 		new ToolItem(toolbar, SWT.SEPARATOR);
-		
+
 		favorites = new ToolItem(toolbar, SWT.DROP_DOWN);
-		favorites.setImage(ImageResource.getImage(ImageResource.IMG_ELCL_NAV_FAVORITES));
-		favorites.setHotImage(ImageResource.getImage(ImageResource.IMG_CLCL_NAV_FAVORITES));
-		favorites.setDisabledImage(ImageResource.getImage(ImageResource.IMG_DLCL_NAV_FAVORITES));
-		favorites.setToolTipText(WebBrowserUIPlugin.getResource("%actionWebBrowserFavorites"));
-		
+		favorites.setImage(ImageResource
+				.getImage(ImageResource.IMG_ELCL_NAV_FAVORITES));
+		favorites.setHotImage(ImageResource
+				.getImage(ImageResource.IMG_CLCL_NAV_FAVORITES));
+		favorites.setDisabledImage(ImageResource
+				.getImage(ImageResource.IMG_DLCL_NAV_FAVORITES));
+		favorites.setToolTipText(WebBrowserUIPlugin
+				.getResource("%actionWebBrowserFavorites"));
+
 		favorites.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent event) {
 				if (event.detail == SWT.ARROW) {
 					Rectangle r = favorites.getBounds();
-					showFavorites(toolbar, toolbar.toDisplay(r.x, r.y + r.height));
+					showFavorites(toolbar, toolbar.toDisplay(r.x, r.y
+							+ r.height));
 				} else
 					addFavorite();
 			}
 		});
-	
+
 		// create back and forward actions
 		back = new ToolItem(toolbar, SWT.NONE);
-		back.setImage(ImageResource.getImage(ImageResource.IMG_ELCL_NAV_BACKWARD));
-		back.setHotImage(ImageResource.getImage(ImageResource.IMG_CLCL_NAV_BACKWARD));
-		back.setDisabledImage(ImageResource.getImage(ImageResource.IMG_DLCL_NAV_BACKWARD));
-		back.setToolTipText(WebBrowserUIPlugin.getResource("%actionWebBrowserBack"));
+		back.setImage(ImageResource
+				.getImage(ImageResource.IMG_ELCL_NAV_BACKWARD));
+		back.setHotImage(ImageResource
+				.getImage(ImageResource.IMG_CLCL_NAV_BACKWARD));
+		back.setDisabledImage(ImageResource
+				.getImage(ImageResource.IMG_DLCL_NAV_BACKWARD));
+		back.setToolTipText(WebBrowserUIPlugin
+				.getResource("%actionWebBrowserBack"));
 		back.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent event) {
 				back();
@@ -442,54 +521,66 @@ public class WebBrowser extends Composite {
 		});
 
 		forward = new ToolItem(toolbar, SWT.NONE);
-		forward.setImage(ImageResource.getImage(ImageResource.IMG_ELCL_NAV_FORWARD));
-		forward.setHotImage(ImageResource.getImage(ImageResource.IMG_CLCL_NAV_FORWARD));
-		forward.setDisabledImage(ImageResource.getImage(ImageResource.IMG_DLCL_NAV_FORWARD));
-		forward.setToolTipText(WebBrowserUIPlugin.getResource("%actionWebBrowserForward"));
+		forward.setImage(ImageResource
+				.getImage(ImageResource.IMG_ELCL_NAV_FORWARD));
+		forward.setHotImage(ImageResource
+				.getImage(ImageResource.IMG_CLCL_NAV_FORWARD));
+		forward.setDisabledImage(ImageResource
+				.getImage(ImageResource.IMG_DLCL_NAV_FORWARD));
+		forward.setToolTipText(WebBrowserUIPlugin
+				.getResource("%actionWebBrowserForward"));
 		forward.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent event) {
 				forward();
 			}
 		});
-		
+
 		// create refresh, stop, and print actions
 		stop = new ToolItem(toolbar, SWT.NONE);
 		stop.setImage(ImageResource.getImage(ImageResource.IMG_ELCL_NAV_STOP));
-		stop.setHotImage(ImageResource.getImage(ImageResource.IMG_CLCL_NAV_STOP));
-		stop.setDisabledImage(ImageResource.getImage(ImageResource.IMG_DLCL_NAV_STOP));
-		stop.setToolTipText(WebBrowserUIPlugin.getResource("%actionWebBrowserStop"));
+		stop.setHotImage(ImageResource
+				.getImage(ImageResource.IMG_CLCL_NAV_STOP));
+		stop.setDisabledImage(ImageResource
+				.getImage(ImageResource.IMG_DLCL_NAV_STOP));
+		stop.setToolTipText(WebBrowserUIPlugin
+				.getResource("%actionWebBrowserStop"));
 		stop.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent event) {
 				stop();
 			}
 		});
-	
+
 		refresh = new ToolItem(toolbar, SWT.NONE);
-		refresh.setImage(ImageResource.getImage(ImageResource.IMG_ELCL_NAV_REFRESH));
-		refresh.setHotImage(ImageResource.getImage(ImageResource.IMG_CLCL_NAV_REFRESH));
-		refresh.setDisabledImage(ImageResource.getImage(ImageResource.IMG_DLCL_NAV_REFRESH));
-		refresh.setToolTipText(WebBrowserUIPlugin.getResource("%actionWebBrowserRefresh"));
+		refresh.setImage(ImageResource
+				.getImage(ImageResource.IMG_ELCL_NAV_REFRESH));
+		refresh.setHotImage(ImageResource
+				.getImage(ImageResource.IMG_CLCL_NAV_REFRESH));
+		refresh.setDisabledImage(ImageResource
+				.getImage(ImageResource.IMG_DLCL_NAV_REFRESH));
+		refresh.setToolTipText(WebBrowserUIPlugin
+				.getResource("%actionWebBrowserRefresh"));
 		refresh.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent event) {
 				refresh();
 			}
 		});
 	}
-	
+
 	protected void addFavorite() {
-		java.util.List list = WebBrowserPreference.getInternalWebBrowserFavorites();
+		java.util.List list = WebBrowserPreference
+				.getInternalWebBrowserFavorites();
 		Favorite f = new Favorite(title, browser.getUrl());
 		if (!list.contains(f)) {
 			list.add(f);
 			WebBrowserPreference.setInternalWebBrowserFavorites(list);
 		}
 	}
-	
+
 	protected void showFavorites(Control parent, Point p) {
 		Menu perspectiveBarMenu = null;
 		if (perspectiveBarMenu == null) {
 			Menu menu = new Menu(parent);
-			
+
 			// locked favorites
 			Iterator iterator = WebBrowserUtil.getLockedFavorites().iterator();
 			if (iterator.hasNext()) {
@@ -497,48 +588,54 @@ public class WebBrowser extends Composite {
 					final Favorite f = (Favorite) iterator.next();
 					MenuItem item = new MenuItem(menu, SWT.NONE);
 					item.setText(f.getName());
-					item.setImage(ImageResource.getImage(ImageResource.IMG_FAVORITE));
+					item.setImage(ImageResource
+							.getImage(ImageResource.IMG_FAVORITE));
 					item.addSelectionListener(new SelectionAdapter() {
 						public void widgetSelected(SelectionEvent event) {
 							setURL(f.getURL());
 						}
 					});
 				}
-				
+
 				new MenuItem(menu, SWT.SEPARATOR);
 			}
-			
-			iterator = WebBrowserPreference.getInternalWebBrowserFavorites().iterator();
+
+			iterator = WebBrowserPreference.getInternalWebBrowserFavorites()
+					.iterator();
 			if (!iterator.hasNext()) {
 				MenuItem item = new MenuItem(menu, SWT.NONE);
-				item.setText(WebBrowserUIPlugin.getResource("%actionWebBrowserNoFavorites"));
+				item.setText(WebBrowserUIPlugin
+						.getResource("%actionWebBrowserNoFavorites"));
 			}
 			while (iterator.hasNext()) {
 				final Favorite f = (Favorite) iterator.next();
 				MenuItem item = new MenuItem(menu, SWT.NONE);
 				item.setText(f.getName());
-				item.setImage(ImageResource.getImage(ImageResource.IMG_FAVORITE));
+				item.setImage(ImageResource
+						.getImage(ImageResource.IMG_FAVORITE));
 				item.addSelectionListener(new SelectionAdapter() {
 					public void widgetSelected(SelectionEvent event) {
 						setURL(f.getURL());
 					}
 				});
 			}
-			
+
 			new MenuItem(menu, SWT.SEPARATOR);
-	
+
 			MenuItem item = new MenuItem(menu, SWT.NONE);
-			item.setText(WebBrowserUIPlugin.getResource("%actionWebBrowserOrganizeFavorites"));
+			item.setText(WebBrowserUIPlugin
+					.getResource("%actionWebBrowserOrganizeFavorites"));
 			item.addSelectionListener(new SelectionAdapter() {
 				public void widgetSelected(SelectionEvent event) {
-					OrganizeFavoritesDialog dialog = new OrganizeFavoritesDialog(shell);
+					OrganizeFavoritesDialog dialog = new OrganizeFavoritesDialog(
+							shell);
 					dialog.open();
 				}
 			});
-			
+
 			perspectiveBarMenu = menu;
 		}
-		
+
 		if (perspectiveBarMenu != null) {
 			perspectiveBarMenu.setLocation(p.x, p.y);
 			perspectiveBarMenu.setVisible(true);
@@ -546,15 +643,18 @@ public class WebBrowser extends Composite {
 	}
 
 	public void home() {
-	   navigate(WebBrowserPreference.getHomePageURL());
+		navigate(WebBrowserPreference.getHomePageURL());
 	}
 
 	/**
 	 * Returns true if the homepage is currently being displayed.
+	 * 
 	 * @return boolean
 	 */
 	protected boolean isHome() {
-		return getURL() != null && getURL().endsWith(WebBrowserPreference.getHomePageURL().substring(9));
+		return getURL() != null
+				&& getURL().endsWith(
+						WebBrowserPreference.getHomePageURL().substring(9));
 	}
 
 	protected String getURL() {
@@ -567,15 +667,27 @@ public class WebBrowser extends Composite {
 	protected void updateHistory() {
 		if (combo == null)
 			return;
-	
+
 		String temp = combo.getText();
 		if (history == null)
 			history = WebBrowserPreference.getInternalWebBrowserHistory();
-	
+
 		String[] historyList = new String[history.size()];
 		history.toArray(historyList);
 		combo.setItems(historyList);
-	
+
 		combo.setText(temp);
 	}
+
+	public void addProgressListener(ProgressListener listener) {
+		browser.addProgressListener(listener);
+	}
+
+	public void addStatusTextListener(StatusTextListener listener) {
+		browser.addStatusTextListener(listener);
+	}
+
+	public void addTitleListener(TitleListener listener) {
+		browser.addTitleListener(listener);
+	}
 }
\ No newline at end of file