After setting defaultValue to null on RelativeDateItem, FilterBuilder does not display the resulting criteria correctly.
The example below illustrates this.
The only difference in the code is
The example below illustrates this.
The only difference in the code is
Code:
setEditorType(new RelativeDateItem(){{ setDefaultValue((Date)null); // The only change }});
Code:
package nl.tkvw.test.client; import java.util.Date; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.shared.GWT; import com.smartgwt.client.data.AdvancedCriteria; import com.smartgwt.client.data.DataSource; import com.smartgwt.client.data.DataSourceField; import com.smartgwt.client.types.FieldType; import com.smartgwt.client.util.BooleanCallback; import com.smartgwt.client.util.JSON; import com.smartgwt.client.util.SC; import com.smartgwt.client.widgets.Button; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; import com.smartgwt.client.widgets.form.FilterBuilder; import com.smartgwt.client.widgets.form.fields.RelativeDateItem; import com.smartgwt.client.widgets.layout.VLayout; /** * Entry point classes define <code>onModuleLoad()</code>. */ public class TestApp implements EntryPoint { FilterBuilder fb1; FilterBuilder fb2; /** * This is the entry point method. */ public void onModuleLoad() { new VLayout(){{ setWidth100(); setHeight100(); addMember(new FilterBuilder(){{ fb1=this; setDataSource(new DataSource(){{ setClientOnly(true); addField(new DataSourceField("date",FieldType.DATE){{ setEditorType(new RelativeDateItem(){{ }}); }}); }}); }}); addMember(new Button("Normal"){{ addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { SC.confirm("Did you set a relative date in the filterbuilder? ",new BooleanCallback() { @Override public void execute(Boolean value) { if(Boolean.TRUE == value){ AdvancedCriteria criteria = fb1.getCriteria(false); GWT.log(JSON.encode(criteria.getJsObj())); fb1.clearCriteria(); fb1.setCriteria(criteria); SC.say("It is still displayed..."); } } }); } }); }}); addMember(new FilterBuilder(){{ fb2=this; setDataSource(new DataSource(){{ setClientOnly(true); addField(new DataSourceField("date",FieldType.DATE){{ setEditorType(new RelativeDateItem(){{ setDefaultValue((Date)null); }}); }}); }}); }}); addMember(new Button("See Bug"){{ addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { SC.confirm("Did you set a relative date in the filterbuilder? ",new BooleanCallback() { @Override public void execute(Boolean value) { if(Boolean.TRUE == value){ AdvancedCriteria criteria = fb2.getCriteria(false); GWT.log(JSON.encode(criteria.getJsObj())); fb2.clearCriteria(); fb2.setCriteria(criteria); SC.say("And now it disappeared."); } } }); } }); }}); }}.draw(); } }
Comment