List<String> locations = new CommonQueries().unLocodes();
final FeedbackPanel feedback = new FeedbackPanel( "feedback" );
add( feedback.setOutputMarkupId( true ) );
final SelectorInForm originSelector = new SelectorInForm(
"origin", "Origin", locations, this, "destination" );
originSelector.setRequired( true );
final ComponentFeedbackPanel originFeedback = new ComponentFeedbackPanel(
"originFeedback", originSelector );
add( originFeedback.setOutputMarkupId( true ) );
final SelectorInForm destinationSelector = new SelectorInForm(
"destination", "Destinatin", locations, this, "origin" );
destinationSelector.setRequired( true );
final ComponentFeedbackPanel destinationFeedback = new ComponentFeedbackPanel(
"destinationFeedback", destinationSelector );
add( destinationFeedback.setOutputMarkupId( true ) );
// Disable equal locations
originSelector.add( new AjaxFormComponentUpdatingBehavior( "onchange" )
{
@Override
protected void onUpdate( AjaxRequestTarget target )
{
// Exclude origin in destination drop down
target.add( originSelector, originFeedback, destinationSelector );
focusFirstError( target );
}
} );
destinationSelector.add( new AjaxFormComponentUpdatingBehavior( "onchange" )
{
@Override
protected void onUpdate( AjaxRequestTarget target )
{
// Exclude destination in origin drop down