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.
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
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!
Tente o seguinte e vamos ver:
[code]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");
}[/code]
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:
[code]Constraint nomeConstraint = nome.getConstraint();
nome.setConstraint(null);
nome.setText(null);
nome.setConstraint(nomeConstraint);
[/code]
flws
insonix
Setembro 3, 2009, 5:58pm
#6
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
Outubro 23, 2009, 1:22am
#7
Não sei se vc já achou alguma solução, mas tentou “desviar” o foco() do component, pois é isso que dispara a mensagem.