Jadix
Objetivo do Projeto
Desenvolver artefatos que permitam o uso combinado da linguagem de marcação Dix com applets Java. Assim, uma página Dix teria comunicação com uma applet Java em seu interior. Esta comunicação deve se dar em duas vias:
a. de Java para os componentes Dix
através de um acoplamento escrito em Java ("binding") que permita a criação dinâmica de componentes Dix, assim como sua manipulação: modificação dos valores de seus atributos, com reflexos na apresentação visual do componente ("renderização").
b. de Dix para Java
através da emissão de eventos Dix dando conta das manipulações do usuário na interface WEB (
WebUserInterface) apresentada pela transformação Dix. Estes eventos são transformados em eventos Java usuais, podendo assim serem recebidos por tratadores de evento definidos em Java (listeners).
a. Comunicação Java para Dix
Utiliza-se o pacote edugraf.jadix (como em: import edugraf.jadix.*; )
Considere, por exemplo, a seguinte página Dix:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../../../transformacao/dix.xsl"?>
<página nome="exemplo" título="exemplo de página Dix" tema="martimPescador">
<etiqueta nome="título" esquerda="10" topo="10">
algo escrito aqui
</etiqueta>
<aplique nome="comunicacaoJavaParaDix" linguagem="java" ... />
</página>
O aplique "comunicacaoJavaParaDix" deve ser escrito em Java usando a classe Aplique do pacote edugraf.jadix.
A classe Aplique é uma sub-classe de Applet. Cada exemplar de aplique contém um exemplar de controladorDePáginaDix, denominado DIX, que representa a página Dix aonde o aplique está instalado, e faz a ligação do código Java com os componentes Dix existentes na página.
Uma página como a do exemplo, portanto, poderia conter, no aplique "comunicacaoJavaParaDix" comandos como:
- DIX.fixarTextoDoComponente ("título","inserir texto do componente");
ou mesmo criar novos componentes dinamicamente, como em:
- DIX.criarComponente ("botão","botãoDeExemplo","Clique aqui");
o que mostraria um botão na interface, com o texto "Clique aqui", nas dimensões padrão, e nas coordenadas (0,0).
A seguir, esse botão poderia ser manipulado, como em:
- DIX.fixarDimensõesDoComponente ("botãoDeExemplo", 100,30);
Questões em aberto:
- testar múltiplos controladores em um única applet, em threads distintas, enviando comandos de controle "simultâneos" a um mesmo componente. Por exemplo: criar uma etiqueta, inicializada com o texto "0"; cada thread analisa o conteúdo da etiqueta, convertendo o texto em um inteiro correspondente, depois, soma 1 a este valor, e o converte para texto, fixando-o novamente como texto da etiqueta.
--
MeLga - 14 Sep 2004
to top