Java/SWT JFace Eclipse/Browser HTML

Материал из Java эксперт
Перейти к: навигация, поиск

Another SWT Browser

   <source lang="java">

import org.eclipse.swt.SWT; import org.eclipse.swt.browser.Browser; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; public class BrowserClass {

 public static void main(String[] args) {
   Display display = new Display();
   final Shell shell = new Shell(display);
   shell.setText("Browser Example");
   shell.setSize(620, 500);
   ToolBar toolbar = new ToolBar(shell, SWT.NONE);
   toolbar.setBounds(5, 5, 200, 30);
   ToolItem goButton = new ToolItem(toolbar, SWT.PUSH);
   goButton.setText("Go");
   ToolItem backButton = new ToolItem(toolbar, SWT.PUSH);
   backButton.setText("Back");
   ToolItem stopButton = new ToolItem(toolbar, SWT.PUSH);
   stopButton.setText("Stop");
   final Text text = new Text(shell, SWT.BORDER);
   text.setBounds(5, 35, 400, 25);
   final Browser browser = new Browser(shell, SWT.NONE);
   browser.setBounds(5, 75, 600, 400);
   Listener listener = new Listener() {
     public void handleEvent(Event event) {
       ToolItem item = (ToolItem) event.widget;
       String string = item.getText();
       if (string.equals("Back"))
         browser.back();
       else if (string.equals("Stop"))
         browser.stop();
       else if (string.equals("Go"))
         browser.setUrl(text.getText());
     }
   };
   goButton.addListener(SWT.Selection, listener);
   backButton.addListener(SWT.Selection, listener);
   stopButton.addListener(SWT.Selection, listener);
   text.addListener(SWT.DefaultSelection, new Listener() {
     public void handleEvent(Event e) {
       browser.setUrl(text.getText());
     }
   });
   shell.open();
   browser.setUrl("http://oreilly.ru");
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch())
       display.sleep();
   }
   display.dispose();
 }

}


      </source>
   
  
 
  



Another SWT Browser Demo

   <source lang="java">

import java.io.IOException; import java.io.InputStream; import java.util.MissingResourceException; import java.util.ResourceBundle; import org.eclipse.swt.SWT; import org.eclipse.swt.SWTError; 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.VisibilityWindowListener; import org.eclipse.swt.browser.WindowEvent; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Canvas; import org.eclipse.swt.widgets.ruposite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.ProgressBar; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; public class SWTBrowserDemo {

 int index;
 boolean busy;
 Image images[];
 Image icon = null;
 boolean title = false;
 Composite parent;
 Text locationBar;
 Browser browser;
 ToolBar toolbar;
 Canvas canvas;
 ToolItem itemBack, itemForward;
 Label status;
 ProgressBar progressBar;
 SWTError error = null;
 static final String[] imageLocations = { "eclipse01.bmp", "eclipse02.bmp",
     "eclipse03.bmp", "eclipse04.bmp", "eclipse05.bmp", "eclipse06.bmp",
     "eclipse07.bmp", "eclipse08.bmp", "eclipse09.bmp", "eclipse10.bmp",
     "eclipse11.bmp", "eclipse12.bmp", };
 static final String iconLocation = "document.gif";
 public SWTBrowserDemo(Composite parent, boolean top) {
   this.parent = parent;
   try {
     browser = new Browser(parent, SWT.BORDER);
   } catch (SWTError e) {
     error = e;
     /* Browser widget could not be instantiated */
     parent.setLayout(new FillLayout());
     Label label = new Label(parent, SWT.CENTER | SWT.WRAP);
     label.setText(getResourceString("BrowserNotCreated"));
     parent.layout(true);
     return;
   }
   initResources();
   final Display display = parent.getDisplay();
   browser.setData(
       "org.eclipse.swt.examples.browserexample.BrowserApplication",
       this);
   browser.addOpenWindowListener(new OpenWindowListener() {
     public void open(WindowEvent event) {
       Shell shell = new Shell(display);
       if (icon != null)
         shell.setImage(icon);
       shell.setLayout(new FillLayout());
       SWTBrowserDemo app = new SWTBrowserDemo(shell, false);
       app.setShellDecoration(icon, true);
       event.browser = app.getBrowser();
     }
   });
   if (top) {
     browser.setUrl(getResourceString("Startup"));
     show(false, null, null, true, true, true, true);
   } else {
     browser.addVisibilityWindowListener(new VisibilityWindowListener() {
       public void hide(WindowEvent e) {
       }
       public void show(WindowEvent e) {
         Browser browser = (Browser) e.widget;
         SWTBrowserDemo app = (SWTBrowserDemo) browser
             .getData("org.eclipse.swt.examples.browserexample.BrowserApplication");
         app.show(true, e.location, e.size, e.addressBar, e.menuBar,
             e.statusBar, e.toolBar);
       }
     });
     browser.addCloseWindowListener(new CloseWindowListener() {
       public void close(WindowEvent event) {
         Browser browser = (Browser) event.widget;
         Shell shell = browser.getShell();
         shell.close();
       }
     });
   }
 }
 /**
  * Disposes of all resources associated with a particular instance of the
  * BrowserApplication.
  */
 public void dispose() {
   freeResources();
 }
 /**
  * Gets a string from the resource bundle. We don"t want to crash because of
  * a missing String. Returns the key if not found.
  */
 static String getResourceString(String key) {
     return key;
 }
 public SWTError getError() {
   return error;
 }
 public Browser getBrowser() {
   return browser;
 }
 public void setShellDecoration(Image icon, boolean title) {
   this.icon = icon;
   this.title = title;
 }
 void show(boolean owned, Point location, Point size, boolean addressBar,
     boolean menuBar, boolean statusBar, boolean toolBar) {
   final Shell shell = browser.getShell();
   if (owned) {
     if (location != null)
       shell.setLocation(location);
     if (size != null)
       shell.setSize(shell.ruputeSize(size.x, size.y));
   }
   FormData data = null;
   if (toolBar) {
     toolbar = new ToolBar(parent, SWT.NONE);
     data = new FormData();
     data.top = new FormAttachment(0, 5);
     toolbar.setLayoutData(data);
     itemBack = new ToolItem(toolbar, SWT.PUSH);
     itemBack.setText(getResourceString("Back"));
     itemForward = new ToolItem(toolbar, SWT.PUSH);
     itemForward.setText(getResourceString("Forward"));
     final ToolItem itemStop = new ToolItem(toolbar, SWT.PUSH);
     itemStop.setText(getResourceString("Stop"));
     final ToolItem itemRefresh = new ToolItem(toolbar, SWT.PUSH);
     itemRefresh.setText(getResourceString("Refresh"));
     final ToolItem itemGo = new ToolItem(toolbar, SWT.PUSH);
     itemGo.setText(getResourceString("Go"));
     itemBack.setEnabled(browser.isBackEnabled());
     itemForward.setEnabled(browser.isForwardEnabled());
     Listener listener = new Listener() {
       public void handleEvent(Event event) {
         ToolItem item = (ToolItem) event.widget;
         if (item == itemBack)
           browser.back();
         else if (item == itemForward)
           browser.forward();
         else if (item == itemStop)
           browser.stop();
         else if (item == itemRefresh)
           browser.refresh();
         else if (item == itemGo)
           browser.setUrl(locationBar.getText());
       }
     };
     itemBack.addListener(SWT.Selection, listener);
     itemForward.addListener(SWT.Selection, listener);
     itemStop.addListener(SWT.Selection, listener);
     itemRefresh.addListener(SWT.Selection, listener);
     itemGo.addListener(SWT.Selection, listener);
     canvas = new Canvas(parent, SWT.NO_BACKGROUND);
     data = new FormData();
     data.width = 24;
     data.height = 24;
     data.top = new FormAttachment(0, 5);
     data.right = new FormAttachment(100, -5);
     canvas.setLayoutData(data);
     final Rectangle rect = images[0].getBounds();
     canvas.addListener(SWT.Paint, new Listener() {
       public void handleEvent(Event e) {
         Point pt = ((Canvas) e.widget).getSize();
         e.gc.drawImage(images[index], 0, 0, rect.width,
             rect.height, 0, 0, pt.x, pt.y);
       }
     });
     canvas.addListener(SWT.MouseDown, new Listener() {
       public void handleEvent(Event e) {
         browser.setUrl(getResourceString("Startup"));
       }
     });
     final Display display = parent.getDisplay();
     display.asyncExec(new Runnable() {
       public void run() {
         if (canvas.isDisposed())
           return;
         if (busy) {
           index++;
           if (index == images.length)
             index = 0;
           canvas.redraw();
         }
         display.timerExec(150, this);
       }
     });
   }
   if (addressBar) {
     locationBar = new Text(parent, SWT.BORDER);
     data = new FormData();
     if (toolbar != null) {
       data.top = new FormAttachment(toolbar, 0, SWT.TOP);
       data.left = new FormAttachment(toolbar, 5, SWT.RIGHT);
       data.right = new FormAttachment(canvas, -5, SWT.DEFAULT);
     } else {
       data.top = new FormAttachment(0, 0);
       data.left = new FormAttachment(0, 0);
       data.right = new FormAttachment(100, 0);
     }
     locationBar.setLayoutData(data);
     locationBar.addListener(SWT.DefaultSelection, new Listener() {
       public void handleEvent(Event e) {
         browser.setUrl(locationBar.getText());
       }
     });
   }
   if (statusBar) {
     status = new Label(parent, SWT.NONE);
     progressBar = new ProgressBar(parent, SWT.NONE);
     data = new FormData();
     data.left = new FormAttachment(0, 5);
     data.right = new FormAttachment(progressBar, 0, SWT.DEFAULT);
     data.bottom = new FormAttachment(100, -5);
     status.setLayoutData(data);
     data = new FormData();
     data.right = new FormAttachment(100, -5);
     data.bottom = new FormAttachment(100, -5);
     progressBar.setLayoutData(data);
     browser.addStatusTextListener(new StatusTextListener() {
       public void changed(StatusTextEvent event) {
         status.setText(event.text);
       }
     });
   }
   parent.setLayout(new FormLayout());
   Control aboveBrowser = toolBar ? (Control) canvas
       : (addressBar ? (Control) locationBar : null);
   data = new FormData();
   data.left = new FormAttachment(0, 0);
   data.top = aboveBrowser != null ? new FormAttachment(aboveBrowser, 5,
       SWT.DEFAULT) : new FormAttachment(0, 0);
   data.right = new FormAttachment(100, 0);
   data.bottom = status != null ? new FormAttachment(status, -5,
       SWT.DEFAULT) : new FormAttachment(100, 0);
   browser.setLayoutData(data);
   if (statusBar || toolBar) {
     browser.addProgressListener(new ProgressListener() {
       public void changed(ProgressEvent event) {
         if (event.total == 0)
           return;
         int ratio = event.current * 100 / event.total;
         if (progressBar != null)
           progressBar.setSelection(ratio);
         busy = event.current != event.total;
         if (!busy) {
           index = 0;
           if (canvas != null)
             canvas.redraw();
         }
       }
       public void completed(ProgressEvent event) {
         if (progressBar != null)
           progressBar.setSelection(0);
         busy = false;
         index = 0;
         if (canvas != null) {
           itemBack.setEnabled(browser.isBackEnabled());
           itemForward.setEnabled(browser.isForwardEnabled());
           canvas.redraw();
         }
       }
     });
   }
   if (addressBar || statusBar || toolBar) {
     browser.addLocationListener(new LocationListener() {
       public void changed(LocationEvent event) {
         busy = true;
         if (event.top && locationBar != null)
           locationBar.setText(event.location);
       }
       public void changing(LocationEvent event) {
       }
     });
   }
   if (title) {
     browser.addTitleListener(new TitleListener() {
       public void changed(TitleEvent event) {
         shell.setText(event.title + " - "
             + getResourceString("window.title"));
       }
     });
   }
   parent.layout(true);
   if (owned)
     shell.open();
 }
 /**
  * Grabs input focus.
  */
 public void focus() {
   if (locationBar != null)
     locationBar.setFocus();
   else if (browser != null)
     browser.setFocus();
   else
     parent.setFocus();
 }
 /**
  * Frees the resources
  */
 void freeResources() {
   if (images != null) {
     for (int i = 0; i < images.length; ++i) {
       final Image image = images[i];
       if (image != null)
         image.dispose();
     }
     images = null;
   }
 }
 /**
  * Loads the resources
  */
 void initResources() {
   final Class clazz = this.getClass();
     try {
       if (images == null) {
         images = new Image[imageLocations.length];
         for (int i = 0; i < imageLocations.length; ++i) {
           InputStream sourceStream = clazz
               .getResourceAsStream(imageLocations[i]);
           ImageData source = new ImageData(sourceStream);
           ImageData mask = source.getTransparencyMask();
           images[i] = new Image(null, source, mask);
           try {
             sourceStream.close();
           } catch (IOException e) {
             e.printStackTrace();
           }
         }
       }
       return;
     } catch (Throwable t) {
     }
   String error = "Unable to load resources";
   freeResources();
   throw new RuntimeException(error);
 }
 public static void main(String[] args) {
   Display display = new Display();
   Shell shell = new Shell(display);
   shell.setLayout(new FillLayout());
   shell.setText(getResourceString("window.title"));
   InputStream stream = SWTBrowserDemo.class
       .getResourceAsStream(iconLocation);
   Image icon = new Image(display, stream);
   shell.setImage(icon);
   try {
     stream.close();
   } catch (IOException e) {
     e.printStackTrace();
   }
   SWTBrowserDemo app = new SWTBrowserDemo(shell, true);
   app.setShellDecoration(icon, true);
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch())
       display.sleep();
   }
   icon.dispose();
   app.dispose();
   display.dispose();
 }

}


      </source>
   
  
 
  



Bring up a browser

   <source lang="java">

/*******************************************************************************

* Copyright (c) 2000, 2004 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
******************************************************************************/

/*

* Browser example snippet: bring up a browser
* 
* For a list of all SWT example snippets see
* http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets
*/

import org.eclipse.swt.SWT; import org.eclipse.swt.browser.Browser; import org.eclipse.swt.browser.LocationEvent; import org.eclipse.swt.browser.LocationListener; 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.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.ProgressBar; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; public class BringUpBrowser {

 public static void main(String[] args) {
   Display display = new Display();
   final Shell shell = new Shell(display);
   GridLayout gridLayout = new GridLayout();
   gridLayout.numColumns = 3;
   shell.setLayout(gridLayout);
   ToolBar toolbar = new ToolBar(shell, SWT.NONE);
   ToolItem itemBack = new ToolItem(toolbar, SWT.PUSH);
   itemBack.setText("Back");
   ToolItem itemForward = new ToolItem(toolbar, SWT.PUSH);
   itemForward.setText("Forward");
   ToolItem itemStop = new ToolItem(toolbar, SWT.PUSH);
   itemStop.setText("Stop");
   ToolItem itemRefresh = new ToolItem(toolbar, SWT.PUSH);
   itemRefresh.setText("Refresh");
   ToolItem itemGo = new ToolItem(toolbar, SWT.PUSH);
   itemGo.setText("Go");
   GridData data = new GridData();
   data.horizontalSpan = 3;
   toolbar.setLayoutData(data);
   Label labelAddress = new Label(shell, SWT.NONE);
   labelAddress.setText("Address");
   final Text location = new Text(shell, SWT.BORDER);
   data = new GridData();
   data.horizontalAlignment = GridData.FILL;
   data.horizontalSpan = 2;
   data.grabExcessHorizontalSpace = true;
   location.setLayoutData(data);
   final Browser browser = new Browser(shell, SWT.NONE);
   data = new GridData();
   data.horizontalAlignment = GridData.FILL;
   data.verticalAlignment = GridData.FILL;
   data.horizontalSpan = 3;
   data.grabExcessHorizontalSpace = true;
   data.grabExcessVerticalSpace = true;
   browser.setLayoutData(data);
   final Label status = new Label(shell, SWT.NONE);
   data = new GridData(GridData.FILL_HORIZONTAL);
   data.horizontalSpan = 2;
   status.setLayoutData(data);
   final ProgressBar progressBar = new ProgressBar(shell, SWT.NONE);
   data = new GridData();
   data.horizontalAlignment = GridData.END;
   progressBar.setLayoutData(data);
   /* event handling */
   Listener listener = new Listener() {
     public void handleEvent(Event event) {
       ToolItem item = (ToolItem) event.widget;
       String string = item.getText();
       if (string.equals("Back"))
         browser.back();
       else if (string.equals("Forward"))
         browser.forward();
       else if (string.equals("Stop"))
         browser.stop();
       else if (string.equals("Refresh"))
         browser.refresh();
       else if (string.equals("Go"))
         browser.setUrl(location.getText());
     }
   };
   browser.addProgressListener(new ProgressListener() {
     public void changed(ProgressEvent event) {
       if (event.total == 0)
         return;
       int ratio = event.current * 100 / event.total;
       progressBar.setSelection(ratio);
     }
     public void completed(ProgressEvent event) {
       progressBar.setSelection(0);
     }
   });
   browser.addStatusTextListener(new StatusTextListener() {
     public void changed(StatusTextEvent event) {
       status.setText(event.text);
     }
   });
   browser.addLocationListener(new LocationListener() {
     public void changed(LocationEvent event) {
       if (event.top)
         location.setText(event.location);
     }
     public void changing(LocationEvent event) {
     }
   });
   itemBack.addListener(SWT.Selection, listener);
   itemForward.addListener(SWT.Selection, listener);
   itemStop.addListener(SWT.Selection, listener);
   itemRefresh.addListener(SWT.Selection, listener);
   itemGo.addListener(SWT.Selection, listener);
   location.addListener(SWT.DefaultSelection, new Listener() {
     public void handleEvent(Event e) {
       browser.setUrl(location.getText());
     }
   });
   shell.open();
   browser.setUrl("http://eclipse.org");
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch())
       display.sleep();
   }
   display.dispose();
 }

}


      </source>
   
  
 
  



HTML Explorer

   <source lang="java">

import java.io.File; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.ruposite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.TableColumn; public class Explorer extends ApplicationWindow {

 public Explorer() {
   super(null);
 }
 protected Control createContents(Composite parent) {
   SashForm sash_form = new SashForm(parent, SWT.HORIZONTAL | SWT.NULL);
   TreeViewer tv = new TreeViewer(sash_form);
   tv.setContentProvider(new FileTreeContentProvider());
   tv.setLabelProvider(new FileTreeLabelProvider());
   tv.setInput(new File("C:\\"));
   final TableViewer tbv = new TableViewer(sash_form, SWT.BORDER);
   tbv.setContentProvider(new FileTableContentProvider());
   tbv.setLabelProvider(new FileTableLabelProvider());
   TableColumn column = new TableColumn(tbv.getTable(), SWT.LEFT);
   column.setText("Name");
   column.setWidth(200);
   tbv.getTable().setHeaderVisible(true);
   tv.addSelectionChangedListener(new ISelectionChangedListener() {
     public void selectionChanged(SelectionChangedEvent event) {
       IStructuredSelection selection = (IStructuredSelection) event
           .getSelection();
       Object selected_file = selection.getFirstElement();
       tbv.setInput(selected_file);
     }
   });
   return sash_form;
 }
 public static void main(String[] args) {
   Explorer w = new Explorer();
   w.setBlockOnOpen(true);
   w.open();
   Display.getCurrent().dispose();
 }

} class FileTreeLabelProvider extends LabelProvider {

 public String getText(Object element) {
   return ((File) element).getName();
 }

} class FileTreeContentProvider implements ITreeContentProvider {

 public Object[] getChildren(Object element) {
   Object[] kids = ((File) element).listFiles();
   return kids == null ? new Object[0] : kids;
 }
 public Object[] getElements(Object element) {
   return getChildren(element);
 }
 public boolean hasChildren(Object element) {
   return getChildren(element).length > 0;
 }
 public Object getParent(Object element) {
   return null;
 }
 public void dispose() {
 }
 public void inputChanged(Viewer viewer, Object old_input, Object new_input) {
 }

} class FileTableLabelProvider implements ITableLabelProvider {

 public String getColumnText(Object obj, int i) {
   return ((File) obj).getName();
 }
 public void addListener(ILabelProviderListener ilabelproviderlistener) {
 }
 public void dispose() {
 }
 public boolean isLabelProperty(Object obj, String s) {
   return false;
 }
 public void removeListener(ILabelProviderListener ilabelproviderlistener) {
 }
 public Image getColumnImage(Object arg0, int arg1) {
   return null;
 }

} class FileTableContentProvider implements IStructuredContentProvider {

 public Object[] getElements(Object element) {
   Object[] kids = null;
   kids = ((File) element).listFiles();
   return kids == null ? new Object[0] : kids;
 }
 public void dispose() {
 }
 public void inputChanged(Viewer viewer, Object old_object, Object new_object) {
 }

}


      </source>
   
  
 
  



HTML Explorer based on JFace

   <source lang="java">

import java.io.File; import java.net.MalformedURLException; import java.net.URL; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.jface.viewers.ViewerSorter; import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.ruposite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.TableColumn; public class JFaceExplorer extends ApplicationWindow {

 public JFaceExplorer() {
   super(null);
   addStatusLine();
 }
 protected Control createContents(Composite parent) {
   getShell().setText("JFace File Explorer");
   SashForm sash_form = new SashForm(parent, SWT.HORIZONTAL | SWT.NULL);
   TreeViewer tv = new TreeViewer(sash_form);
   tv.setContentProvider(new FileTreeContentProvider());
   tv.setLabelProvider(new FileTreeLabelProvider());
   tv.setInput(new File("C:\\"));
   tv.addFilter(new AllowOnlyFoldersFilter());
   final TableViewer tbv = new TableViewer(sash_form, SWT.BORDER
       | SWT.FULL_SELECTION | SWT.MULTI);
   tbv.setContentProvider(new FileTableContentProvider());
   tbv.setLabelProvider(new FileTableLabelProvider());
   tbv.setSorter(new FileSorter());
   TableColumn column = new TableColumn(tbv.getTable(), SWT.LEFT);
   column.setText("Name");
   column.setWidth(200);
   column = new TableColumn(tbv.getTable(), SWT.RIGHT);
   column.setText("Size");
   column.setWidth(100);
   tbv.getTable().setHeaderVisible(true);
   tv.addSelectionChangedListener(new ISelectionChangedListener() {
     public void selectionChanged(SelectionChangedEvent event) {
       IStructuredSelection selection = (IStructuredSelection) event
           .getSelection();
       Object selected_file = selection.getFirstElement();
       tbv.setInput(selected_file);
     }
   });
   tbv.addSelectionChangedListener(new ISelectionChangedListener() {
     public void selectionChanged(SelectionChangedEvent event) {
       IStructuredSelection selection = (IStructuredSelection) event
           .getSelection();
       setStatus("Number of items selected is " + selection.size());
     }
   });
   return sash_form;
 }
 public static void main(String[] args) {
   JFaceExplorer w = new JFaceExplorer();
   w.setBlockOnOpen(true);
   w.open();
   Display.getCurrent().dispose();
 }

} class Util {

 private static ImageRegistry image_registry;
 public static URL newURL(String url_name) {
   try {
     return new URL(url_name);
   } catch (MalformedURLException e) {
     throw new RuntimeException("Malformed URL " + url_name, e);
   }
 }
 public static ImageRegistry getImageRegistry() {
   if (image_registry == null) {
     image_registry = new ImageRegistry();
     image_registry.put("folder", ImageDescriptor
         .createFromURL(newURL("file:icons/folder.gif")));
     image_registry.put("file", ImageDescriptor
         .createFromURL(newURL("file:icons/file.gif")));
   }
   return image_registry;
 }

} class FileTreeLabelProvider extends LabelProvider {

 public String getText(Object element) {
   return ((File) element).getName();
 }
 public Image getImage(Object element) {
   if (((File) element).isDirectory()) {
     return Util.getImageRegistry().get("folder");
   } else {
     return Util.getImageRegistry().get("file");
   }
 }

} class FileTreeContentProvider implements ITreeContentProvider {

 public Object[] getChildren(Object element) {
   Object[] kids = ((File) element).listFiles();
   return kids == null ? new Object[0] : kids;
 }
 public Object[] getElements(Object element) {
   return getChildren(element);
 }
 public boolean hasChildren(Object element) {
   return getChildren(element).length > 0;
 }
 public Object getParent(Object element) {
   return ((File) element).getParent();
 }
 public void dispose() {
 }
 public void inputChanged(Viewer viewer, Object old_input, Object new_input) {
 }

} class FileTableLabelProvider implements ITableLabelProvider {

 public String getColumnText(Object element, int column_index) {
   if (column_index == 0) {
     return ((File) element).getName();
   }
   if (column_index == 1) {
     return "" + ((File) element).length();
   }
   return "";
 }
 public void addListener(ILabelProviderListener ilabelproviderlistener) {
 }
 public void dispose() {
 }
 public boolean isLabelProperty(Object obj, String s) {
   return false;
 }
 public void removeListener(ILabelProviderListener ilabelproviderlistener) {
 }
 public Image getColumnImage(Object element, int column_index) {
   if (column_index != 0) {
     return null;
   }
   if (((File) element).isDirectory()) {
     return Util.getImageRegistry().get("folder");
   } else {
     return Util.getImageRegistry().get("file");
   }
 }

} class FileTableContentProvider implements IStructuredContentProvider {

 public Object[] getElements(Object element) {
   Object[] kids = null;
   kids = ((File) element).listFiles();
   return kids == null ? new Object[0] : kids;
 }
 public void dispose() {
 }
 public void inputChanged(Viewer viewer, Object old_object, Object new_object) {
 }

} class FileSorter extends ViewerSorter {

 public int category(Object element) {
   return ((File) element).isDirectory() ? 0 : 1;
 }

} class AllowOnlyFoldersFilter extends ViewerFilter {

 public boolean select(Viewer viewer, Object parent, Object element) {
   return ((File) element).isDirectory();
 }

}


      </source>
   
  
 
  



Implements a web browser

   <source lang="java">

//Send questions, comments, bug reports, etc. to the authors: //Rob Warner (rwarner@interspatial.ru) //Robert Harris (rbrt_harris@yahoo.ru) import org.eclipse.swt.SWT; import org.eclipse.swt.browser.*; import org.eclipse.swt.events.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; /**

* This class implements a web browser
*/

public class SimpleBrowser {

 /**
  * Runs the application
  */
 public void run() {
   Display display = new Display();
   Shell shell = new Shell(display);
   shell.setText("Simple Browser");
   createContents(shell);
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch()) {
       display.sleep();
     }
   }
   display.dispose();
 }
 /**
  * Creates the main window"s contents
  * 
  * @param shell the main window
  */
 private void createContents(Shell shell) {
   shell.setLayout(new FormLayout());
   // Create the composite to hold the buttons and text field
   Composite controls = new Composite(shell, SWT.NONE);
   FormData data = new FormData();
   data.top = new FormAttachment(0, 0);
   data.left = new FormAttachment(0, 0);
   data.right = new FormAttachment(100, 0);
   controls.setLayoutData(data);
   // Create the web browser
   final Browser browser = new Browser(shell, SWT.NONE);
   data = new FormData();
   data.top = new FormAttachment(controls);
   data.bottom = new FormAttachment(100, 0);
   data.left = new FormAttachment(0, 0);
   data.right = new FormAttachment(100, 0);
   browser.setLayoutData(data);
   // Create the controls and wire them to the browser
   controls.setLayout(new GridLayout(6, false));
   // Create the back button
   Button button = new Button(controls, SWT.PUSH);
   button.setText("Back");
   button.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       browser.back();
     }
   });
   // Create the forward button
   button = new Button(controls, SWT.PUSH);
   button.setText("Forward");
   button.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       browser.forward();
     }
   });
   // Create the refresh button
   button = new Button(controls, SWT.PUSH);
   button.setText("Refresh");
   button.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       browser.refresh();
     }
   });
   // Create the stop button
   button = new Button(controls, SWT.PUSH);
   button.setText("Stop");
   button.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       browser.stop();
     }
   });
   // Create the address entry field and set focus to it
   final Text url = new Text(controls, SWT.BORDER);
   url.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
   url.setFocus();
   // Create the go button
   button = new Button(controls, SWT.PUSH);
   button.setText("Go");
   button.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       browser.setUrl(url.getText());
     }
   });
   // Allow users to hit enter to go to the typed URL
   shell.setDefaultButton(button);
 }
 /**
  * The application entry point
  * 
  * @param args the command line arguments
  */
 public static void main(String[] args) {
   new SimpleBrowser().run();
 }

}

      </source>
   
  
 
  



Implements a web browser 2

   <source lang="java">

//Send questions, comments, bug reports, etc. to the authors: //Rob Warner (rwarner@interspatial.ru) //Robert Harris (rbrt_harris@yahoo.ru) import org.eclipse.swt.SWT; import org.eclipse.swt.browser.*; import org.eclipse.swt.events.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; /**

* This class implements a web browser
*/

public class AdvancedBrowser {

 // The "at rest" text of the throbber
 private static final String AT_REST = "Ready";
 /**
  * Runs the application
  * 
  * @param location the initial location to display
  */
 public void run(String location) {
   Display display = new Display();
   Shell shell = new Shell(display);
   shell.setText("Advanced Browser");
   createContents(shell, location);
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch()) {
       display.sleep();
     }
   }
   display.dispose();
 }
 /**
  * Creates the main window"s contents
  * 
  * @param shell the main window
  * @param location the initial location
  */
 public void createContents(Shell shell, String location) {
   shell.setLayout(new FormLayout());
   // Create the composite to hold the buttons and text field
   Composite controls = new Composite(shell, SWT.NONE);
   FormData data = new FormData();
   data.top = new FormAttachment(0, 0);
   data.left = new FormAttachment(0, 0);
   data.right = new FormAttachment(100, 0);
   controls.setLayoutData(data);
   // Create the status bar
   Label status = new Label(shell, SWT.NONE);
   data = new FormData();
   data.left = new FormAttachment(0, 0);
   data.right = new FormAttachment(100, 0);
   data.bottom = new FormAttachment(100, 0);
   status.setLayoutData(data);
   // Create the web browser
   final Browser browser = new Browser(shell, SWT.BORDER);
   data = new FormData();
   data.top = new FormAttachment(controls);
   data.bottom = new FormAttachment(status);
   data.left = new FormAttachment(0, 0);
   data.right = new FormAttachment(100, 0);
   browser.setLayoutData(data);
   // Create the controls and wire them to the browser
   controls.setLayout(new GridLayout(7, false));
   // Create the back button
   Button button = new Button(controls, SWT.PUSH);
   button.setText("Back");
   button.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       browser.back();
     }
   });
   // Create the forward button
   button = new Button(controls, SWT.PUSH);
   button.setText("Forward");
   button.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       browser.forward();
     }
   });
   // Create the refresh button
   button = new Button(controls, SWT.PUSH);
   button.setText("Refresh");
   button.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       browser.refresh();
     }
   });
   // Create the stop button
   button = new Button(controls, SWT.PUSH);
   button.setText("Stop");
   button.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       browser.stop();
     }
   });
   // Create the address entry field and set focus to it
   final Text url = new Text(controls, SWT.BORDER);
   url.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
   url.setFocus();
   // Create the go button
   button = new Button(controls, SWT.PUSH);
   button.setText("Go");
   button.addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       browser.setUrl(url.getText());
     }
   });
   // Create the animated "throbber"
   Label throbber = new Label(controls, SWT.NONE);
   throbber.setText(AT_REST);
   // Allow users to hit enter to go to the typed URL
   shell.setDefaultButton(button);
   // Add event handlers
   browser.addCloseWindowListener(new AdvancedCloseWindowListener());
   browser.addLocationListener(new AdvancedLocationListener(url));
   browser.addProgressListener(new AdvancedProgressListener(throbber));
   browser.addStatusTextListener(new AdvancedStatusTextListener(status));
   // Go to the initial URL
   if (location != null) {
     browser.setUrl(location);
   }
 }
 /**
  * This class implements a CloseWindowListener for AdvancedBrowser
  */
 class AdvancedCloseWindowListener implements CloseWindowListener {
   /**
    * Called when the parent window should be closed
    */
   public void close(WindowEvent event) {
     // Close the parent window
     ((Browser) event.widget).getShell().close();
   }
 }
 /**
  * This class implements a LocationListener for AdvancedBrowser
  */
 class AdvancedLocationListener implements LocationListener {
   // The address text box to update
   private Text location;
   /**
    * Constructs an AdvancedLocationListener
    * 
    * @param text the address text box to update
    */
   public AdvancedLocationListener(Text text) {
     // Store the address box for updates
     location = text;
   }
   /**
    * Called before the location changes
    * 
    * @param event the event
    */
   public void changing(LocationEvent event) {
     // Show the location that"s loading
     location.setText("Loading " + event.location + "...");
   }
   /**
    * Called after the location changes
    * 
    * @param event the event
    */
   public void changed(LocationEvent event) {
     // Show the loaded location
     location.setText(event.location);
   }
 }
 /**
  * This class implements a ProgressListener for AdvancedBrowser
  */
 class AdvancedProgressListener implements ProgressListener {
   // The label on which to report progress
   private Label progress;
   /**
    * Constructs an AdvancedProgressListener
    * 
    * @param label the label on which to report progress
    */
   public AdvancedProgressListener(Label label) {
     // Store the label on which to report updates
     progress = label;
   }
   /**
    * Called when progress is made
    * 
    * @param event the event
    */
   public void changed(ProgressEvent event) {
     // Avoid divide-by-zero
     if (event.total != 0) {
       // Calculate a percentage and display it
       int percent = (int) (event.current / event.total);
       progress.setText(percent + "%");
     } else {
       // Since we can"t calculate a percent, show confusion :-)
       progress.setText("???");
     }
   }
   /**
    * Called when load is complete
    * 
    * @param event the event
    */
   public void completed(ProgressEvent event) {
     // Reset to the "at rest" message
     progress.setText(AT_REST);
   }
 }
 /**
  * This class implements a StatusTextListener for AdvancedBrowser
  */
 class AdvancedStatusTextListener implements StatusTextListener {
   // The label on which to report status
   private Label status;
   /**
    * Constructs an AdvancedStatusTextListener
    * 
    * @param label the label on which to report status
    */
   public AdvancedStatusTextListener(Label label) {
     // Store the label on which to report status
     status = label;
   }
   /**
    * Called when the status changes
    * 
    * @param event the event
    */
   public void changed(StatusTextEvent event) {
     // Report the status
     status.setText(event.text);
   }
 }
 /**
  * The application entry point
  * 
  * @param args the command line arguments
  */
 public static void main(String[] args) {
   new AdvancedBrowser().run(args.length == 0 ? null : args[0]);
 }

}


      </source>
   
  
 
  



Modify HTML title tag

   <source lang="java">

/*

* Browser example snippet: modify HTML title tag
*
* For a list of all SWT example snippets see
* http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets
*/

import org.eclipse.swt.SWT; import org.eclipse.swt.browser.Browser; import org.eclipse.swt.browser.ProgressEvent; import org.eclipse.swt.browser.ProgressListener; import org.eclipse.swt.browser.TitleEvent; import org.eclipse.swt.browser.TitleListener; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class Snippet159 {

 public static void main(String[] args) {
   final String newTitle = "New Value for Title";
   Display display = new Display();
   final Shell shell = new Shell(display);
   shell.setLayout(new FillLayout());
   final Browser browser = new Browser(shell, SWT.NONE);
   browser.addTitleListener(new TitleListener() {
     public void changed(TitleEvent event) {
       System.out.println("TitleEvent: " + event.title);
       shell.setText(event.title);
     }
   });
   browser.addProgressListener(new ProgressListener() {
     public void changed(ProgressEvent event) {
     }
     public void completed(ProgressEvent event) {
       /*
        * Set HTML title tag using JavaScript and DOM when page has
        * been loaded
        */
       boolean result = browser.execute("document.title="" + newTitle
           + """);
       if (!result) {
         /*
          * Script may fail or may not be supported on certain
          * platforms.
          */
         System.out.println("Script was not executed.");
       }
     }
   });
   /* Load an HTML document */
   browser.setUrl("http://www.eclipse.org");
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch())
       display.sleep();
   }
   display.dispose();
 }

}


      </source>
   
  
 
  



Query DOM node value

   <source lang="java">

/*

* Browser example snippet: query DOM node value
*
* For a list of all SWT example snippets see
* http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets
*/

import org.eclipse.swt.SWT; import org.eclipse.swt.browser.Browser; 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.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class Snippet160 {

 public static void main(String[] args) {
final String html = "<html><title>Snippet</title><body>

Best Friends

Cat and Dog

</body></html>";
   Display display = new Display();
   final Shell shell = new Shell(display);
   shell.setLayout(new FillLayout());
   final Browser browser = new Browser(shell, SWT.NONE);
   browser.addStatusTextListener(new StatusTextListener() {
     public void changed(StatusTextEvent event) {
       browser.setData("query", event.text);
     }
   });
   browser.addProgressListener(new ProgressListener() {
     public void changed(ProgressEvent event) {
     }
     public void completed(ProgressEvent event) {
       /*
        * Use JavaScript to query the desired node content through the
        * Document Object Model
        * 
        * Assign result to the window property status to pass the
        * result to the StatusTextListener This trick is required since
        * execute does not return the String
        * directly.
        */
       boolean result = browser
           .execute("window.status=document.getElementById("myid").childNodes[0].nodeValue;");
       if (!result) {
         /*
          * Script may fail or may not be supported on certain
          * platforms.
          */
         System.out.println("Script was not executed.");
         return;
       }
       String value = (String) browser.getData("query");
       System.out.println("Node value: " + value);
     }
   });
   /* Load an HTML document */
   browser.setText(html);
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch())
       display.sleep();
   }
   display.dispose();
 }

}

      </source>
   
  
 
  



Render HTML that includes relative links from memory

   <source lang="java">

/*******************************************************************************

* Copyright (c) 2000, 2004 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
******************************************************************************/

/*

* Browser example snippet: render HTML that includes relative links from memory
* 
* For a list of all SWT example snippets see
* http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets
*/

import org.eclipse.swt.SWT; import org.eclipse.swt.browser.Browser; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class RenderHTML {

 public static void main(String[] args) {
   /* Relative links: use the HTML base tag */
   String html = "<html><head>"
       + "<base href=\"http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/\" >"
       + "<title>HTML Test</title></head>"
       + "<body></body></html>";
   Display display = new Display();
   Shell shell = new Shell(display);
   shell.setLayout(new FillLayout());
   Browser browser = new Browser(shell, SWT.NONE);
   browser.setText(html);
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch())
       display.sleep();
   }
   display.dispose();
 }

}


      </source>
   
  
 
  



SWT Browser

   <source lang="java">

/*******************************************************************************

* All Right Reserved. Copyright (c) 1998, 2004 Jackwind Li Guojie
* 
* Created on 2004-4-10 1:15:03 by JACK $Id$
*  
******************************************************************************/

import org.eclipse.jface.action.Action; import org.eclipse.jface.action.ToolBarManager; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.SWT; 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.VisibilityWindowListener; import org.eclipse.swt.browser.WindowEvent; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.ruposite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.ProgressBar; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.ToolBar; public class SWTBrowser {

 Display display = new Display();
 Shell shell = new Shell(display);
 Text textLocation;
 Browser browser;
 Label labelStatus;
 public SWTBrowser() {
   shell.setLayout(new GridLayout());
   ToolBar toolBar = new ToolBar(shell, SWT.FLAT | SWT.RIGHT);
   final ToolBarManager manager = new ToolBarManager(toolBar);
   Composite compositeLocation = new Composite(shell, SWT.NULL);
   compositeLocation.setLayout(new GridLayout(3, false));
   compositeLocation.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
   Label labelAddress = new Label(compositeLocation, SWT.NULL);
   labelAddress.setText("Address");
   textLocation = new Text(compositeLocation, SWT.SINGLE | SWT.BORDER);
   textLocation.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
   Button buttonGo = new Button(compositeLocation, SWT.NULL);
   buttonGo.setImage(new Image(shell.getDisplay(), "jexp.gif"));
   browser = new Browser(shell, SWT.BORDER);
   browser.setLayoutData(new GridData(GridData.FILL_BOTH));
   Composite compositeStatus = new Composite(shell, SWT.NULL);
   compositeStatus.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
   compositeStatus.setLayout(new GridLayout(2, false));
   labelStatus = new Label(compositeStatus, SWT.NULL);
   labelStatus.setText("Ready");
   labelStatus.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
   final ProgressBar progressBar =
     new ProgressBar(compositeStatus, SWT.SMOOTH);
   Listener openURLListener = new Listener() {
     public void handleEvent(Event event) {
       browser.setUrl(textLocation.getText());
     }
   };
   buttonGo.addListener(SWT.Selection, openURLListener);
   textLocation.addListener(SWT.DefaultSelection, openURLListener);
   // Adds tool bar items using actions.
   final Action actionBackward =
     new Action(
       "&Backword",
       ImageDescriptor.createFromFile(
         null,
         "jexp.gif")) {
     public void run() {
       browser.back();
     }
   };
   actionBackward.setEnabled(false); // action is disabled at start up.
   final Action actionForward =
     new Action(
       "&Forward",
       ImageDescriptor.createFromFile(
         null,
         "icons/web/forward.gif")) {
     public void run() {
       browser.forward();
     }
   };
   actionForward.setEnabled(false); // action is disabled at start up.
   Action actionStop =
     new Action(
       "&Stop",
       ImageDescriptor.createFromFile(null, "icons/web/stop.gif")) {
     public void run() {
       browser.stop();
     }
   };
   Action actionRefresh =
     new Action(
       "&Refresh",
       ImageDescriptor.createFromFile(
         null,
         "icons/web/refresh.gif")) {
     public void run() {
       browser.refresh();
     }
   };
   Action actionHome =
     new Action(
       "&Home",
       ImageDescriptor.createFromFile(null, "icons/web/home.gif")) {
     public void run() {
       browser.setUrl("http://www.eclipse.org");
     }
   };
   manager.add(actionBackward);
   manager.add(actionForward);
   manager.add(actionStop);
   manager.add(actionRefresh);
   manager.add(actionHome);
   manager.update(true);
   toolBar.pack();
   browser.addLocationListener(new LocationListener() {
     public void changing(LocationEvent event) {
       // Displays the new location in the text field.
       textLocation.setText(event.location);
     }
     public void changed(LocationEvent event) {
       // Update tool bar items.
       actionBackward.setEnabled(browser.isBackEnabled());
       actionForward.setEnabled(browser.isForwardEnabled());
       manager.update(false);
     }
   });
   browser.addProgressListener(new ProgressListener() {
     public void changed(ProgressEvent event) {
       progressBar.setMaximum(event.total);
       progressBar.setSelection(event.current);
     }
     public void completed(ProgressEvent event) {
       progressBar.setSelection(0);
     }
   });
   browser.addStatusTextListener(new StatusTextListener() {
     public void changed(StatusTextEvent event) {
       labelStatus.setText(event.text);
     }
   });
   browser.addTitleListener(new TitleListener() {
     public void changed(TitleEvent event) {
       shell.setText(event.title + " - powered by SWT");
     }
   });
   initialize(display, browser);
   shell.setSize(500, 400);
   shell.open();
   //textUser.forceFocus();
   //browser.setText(
// "<html><body>" + "

SWT & JFace

" + "</body/html>");
   // Set up the event loop.
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch()) {
       // If no more entries in event queue
       display.sleep();
     }
   }
   display.dispose();
 }
 static void initialize(final Display display, Browser browser) {
   browser.addOpenWindowListener(new OpenWindowListener() {
     public void open(WindowEvent event) {
       Shell shell = new Shell(display);
       shell.setText("New Window");
       shell.setLayout(new FillLayout());
       Browser browser = new Browser(shell, SWT.NONE);
       initialize(display, browser);
       event.browser = browser;
     }
   });
   browser.addVisibilityWindowListener(new VisibilityWindowListener() {
     public void hide(WindowEvent event) {
       Browser browser = (Browser) event.widget;
       Shell shell = browser.getShell();
       shell.setVisible(false);
     }
     public void show(WindowEvent event) {
       Browser browser = (Browser) event.widget;
       Shell shell = browser.getShell();
       if (event.location != null)
         shell.setLocation(event.location);
       if (event.size != null) {
         Point size = event.size;
         shell.setSize(shell.ruputeSize(size.x, size.y));
       }
       shell.open();
     }
   });
   browser.addCloseWindowListener(new CloseWindowListener() {
     public void close(WindowEvent event) {
       Browser browser = (Browser) event.widget;
       Shell shell = browser.getShell();
       shell.close();
     }
   });
 }
 private void init() {
 }
 public static void main(String[] args) {
   new SWTBrowser();
 }

}

      </source>
   
  
 
  



SWT Browser Example

   <source lang="java">

/*******************************************************************************

* All Right Reserved. Copyright (c) 1998, 2004 Jackwind Li Guojie
* 
* Created on 2004-4-10 20:04:08 by JACK $Id$
*  
******************************************************************************/

import java.text.MessageFormat; import java.util.MissingResourceException; import org.eclipse.swt.SWT; import org.eclipse.swt.SWTError; 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.VisibilityWindowListener; import org.eclipse.swt.browser.WindowEvent; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Canvas; import org.eclipse.swt.widgets.ruposite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.ProgressBar; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; public class BrowserExample {

 //static ResourceBundle resourceBundle =
 // ResourceBundle.getBundle("examples_browser");
 int index;
 boolean busy;
 Image images[];
 Text location;
 Browser browser;
 static final String[] imageLocations = { "eclipse01.bmp", "eclipse02.bmp",
     "eclipse03.bmp", "eclipse04.bmp", "eclipse05.bmp", "eclipse06.bmp",
     "eclipse07.bmp", "eclipse08.bmp", "eclipse09.bmp", "eclipse10.bmp",
     "eclipse11.bmp", "eclipse12.bmp", };
 static final String iconLocation = "jexp.gif";
 /**
  * Creates an instance of a ControlExample embedded inside the supplied
  * parent Composite.
  * 
  * @param parent
  *            the container of the example
  */
 public BrowserExample(Composite parent) {
   final Display display = parent.getDisplay();
   FormLayout layout = new FormLayout();
   parent.setLayout(layout);
   ToolBar toolbar = new ToolBar(parent, SWT.NONE);
   final ToolItem itemBack = new ToolItem(toolbar, SWT.PUSH);
   itemBack.setText(getResourceString("Back"));
   final ToolItem itemForward = new ToolItem(toolbar, SWT.PUSH);
   itemForward.setText(getResourceString("Forward"));
   final ToolItem itemStop = new ToolItem(toolbar, SWT.PUSH);
   itemStop.setText(getResourceString("Stop"));
   final ToolItem itemRefresh = new ToolItem(toolbar, SWT.PUSH);
   itemRefresh.setText(getResourceString("Refresh"));
   final ToolItem itemGo = new ToolItem(toolbar, SWT.PUSH);
   itemGo.setText(getResourceString("Go"));
   location = new Text(parent, SWT.BORDER);
   images = new Image[] { new Image(display, "jexp.gif") };
   final Canvas canvas = new Canvas(parent, SWT.NO_BACKGROUND);
   final Rectangle rect = images[0].getBounds();
   canvas.addListener(SWT.Paint, new Listener() {
     public void handleEvent(Event e) {
       Point pt = canvas.getSize();
       e.gc.drawImage(images[index], 0, 0, rect.width, rect.height, 0,
           0, pt.x, pt.y);
     }
   });
   canvas.addListener(SWT.MouseDown, new Listener() {
     public void handleEvent(Event e) {
       browser.setUrl(getResourceString("Startup"));
     }
   });
   display.asyncExec(new Runnable() {
     public void run() {
       if (canvas.isDisposed())
         return;
       if (busy) {
         index++;
         if (index == images.length)
           index = 0;
         canvas.redraw();
       }
       display.timerExec(150, this);
     }
   });
   final Label status = new Label(parent, SWT.NONE);
   final ProgressBar progressBar = new ProgressBar(parent, SWT.NONE);
   FormData data = new FormData();
   data.top = new FormAttachment(0, 5);
   toolbar.setLayoutData(data);
   data = new FormData();
   data.left = new FormAttachment(0, 0);
   data.right = new FormAttachment(100, 0);
   data.top = new FormAttachment(canvas, 5, SWT.DEFAULT);
   data.bottom = new FormAttachment(status, -5, SWT.DEFAULT);
   try {
     browser = new Browser(parent, SWT.NONE);
     browser.setLayoutData(data);
   } catch (SWTError e) {
     /* Browser widget could not be instantiated */
     Label label = new Label(parent, SWT.CENTER | SWT.WRAP);
     label.setText(getResourceString("BrowserNotCreated"));
     label.setLayoutData(data);
   }
   data = new FormData();
   data.width = 24;
   data.height = 24;
   data.top = new FormAttachment(0, 5);
   data.right = new FormAttachment(100, -5);
   canvas.setLayoutData(data);
   data = new FormData();
   data.top = new FormAttachment(toolbar, 0, SWT.TOP);
   data.left = new FormAttachment(toolbar, 5, SWT.RIGHT);
   data.right = new FormAttachment(canvas, -5, SWT.DEFAULT);
   location.setLayoutData(data);
   data = new FormData();
   data.left = new FormAttachment(0, 5);
   data.right = new FormAttachment(progressBar, 0, SWT.DEFAULT);
   data.bottom = new FormAttachment(100, -5);
   status.setLayoutData(data);
   data = new FormData();
   data.right = new FormAttachment(100, -5);
   data.bottom = new FormAttachment(100, -5);
   progressBar.setLayoutData(data);
   if (browser != null) {
     itemBack.setEnabled(browser.isBackEnabled());
     itemForward.setEnabled(browser.isForwardEnabled());
     Listener listener = new Listener() {
       public void handleEvent(Event event) {
         ToolItem item = (ToolItem) event.widget;
         if (item == itemBack)
           browser.back();
         else if (item == itemForward)
           browser.forward();
         else if (item == itemStop)
           browser.stop();
         else if (item == itemRefresh)
           browser.refresh();
         else if (item == itemGo)
           browser.setUrl(location.getText());
       }
     };
     browser.addLocationListener(new LocationListener() {
       public void changed(LocationEvent event) {
         busy = true;
         if (event.top)
           location.setText(event.location);
       }
       public void changing(LocationEvent event) {
       }
     });
     browser.addProgressListener(new ProgressListener() {
       public void changed(ProgressEvent event) {
         if (event.total == 0)
           return;
         int ratio = event.current * 100 / event.total;
         progressBar.setSelection(ratio);
         busy = event.current != event.total;
         if (!busy) {
           index = 0;
           canvas.redraw();
         }
       }
       public void completed(ProgressEvent event) {
         itemBack.setEnabled(browser.isBackEnabled());
         itemForward.setEnabled(browser.isForwardEnabled());
         progressBar.setSelection(0);
         busy = false;
         index = 0;
         canvas.redraw();
       }
     });
     browser.addStatusTextListener(new StatusTextListener() {
       public void changed(StatusTextEvent event) {
         status.setText(event.text);
       }
     });
     if (parent instanceof Shell) {
       final Shell shell = (Shell) parent;
       browser.addTitleListener(new TitleListener() {
         public void changed(TitleEvent event) {
           shell.setText(event.title + " - "
               + getResourceString("window.title"));
         }
       });
     }
     itemBack.addListener(SWT.Selection, listener);
     itemForward.addListener(SWT.Selection, listener);
     itemStop.addListener(SWT.Selection, listener);
     itemRefresh.addListener(SWT.Selection, listener);
     itemGo.addListener(SWT.Selection, listener);
     location.addListener(SWT.DefaultSelection, new Listener() {
       public void handleEvent(Event e) {
         browser.setUrl(location.getText());
       }
     });
     initialize(display, browser);
     browser.setUrl(getResourceString("Startup"));
   }
 }
 /**
  * Gets a string from the resource bundle. We don"t want to crash because of
  * a missing String. Returns the key if not found.
  */
 static String getResourceString(String key) {
   try {
     return "key";
   } catch (MissingResourceException e) {
     return key;
   } catch (NullPointerException e) {
     return "!" + key + "!";
   }
 }
 /**
  * Gets a string from the resource bundle and binds it with the given
  * arguments. If the key is not found, return the key.
  */
 static String getResourceString(String key, Object[] args) {
   try {
     return MessageFormat.format(getResourceString(key), args);
   } catch (MissingResourceException e) {
     return key;
   } catch (NullPointerException e) {
     return "!" + key + "!";
   }
 }
 static void initialize(final Display display, Browser browser) {
   browser.addOpenWindowListener(new OpenWindowListener() {
     public void open(WindowEvent event) {
       System.out.println("Open");
       Shell shell = new Shell(display);
       shell.setLayout(new FillLayout());
       Browser browser = new Browser(shell, SWT.NONE);
       initialize(display, browser);
       event.browser = browser;
     }
   });
   browser.addVisibilityWindowListener(new VisibilityWindowListener() {
     public void hide(WindowEvent event) {
     }
     public void show(WindowEvent event) {
       System.out.println("Show");
       Browser browser = (Browser) event.widget;
       Shell shell = browser.getShell();
       if (event.location != null)
         shell.setLocation(event.location);
       if (event.size != null) {
         Point size = event.size;
         shell.setSize(shell.ruputeSize(size.x, size.y));
       }
       shell.open();
     }
   });
   browser.addCloseWindowListener(new CloseWindowListener() {
     public void close(WindowEvent event) {
       System.out.println("Close");
       Browser browser = (Browser) event.widget;
       Shell shell = browser.getShell();
       shell.close();
     }
   });
 }
 /**
  * Disposes of all resources associated with a particular instance of the
  * BrowserExample.
  */
 public void dispose() {
   freeResources();
 }
 /**
  * Frees the resources
  */
 void freeResources() {
   if (images != null) {
     for (int i = 0; i < images.length; ++i) {
       final Image image = images[i];
       if (image != null)
         image.dispose();
     }
     images = null;
   }
 }
 /**
  * Grabs input focus.
  */
 public void setFocus() {
   location.setFocus();
 }
 public static void main(String[] args) {
   Display display = new Display();
   Shell shell = new Shell(display);
   shell.setLayout(new FillLayout());
   shell.setText("Browser example");
   BrowserExample instance = new BrowserExample(shell);
   Image icon = new Image(display, "jexp.gif");
   shell.setImage(icon);
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch())
       display.sleep();
   }
   icon.dispose();
   instance.dispose();
   display.dispose();
 }

}

      </source>
   
  
 
  



Uses a web browser to display

   <source lang="java">

//Send questions, comments, bug reports, etc. to the authors: //Rob Warner (rwarner@interspatial.ru) //Robert Harris (rbrt_harris@yahoo.ru) import org.eclipse.swt.SWT; import org.eclipse.swt.browser.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; /**

* This class uses a web browser to display Slashdot"s home page
*/

public class ShowSlashdot {

 /**
  * Runs the application
  */
 public void run() {
   Display display = new Display();
   Shell shell = new Shell(display);
   shell.setText("Slashdot");
   createContents(shell);
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch()) {
       display.sleep();
     }
   }
   display.dispose();
 }
 /**
  * Creates the main window"s contents
  * 
  * @param shell the main window
  */
 private void createContents(Shell shell) {
   shell.setLayout(new FillLayout());
   // Create a web browser
   Browser browser = new Browser(shell, SWT.NONE);
   // Navigate to Slashdot
   browser.setUrl("http://www.jexp.ru");
 }
 /**
  * The application entry point
  * 
  * @param args the command line arguments
  */
 public static void main(String[] args) {
   new ShowSlashdot().run();
 }

}


      </source>
   
  
 
  



Web Browser Composite

   <source lang="java">

/* SWT/JFace in Action GUI Design with Eclipse 3.0 Matthew Scarpino, Stephen Holder, Stanford Ng, and Laurent Mihalkovic ISBN: 1932394273 Publisher: Manning

  • /

import org.eclipse.swt.SWT; import org.eclipse.swt.browser.Browser; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.ruposite; import org.eclipse.swt.widgets.Text; public class Ch12WebBrowserComposite extends Composite {

 private Browser browser;
 public Ch12WebBrowserComposite(Composite parent) {
   super(parent, SWT.NONE);
   GridLayout layout = new GridLayout(2, true);
   setLayout(layout);
   browser = new Browser(this, SWT.NONE);
   GridData layoutData = new GridData(GridData.FILL_BOTH);
   layoutData.horizontalSpan = 2;
   layoutData.verticalSpan = 2;
   browser.setLayoutData(layoutData);
   browser.setUrl("http://www.slashdot.org");
   final Text text = new Text(this, SWT.SINGLE);
   layoutData = new GridData(GridData.FILL_HORIZONTAL);
   text.setLayoutData(layoutData);
   Button openButton = new Button(this, SWT.PUSH);
   openButton.setText("Open");
   openButton.addSelectionListener(new SelectionListener() {
     public void widgetSelected(SelectionEvent e) {
       browser.setUrl(text.getText());
     }
     public void widgetDefaultSelected(SelectionEvent e) {
     }
   });
   Button backButton = new Button(this, SWT.PUSH);
   backButton.setText("Back");
   backButton.addSelectionListener(new SelectionListener() {
     public void widgetSelected(SelectionEvent e) {
       browser.back();
     }
     public void widgetDefaultSelected(SelectionEvent e) {
     }
   });
   Button forwardButton = new Button(this, SWT.PUSH);
   forwardButton.setText("Forward");
   forwardButton.addSelectionListener(new SelectionListener() {
     public void widgetSelected(SelectionEvent e) {
       browser.forward();
     }
     public void widgetDefaultSelected(SelectionEvent e) {
     }
   });
 }

}

      </source>