DClick

Header customizado em um Panel


A tarefa de adicionar componentes no header de um Panel pode ser bem trabalhosa. O PanelHeaderRenderer vem com o objetivo de facilitar isso. Exemplo:


Botão direito -> View Source


A única diferença deste para o Panel original é a propriedade headeRenderer. Nesta propriedade deve ser definido um componente para ser utilizado como header do Panel. Caso seu componente possua propriedades title e/ou status, as labels title/status originais do Panel são removidas e as implementadas por seu componente são utilizadas.

A implementação ficou bem simples, a parte interessante é quando preciso verificar a existência da propriedade "title" e "status" no headerRenderer especificado. Segue um trecho do código:

Actionscript:
  1. override protected function createChildren():void
  2. {
  3.     super.createChildren();
  4.  
  5.     if(!titleHeader)
  6.     {
  7.         titleHeader = UIComponent(headerRenderer.newInstance());
  8.        
  9.         if(titleHeader.hasOwnProperty("title"))
  10.         {
  11.             //we hide the original panel's titleField and bind it to the new one.
  12.             titleBar.removeChild(titleTextField);
  13.             BindingUtils.bindProperty(titleHeader,"title",this,"title");
  14.         }
  15.        
  16.         if(titleHeader.hasOwnProperty("status"))
  17.         {
  18.             //we hide the original panel's status and bind it to the new one.
  19.             titleBar.removeChild(statusTextField);
  20.             BindingUtils.bindProperty(titleHeader,"status",this,"status");
  21.         }
  22.        
  23.         //and add the headerRenderer into the titleBar
  24.         titleHeader.visible = true;
  25.         titleBar.addChild(titleHeader);
  26.     }
  27. }

Por Marcelo Savioli em 3/December/2007 | Comentar | Trackback


No Translations

Um comentário para “Header customizado em um Panel”


Parabéns pela dica…
curti bastante, sou novato na ferramenta e estou gostando muito…
mais uma vez parabéns pela dica!!!

Adicionar comentário

(requerido)
(requerido, não será publicado)