Eelco,

thank you very much. Please don't let your hotel room bill skyrocket for this. I can wait a couple more days! I just think that there really might be something wrong that needs to be fixed at one point.

- Johannes

Eelco Hillenius wrote:

If no-one else does it before then, I'll try to take a look at it
tonight (if I'm finally able to get CVS access working from my hotel).

Eelco

On 8/30/05, Johannes Fahrenkrug <[EMAIL PROTECTED]> wrote:
Hi,

I'm sorry that I have to nag again, but this issue is pretty important to our project and it would be great if someone could take a look at this issue (look at the message history below). Thank you very much in advance, guys!

- Johannes

Johannes Fahrenkrug wrote:

Sure, here we go:

This is the important part of the html file:

<!-- Daten der Reiseteilnehmer -->
    <tr>
      <td colspan="5">
        <table border="0" cellpadding="0" cellspacing="0" width="100%">
           <tr>
             <th colspan="4" align="left">Mitreisende:</th>
           </tr>
           <tr>
             <td>&nbsp;</td>
           </tr>
           <tr>
              <th align="left">Person</th>
              <th align="left">Geschlecht</th>
              <th align="left">Vorname</th>
              <th align="left">Name</th>
              <th align="left">Geburtsdatum</th>
            </tr>
                        <tr wicket:id="paxRow">
              <td align="left"><span wicket:id="name">Helge</span></td>
              <td align="left">
                <select wicket:id="geschlecht">
                  <option value="Herr">Herr</option>
                  <option value="Frau">Frau</option>
                </select>                                </td>
              <td align="left">
                <input wicket:id="vorname" size="20" type="text">
              </td>
              <td align="left">
                <input wicket:id="nachname" size="20" type="text">
              </td>
              <td align="left">
                <input wicket:id="geburt" size="8" type="text">
              </td>
            </tr>

          </table>
       </td>
     </tr>
</table>
<!--  ende mitreisende-tabelle -->


***************************************************************************

This is the important part of the wicket java page:

public PaxAdressPage(Buchung buchung) {
TabControlBorder tabControlBorder = new TabControlBorder("border", PAGE_NR);
  this.buchung = buchung;
    add(tabControlBorder);

  add(new Uebersicht("uebersicht", PAGE_NR, buchung));
    FeedbackPanel feedback = new FeedbackPanel("feedback");
  tabControlBorder.add(feedback);
  tabControlBorder.add(new InputForm(buchung, feedback));
}

static class InputForm extends Form {
  private static final long serialVersionUID = -276716485494111968L;

  private Buchung buchung;

  public InputForm(Buchung buchung, FeedbackPanel feedback) {
    super("adress_form");
        this.buchung = buchung;
add(new HiddenField("nextPageName", new PropertyModel(buchung, "nextPageName")));
        add(new ListView("paxRow", buchung.getPersonen()) {
      protected void populateItem(ListItem item) {
        Person person = (Person) item.getModelObject();
        List<String> geschlechter = new ArrayList<String>();
                geschlechter.add("m");
        geschlechter.add("w");
                item.add(new Label("name", person.getName()));
item.add(new DropDownChoice("geschlecht", new PropertyModel(person, "geschlecht"),
            geschlechter,
            new ChoiceRenderer(){
          public String getDisplayValue(Object object) {
            if (((String) object).equals("m")) {
              return "männlich";
            } else {
              return "weiblich";
            }
          };
        }));
item.add(new TextFieldWithErrorIndicator("vorname", new PropertyModel(person, "vorname")).required()); item.add(new TextFieldWithErrorIndicator("nachname", new PropertyModel(person, "nachname")).required());
        getSession().setLocale(new Locale("de", "DE"));
item.add(new TextFieldWithErrorIndicator("geburt", new PropertyModel(person, "geburt"), Date.class).add(new TypeValidator(Date.class, new Locale("de", "DE"))));
              }
    });
}

***************************************************************************

and I attached the TextFieldWithErrorIndicator class.
When I don't put the TextFields into a ListView, they get surrounded with a red border if they have an error (class "error" is being set). If you put them into a ListView (like in the code above), that doesn't happen. "hasErrorMessage" in the onRender method in TextFieldWithErrorIndicator is "false" when the field is in a ListView and "true" when it isn't (provided the validator returns an error, of course). But the error messages get displayed in the feedbackPanel in both cases. I guess it might be a timing problem or something... maybe "hasErrorMessage" gets reset to false when the field is in a listView before the onRender method is called...

- Johannes

Eelco Hillenius wrote:

No, user list is fine too. I haven't found the time to look at it yet.
Could you give us a bit more code?

Eelco

On 8/26/05, Johannes Fahrenkrug <[EMAIL PROTECTED]> wrote:


Should I maybe post this again on the developers list?

- Johannes

Johannes Fahrenkrug wrote:

Hi,

this is my problem:

I subclassed the TextField and created a TextFieldWithErrorIndicator class. I overrode the "onRender" method like so:

@Override
protected void onRender() { String clazz = this.hasErrorMessage() ? "error" : "no-error"; getResponse().write("<span class=\"" + clazz + "\">");
 super.onRender();
 getResponse().write("</span>");
}

I did that in order to be able to highlight the input fields which contain errors. It works fine with text fields that are added directly to the form. When I add them to a listView, however, it doesn't work anymore. I debugged the onRender method and found out that "hasErrorMessages" returns false when the field is within a listrow.

The feedbackPanel on the page displays the correct error messages, though.

Is that a bug or am I doing something wrong?

- Johannes


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user

-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user


------------------------------------------------------------------------

package de.gebeco.inetbuch.web;

import wicket.markup.html.form.TextField;
import wicket.markup.html.form.validation.RequiredValidator;
import wicket.model.IModel;

public class TextFieldWithErrorIndicator extends TextField {

public TextFieldWithErrorIndicator(String id, Class type) {
  super(id, type);
}

public TextFieldWithErrorIndicator(String id, IModel model, Class type)
{
  super(id, model, type);
}

public TextFieldWithErrorIndicator(String id, IModel object) {
  super(id, object);
}

public TextFieldWithErrorIndicator(String id) {
  super(id);
}

TextFieldWithErrorIndicator required() {
  add(RequiredValidator.getInstance());
  return this;
}

@Override
protected void onRender() { String clazz = this.hasErrorMessage() ? "error" : "no-error"; getResponse().write("<span class=\"" + clazz + "\">");
  super.onRender();
  getResponse().write("</span>");
}

}



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to