ZK Framework - desabilitar validação do form

6 respostas
insonix

Opa galera, boa tarde.

Estou utilizando o ZK Framework.
Preciso desabilitar a validação de constraint do formulário temporariamente, para eu poder limpar os campos, pois hoje na hora que seto null, o campo no formulário é validado e acaba não limpando.
Exemplo:

no .zul tenho a constraint…

no java faria algo do tipo…
// DESABILITA CONSTRAINTS
nome.setText(null);
// HABILITA CONSTRAINTS

Obrigado pela força.

6 Respostas

fantomas

Blz insonix!

Então… dependendo de como vc está fazendo deveria funcionar.

Você está fazendo tudo dentro do script da página ou você está utilizando o padrão MVC da maneira sugeria pela equipe do ZK?

flws

insonix

Opa, desculpa por não ter colocado estas informações.
Estou usando MVC.
Segue codigo completo…

userEdit.zul

<?page title="Usuário" contentType="text/html;charset=UTF-8"?>
<zk>
<window title="Usuário" border="normal" width="400px" id="usuarioEdit" apply="compras.usuario.action.UsuarioEditComposer" closable="true">
   	<button label="Novo" id="novo" style="width=70px"/>
   	<button label="Salvar" id="salvar" style="width=70px"/>
   	<button label="Excluir" id="excluir" style="width=70px"/>
   	<button label="Cancelar" id="cancelar" style="width=70px"/>
    <grid>
        <rows>
            <row>Nome: <textbox id="nome" constraint="no empty" maxlength="100" style="width=255px"/></row>
            <row>Email: <textbox id="email" constraint="no empty" maxlength="255" style="width=255px"/></row>
            <row>Login: <textbox id="login" constraint="no empty" maxlength="255"/></row>
            <row>Senha: <textbox id="senha" constraint="no empty" type="password" maxlength="20"/></row>
            <row>Confirma senha: <textbox id="confirmaSenha" constraint="no empty" type="password" maxlength="20"/></row>
            <row>Ativo: <checkbox id="ativo"/></row>
        </rows>
    </grid>
</window>
</zk>

UsuarioEditComposer.java

package compras.usuario.action;

public class UsuarioEditComposer extends GenericForwardComposer {

	private Window usuarioEdit;

	private Textbox login;

	private Textbox senha;

	private Textbox confirmaSenha;

	private Textbox nome;

	private Textbox email;

	private Checkbox ativo;

	...
	...
	...

	private void clearForm() {
		nome.setText(null);
		email.setText(null);
		login.setText(null);
		senha.setText(null);
		confirmaSenha.setText(null);
		ativo.setChecked(true);
	}
}

Obrigado!

insonix

Pessoal, boa tarde.

Alguma dica?

fantomas

Tente o seguinte e vamos ver:

private void clearForm() {
		nome.setConstraint(null);
		email.setConstraint(null);
		login.setConstraint(null);
		senha.setConstraint(null);
		confirmaSenha.setConstraint(null);

		nome.setText(null);
		email.setText(null);
		login.setText(null);
		senha.setText(null);
		confirmaSenha.setText(null);
		ativo.setChecked(true);

                nome.setConstraint("no empty");
		email.setConstraint("no empty");
		login.setConstraint("no empty");
		senha.setConstraint("no empty");
		confirmaSenha.setConstraint("no empty");
}

Lembrando que é possivel obter a constraint do objeto assim: nome.getConstraint(), isto talvez ajude a não ter que aplicar os sets de forma hard coded, ou seja, vc salva as constraints, aplica os nulls e depois volta as constraints.

Exemplo:

Constraint nomeConstraint = nome.getConstraint();

nome.setConstraint(null);
nome.setText(null);
nome.setConstraint(nomeConstraint);

flws

insonix

Opa.

Valeu pela ajuda.
Eu também imaginei isto… mas queria evitar, achei que tinha uma forma explicita pra desabilitar todas constraints, mas não achei nada nos forums e javadoc.

Abraço!

Nadja

Não sei se vc já achou alguma solução, mas tentou “desviar” o foco() do component, pois é isso que dispara a mensagem.

Criado 28 de agosto de 2009
Ultima resposta 23 de out. de 2009
Respostas 6
Participantes 3