My understanding of this class must be faulty. When Wicket calls my 
onSelectionChanged(), the argument is the display string, not the id 
value. For example, I'm expecting a milepost value like "123.456", but 
instead I get "End (123.456)" (the display value). Here's the code. can 
anyone see what I'm doing wrong?

private RadioChoice<String> createMilepostChoice(final String id, final 
TrackModel track) {

        final Milepost     startMP = track.getStartMP();
        final Milepost     endMP   = track.getEndMP  ();
        final List<String> choices = Arrays.asList(new 
String[]{format(START, startMP), format(END, endMP), OTHER});
        final ChoiceRenderer<String> renderer = new 
ChoiceRenderer<String>() {
                private static final long serialVersionUID = 1L;
        @Override public Object getDisplayValue(final String model) {
            return model;
        }
        @Override public String getIdValue(final String model, final int 
index) {
                String value;
                switch (index) {
                        case 0:
                                value = startMP.toString();
                                break;
                        case 1 :
                                value = endMP.toString();
                                break;
                        default :
                                value = "";
                }
                return value;
        }
        };
        final RadioChoice<String> choice = new RadioChoice<String>(id, 
choices, renderer) {
                private static final long serialVersionUID = 1L;
                @Override protected void onSelectionChanged(final Object 
new selection) {
                        final String selection = (String)newSelection;
                        if (track == primaryTrack) {
                                primaryMpChoice = selection;
                        } else {
                                secondaryMpChoice = selection;
                        }
                }
                @Override protected boolean 
wantOnSelectionChangedNotifications() {
                        return true;
                }
        };
        return choice;
}


**

This email and any attachments may contain information that is confidential 
and/or privileged for the sole use of the intended recipient.  Any use, review, 
disclosure, copying, distribution or reliance by others, and any forwarding of 
this email or its contents, without the express permission of the sender is 
strictly prohibited by law.  If you are not the intended recipient, please 
contact the sender immediately, delete the e-mail and destroy all copies.
**

Reply via email to