A melhor parceira de TI para o seu negócio English version

Framework docs

Apresentação > Designer > Containers

Conheça mais sobre com o livro:

  • Instalação e configuração;
  • Modelos, persistência e BD;
  • Componentes de apresentação;
  • Cadastros e listagens;
  • Logins, permissões, relatórios;
  • Desenvolvimento com Studio Pro.
Ver detalhes...

Esse exemplo demonstra uma interface complexa criada utilizando o Adianti Studio Form Designer. Nesta interface temos um grupo de objetos TNotebook com uma grande variedade de outros objetos em seu interior, desde objetos de entrada de dados até mesmo outros objetos TNotebook.

Para renderizar a interface, utilizamos a classe TUIBuilder, que é um construtor de interfaces. A classe TUIBuilder recebe um arquivo XML criado pelo Adianti Studio Designer e renderiza o formulário na interface. TUIBuilder é subclasse de TPanel, o que significa que ela possui o mesmo comportamento, organizando os widgets em coordenadas fixas. TUIBuilder realiza um parsing do arquivo XML criado pelo Adianti Studio Designer e cria todos os widgets representados dentro do arquivo XML por meio do método parseFile(). Uma instância de TUIBuilder pode ser adicionada dentro de qualquer outro container como TNotebook, TTable ou diretamente dentro de um controlador TPage.

Importante: Este exemplo envolve a utilização de uma interface (tela) desenhada pelo Adianti Studio Form Designer. O Adianti Studio Form Designer é uma ferramenta completa que permite ao usuário desenhar formulários e datagrids com uma interface gráfica (clicar e arrastar) utilizando os componentes e containers do framework (TEntry, TCombo, TRadioGroup, TFrame, etc). Esta interface é salva em XML e pode ser utilizada pela classe TUIBuilder, e seu método parseFile() para recriá-la dinamicamente em tempo de execução.

Clique aqui para
demonstração real

Exemplo

  1. <?php
  2. /**
  3.  * DesignContainerView Registration
  4.  *
  5.  * @version    1.0
  6.  * @package    samples
  7.  * @subpackage tutor
  8.  * @author     Pablo Dall'Oglio
  9.  * @copyright  Copyright (c) 2006 Adianti Solutions Ltd. (http://www.adianti.com.br)
  10.  * @license    http://www.adianti.com.br/framework-license
  11.  */
  12. class DesignContainerView extends TPage
  13. {
  14.     private $form;
  15.     
  16.     /**
  17.      * Class constructor
  18.      * Creates the page and the registration form
  19.      */
  20.     function __construct()
  21.     {
  22.         parent::__construct();
  23.         
  24.         // creates the form
  25.         $this->form = new TForm;
  26.         
  27.         try
  28.         {
  29.             // UIBuilder object
  30.             $ui = new TUIBuilder(500400);
  31.             $ui->setController($this);
  32.             $ui->setForm($this->form);
  33.             
  34.             // reads the xml form
  35.             $ui->parseFile('app/forms/containers.form.xml');
  36.             
  37.             // add the TUIBuilder panel inside the form
  38.             $this->form->add($ui);
  39.             // set the form fields from the interface
  40.             $this->form->setFields($ui->getFields());
  41.         }
  42.         catch (Exception $e)
  43.         {
  44.             new TMessage('error'$e->getMessage());
  45.         }
  46.         
  47.         // wrap the page content using vertical box
  48.         $vbox = new TVBox;
  49.         $vbox->add(new TXMLBreadCrumb('menu.xml'__CLASS__));
  50.         $vbox->add($this->form);
  51.         parent::add($vbox);
  52.     }
  53. }
  54. ?>