miércoles, 11 de enero de 2012

Añadir una barra de progreso a un navegador embebido

Aquí os dejo el código para poder añadir una barra de de progreso a un navegador embebido que está incrustado en un composite de SWT.

public class NavegadorEmbebidoSWT extends Composite {
  private Browser browser;
  ProgressBar progressBar;
  boolean busy;
  int index;

  public NavegadorEmbebidoSWT(Composite parent, String urlEntorno) {
    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);
    
    //Barra de progreso
    progressBar = new ProgressBar(this, SWT.NONE);
 progressBar.setLocation(600, 5);
 progressBar.setSize(108, 23);
 
 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;
          }
        }

        public void completed(ProgressEvent event) {
          if (progressBar != null)
            progressBar.setSelection(0);
          busy = false;
          index = 0;
        }
      });
    
    browser.setUrl(urlEntorno);
 
  }
  
}

Simplemente instanciáis un composite de este tipo y ya tenéis un navegador con su barra de progreso embebido. Con el método browser.setUrl podéis poner la url que queráis cargar.

No hay comentarios:

Publicar un comentario