Wait a minute...

I made a "PantallaEncuesta.properties" with:

panelTelefonico-rapidezAtencion=Rapidez en la atención (telefónica)
...

Then I expected it to yield:

* Field 'Rapidez en la atención (telefónica)' is required.

But it still prints:

* Field 'panelTelefonico-rapidezAtencion' is required.

Not what I want... What's wrong? :(

Igor Vaynberg escribió:
thats why formcomponents take models for labels. you can give it a
resourcemodel that uses the parent's id as the resource key and
achieve what you want.

-igor

On Tue, Oct 20, 2009 at 10:46 AM, Tomás Rossi <tro...@mecon.gov.ar> wrote:
Thanks! That worked.

Though, I'd love for wicket to provide an automatic mechanism for this kind
of stuff. Each instance of a reusable component could be mutually
independent, even if used in the same container (at least that was my
intuitive idea).

Kind regards,
Tom;

Pedro Santos escribió:
now I understand
1 - you can use different feedback panels for each panel
2 - you can write a custom model for the component label
here is a draft, you can create a concrete class from, can override the
form
component getLabel, can set the custom model on the RadioButtonGenerico
constructor...

       myRadioButtonGenerico.setLabel(new AbstractReadOnlyModel<String>()
       {
           @Override
           public String getObject()
           {
               return getParent().getId() + "-" + getId();
           }
       });


On Tue, Oct 20, 2009 at 2:51 PM, Tomás Rossi <tro...@mecon.gov.ar> wrote:


Yes, but I have 2 panels in the same page, and get:

* Field 'rapidezAtencion' is required.
* Field 'explicacionClara' is required.
* Field 'resolucionProblema' is required.
* Field 'rapidezAtencion' is required.
* Field 'explicacionClara' is required.
* Field 'resolucionProblema' is required.

And I want something like:

* Field 'panel1-rapidezAtencion' is required.
* Field 'panel1-explicacionClara' is required.
* Field 'panel1-resolucionProblema' is required.
* Field 'panel2-rapidezAtencion' is required.
* Field 'panel2-explicacionClara' is required.
* Field 'panel2-resolucionProblema' is required.

So that I can change those labels with a properties file later.


Tom;

Pedro Santos escribió:


Hi Tomás, I didn't found the problem. The feedback panel get:

* Field 'rapidezAtencion' is required.
* Field 'explicacionClara' is required.
* Field 'resolucionProblema' is required.

just as expected...

On Tue, Oct 20, 2009 at 12:00 PM, Tomás Rossi <tro...@mecon.gov.ar>
wrote:




Sure, here's the markup (BTW, using Wicket 1.4.2):

PanelEncuesta.html (means SurveyPanel):

...
<body>

<wicket:panel>
<table class="GrillaOpciones">

<tr>
 <th></th>
 <th><label>Muy Bueno</label></th>
 <th><label>Bueno</label></th>
 <th><label>Regular</label></th>
 <th><label>Malo</label></th>
 <th><label>Ns/Nc</label></th>
</tr>

<tr>
 <wicket:container wicket:id="rapidezAtencion">
 <td class="TextoItem"><label>Rapidez en la atención</label></td>
 <td><input type="radio" wicket:id="rapidezAtencion0"/></td>
 <td><input type="radio" wicket:id="rapidezAtencion1"/></td>
 <td><input type="radio" wicket:id="rapidezAtencion2"/></td>
 <td><input type="radio" wicket:id="rapidezAtencion3"/></td>
 <td><input type="radio" wicket:id="rapidezAtencion4"/></td>
 </wicket:container>
</tr>

<tr>
 <wicket:container wicket:id="explicacionClara">
 <td class="TextoItem"><label>Explicaciones claras</label></td>
 <td><input type="radio" wicket:id="explicacionClara0"/></td>
 <td><input type="radio" wicket:id="explicacionClara1"/></td>
 <td><input type="radio" wicket:id="explicacionClara2"/></td>
 <td><input type="radio" wicket:id="explicacionClara3"/></td>
 <td><input type="radio" wicket:id="explicacionClara4"/></td>
 </wicket:container>
</tr>

<tr>
 <wicket:container  wicket:id="resolucionProblema">
 <td class="TextoItem"><label>Resolución del problema</label></td>
 <td><input type="radio" wicket:id="resolucionProblema0"/></td>
 <td><input type="radio" wicket:id="resolucionProblema1"/></td>
 <td><input type="radio" wicket:id="resolucionProblema2"/></td>
 <td><input type="radio" wicket:id="resolucionProblema3"/></td>
 <td><input type="radio" wicket:id="resolucionProblema4"/></td>
 </wicket:container>
</tr>

</table>
</wicket:panel>

</body>
...

PantallaEncuesta.html (means SurveyScreen):
...
<div class="Sector">

<h3>¿Cómo calificaría los siguientes aspectos de la atención telefónica
de
Informática?</h3>
<div wicket:id="panelTelefonico">Acá va la encuesta de atención
telefónica</div> <!-- Here goes the panel!! -->

</div>

<div class="Sector">

<h3>¿Cómo calificaría los siguientes aspectos de la atención del
personal
de Informática?</h3>
<div wicket:id="panelPersonal">Acá va la encuesta de atención
personal</div> <!-- Here goes the panel!! -->

</div>
...

--
Tom;

Pedro Santos escribió:

 Hi Tómas,



What the form component RadioButtonGenerico receive as id, the
validation
message will use as label. The code should generate the outputs:
* Field 'rapidezAtencion' is required.
* Field 'explicacionClara' is required.

your report output :
 <wicket:container  wicket:id="score">
is an generic markup or always the "score" id is placed on html? If
so,
can
you send the panel html? what wicket version are you using?

On Mon, Oct 19, 2009 at 5:56 PM, Tomás Rossi <tro...@mecon.gov.ar>
wrote:






Here goes the java code...

RadioButtonGenerico.java (means GenericRadioButton):

public class RadioButtonGenerico<T> extends RadioGroup<T> {

 private static final long serialVersionUID = -1725627853431547878L;

 public RadioButtonGenerico(String id, List<String> opciones,
IModel<T>
modelo) {
   super(id, modelo);

   for (int i = 0; i < opciones.size(); i++) {
       add(new Radio<Integer>(id + i, new Model<Integer>(i)));
   }
 }
}

PanelEncuesta.java (means SurveyPanel):

public class PanelEncuesta extends FormComponentPanel<DatosEncuesta>
{

 private static final long serialVersionUID = -1545571698439481842L;

 public PanelEncuesta(String id, IModel<DatosEncuesta> modelo) {
   super(id, modelo);
   add(new RadioButtonGenerico<DatosEncuesta>("rapidezAtencion",
           DatosEncuesta.CALIFICACIONES,
           new PropertyModel<DatosEncuesta>(modelo,
"rapidezAtencion")).setRequired(true));

   add(new RadioButtonGenerico<DatosEncuesta>("explicacionClara",
           DatosEncuesta.CALIFICACIONES,
           new PropertyModel<DatosEncuesta>(modelo,
"explicacionClara")).setRequired(true));
   add(new RadioButtonGenerico<DatosEncuesta>("resolucionProblema",
           DatosEncuesta.CALIFICACIONES,
           new PropertyModel<DatosEncuesta>(modelo,
"resolucionProblema")).setRequired(true));             }

}

PantallaEncuesta.java: (means SurveyScreen):

public class PantallaEncuesta extends WebPage {

 public PantallaEncuesta() {
   add(new FeedbackPanel("feedback"));
   add(new FormEncuesta("formEncuesta"));
 }

 public static class FormEncuesta extends Form<DatosEncuesta> { //
(Means
SurveyForm)
   private static final long serialVersionUID = 8582266005577827473L;

   // Modelo para las respuestas respecto a la atención éfonica.
   private final DatosEncuesta datosEncuestaTelefonico = new
DatosEncuesta();
   // Modelo para las respuestas respecto a la atención personal.
   private final DatosEncuesta datosEncuestaPersonal = new
DatosEncuesta();
   // Modelo para los datos optativos de la encuesta.
   private final DatosOptativos datosOptativos = new
DatosOptativos();

   private CaptchaImageResource captcha = new CaptchaImageResource();
   private final ValueMap claveCaptcha = new ValueMap();

   public FormEncuesta(String id) {
       super(id);
       ...
       add(new PanelEncuesta("panelTelefonico",
               new Model<DatosEncuesta>(datosEncuestaTelefonico)));
       add(new PanelEncuesta("panelPersonal",
               new Model<DatosEncuesta>(datosEncuestaPersonal)));
       ...                 }
...

Pedro Santos escribió:

 Actually the panel wicket id is an parameter for panel constructor,
can





you
some code?

On Mon, Oct 19, 2009 at 5:07 PM, Tomás Rossi <tro...@mecon.gov.ar>
wrote:








Then I'm unable to use the properties file for tweaking the string
in
question.

What is the beauty of panels if they don't prefix its internal ids
automatically? Or am I getting it all wrong... :S

Tom;

Igor Vaynberg escribió:

 call radiogroup.setlabel()







-igor

On Mon, Oct 19, 2009 at 10:55 AM, Tomás Rossi
<tro...@mecon.gov.ar>
wrote:









Hi,

We are building a simple survey with Wicket.

Essentially, we have a lot of RadioGroup components repeated all
over
the
main survey page. Those components are in fact the same thing (to
score
some
item), but obviously, they reffer to different subjects/groups.
For
example:

Are you happy with X?

In doing job A: ( ) very happy
( ) not so much
( ) sucks

In doing job B: ( ) very happy
( ) not so much
( ) sucks

Are you happy with Y?

In doing job A: ( ) very happy
( ) not so much
( ) sucks
 ....

So we decided to make a reusable component (a panel) for the
score
input,
and repeat it as much as we needed.

We also have our survey page with a feedback panel and a form.
Inside
that
form we include the panel many times, one for each item. But the
required-field-feedback shows the same wicket:id for a bunch of
fields,
which isn't what we want. We need a unique wicket:id for each
instance
of
the score input.

E.G.

Our Panel is like this:

...
<tr>
 <wicket:container  wicket:id="score">
 <td><input type="radio" wicket:id="optGood"/></td>
 <td><input type="radio" wicket:id="optNotSoMuch"/></td>
 <td><input type="radio" wicket:id="optSucks"/></td>
 </wicket:container>
</tr>
...

And our feedback is like this:

* Field 'score' is required.
* Field 'score' is required.
* Field 'score' is required.
* Field 'score' is required.

How can I solve this?

Thanks
Tom;




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org











---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org











---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org










---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org








---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org






---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to