Opa galera...
Eu desenvolvi uma nova janela (como o window do laszlo) para que os dados e forms fossem apresentados em minha aplicação.
Decidi desenvolver minha própria 'window' pois a que é distribuida pelo laszlo, ao meu ver, possui coisas ínuteis que acabam deixando sua execução mais lenta (como por exemplo as imagens das bordas, sombras, titulo, botão de fechar, etc...). Portanto criei uma utilizando apenas views, tendo uma janela simples e funcional.
O problema é que eu não estou conseguindo definir em qual view interna devem ser adicionados as views que eu irei colocar dentro da janela (defaultplacement).
Segue abaixo o código fonte da janela.
[class name="DSNewWindow" clickable="true"
width="200" height="350" x="30" y="50"]
[!-- @BEGIN: Atributos --]
[attribute name="closeable" type="boolean" value="true" /]
[attribute name="bordercolor" type="color" value="#CCCCCC" /]
[attribute name="color" type="color" value="#506fa6" /]
[attribute name="backgroundcolor" type="color" value="#FFFFFF" /]
[attribute name="titlecolor" type="color" value="#FFFFFF" /]
[attribute name="defaultplacement" value="content.container"/]
[!-- @END: Atributos --]
[!-- @BEGIN: Datasets --]
[!-- @END: Datasets --]
[!-- @BEGIN: Interface --]
[dragstate name="dragger"/]
[view name="content" x="1" y="1" clip="true" ]
[statictext x="5" name="title" fontstyle="bold" text="Título da janela" /]
[statictext text="x" fontstyle="bold" name="close" fgcolor="#FFFFFF" ]
[handler name="onmouseover" ][![CDATA[
this.setAttribute( 'fgcolor' , 0xDDDDFF );
]]][/handler]
[handler name="onmouseout" ][![CDATA[
this.setAttribute( 'fgcolor' , 0xFFFFFF );
]]][/handler]
[handler name="onclick" ][![CDATA[
classroot.close();
]]][/handler]
[/statictext]
[view name="container" x="2" y="20" clip="true"]
[/view]
[/view]
[!-- @END: Interface --]
[!-- @BEGIN: Events & Handlers --]
[method event="oninit" ][![CDATA[
this.setWindowColors();
this.content.setAttribute( 'width' , this.width - 2 );
this.content.setAttribute( 'height' , this.height - 2 );
this.content.container.setAttribute( 'width' , this.content.width - 4 );
this.content.container.setAttribute( 'height' , this.content.height - 22 );
this.content.close.setAttribute( 'x' , this.content.width - this.content.close.width - 2 );
this.content.close.setAttribute( 'visible' , this.closeable );
]]][/method]
[handler name="onmousedown" ][![CDATA[
this.bringToFront();
this.dragger.apply();
]]][/handler]
[handler name="onmouseup" ][![CDATA[
this.dragger.remove();
]]][/handler]
[!-- @END: Events & Handlers --]
[!-- @BEGIN: Métodos --]
[method name="close" ][![CDATA[
this.destroy();
]]][/method]
[method name="setWindowColors" ][![CDATA[
this.setAttribute( 'bgcolor' , this.bordercolor );
this.content.setAttribute( 'bgcolor' , this.color );
this.content.title.setAttribute( 'fgcolor' , this.titlecolor );
this.content.container.setAttribute( 'bgcolor' , this.backgroundcolor );
]]][/method]
[!-- @END: Métodos --]
[/class]
O que eu quero é que meus componentes sejam adicionados à view CONTAINER, que está dentro da view CONTENT.
A view content só existe para que seja desenhada uma borda de 1 pixel em volta da janela, sendo a cor desta borda definida pelo atributo BORDERCOLOR.
Dentro da view content estão presentes o título (posicionado a esquerda e acima da janela) e o botão para fechar a janela (posicionado acima e a direita)
Como eu devo fazer para que as views adicionadas na janela sejam posicionadas dentro da view CONTAINER ?
Eu ja tentei retirar a CONTAINER de dentro de CONTENT e mesmo assim não funcionou...
Deem uma olhada no meu attributo DEFAULTPLACEMENT, verifiquem se ele está correto...
Alguem ja fez isso antes ?