Mostrando entradas con la etiqueta SWT. Mostrar todas las entradas
Mostrando entradas con la etiqueta SWT. Mostrar todas las entradas

miércoles, 11 de enero de 2012

No dejar redimensionar una ventana SWT

shell = new Shell(SWT.DIALOG_TRIM | SWT.MIN); 

De esta forma bloqueamos el redimensionamiento de una ventana(shell) en SWT. Sería el equivalente en swing de

frame.setResizable(false);


Escribimos en el constructor del shell las propiedades y listo.
Si queremos añadir más restricciones a la ventana podemos concatenar cualesquiera de esta lista:
SWT.BORDER 
SWT.CLOSE 
SWT.MIN 
SWT.MAX 
SWT.RESIZE 
SWT.TITLE 
SWT.NO_TRIM 
SWT.SHELL_TRIM 
SWT.DIALOG_TRIM 
SWT.MODELESS 
SWT.PRIMARY_MODAL 
SWT.APPLICATION_MODAL 
SWT.SYSTEM_MODAL 

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.