Hi Lorenzo,

For arbitrary state you should just leverage HttpSession directly. The Stateful 
controls offers
nothing special that a simple utility class with couple of static methods 
cannot give you.

Kind regards

Bob

On 28/12/2010 21:15, Lorenzo Simionato wrote:
> Hi,
> I have a page similar to the Search Table Pattern example 
> (http://click.avoka.com/click-examples/table/search-table.htm).
> However, my search is more complex than in the example since you can add and 
> remove filters to narrow-down your search.
> To make this work I must save an object that contains the active filters for 
> the search.
> 
> With statefull pages this worked automagically, since my object was a field 
> of the class and so was saved automatically.
> In click 2.3 stateful pages are deprecated, so what is the best way to 
> achieve the same result?
> 
> As of now i have solved this issue by creating a fake control to hold my 
> object, that is persisted as other stateful controls:
> 
> public class FakeControl<T extends Serializable> implements Stateful {
>     private String name;
>     private T object;
> 
>     public FakeControl(String name) {
>         this.name = name;
>     }
>     @Override
>     public Object getState() {
>         return object;
>     }
>     @SuppressWarnings("unchecked")
>     @Override
>     public void setState(Object state) {
>         this.object = (T) state;
>     }
>     public T getObject() {
>         return object;
>     }    
>     public void setObject(T object) {
>         this.object = object;
>     }
>     public void removeState(Context context) {
>         ClickUtils.removeState(this, getName(), context);
>     }
>     public void restoreState(Context context) {
>         ClickUtils.restoreState(this, getName(), context);
>     }
>     public void saveState(Context context) {
>         ClickUtils.saveState(this, getName(), context);
>     }
>     public String getName() {
>         return name;
>     }
> }
> 
> --
> Lorenzo

Reply via email to