Skip to content

Tutorial 2. Primer ventana.

Salomon edited this page Nov 27, 2018 · 2 revisions

Para la creación de ventanas, se provee la clase Webos\Visual\Window la cual se puede instanciar directamente, pero es recomendable crear una nueva para su posterior reutilización.

Subclases útiles de Window son las siguientes (en el namespace Webos\Visual\Windows): Application, Confirm, Message, Prompt, Wait y algunas específicas como DataList, Embedder, Exception

Como se creará una ventana de aplicación, la clase a utilizar será Webos\Visual\Windows\Application

En el presente tutorial es recomendable crear una archivo MyProject/src/Windows/Main.php con la clase Main con el siguiente contenido:

<?php

namespace MyProject\Windows;

use Webos\Visual\Windows\Application as ApplicationWindow;

class Main extends ApplicationWindow {
    public function initialize(array $params = []) {
        // Aquí va el código que se ejecuta cada vez que se abre una ventana.
    }
}

y para inicalizarla, se modifica la aplicación del tutorial anterior reemplazando el código del método main quedando de la siguiente forma:

    public function main(array $params = []) {
        $this->openWindow(Windows\Main::class);
    }

El método openWindow como indica su nombre permite abrir una ventana especificando una clase, y como segundo parámetro opcional, un array asociativo que lo recibirá el método initialize de la clase que define dicha ventana.

Si se piensa en una aplicación de escritorio, la ventana principal debería contar con una barra de menús. En el siguiemte paso se agregarán todos los elementos necesarios. Al igual que encualquier otro tipo de ventana, se agrega código en el método initalize para crear los objetos necesarios.

<?php

namespace MyProject\Windows;

use Webos\Visual\Windows\Application as ApplicationWindow;

class Main extends ApplicationWindow {
    public function initialize(array $params = []) {
        $menuBar = $this->createMenuBar();            // Se crea la barra de menú
        $mButton = $menuBar->createButton('Inicio');  // Se crea el menú Inicio
        $mButton->createItem('Itiem 1');              // Dentro del menú se agrega el item 1
        $mButton->createItem('Itiem 2');              // item 2
        $mButton->createItem('Itiem 3');              // item 3
        $mButton->createSeparator();                  // un separador
        // y como ejemplo de interacción, se agrega una acción para el evento click.
        $mButton->createItem('Cerrar')->onClick(function() {
            $this->getApplication()->close();
        });
        
        Se puede mostrar un mensaje de bienvenida
        $this->messageWindow('Bienvendio a mi primer sistema con WebOS');
    }
}

Se guardan los cambios, y para que éstos se vean reflejados, es necesario borrar el espacio de trabajo. Se encontrará en /private/workspaces/root. Al borrar el archivo se comenzará nuevamente.

Introducción

Documentación

Referencias

  • El objeto Webos\VisualObject
  • Comportamientos
    • \Webos\Visual\FormContainer
    • \Webos\Visual\KeyEvents
    • \Webos\Visual\DataConsummer

Apéndice

  • Prácticas recomendadas.
  • Distribución
  • Contribución

Clone this wiki locally