Ok Greg, I'll do it as soon as possible and return the results.

Thank's

2010/12/22 Greg Brown <[email protected]>

> I don't see anything obviously lwrong. Can you step through the code (or
> add some debug output) to verify that the flag-setting code is actually
> being called when you expect it to be?
>
> On Dec 22, 2010, at 5:26 AM, Luiz Gustavo wrote:
>
> Hi Greg,
>
>
> These are the fragments involved:
>
>
> bxml
> ...
> <Form.Section>
>
>                             <TextInput Form.label="%lblDescricao"
> textSize="40" bxml:id="descricao"/>
>
>                             <BoxPane styles="{verticalAlignment:'center'}"
> Form.label="%lblValor">
>                                 <TextInput textSize="10" bxml:id="valor" />
>                                 <Checkbox buttonData="%lblConciliado"
> bxml:id="conciliado"
>
> ButtonPressListener.buttonPressed="conciliadoImg.setVisible(conciliado.isSelected());"/>
>                                 <ImageView bxml:id="conciliadoImg"
> image="@conciliado.png" visible="false"/>
>                             </BoxPane>
>
>                             <CalendarButton bxml:id="data"
> Form.label="%lblData"/>
>
>                             <BoxPane Form.label="%lblTipo"
> orientation="horizontal" styles="{padding:4}">
>
>                                 <bxml:define>
>                                     <ButtonGroup bxml:id="tipos"/>
>                                 </bxml:define>
>                                 <RadioButton bxml:id="despesaButton"
> buttonGroup="$tipos" selected="true">
>                                     <content:ButtonData icon="@despesa.png"
> text="%lblDespesa"/>
>                                 </RadioButton>
>                                 <RadioButton bxml:id="receitaButton"
> buttonGroup="$tipos">
>                                     <content:ButtonData icon="@receita.png"
> text="%lblReceita"/>
>                                 </RadioButton>
>
>                             </BoxPane>
>
>                             <ListButton bxml:id="categoria"
> Form.label="%lblCategoria" />
>
>                             <BoxPane Form.label="%lblObservacoes">
>                                 <Border styles="{color:10}">
>                                     <ScrollPane
> horizontalScrollBarPolicy="fill"
>
> verticalScrollBarPolicy="fill_to_capacity"
>                                         preferredHeight="200"
> preferredWidth="500">
>                                         <TextArea bxml:id="observacoes"/>
>                                     </ScrollPane>
>                                 </Border>
>                             </BoxPane>
>
>                         </Form.Section>
> ...
>
>
> Binding class:
>
> ...
>  Action.getNamedActions().put("salvarAction", new Action() {
>       @Override
>       public void perform(Component source) {
>         if (lancamento == null) {
>           salvarNovo();
>         }
>         else {
>           salvarEdicao();
>         }
>         atualizarGrid();
>       }
>     });
>
> ...
>
>
> private void salvarNovo() {
>
>     try {
>
>       Form.Flag flagDesc = null;
>       Form.Flag flagVal = null;
>       Form.Flag flagCat = null;
>
>       String desc = descricao.getText().trim();
>       String val = valor.getText().trim();
>
>       if(desc == null || "".equals(desc.trim())){
>         flagDesc = new Form.Flag(MessageType.ERROR,
> resources.get("campoRequerido").toString());
>       }
>       Form.setFlag(descricao, flagDesc);
>
>       if(val == null || "".equals(val.trim())){
>         flagVal = new Form.Flag(MessageType.ERROR,
> resources.get("campoRequerido").toString());
>       }
>       Form.setFlag(valor, flagVal);
>
>       if(categoria == null){
>         flagCat = new Form.Flag(MessageType.ERROR,
> resources.get("campoRequerido").toString());
>       }
>       Form.setFlag(categoria, flagCat);
>
>       if(flagDesc != null || flagVal != null || flagCat != null){
>         return;
>       }
>
>       lancamento = new Lancamento();
>       lancamento.setDescricao(desc);
>       lancamento.setConciliado(conciliado.isSelected());
>       lancamento.setData(data.getSelectedDate().toCalendar().getTime());
>       lancamento.setObservacao(observacoes.getText());
>       lancamento.setValor(new BigDecimal(numberFormat.parse(val)
>           .toString()));
>       lancamento.setTipoLancamento((CategoriaLancamento) categoria
>           .getSelectedItem());
>
>       daoLancamento.cadastrar(lancamento);
>       cancelar();
>       Prompt.prompt(MessageType.INFO, resources.get("sucessoCadastro")
>           .toString(), this);
>     }
>     catch (Exception e) {
>       Prompt.prompt(MessageType.ERROR, resources.get("falhaCadastro")
>           .toString(), this);
>     }
>
>   }
>
>   private void salvarEdicao() {
>
>     try {
>
>       Form.Flag flagDesc = null;
>       Form.Flag flagVal = null;
>       Form.Flag flagCat = null;
>
>       String desc = descricao.getText();
>       String val = valor.getText();
>
>       if(desc == null || "".equals(desc.trim())){
>         flagDesc = new Form.Flag(MessageType.ERROR,
> resources.get("campoRequerido").toString());
>       }
>       Form.setFlag(descricao, flagDesc);
>
>       if(val == null || "".equals(val.trim())){
>         flagVal = new Form.Flag(MessageType.ERROR,
> resources.get("campoRequerido").toString());
>       }
>       Form.setFlag(valor, flagVal);
>
>       if(categoria == null){
>         flagCat = new Form.Flag(MessageType.ERROR,
> resources.get("campoRequerido").toString());
>       }
>       Form.setFlag(categoria, flagCat);
>
>       if(flagDesc != null || flagVal != null || flagCat != null){
>         return;
>       }
>
>       lancamento.setDescricao(desc);
>       lancamento.setConciliado(conciliado.isSelected());
>       lancamento.setData(data.getSelectedDate().toCalendar().getTime());
>       lancamento.setObservacao(observacoes.getText());
>       lancamento.setValor(new BigDecimal(numberFormat.parse(val)
>           .toString()));
>       lancamento.setTipoLancamento((CategoriaLancamento) categoria
>           .getSelectedItem());
>
>       daoLancamento.alterar(lancamento);
>       cancelar();
>       Prompt.prompt(MessageType.INFO,
>           resources.get("sucessoEdicao").toString(), this);
>     }
>     catch (Exception e) {
>       Prompt.prompt(MessageType.ERROR,
> resources.get("falhaEdicao").toString(),
>           this);
>     }
>   }
>
>
> I can't see a reason for flags no work in this scenario. I have another
> frame that has just one field validated, and everything's right. Can you see
> something wrong?
>
>
> Thank's
>
> Luiz Gustavo S. de Souza
>
> http://luizgustavoss.wordpress.com
> http://luizgustavoss.blogspot.com
> http://twitter.com/lugustso
>
>
> 2010/12/22 Greg Brown <[email protected]>
>
>> No, flags definitely don't appear one at a time - you should be able to
>> flag all the fields in your form if you want to. The message won't appear
>> until you hover over the field, but it should be outlined, and you should
>> see the error icon.
>>
>> There must be some other issue - not sure what it might be.
>>
>>
>> On Dec 21, 2010, at 10:14 PM, Luiz Gustavo wrote:
>>
>> When the user enter some text in the field, it desapears, because flag is
>> set to null in the begining of the salvarEdicao method:
>>
>> *Form.Flag flagDesc = null;*
>>
>> ...
>>
>> if(desc == null || "".equals(desc.trim())){
>>         flagDesc = new Form.Flag(MessageType.ERROR,
>> resources.get("campoRequerido").toString());
>> }
>> *Form.setFlag(descricao, flagDesc);*
>>
>>
>> So in the case of desc != null, I clean the flag. The problem is that the
>> flag for the second field (Valor) never apears. Initially i thought that
>> flags apeared one per time (not all at the same time), but even when the
>> first field is ok, the flag of the second doesn't apear.
>>
>> Any idea?
>>
>>
>>
>> 2010/12/22 Greg Brown <[email protected]>
>>
>>> If you want the flag to disappear when the user enters some text, you
>>> could add a listener to the text input that clears the flag when the text
>>> changes.
>>>
>>> On Dec 21, 2010, at 10:02 PM, Luiz Gustavo wrote:
>>>
>>> Hi Greg,
>>>
>>> I'm calling salvarEdicao when the user submit de form. I whant to
>>> validate the requeired fields befor inserting.
>>> I'll se the classes you told me, but in my scenario is there anything I
>>> can do?
>>>
>>>
>>>
>>> 2010/12/22 Greg Brown <[email protected]>
>>>
>>>> When are you calling the salvarEdicao() method? If you want to validate
>>>> as the user types, you'll need to call this method whenever the field value
>>>> changes. For text, you may want to consider using a validator for this. See
>>>> the classes in org.apache.pivot.wtk.validation and 
>>>> TextInput#setValidator().
>>>>
>>>>
>>>> On Dec 21, 2010, at 9:37 PM, Luiz Gustavo wrote:
>>>>
>>>> Hi,
>>>>
>>>> I'm having problems using Form.flag.
>>>>
>>>>
>>>> I have a method for inserting data from a form, and a validation on the
>>>> begining:
>>>>
>>>>
>>>> private void salvarEdicao() {
>>>>
>>>>     try {
>>>>
>>>>      Form.Flag flagDesc = null;
>>>>       Form.Flag flagVal = null;
>>>>       Form.Flag flagCat = null;
>>>>
>>>>       String desc = descricao.getText();
>>>>       String val = valor.getText();
>>>>
>>>>       if(desc == null || "".equals(desc.trim())){
>>>>         flagDesc = new Form.Flag(MessageType.ERROR,
>>>> resources.get("campoRequerido").toString());
>>>>       }
>>>>       Form.setFlag(descricao, flagDesc);
>>>>
>>>>       if(val == null || "".equals(val.trim())){
>>>>         flagVal = new Form.Flag(MessageType.ERROR,
>>>> resources.get("campoRequerido").toString());
>>>>       }
>>>>       Form.setFlag(valor, flagVal);
>>>>
>>>>       if(categoria == null){
>>>>         flagCat = new Form.Flag(MessageType.ERROR,
>>>> resources.get("campoRequerido").toString());
>>>>       }
>>>>       Form.setFlag(categoria, flagCat);
>>>>
>>>>       if(flagDesc != null || flagVal != null || flagCat != null){
>>>>         return;
>>>>       }
>>>>
>>>>       ...
>>>> }
>>>>
>>>>
>>>> When I try to submit a form with desc and val (description and value)
>>>> empty, just one flag is presented. Even when I insert data in the
>>>> "Descrição" field, the flag in the field "Descrição" continues to apear. 
>>>> The
>>>> flag of field "Valor" doesn't apear in neigther cases.
>>>>
>>>>
>>>> Any idea?
>>>>
>>>> Cheers,
>>>> Luiz Gustavo S. de Souza
>>>>
>>>> http://luizgustavoss.wordpress.com
>>>> http://luizgustavoss.blogspot.com
>>>> http://twitter.com/lugustso
>>>> <frame1.png><frame2.png>
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Luiz Gustavo S. de Souza
>>>
>>> http://luizgustavoss.wordpress.com
>>> http://luizgustavoss.blogspot.com
>>> http://twitter.com/lugustso
>>>
>>>
>>>
>>
>>
>> --
>> Luiz Gustavo S. de Souza
>>
>> http://luizgustavoss.wordpress.com
>> http://luizgustavoss.blogspot.com
>> http://twitter.com/lugustso
>>
>>
>>
>
>
>
>
>


-- 
Luiz Gustavo S. de Souza

http://luizgustavoss.wordpress.com
http://luizgustavoss.blogspot.com
http://twitter.com/lugustso

Reply via email to