Asynchronous (OpenLaszlo)

13 respostas
S

Ola pessoal, estou voltando ao forum, pois esse ano realmente eu começo, e termino minha monografia, OpenLazlo =)

Entaum estou aprendendo, mais é meio confuso, pois, tenho o seguinte

uma window, e um script PHP que lista as cidades cadastradas no banco

ja fiz isso aqui
<?xml version="1.0" encoding="UTF-8" ?>
<canvas width="1024" height="768">
	<silverstyle name="silvercolors" isdefault="true" />
	<splash /> 
	<attribute name="initURL" type="string" value="http://localhost/laszlo/buchala/" />
	<debug x="500" y="400" /> 
	<dataset name="ds" querytype="post" type="http"/> 

	<view id="mainview" align="center" bgcolor="#94B0E8" width="100%" height="100%"> 
	    <view x="0" y="2" width="500" height="20" bgcolor="#EFEFEF">
			<text x="10" y="2">Andradina</text> 
			<button x="160" y="2" width="50" height="17" text="Apagar" />
			<button x="220" y="2" width="50" height="17" text="Editar" />
			<button x="280" y="2" width="100" height="17" text="Adicionar Bairro" />
	    </view>

	    <view x="0" y="20" width="500" height="20" bgcolor="#FFFFFF">
			<text x="10" y="2">Castilho</text> 
			<button x="160" y="2" width="50" height="17" text="Apagar" />
			<button x="220" y="2" width="50" height="17" text="Editar" />
			<button x="280" y="2" width="100" height="17" text="Adicionar Bairro" />
	    </view>
	    
	    <view x="0" y="40" width="500" height="20" bgcolor="#EFEFEF">
			<text x="10" y="2">Murutinga do Sul</text> 
			<button x="160" y="2" width="50" height="17" text="Apagar" />
			<button x="220" y="2" width="50" height="17" text="Editar" />
			<button x="280" y="2" width="100" height="17" text="Adicionar Bairro" />
	    </view>
	    <scrollbar/>
	</view>
</canvas>

Primeiro, chamar a pagina no onClick ate da pra entender, mais como eu fazia um evento desses quando minha janela fosse contruida, carregada??

outra coisa, como pegar os valores retornados? pq preciso fazer isso
<view x="0" y="40" width="500" height="20" bgcolor="#EFEFEF">
			<text x="10" y="2">Cidade</text> 
			<button x="160" y="2" width="50" height="17" text="Apagar" />
			<button x="220" y="2" width="50" height="17" text="Editar" />
			<button x="280" y="2" width="100" height="17" text="Adicionar Bairro" />
	    </view>

para cada cidade, tipo uma tabela, com alguns botoes na frente.

Valeu! =)

13 Respostas

S

Bom, to indo por partes:

consegui fazer isso
<?xml version="1.0" encoding="UTF-8" ?>
<canvas width="1024" height="768">
	<silverstyle name="silvercolors" isdefault="true" />
	<splash /> 

	<dataset name="dset">
		<cidades>
		   <employee>
		      <codigo>13</codigo>
		      <nome>Andradina</nome>
		   </employee>
		   <employee>
		      <codigo>14</codigo>
		      <nome>Adamantina</nome>
		   </employee>
		   <employee>
		      <codigo>20</codigo>
		      <nome>Lucélia</nome>
		   </employee>
		</cidades>
	</dataset>

	<simplelayout axis="y"/>

	<view datapath="dset:/cidades/employee">
    	<simplelayout axis="x"/>
    	<text datapath="codigo/text()"/>
    	<text datapath="nome/text()"/>
	</view>
</canvas>

Aqui funciona que eh uma beleza, e entendi como funciona tb
entaum fiz meu script listar a saida nesse formato =)

<?php
	if(file_exists("adodb/adodb.inc.php")) {
		require_once("adodb/adodb.inc.php");
	} else {
		die("Não foi possivel encontrar a classe de manipulação dos dados");
	}

	$adoDB = ADONewConnection("mysql");
	$adoDB->Connect("localhost", "root", "", "buchala");
	
	$cidades = $adoDB->Execute("select * from cidades");
	echo "<cidades>\n";
	while($cidade = $cidades->FetchRow()) {
		echo "   <employee>\n";
			echo "      <codigo>" . $cidade["cod_cidade"] . "</codigo>\n";
			echo "      <nome>" . $cidade["nome"] . "</nome>\n";
		echo "   </employee>\n";
	}
	echo "</cidades>";
?>

ele me retorna isso

<cidades>
   <employee>
      <codigo>13</codigo>
      <nome>Andradina</nome>
   </employee>
   <employee>
      <codigo>14</codigo>
      <nome>Adamantina</nome>

   </employee>
   <employee>
      <codigo>20</codigo>
      <nome>Lucélia</nome>
   </employee>
</cidades>

assim mudei o dataset, ficando assim

<?xml version="1.0" encoding="UTF-8" ?>
<canvas width="1024" height="768">
	<silverstyle name="silvercolors" isdefault="true" />
	<splash /> 

	<dataset name="dset" src="http://localhost/laszlo/buchala/teste.php" />

	<simplelayout axis="y"/>

	<view datapath="dset:/cidades/employee">
    	<simplelayout axis="x"/>
    	<text datapath="codigo/text()"/>
    	<text datapath="nome/text()"/>
	</view>
</canvas>

Mas assim não funcionou :( onde errei??

E

opa blz?

bom tua estrutura está funcionando…

<canvas>
    <dataset name="dset">
<cidades>
   <employee>
      <codigo>13</codigo>
      <nome>Andradina</nome>
   </employee>
   <employee>
      <codigo>14</codigo>
      <nome>Adamantina</nome>
   </employee>
   <employee>
      <codigo>20</codigo>
      <nome>Lucélia</nome>
   </employee>
</cidades>
    </dataset>

   <simplelayout axis="y"/>

   <view datapath="dset:/cidades/employee">
       <simplelayout axis="x"/>
       <text datapath="codigo/text()"/>
       <text datapath="nome/text()"/>
   </view> 

</canvas>

o problema no que você fez que não está funcionando é o seguinte,
no código do seu dataset

<dataset name="dset" src="http://localhost/laszlo/buchala/teste.php" />

por padrão ele não realiza a requisição HTTP ao endereço que
está informado, o que faltou foi setar um atributo para que
o dataset faça a requisição automaticamente

defina o atributo request=“true” no seu dataset para que o mesmo
faça a requisição inicialmente :arrow: ver documentação

:wink:

ps.: qual o tema da sua monografia sobre OpenLaszlo?
a minha monografia tambem foi sobre o OpenLaszlo e está
disponível aqui no PJ [link]

S

Se tudo ocorrer bem, o titulo será “Se AJAX é 2.0, OpenLaszlo é 3.0?”
O tema será a linguagem em sim, uma revisão bibliografica, e uma boa implementação.
Quero mostrar os pontos fraco, e principalmente os fortes :wink: acho que é isso

Bom, eu resolvi o problema anterior, rodando com o toncat, eu estava rodando o swf. Com o mesmo codigo, ele funcionou.

Bom, mais ainda não é isso que eu quero.

quero poder fazer algo assim:

<view bgcolor="#CECECE">cidade</view>
<view bgcolor="#FEFEFE">cidade</view>
<view bgcolor="#CECECE">cidade</view>
<view bgcolor="#FEFEFE">cidade</view>

algo assim, quero listar cada cidade de uma cor, ja tentei colocar isso na saida do php, mais tb naum funcionou. Tem como fazer isso?

S

Erko: Muito boa sua monografia, meu deu bastante idéia do que fazer e como fazer. Gostei de mas do modo que foi estruturada, os assuntos em uma ordem que se entende claramente o que é o que. Ótima, vou usar de base pra fazer a minha. Gostei das referencias tb, ja sei onde vou achar bastante coisa =)

bom, muito obrigado por ter me informado do seu TCC, me ajudou muito

E

bom tem como fazer isso mas vai precisar fazer a alteração
da cor da view via scripting…

de uma olhada na documentação :wink:

G

Olá meninos :slight_smile:
Tenho uma dúvida:

e se ao invés de mostrar na tela… eu quisesse colocar estes mesmos dados dentro de um combo???

Obrigada :grin:

E

opa blz?

de uma olhada nesse link:combobox do guia de referência
ali tem um exemplo de como fazer para carregar os itens
do combobox de dados em um dataset :wink:

[]'s

G

Oi Erko :oops:
Vou te pentelhar um pouco mais :stuck_out_tongue:

Seguinte: estou tentando carregar o meu combo com um xml gerado por uma página php… para ficar mais claro:

PHP

if(!$conexao->execQuery(select * from instituicao))

{

echo "<br>Erro 1: ".$conexao->getErro();

//        exit;

}

echo “<cidades>\n”;

while($reg = $conexao->move_proximo())

{

echo <employee>\n”;

echo <codigo>”.$reg[“cod_empresa”]."</codigo>\n";

echo <nome>”.$reg[“desc_instituicao”]."</nome>\n";

echo </employee>\n”;

}

$conexao->fechaExecQueryProc();

echo “</cidades>”;

Essa página retorna:

<cidades>
<employee>
<codigo>13</codigo>
<nome>Irmão Clemente</nome>
</employee>
<employee>
<codigo>12</codigo>
<nome>SIEMENS</nome>
</employee>
<employee>
<codigo>5</codigo>
<nome>Hospital de Caridade</nome>
</employee>
<employee>
<codigo>1</codigo>
<nome>Pontifícia Universidade Católica do Paraná</nome>
</employee>
</cidades>

E ESTOU CHAMANDO NO MEU COMBO ASSIM:
PS: o dataset está funcionando, pois se eu mando escrever na tela os dados… eles aparecem… o problema é setar estes dados no combo :S

<dataset name=“dset” request=“true” src=“http://giotto/pessoal/geisa/arquivo.php” />

<simplelayout axis=“y”/>

<view datapath=“dset:/cidades/employee”>
<combobox x=“5” y=“5”
width=“130”
shownitems=“3”
defaulttext=“choose one…” >
<textlistitem datapath=“cidades:/employee” text="$path{‘text()’}"
value="$path{’@value’}"/>
</combobox> </view>

Vc tem idéia do que eu possa estar fazendo errado???
Valeu :oops:

E

algo muito simples....

você quando olhou o link que coloquei no post anterior
observeu o segundo exemplo de código?

&lt;canvas width=&quot;200&quot; height=&quot;130&quot;&gt;
  &lt;dataset name=&quot;items&quot;&gt;
    &lt;item value=&quot;item1&quot;&gt;item one&lt;/item&gt;
    &lt;item value=&quot;item2&quot;&gt;item two&lt;/item&gt;
    &lt;item value=&quot;item3&quot;&gt;item three&lt;/item&gt;
    &lt;item value=&quot;item4&quot;&gt;item four&lt;/item&gt;
  &lt;/dataset&gt;

  &lt;combobox x=&quot;5&quot; y=&quot;5&quot;
            width=&quot;130&quot;  
            shownitems=&quot;3&quot;
            defaulttext=&quot;choose one...&quot;  &gt;
    &lt;textlistitem datapath=&quot;items&#58;/item&quot; text=&quot;$path&#123;'text&#40;&#41;'&#125;&quot;
                  value=&quot;$path&#123;'@value'&#125;&quot;/&gt;
  &lt;/combobox&gt;
&lt;/canvas&gt;

o formato que está ali descrito significa:

:arrow: text() - recupera o texto interno da tag
:arrow: @value - recupera o atributo value da tag

no seu caso ficaria de forma diferente a tag textlistitem

&lt;textlistitem datapath=&quot;cidades&#58;/employee&quot; text=&quot;$path&#123;'nome/text&#40;&#41;'&#125;&quot;                   value=&quot;$path&#123;'codigo/text&#40;&#41;'&#125;&quot;/&gt;

:wink:

G

Simples mesmo… e DEU CERTO!!!
Vc n imagina o quanto a sua monografia tem me ajudado!!!

Conterrâneo gente fina :grin:

Valeu Erko!!!

G

Olá!!! Agora estou tentando jogar o valor de um datapath para dentro de um edittext, já olhei o Laszlo Reference… o guia do desenvolvedor e nada :S Alguem já fez isso???
Valeu galera!!! :lol:

E

opa blz…

é só você setar o atributo datapath na tag
do edittext :wink:

observação: o atributo datapath é uma implementação
da tag(classe) node e essa é equivalente ao
java.lang.Object, ou seja, tudo no OpenLaszlo parte
dessa classe( especializações | herda ) :wink:

[]'s

G

:grin: tks

Criado 24 de janeiro de 2007
Ultima resposta 1 de fev. de 2007
Respostas 13
Participantes 3