From: <mb...@re...> - 2004-12-10 13:59:51
|
Author: mbooth Date: 2004-12-10 14:51:26 +0100 (Fri, 10 Dec 2004) New Revision: 149 Modified: ccm-core/trunk/src/com/arsdigita/formbuilder/PersistentWidget.java ccm-core/trunk/src/com/arsdigita/formbuilder/ui/editors/WidgetForm.java Log: Correctly initialise "Answer required" in WidgetForm Modified: ccm-core/trunk/src/com/arsdigita/formbuilder/PersistentWidget.java =================================================================== --- ccm-core/trunk/src/com/arsdigita/formbuilder/PersistentWidget.java 2004-12-10 12:52:56 UTC (rev 148) +++ ccm-core/trunk/src/com/arsdigita/formbuilder/PersistentWidget.java 2004-12-10 13:51:26 UTC (rev 149) @@ -77,6 +77,7 @@ private Class DEFAULT_VALUE_CLASS = String.class; public static final String DEFAULT_VALUE = "defaultValue"; + public static final String REQUIRED = "widgetRequired"; /** * BASE_DATA_OBJECT_TYPE represents the full name of the @@ -278,6 +279,18 @@ } /** + * Set this + */ + public void setRequired( boolean required ) { + setComponentAttribute( REQUIRED, new Boolean( required ).toString() ); + } + + public boolean isRequired() { + String required = getComponentAttribute( REQUIRED ); + return !Boolean.FALSE.toString().equals( required ); + } + + /** * This provides a method to take a default value and deserialize * it in to its original object. This is useful if the defaultValue * is actually something like a serialized java.util.Date Modified: ccm-core/trunk/src/com/arsdigita/formbuilder/ui/editors/WidgetForm.java =================================================================== --- ccm-core/trunk/src/com/arsdigita/formbuilder/ui/editors/WidgetForm.java 2004-12-10 12:52:56 UTC (rev 148) +++ ccm-core/trunk/src/com/arsdigita/formbuilder/ui/editors/WidgetForm.java 2004-12-10 13:51:26 UTC (rev 149) @@ -52,6 +52,7 @@ import com.arsdigita.formbuilder.ui.PropertiesForm; import com.arsdigita.util.Assert; +import com.arsdigita.bebop.parameters.BooleanParameter; import com.arsdigita.bebop.parameters.URLTokenValidationListener; import com.arsdigita.bebop.parameters.NotNullValidationListener; import com.arsdigita.bebop.parameters.StringInRangeValidationListener; @@ -59,7 +60,11 @@ import com.arsdigita.bebop.parameters.ParameterModel; import com.arsdigita.xml.Element; +import org.apache.log4j.Logger; + public abstract class WidgetForm extends PropertiesForm { + private static final Logger s_log = Logger.getLogger( WidgetForm.class ); + private SingleSelectionModel m_form; private SingleSelectionModel m_action; @@ -172,7 +177,7 @@ } if (includeRequiredRadioGroup()) { - m_required = new RadioGroup("required"); + m_required = new RadioGroup( new BooleanParameter( "required" ) ); section.add(new Label(GlobalizationUtil.globalize("formbuilder.ui.editors.answer_required")), ColumnPanel.RIGHT); section.add(m_required); @@ -272,6 +277,8 @@ if (showDescription()) { m_description.setValue(state, widget.getDescription()); } + + m_required.setValue( state, new Boolean( widget.isRequired() ) ); } } @@ -297,14 +304,16 @@ } if (includeRequiredRadioGroup()) { - if (((String)m_required.getValue(pageState)).equals(Boolean.TRUE.toString())) { + boolean required = ( (Boolean) m_required.getValue( pageState ) ).booleanValue(); + + widget.setRequired( required ); + if( required ) { // Answer is required String listenerClassName = "com.arsdigita.bebop.parameters.NotEmptyValidationListener"; PersistentParameterListener listener = new PersistentParameterListener(listenerClassName); widget.addValidationListener(listener); - } else { // Answer is not required // We need not add any listener |