package com.rectang.xsm.wicket; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.model.Model; import com.rectang.xsm.doc.SupportedOption; import com.rectang.xsm.io.XSMDocument; /** * Wicket panels for the SupportedOption elements * * @author Andrew Williams * @version $Id: OptionPanel.java 663 2007-10-04 22:50:25Z aje $ * @since 1.0 */ public class OptionPanel { public static class BooleanOption extends Panel { private final XSMDocument doc; public BooleanOption( String id, final SupportedOption bool, XSMDocument d ) { super( id ); this.doc = d; add( new CheckBox( "value", new Model<Boolean>() { public Boolean getObject() { return bool.getBoolean( doc ); } public void setObject( Boolean object ) { doc.setOption( bool.getName(), object.toString() ); } } ).setType( Boolean.class ) ); } } public static class IntegerOption extends Panel { private final XSMDocument doc; public IntegerOption( String id, final SupportedOption integ, XSMDocument d ) { super( id ); this.doc = d; add( new TextField<Integer>( "value", new Model<Integer>() { public Integer getObject() { return integ.getInteger( doc ); } public void setObject( Integer object ) { doc.setOption( integ.getName(), object.toString() ); } } ).setType( Integer.class ) ); } } public static class StringOption extends Panel { private final XSMDocument doc; public StringOption( String id, final SupportedOption str, XSMDocument d ) { super( id ); this.doc = d; add( new TextField<String>( "value", new Model<String>() { public String getObject() { return str.getString( doc ); } public void setObject( String object ) { doc.setOption( str.getName(), object ); } } ) ); } } }