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

Reply via email to