quarta-feira, 14 de fevereiro de 2007

OpenLaszlo: trabalhando com Classes

uma das grandes vantagens no OpenLaszlo que também foi um dos motivos do meu interesse inicial por esta tecnologia VIEW, foi o fato de ter sido anunciado que era capaz de programar um interface de aplicação web usando conceitos de POO, isso mesmo, o paradigma que o pessoal do java e outras linguagens Orientada a Objetos estão acostumados, no caso classes, herança e outras funcionalidade...

nesse post o foco são as classes, o OpenLaszlo te possibilita organizar a sua aplicação em classes aumentando ao máximo a reusabilidade de código, sendo uma classe alguma funcionalidade de processamento, ou então uma classe que represente um componente visual costumizado como um novo botão, ou mesmo tela de formulário genércio que pode ser muitas vezes reaproveitados no mesmo sistema, ou melhor ser utilizado como base para novos sistemas reduzindo o tempo gasto no desenvolvimento...

Obs.: o OpenLaszlo disponibiliza um conjunto muito grande de classes, tanto de componentes quanto de funcionalidades prontas para uso, porém em se tratando de interface para as quais estamos acostumados, lembrando o genero de interface de aplicações desktop notamos que os componentes disponibilizados pelo OpenLaszlo são genericos, tem como utiliza-los para sistemas simples, mas quando formos trabalhar com aplicações de verdade iremos nos deparar com a necessidade de desenvolver o nosso proprio conjunto de componentes padrão que usamos em aplicações, como por exemplo um campo com formatação de texto, numério, ou mesmo um campo de CPF com validação do CPF digitado... com isso fica uma dica, avalie e liste os componentes que normalmente se utiliza e gaste um tempo desenvolvendo o seu próprio conjunto de componentes visando a reusabilidade para reduzir o tempo gasto futuramente, tornando a montagem da interface como "brincar de lego", declarar as tags das classes dos componentes, ajustar e pronto temos uma nova interface.

Classe
[link: guia de referência]
[link: documentação]

Herança
Outro ponto importante no OpenLaszlo é o fato de suportar herança isso ajuda muito, digamos que você desenvolva seus componentes genéricos iniciais, mas futuramente em um caso de uso, existe a necessidade de um componente mais especializado, não tem problema basta herdar a sua classe existente e codificar as especializações para o novo componente

*** Exemplo *** [link]


O problema: famosa repetição de código

<canvas width="200">
   <simplelayout spacing="5"/>
   <view height="100" width="100" bgcolor="red"/>
   <view height="100" width="100"    bgcolor="red"/>
   <view height="100" width="100" bgcolor="red"/>
</canvas>


A solução: definir uma classe e reutilizar

<canvas width="200">
   <simplelayout spacing="5"/>
   <class name="box" height="100" width="100" bgcolor="red"/>
   <box/>
   <box/>
   <box/>
</canvas>


Herança: reusabilidade e especialiação

<canvas width="200">
   <simplelayout spacing="5"/>
   <class name="box" height="100" width="100" bgcolor="red"/>
   <class name="borderedbox" extends="box">
      <view bgcolor="yellow"
         x="3" y="3"
         width="${parent.width-6}"
         height="${parent.height-6}"/>
   </class>
   <borderedbox/>
   <borderedbox/>
   <borderedbox/>
</canvas>


ver na documentação oficial:
capítulo 25 - classes
capítulo 30 - extendendo classes

OpenLaszlo: como intergrar em um HTML ?

outra duvida que vejo o pessoal um pouco perdido é como integrar o OpenLaszlo com o HTML, sendo este gerado por um .jsp, .asp, .php ou qq outra tecnologia web...

lembrando que o OpenLaszlo na versão 3.x ele disponibiliza 2 formas de publicar uma aplicação desenvolvida com o OpenLaszlo:

- Proxied : a qual utiliza um suporte no server-side de libs e java
- SOLO : essa é similar, ou até digamos que a mesma modalidade utilizada pelo Flex, no qual você irá gerar um .SWF da aplicação e disponibilizar em qualquer servidor web de qualquer tecnologia de sua preferência...

* agora como fazer para integrar?

existem 2 formas de fazer isso, uma é utilizando a tag para integrar um .swf em um HTML, como no exemplo a seguir:

<object type="application/x-shockwave-flash"
      data="suaAplicacao.lzx?lzt=swf&debug=false&lzr=swf7"
      width="800" height="100%">
   <param name="movie" value="suaAplicacao.lzx?lzt=swf&debug=false&lzr=swf7" />
   <param name="quality" value="high" />
   <param name="scale" value="noscale" />
   <param name="salign" value="LT" />
   <param name="menu" value="false" />
</object>

ou então usando o suporte javascript da plataforma OpenLaszlo que irá gerar isso por trás e exibir sua aplicação dentro de um HTML, onde é necessário incluir o javascript:

<script src="/NomeAplicacao/lps/includes/embed.js" type="text/javascript"></script>

e no local onde for exibir a aplicação inserir o respectivo script:

<script type="text/javascript">
   lzEmbed({url: 'suaAplicacao.lzx?lzt=swf&debug=false&lzr=swf7', bgcolor: '#ffffff', width: '800', height: '100%', id: 'lzapp', accessible: 'false'});
</script>


outras informações podem ser vistas nesse [link]

ver capítulo 32 da documentação oficial: Integração com o Browser

OpenLaszlo: sessionrpc

Voltando ao assunto de sessões com o OpenLaszlo, uma funcionalidade legal para trabalhar com sessões que o OpenLaszlo disponibiliza é a tag sessionrpc

Obs.: porém esta é relacionado a um suporte java no lado do servidor, pelo menos em suma pelo que compreendi, de acordo com o especificado no guia de referência da documentação oficial do OpenLaszlo [link: sessionrpc]

Exemplo: [link]
Código fonte: [link]