Defaultplacement não funciona =/ ( OL4 )

3 respostas
R

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 ?

3 Respostas

E

opa blz?

[attribute name=“defaultplacement” value=“content.container”/]

cara pelo que me lembro esse formado não é aceito
tem que ser o nome direto da tag…

R

Nome direto que você diz é sem o ‘.’ ?

Eu ja testei o defaultplacement apontando para a view CONTENT e também não funcionou =/

E

sim disse sem o ponto sim…

bom uma vez tentei usar com se fosse indicando um atributo de objeto,
porem pelo que percebi ele não funciona assim, ele procura no XML atual
o nome da tag correspondente ao que vc definiu ali…

name=“content”

se achar define que vai jogar o conteudo na tag que possui essa definição de nome, pelo menos pelo que observei o OL funciona assim :roll:

Criado 8 de agosto de 2007
Ultima resposta 9 de ago. de 2007
Respostas 3
Participantes 2