Our Country Sites: Argentina|Brazil|Chile|Mexico|Peru

Desarrollo Apps Blackberry (6) - Trabajando con Pantallas [Parte 2]

Versión para impresiónVersión para impresiónSend by emailSend by email

Desarrollo Apps Blackberry (6)
Trabajando con Pantallas - Parte 2

En el anterior post hicimos una introducción al funcionamiento de la administración de visualización de las pantallas por medio de la pila de visualización; de igual manera acerca de los tipo de visualización empleados en las aplicaciones Blackberry.

En este post les mostraré codigos ejemplo sobre los tipos de visualización tratados anteriormente para complementar los conceptos mencionados en mi anterior post.

VISUALIZACIÓN COMUN
A continuación un fragmento de código que nos muestra como mostrar la pantalla de manera común.

public class VisualizarComun extends UiApplication {

   public static void main(String[] args) {
      VisualizarComun theApp = new VisualizarComun();
      UiApplication.getUiApplication().pushScreen(new EjemploScreen());
      theApp.enterEventDispatcher();

   }

..

}

public class EjemploScreen extends MainScreen {

   public EjemploScreen(){
      VerticalFieldManager vfm = new VerticalFieldManager(Manager.VERTICAL_SCROLL);
      vfm.add(new LabelField("Primera Pantalla"));
      add(vfm);

      // Mostrar la segunda pantalla y correrla luego en el EDT
      UiApplication.getApplication().invokeLater(new Runnable(){
         public void run(){
            EjemploScreen2 pantalla02 = new EjemploScreen2();
            System.out.println("Acerca de la segunda pantalla");
            UiApplication.getUiApplication().pushScreen(pantalla02);
            System.out.println("ya has mostrado la segunda pantalla");
         }
      });
   }

}

public class EjemploScreen2 extends MainScreen {

   public EjemploScreen2(){
      VerticalFieldManager vfm = new VerticalFieldManager(Manager.VERTICAL_SCROLL);
      vfm.add(new LabelField("Segunda Pantalla"));
      add(vfm);
   }

}

1. La clase VisualizarComun ejecuta el programa y agrega el objecto EjemploScreen a la pila de visualización (de manera común).
2. Ni bien la EjemploScreen es creado, crea un objecto de tipo Runnable que sera ejecutado en el EDT unos momentos despues. Este objeto Runnable crea una nueva pantalla (EjemploScreen2), el cual se visualiza de manera común. Los dos System.out.println se ejecutan tan pronto se visualiza la segunda pantalla. Este solo muestra la forma no-modal o común en que se muestra esta pantalla.

VISUALIZACIÓN MODAL
A continuación un fragmento de codigo que nos muestra como mostrar la pantalla de manera modal.

public class VisualizacionModal extends UiApplication {

   public static void main(String[] args) {
      VisualizacionModal theApp = new VisualizacionModal();
      UiApplication.getUiApplication().pushScreen(new EjemploScreen());
      theApp.enterEventDispatcher();

   }

   ...

}

public class EjemploScreen extends MainScreen {

   public EjemploScreen01(){
      VerticalFieldManager vfm = new VerticalFieldManager(Manager.VERTICAL_SCROLL);
      vfm.add(new LabelField("Primera pantalla"));
      add(vfm);
   
      // Mostrar la segunda pantalla y correrla luego en el EDT
      UiApplication.getApplication().invokeLater(new Runnable(){
         public void run(){
            EjemploScreen2 screen2 = new EjemploScreen2();
            System.out.println("Por mostrar la pantalla02");
            UiApplication.getUiApplication().pushModalScreen(screen2);
            System.out.println("Ya se mostro la pantalla02. Esto no correra hasta que la segunda pantalla se cierre");
         }
      });
   }

}

public class EjemploScreen2 extends MainScreen {

   public EjemploScreen2(){
      VerticalFieldManager vfm = new VerticalFieldManager(Manager.VERTICAL_SCROLL);
      vfm.add(new LabelField("Segunda Pantalla"));
      add(vfm);
   }

}

1. La clase VisualizacionModal ejecuta el programa y agrega el objecto EjemploScreen a la pila de visualización (de manera común).
2. Ni bien la EjemploScreen es creado, crea un objecto de tipo Runnable que sera ejecutado en el EDT unos momentos después. Este objeto Runnable crea una nueva pantalla (EjemploScreen2), el cual se visualiza de manera modal. Los dos System.out.println no se ejecutarán hasta que se visualice la segunda pantalla (de manera modal). Cuando se pulse la tecla ESC o el boton BACK, la segunda pantalla se cerrará y luego el segundo System.out.println se ejecutará se verá en la consola de nuestro IDE. Estas lineas muestran el comportamiento de bloqueo de la funcion pushModalScreen().

Espero sus comentarios

Gerardo Chung
Desarrollo Blackberry Senior
Nextel del Peru S.A.