package com.rectang.xsm.wicket; import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.ChoiceRenderer; import org.apache.wicket.model.IModel; import java.util.LinkedList; import com.rectang.xsm.Locale; import com.rectang.xsm.pages.XSMSession; /** * Created by IntelliJ IDEA. * * @author Andrew Williams * @version $Id: LangDropDownChoice.java 663 2007-10-04 22:50:25Z aje $ * @since 1.0 */ public class LangDropDownChoice extends DropDownChoice { private XSMSession session; private boolean updates; public LangDropDownChoice( String id, XSMSession session ) { this( id, session, false ); } public LangDropDownChoice( String id, XSMSession session, boolean updates ) { super( id, new LinkedList( Locale.getLangMap().keySet() ), new LangRenderer() ); this.session = session; this.updates = updates; } public LangDropDownChoice( String id, IModel model, XSMSession session ) { this( id, model, session, false ); } public LangDropDownChoice( String id, IModel model, XSMSession session, boolean updates ) { super( id, model, new LinkedList( Locale.getLangMap().keySet() ), new LangRenderer() ); this.session = session; this.updates = updates; } protected boolean wantOnSelectionChangedNotifications() { return updates; } protected void onSelectionChanged( Object object ) { java.util.Locale locale = new java.util.Locale( (String) object ); session.setLocale( locale ); } } class LangRenderer extends ChoiceRenderer { public Object getDisplayValue( Object object ) { return Locale.getLangName( (String) object ); } }