What happens if you use showDialog() also in the other dialogs instead of 
show()?

Il giorno giovedì 21 gennaio 2021 alle 23:39:19 UTC+1 [email protected] ha 
scritto:

> Hi,
>
> From a Form I call a method that launches the Dialog component. The launch 
> code is this:
>
>  
>
> mbNombre.addActionListener((e) -> {
>
>             if (seleccion) {
>
>                 Command ok = new Command("ok");
>
>                 Visita v = new Visita();
>
>                 v.visitaId.set(null);
>
>                 v.clienteId.set(clt.clienteId.get());
>
>                 v.latitud.set(clt.latitud.get());
>
>                 v.longitud.set(clt.longitud.get());
>
>                 *Dialog d = creaVisita(v, clt.nombre.get(), ok);*
>
>                 if (d.showDialog() == ok) {
>
>                     procesaRegistro(v, VISITA);
>
>                     formaVisita.creaItemVisitas(v);
>
>                     muestraVisitas(formaVisita.getContenedorVisitas());
>
>                 }
>
>                 fRetorno.showBack();
>
>             }
>
>         });
>
>  
>
> The method displays the Dialog compent with all the components that you 
> add to it without problems. Pressing the btAceptar button performs 2 
> validations and displays the error messages in each case. The problem is 
> that it automatically executes the "dispose" and returns control to the 
> small code where it was launched (as if it were pressing the "ok" 
> component).
>
>  
>
>     private Dialog creaVisita(Visita v, String nombre, Command ok) {
>
>  
>
>         Dialog dlVisita = new Dialog(new BorderLayout());
>
>         Label lbTitulo = new Label(nombre, "MultiLine1");
>
>         lbTitulo.getAllStyles().setAlignment(Component.CENTER);
>
>         dlVisita.setTitleComponent(lbTitulo);
>
>         dlVisita.setDialogUIID("Form");
>
>  
>
>         Label lbDescripcion = new Label(idioma.getDescripcion() + ":");
>
>         TextArea txDescripcion = new TextArea();
>
>         txDescripcion.setFocus(true);
>
>         Container cnDescripcion = new Container(new 
> BoxLayout(BoxLayout.Y_AXIS)).add(lbDescripcion).add(txDescripcion);
>
>  
>
>         Tarea t = new Tarea();
>
>         ArrayList aTarea = consultaTablas(t, TAREA);
>
>         if (aTarea.isEmpty()) {
>
>             Dialog.show(idioma.getError(), "Inexplicable: No existen 
> tareas creadas", idioma.getContinuar(), null);
>
>             dlVisita.dispose();
>
>         }
>
>  
>
>         Label lbTarea = new Label(idioma.getMensaje12() + ":");
>
>         RadioButton[] rb = new RadioButton[aTarea.size() + 1];
>
>  
>
>         Container cnTarea = new Container(new BoxLayout(BoxLayout.Y_AXIS));
>
>         cnTarea.setScrollableY(true);
>
>         for (int i = 0; i < aTarea.size(); i++) {
>
>             t = (Tarea) aTarea.get(i);
>
>             rb[i] = new RadioButton(t.descripcion.get());
>
>             rb[i].getAllStyles().setAlignment(Component.LEFT);
>
> //            rb[i].setUIID("Label");
>
>             cnTarea.add(rb[i]);
>
>         }
>
>  
>
>         Container cnTareas = new Container(new 
> BoxLayout(BoxLayout.Y_AXIS)).add(lbTarea).add(cnTarea);
>
>  
>
>         Container cnItem = new Container(new BorderLayout());
>
>         cnItem.add(BorderLayout.NORTH, cnDescripcion);
>
>         cnItem.add(BorderLayout.CENTER, cnTareas);;
>
>  
>
>         Style sItem = cnItem.getUnselectedStyle();
>
>         sItem.setBgTransparency(255);
>
>         sItem.setBgColor(0xeeeeee);
>
>         sItem.setMarginUnit(Style.UNIT_TYPE_DIPS);
>
>         sItem.setPaddingUnit(Style.UNIT_TYPE_DIPS);
>
>         sItem.setMargin(1, 0, 1, 1);
>
>         sItem.setPadding(2, 1, 2, 2);
>
>  
>
>         Button btCancelar = new Button(idioma.getCancelar(), 
> "MensajeRojo");
>
>         btCancelar.addActionListener((e) -> {
>
>             dlVisita.dispose();
>
>         });
>
>  
>
>         Button btAceptar = new Button(ok);
>
>         btAceptar.setText(idioma.getAceptar());
>
>         btAceptar.setUIID("MensajeVerde");
>
>         btAceptar.addActionListener((e) -> {
>
>             if (txDescripcion.getText().isEmpty()) {
>
>                 Dialog.show(idioma.getError(), idioma.getDescripcion() + " 
> " + idioma.getMensaje6(), idioma.getContinuar(), null);
>
>                 return;
>
>             }
>
>             boolean encontro = false;
>
>             for (int i = 0; i < rb.length - 1; i++) {
>
>                 if (rb[i].isSelected()) {
>
>                     encontro = true;
>
>                     break;
>
>                 }
>
>             }
>
>             if (!encontro) {
>
>                 Dialog.show(idioma.getError(), idioma.getTarea() + " " + 
> idioma.getMensaje6(), idioma.getContinuar(), null);
>
>                 return;
>
>             }
>
>             v.descripcion.set(txDescripcion.getText());
>
>             v.fechaFuente.set(Preferences.get("fecha", 
> System.currentTimeMillis()));
>
>             v.distancia.set(distancia(v.latitud.get() == null ? 0d : 
> v.latitud.get(), v.longitud.get() == null ? 0d : v.longitud.get()));
>
>             v.modoPendiente.set(MODO_ADICION);
>
>             v.estado.set(PENDIENTE);
>
>             adicionaVisita(v);
>
>             dlVisita.dispose();
>
>  
>
>         });
>
>  
>
>         Container cnBotones = new Container(new GridLayout(1, 
> 2)).add(btCancelar).add(btAceptar);
>
>         dlVisita.add(BorderLayout.NORTH, cnItem);
>
>         dlVisita.add(BorderLayout.SOUTH, cnBotones);
>
>         return dlVisita;
>
>     }
>

-- 
You received this message because you are subscribed to the Google Groups 
"CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/codenameone-discussions/344931ef-fbf5-46e5-8d36-3acd6a5b5b6bn%40googlegroups.com.

Reply via email to