Pessoal, estou tentando chamar uma view, quero que ela fique visible=“false”, mas quando clicar em lancamentos, ela aparece e apague as outras que estiverem visible=“true”…
[code]<?xml version="1.0" encoding="UTF-8" ?>
<canvas>
<!-- BARRA DE MENUS -->
<!-- BARRA DE MENUS -->
<!-- BARRA DE MENUS -->
<windowpanel width="1020" height="580" align="center" valign="bottom">
<menubar name="mbar" align="right">
<menu name="mcad" id="MenuCad">Cadastros
<menuitem text="Cadastros/>
</menu>
<menu name="mlan" id="MenuLan">Lançamentos
<menuitem text="Lançamentos" onselect=" CHAMA A VIEW(MAS COMO) "/>
</menu>
<menu name="mrel" id="MenuRel"> Relatórios
<menuitem text="Relatórios"/>
</menu>
<menu name="majuda" id="MenuAjuda"> Ajuda
<menuitem text="Sobre">
</menuitem>
</menu>
</menubar>
<!-- QUERO QUE CHAME ESSA VIEW AKI -->
<view layout="spacing:6" name="lancamento" height="580" width="990"
align="center" valign="bottom" y="55">
<text height="80"></text>
<text> Nome: </text>
<edittext height="18" width="20"></edittext>
<text> Prefixo: </text>
<edittext height="18" width="30"></edittext>
<simplelayout axis="y" />
<text x="10" multiline="true" width="200">
</text>
<!-- ABAS NA TELA DE LANÇAMENTOS -->
<!-- ABAS NA TELA DE LANÇAMENTOS -->
<!-- ABA "LANÇAMENTO" -->
<tabs height="430" tabclass="tab">
<tabpane text="Lançamento">
<text>Prefixo: </text>
<edittext x="105" height="18" width="105"></edittext>
<text y="25">Data: </text>
<edittext x="105" y="25" height="18" width="105"></edittext>
<text y="52">Hora Trabalhada: </text>
<edittext x="105" y="52" height="18" width="105"></edittext>
<text y="79">Combustível: </text>
<edittext x="105" y="79" height="18" width="105"></edittext>
<text y="106">Óleo Motor: </text>
<edittext x="105" y="106" height="18" width="105"></edittext>
<text y="133">Óleo Trasmissor: </text>
<edittext x="105" y="133" height="18" width="105"></edittext>
<text y="160">Óleo Hidráulico: </text>
<edittext y="160" x="105" height="18" width="105"></edittext>
<text x="250" y="25">Eixo Traseiro: </text>
<edittext x="359" y="25" height="18" width="105"></edittext>
<text y="52" x="250">Eixo Dianteiro: </text>
<edittext x="359" y="52" height="18" width="105"></edittext>
<text y="79" x="250">Comando Final D: </text>
<edittext x="359" y="79" height="18" width="105"></edittext>
<text y="106" x="250">Comando Final E: </text>
<edittext x="359" y="106" height="18" width="105"></edittext>
<text y="133" x="250">Caixa Redutora: </text>
<edittext x="359" y="133" height="18" width="105"></edittext>
<text y="160" x="250">Graxa: </text>
<edittext x="359" y="160" height="18" width="105"></edittext>
</tabpane>
<!-- ABA LUBRIFICAÇÃO -->
<tabpane text="Lubrificação">
<text>Lubrificação</text>
</tabpane>
<!-- ABA CONFIRMA LUBRIFICAÇÃO -->
<tabpane text="Confirma Lubrificação">
<text>Confirma Lubrificação</text>
</tabpane>
<!-- ABA MANUTENÇÃO -->
<tabpane text="Manutenção">
<text>Manutenção</text>
</tabpane>
<!-- ABA CONFIRMA MANUTENÇÃO -->
<tabpane text="Confirma Manutenção">
<text>Lubrificação</text>
</tabpane>
<!-- ABA MAQUINA PARADA-->
<tabpane text="Maquina Parada">
<text> Maquina Parada </text>
</tabpane>
</tabs>
</view>
</windowpanel>
</canvas>
[/code]
se puderem ajudar…agradeço.
Só esqueci de colocar uma coisinha…
na view estara visible=“false”
ErkoPJ
Agosto 7, 2006, 5:00pm
#3
cara para esses casos o melhor é fazer um método
de gerenciamento da visibilidade da suas views
onde nesse controle o que exibe e o que esconde…
[]´s
Se nao for abusar muito…
poderia me mostrar como devo fazer um metodo e como chama-lo.
Pois nao estou conseguindo…
ErkoPJ
Agosto 7, 2006, 5:41pm
#5
mas é nesse seu codigo ae que você quer gerenciar isso?
estou vendo que é um painel de abas… :roll:
Sim… eh um painel de abas…
Mas vou tira-las
Vou colocar mais subitens no proprio menu e tirar as abas…
eh que em primeiro conceito iria usar abas…
mas desisti
vou fazer um windowpanel com o menu em cima e as janelas que forem abertas serao todas na propria windowpanel.
Para ficar um pouco mais facil.
[code]<?xml version="1.0" encoding="UTF-8" ?>
<canvas>
<!-- BARRA DE MENUS -->
<!-- BARRA DE MENUS -->
<!-- BARRA DE MENUS -->
<windowpanel width="1020" height="580" align="center" valign="bottom">
<menubar name="mbar" align="right">
<menu name="mcad" id="MenuCad">Cadastros
<menuitem text="Cadastros"/>
</menu>
<menu name="mlan" id="MenuLan">Lançamentos
<menuitem text="Lançamentos" onselect="testedemetodo()"/>
</menu>
<menu name="mrel" id="MenuRel"> Relatórios
<menuitem text="Relatórios"/>
</menu>
<menu name="majuda" id="MenuAjuda"> Ajuda
<menuitem text="Sobre">
</menuitem>
</menu>
</menubar>
<view layout="spacing:6" name="lancamento" height="580" width="990"
align="center" valign="bottom" y="55" visible="false">
<text height="80"></text>
<text> Nome: </text>
<edittext height="18" width="120"></edittext>
<text> Prefixo: </text>
<edittext height="18" width="130"></edittext>
<simplelayout axis="y" />
<text x="10" multiline="true" width="200">
</text>
</view>
</windowpanel>
</canvas>
[/code]
Como devo proceder para chamar um metodo?
ErkoPJ
Agosto 8, 2006, 9:51am
#8
demorei mas não esqueci segue um modelo de gerenciamento de views
conforme comentei
<!--
@author: Erko Bridee de Almeida Cabrera
@description: modelo de gerenciamento de views
@date: 08/08/2006
-->
<!-- @BEGIN: canvas -->
<canvas
title="teste views"
width="100%" height="100%"
bgcolor="gray">
<!--
@BEGIN: definindo classe que irá alocar os componentes visuais do
de uma view relacionado a um item do menu
-->
<class
name="contentView" extends="view"
y="30"
width="${parent.width - 5}"
height="${parent.height - 40}"
align="center"
clip="true"
visible="false"/>
<!--
@END: definindo classe que irá alocar os componentes visuais do
de uma view relacionado a um item do menu
-->
<!-- @BEGIN: area -->
<view
name="area"
width="${ canvas.width - 25 }" height="${ canvas.height - 25 }"
align="center" valign="middle"
clip="true"
bgcolor="white" >
<!-- @BEGIN: definição do menu bar -->
<menubar name="mbar" align="right">
<menu name="mcad" id="MenuCad">Cadastros
<menuitem
text="Funcionário"
onselect="canvas.area.showView('vCadastrosFuncionario')"/>
<menuitem
text="Produto"
onselect="canvas.area.showView('vCadastrosProduto')"/>
</menu>
<menu name="mlan" id="MenuLan">Lançamentos
<menuitem
text="Estoque"
onselect="canvas.area.showView('vLancamentosEstoque')"/>
<menuitem
text="Caixa"
onselect="canvas.area.showView('vLancamentosCaixa')"/>
</menu>
<menu name="mrel" id="MenuRel"> Relatórios
<menuitem
text="Estoque"
onselect="canvas.area.showView('vRelatoriosEstoque')"/>
<menuitem
text="Salários"
onselect="canvas.area.showView('vRelatoriosSalarios')"/>
</menu>
<menu name="majuda" id="MenuAjuda"> Ajuda
<menuitem
text="Sobre"
onselect="canvas.area.showView('vAjudaSobre')"/>
</menu>
</menubar>
<!-- @END: definição do menu bar -->
<!-- @BEGIN: definição das views dos conteúdos relacionados no menu -->
<contentView
name="vCadastrosFuncionario"
bgcolor="#999D9D">
<text
name="texto"
text="Cadastro - Funcionário"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vCadastrosProduto"
bgcolor="#999D9D">
<text
name="texto"
text="Cadastro - Produto"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vLancamentosEstoque"
bgcolor="#404744">
<text
name="texto"
text="Lançamentos - Estoque"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vLancamentosCaixa"
bgcolor="#404744">
<text
name="texto"
text="Lançamentos - Caixa"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vRelatoriosEstoque"
bgcolor="#404047">
<text
name="texto"
text="Relatórios - Estoque"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vRelatoriosSalarios"
bgcolor="#404047">
<text
name="texto"
text="Relatórios - Salários"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vAjudaSobre"
bgcolor="#9D9999">
<text
name="texto"
text="Ajuda - Sobre"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<!-- @END: definição das views dos conteúdos relacionados no menu -->
<!-- @BEGIN: métodos da view area -->
<method name="showView" args="vName">
<![CDATA[
// verificando se é nulo
if( vName == null ) return;
// recuperando o array de subviews da view 'area'
var sViews = this.subviews;
// percorrendo o array
for( var i = 0; i < sViews.length; i++ ) {
// verificando se o view atual é instancia da classe criada
if( sViews[i] instanceof contentView ) {
// verificando se a view atual é a que deve ser ativada
if( sViews[i].name == vName ) {
sViews[i].setVisible( true );
// caso não seja seta para visible = false
} else {
sViews[i].setVisible( false );
}
}
}
]]>
</method>
<!-- @END: métodos da view area -->
</view>
<!-- @END: area -->
</canvas>
<!-- @END: canvas -->
ps.: código testado e funcionando
qualquer duvida só falar
[]´s
Ok… rodou aqui tudo certo…
eu tinha conseguido isso aqui tbem mas sem metodos…
eu estava fazendo um pouco mais complicado…
utilizando "onselect=“cadastro.setVisible(true);lancamento.setVisible(false)” e assim por diante.
Mas o que estou querendo fazer é o seguinte.
Nesse seu codigo ai faça uma pequena modificação.
Mude na onde esta escrito só mudar a palavra view por windowpanel. e no fechamento tbem.
<view
<view
name="area"
width="${ canvas.width - 25 }" height="${ canvas.height - 25 }"
align="center" valign="middle"
clip="true"
bgcolor="white" >
por
<windowpanel
name="area"
width="${ canvas.width - 25 }" height="${ canvas.height - 25 }"
align="center" valign="middle"
clip="true"
bgcolor="white" >
E gostaria que essas views que abrem os textos , abrem eles na propria janela.
Obrigado mais uma vez
ErkoPJ
Agosto 8, 2006, 11:04am
#10
… não entendi o que tu quer… :roll:
quando ao funcionamento…
se você mudar a tag que usei view ( name: area )
para a tag: windowpanel vai funcionar igual
ou você não testou? :roll:
ps.: não gosto muito da tag windowpanel por isso não usei…
[]´s
<!--
@author: Erko Bridee de Almeida Cabrera
@description: modelo de gerenciamento de views
@date: 08/08/2006
-->
<!-- @BEGIN: canvas -->
<canvas
title="teste views"
width="100%" height="100%"
bgcolor="gray">
<!--
@BEGIN: definindo classe que irá alocar os componentes visuais do
de uma view relacionado a um item do menu
-->
<class
name="contentView" extends="view"
y="30"
width="${parent.width - 5}"
height="${parent.height - 40}"
align="center"
clip="true"
visible="false"/>
<!--
@END: definindo classe que irá alocar os componentes visuais do
de uma view relacionado a um item do menu
-->
<!-- @BEGIN: area -->
<windowpanel
name="area"
width="${ canvas.width - 25 }" height="${ canvas.height - 25 }"
align="center" valign="middle"
clip="true"
bgcolor="white" >
<!-- @BEGIN: definição do menu bar -->
<menubar name="mbar" align="right">
<menu name="mcad" id="MenuCad">Cadastros
<menuitem
text="Funcionário"
onselect="canvas.area.showView('vCadastrosFuncionario')"/>
<menuitem
text="Produto"
onselect="canvas.area.showView('vCadastrosProduto')"/>
</menu>
<menu name="mlan" id="MenuLan">Lançamentos
<menuitem
text="Estoque"
onselect="canvas.area.showView('vLancamentosEstoque')"/>
<menuitem
text="Caixa"
onselect="canvas.area.showView('vLancamentosCaixa')"/>
</menu>
<menu name="mrel" id="MenuRel"> Relatórios
<menuitem
text="Estoque"
onselect="canvas.area.showView('vRelatoriosEstoque')"/>
<menuitem
text="Salários"
onselect="canvas.area.showView('vRelatoriosSalarios')"/>
</menu>
<menu name="majuda" id="MenuAjuda"> Ajuda
<menuitem
text="Sobre"
onselect="canvas.area.showView('vAjudaSobre')"/>
</menu>
</menubar>
<!-- @END: definição do menu bar -->
<!-- @BEGIN: definição das views dos conteúdos relacionados no menu -->
<contentView
name="vCadastrosFuncionario"
bgcolor="#999D9D">
<text
name="texto"
text="Cadastro - Funcionário"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vCadastrosProduto"
bgcolor="#999D9D">
<text
name="texto"
text="Cadastro - Produto"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vLancamentosEstoque"
bgcolor="#404744">
<text
name="texto"
text="Lançamentos - Estoque"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vLancamentosCaixa"
bgcolor="#404744">
<text
name="texto"
text="Lançamentos - Caixa"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vRelatoriosEstoque"
bgcolor="#404047">
<text
name="texto"
text="Relatórios - Estoque"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vRelatoriosSalarios"
bgcolor="#404047">
<text
name="texto"
text="Relatórios - Salários"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vAjudaSobre"
bgcolor="#9D9999">
<text
name="texto"
text="Ajuda - Sobre"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<!-- @END: definição das views dos conteúdos relacionados no menu -->
<!-- @BEGIN: métodos da view area -->
<method name="showView" args="vName">
<![CDATA[
// verificando se é nulo
if( vName == null ) return;
// recuperando o array de subviews da view 'area'
var sViews = this.subviews;
// percorrendo o array
for( var i = 0; i < sViews.length; i++ ) {
// verificando se o view atual é instancia da classe criada
if( sViews[i] instanceof contentView ) {
// verificando se a view atual é a que deve ser ativada
if( sViews[i].name == vName ) {
sViews[i].setVisible( true );
// caso não seja seta para visible = false
} else {
sViews[i].setVisible( false );
}
}
}
]]>
</method>
<!-- @END: métodos da view area -->
</windowpanel>
<!-- @END: area -->
</canvas>
<!-- @END: canvas -->
A unica coisa que mudei foi de view para windowpanel
testei e nao funcionou.
Ah… eu tbem nao gostei de usar o windowpanel nao… mas <editado> melhor apagar … hehe
ErkoPJ
Agosto 8, 2006, 11:15am
#13
cara me desculpa…
a estrutura do objeto windowpanel é diferente da view
as tags aninhadas são alocadas dentro do objeto content :roll:
segue o codigo corrigido:
<!--
@author: Erko Bridee de Almeida Cabrera
@description: modelo de gerenciamento de views
@date: 08/08/2006
-->
<!-- @BEGIN: canvas -->
<canvas
title="teste views"
width="100%" height="100%"
bgcolor="gray">
<!--
@BEGIN: definindo classe que irá alocar os componentes visuais do
de uma view relacionado a um item do menu
-->
<class
name="contentView" extends="view"
y="30"
width="${parent.width - 5}"
height="${parent.height - 40}"
align="center"
clip="true"
visible="false"/>
<!--
@END: definindo classe que irá alocar os componentes visuais do
de uma view relacionado a um item do menu
-->
<!-- @BEGIN: area -->
<windowpanel
name="area"
width="${ canvas.width - 25 }" height="${ canvas.height - 25 }"
align="center" valign="middle"
clip="true"
bgcolor="white" >
<!-- @BEGIN: definição do menu bar -->
<menubar name="mbar" align="right">
<menu name="mcad" id="MenuCad">Cadastros
<menuitem
text="Funcionário"
onselect="canvas.area.showView('vCadastrosFuncionario')"/>
<menuitem
text="Produto"
onselect="canvas.area.showView('vCadastrosProduto')"/>
</menu>
<menu name="mlan" id="MenuLan">Lançamentos
<menuitem
text="Estoque"
onselect="canvas.area.showView('vLancamentosEstoque')"/>
<menuitem
text="Caixa"
onselect="canvas.area.showView('vLancamentosCaixa')"/>
</menu>
<menu name="mrel" id="MenuRel"> Relatórios
<menuitem
text="Estoque"
onselect="canvas.area.showView('vRelatoriosEstoque')"/>
<menuitem
text="Salários"
onselect="canvas.area.showView('vRelatoriosSalarios')"/>
</menu>
<menu name="majuda" id="MenuAjuda"> Ajuda
<menuitem
text="Sobre"
onselect="canvas.area.showView('vAjudaSobre')"/>
</menu>
</menubar>
<!-- @END: definição do menu bar -->
<!-- @BEGIN: definição das views dos conteúdos relacionados no menu -->
<contentView
name="vCadastrosFuncionario"
bgcolor="#999D9D">
<text
name="texto"
text="Cadastro - Funcionário"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vCadastrosProduto"
bgcolor="#999D9D">
<text
name="texto"
text="Cadastro - Produto"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vLancamentosEstoque"
bgcolor="#404744">
<text
name="texto"
text="Lançamentos - Estoque"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vLancamentosCaixa"
bgcolor="#404744">
<text
name="texto"
text="Lançamentos - Caixa"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vRelatoriosEstoque"
bgcolor="#404047">
<text
name="texto"
text="Relatórios - Estoque"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vRelatoriosSalarios"
bgcolor="#404047">
<text
name="texto"
text="Relatórios - Salários"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<contentView
name="vAjudaSobre"
bgcolor="#9D9999">
<text
name="texto"
text="Ajuda - Sobre"
fgcolor="white"
valign="middle" align="center"/>
</contentView>
<!-- @END: definição das views dos conteúdos relacionados no menu -->
<!-- @BEGIN: métodos da view area -->
<method name="showView" args="vName">
<![CDATA[
// verificando se é nulo
if( vName == null ) return;
// recuperando o array de subviews da view 'area'
var sViews = this.content.subviews;
// percorrendo o array
for( var i = 0; i < sViews.length; i++ ) {
// verificando se o view atual é instancia da classe criada
if( sViews[i] instanceof contentView ) {
// verificando se a view atual é a que deve ser ativada
if( sViews[i].name == vName ) {
sViews[i].setVisible( true );
// caso não seja seta para visible = false
} else {
sViews[i].setVisible( false );
}
}
}
]]>
</method>
<!-- @END: métodos da view area -->
</windowpanel >
<!-- @END: area -->
</canvas>
<!-- @END: canvas -->
faltava alterar uma parte do script
// recuperando o array de subviews da view 'area'
var sViews = this.subviews;
para
// recuperando o array de subviews da view 'area'
var sViews = this.content.subviews;
agora sim está certo
[]´s
Era isso mesmo…
Mais uma vez…
Muitissimo Obrigado.
Erko,
Muito obrigado pelo codigo. Tambem estava precisando deste codigo.
Mas, gostaria de saber como fazer, para por exemplo. seu tiver duas aplicacoes Cliente.lzx e Produto.lzx.
Cada um dos arquivos tem o <canvas>
Como faco para chamar estas aplicacoes a partir do menu que voce ccriou ?
Grato,
Helder
ErkoPJ
Agosto 10, 2006, 11:04pm
#17
trabalhe com Frames no HTML
onde em um frame vc mantenha o seu menu
e no outro vc chame o outro LZX
:roll:
mesmo principio usado no Laszlo-Explorer…
[]'s