-
Notifications
You must be signed in to change notification settings - Fork 1
Tutorial 2. Primer ventana.
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.
Documentación
- Trabajar con ventanas
- Controles
- Manejo de Eventos
- Creacion de nuevos Objetos
Referencias
- El objeto Webos\VisualObject
- Comportamientos
- \Webos\Visual\FormContainer
- \Webos\Visual\KeyEvents
- \Webos\Visual\DataConsummer
Apéndice
- Prácticas recomendadas.
- Distribución
- Contribución