FilterForm Date column formatting

classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

FilterForm Date column formatting

Sandor Feher
Hi,


I need to add date formater and/or validator to a column in the filterform.

....
IColumn col_cru=columns.add(new TextFilteredPropertyColumn<HrpContent, String>(new ResourceModel("contentlisttable.cru"), "cru", "cru"));
....

TIA, Sandor
Reply | Threaded
Open this post in threaded view
|

Re: FilterForm Date column formatting

Martin Grigorov-4
Hi,

See org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn#populateItem()
You'll need to override that method and add some Date**Field to the item

On Wed, Apr 25, 2012 at 4:20 PM, Sandor Feher <[hidden email]> wrote:

> Hi,
>
>
> I need to add date formater and/or validator to a column in the filterform.
>
> ....
> IColumn col_cru=columns.add(new TextFilteredPropertyColumn<HrpContent,
> String>(new ResourceModel("contentlisttable.cru"), "cru", "cru"));
> ....
>
> TIA, Sandor
>
>
> --
> View this message in context: http://apache-wicket.1842946.n4.nabble.com/FilterForm-Date-column-formatting-tp4586557p4586557.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>



--
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: FilterForm Date column formatting

Sandor Feher
Hi,

Thank you for the prompt answer. I had a try but it does not work as I expect.

-------------------
IColumn crdCol=new TextFilteredPropertyColumn<HrpContent, String>(new ResourceModel("contentlisttable.crd"), "crd", "crd") {

            @Override
            public void populateItem(Item<ICellPopulator<HrpContent>> item, String componentId, IModel<HrpContent> rowModel) {
                DateConverter dc=new DateConverter(true) {

                    @Override
                    public String getDatePattern(Locale locale) {
                        return "YYYY mm dd";
                    }

                    @Override
                    protected DateTimeFormatter getFormat(Locale locale) {
                         DateTimeFormatter fm=DateTimeFormat.forPattern("YYYY mm DD");
                         return fm;
                    }
                };                
                item.addOrReplace(new DateTextField(componentId,dc));
            }
           
        };  
        columns.add(crdCol);

Rgds, Sandor
Reply | Threaded
Open this post in threaded view
|

Re: FilterForm Date column formatting

martin-g
But you don't say what is the problem

Sandor Feher <[hidden email]> wrote:

Hi,

Thank you for the prompt answer. I had a try but it does not work as I
expect.

-------------------
IColumn crdCol=new TextFilteredPropertyColumn<HrpContent, String>(new
ResourceModel("contentlisttable.crd"), "crd", "crd") {

@Override
public void populateItem(Item<ICellPopulator&lt;HrpContent>>
item, String componentId, IModel<HrpContent> rowModel) {
DateConverter dc=new DateConverter(true) {

@Override
public String getDatePattern(Locale locale) {
return "YYYY mm dd";
}

@Override
protected DateTimeFormatter getFormat(Locale locale) {
DateTimeFormatter
fm=DateTimeFormat.forPattern("YYYY mm DD");
return fm;
}
};
item.addOrReplace(new DateTextField(componentId,dc));
}

};
columns.add(crdCol);

Rgds, Sandor


--
View this message in context: http://apache-wicket.1842946.n4.nabble.com/FilterForm-Date-column-formatting-tp4586557p4587855.html
Sent from the Users forum mailing list archive at Nabble.com.

_____________________________________________

To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: FilterForm Date column formatting

Sandor Feher
Hi,

Yes, sorry for that.

---------------------------
Last cause: Component [cell] (path = [5:datatablecontainer:filterForm:datatable:body:rows:1:cells:3:cell]) must be applied to a tag of type [input], not:  '' (line 0, column 0)

Markup

The problem is in "jar:file:/X:/mavenrepo/org/apache/wicket/wicket-extensions/1.5.5/wicket-extensions-1.5.5.jar!/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.html":

[cell]
Reply | Threaded
Open this post in threaded view
|

Re: FilterForm Date column formatting

Melinda Dweer
I think the problem is  markup for cells is a <span>. You need to create a
panel

<wicket:panel>
       <input wicket:id="dateField"/>
</wicket:panel>

.............. Your date file code ....

and add that panel to table cell.

Regards,

Melinda

On Thu, Apr 26, 2012 at 8:48 AM, Sandor Feher <[hidden email]> wrote:

> Hi,
>
> Yes, sorry for that.
>
> ---------------------------
> Last cause: Component [cell] (path =
> [5:datatablecontainer:filterForm:datatable:body:rows:1:cells:3:cell]) must
> be applied to a tag of type [input], not:  '' (line 0, column 0)
>
> Markup
>
> The problem is in
>
> "jar:file:/X:/mavenrepo/org/apache/wicket/wicket-extensions/1.5.5/wicket-extensions-1.5.5.jar!/org/apache/wicket/extensions/markup/html/repeater/data/table/DataTable.html":
>
> [cell]
>
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/FilterForm-Date-column-formatting-tp4586557p4589021.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

Re: FilterForm Date column formatting

Sandor Feher
Ok, I will have try...
Reply | Threaded
Open this post in threaded view
|

Re: FilterForm Date column formatting

Sandor Feher
In reply to this post by Melinda Dweer
Hi,

If I do it in this way, then all of my cells in that column will change to input textfield. But I only want to change the cell which in the filter form row.

Regards, Sandor
Reply | Threaded
Open this post in threaded view
|

Re: FilterForm Date column formatting

Melinda Dweer
Can't use a conditional statement? If filter add panel if not call
super.populateItem?

On Thu, Apr 26, 2012 at 11:36 AM, Sandor Feher <[hidden email]> wrote:

> Hi,
>
> If I do it in this way, then all of my cells in that column will change to
> input textfield. But I only want to change the cell which in the filter
> form
> row.
>
> Regards, Sandor
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/FilterForm-Date-column-formatting-tp4586557p4589323.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>
Reply | Threaded
Open this post in threaded view
|

Re: FilterForm Date column formatting

Martin Grigorov-4
In reply to this post by Sandor Feher
Sorry, I didn't understand that you want to do that for the filter field.
Override org.apache.wicket.extensions.markup.html.repeater.data.table.filter.TextFilteredPropertyColumn#getFilter()
instead.

On Thu, Apr 26, 2012 at 12:36 PM, Sandor Feher <[hidden email]> wrote:

> Hi,
>
> If I do it in this way, then all of my cells in that column will change to
> input textfield. But I only want to change the cell which in the filter form
> row.
>
> Regards, Sandor
>
> --
> View this message in context: http://apache-wicket.1842946.n4.nabble.com/FilterForm-Date-column-formatting-tp4586557p4589323.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>



--
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: FilterForm Date column formatting

Sandor Feher
Ok, np.
Here is what I did:

----c----

       IColumn crdCol=new TextFilteredPropertyColumn<HrpContent, String>(new ResourceModel("contentlisttable.crd"), "crd", "crd") {

            @Override
            public Component getFilter(String componentId, FilterForm<?> form) {
                   DateConverter dc=new DateConverter(true) {

                    @Override
                    public String getDatePattern(Locale locale) {
                        return "YYYY mm dd";
                    }

                    @Override
                    protected DateTimeFormatter getFormat(Locale locale) {
                         DateTimeFormatter fm=DateTimeFormat.forPattern("YYYY mm DD");
                         return fm;
                    }
                };                
                return new DateTextField(componentId,dc);            
            }
        };  

----c----

Now it complains for this:



Last cause: Component [filter] (path = [5:datatablecontainer:filterForm:datatable:topToolbars:toolbars:3:filters:3:filter]) must be applied to a tag of type [input], not:  '
' (line 0, column 0)

Markup

The problem is in "jar:file:/X:/mavenrepo/org/apache/wicket/wicket-extensions/1.5.5/wicket-extensions-1.5.5.jar!/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterToolbar.html":

[filter]
Reply | Threaded
Open this post in threaded view
|

Re: FilterForm Date column formatting

Martin Grigorov-4
As Melinda said earlier you need to use a Panel.
The idea is that this way you can use more complex components for
filtering, e.g. from-to dates, a Panel with two date fields.

On Thu, Apr 26, 2012 at 1:26 PM, Sandor Feher <[hidden email]> wrote:

> Ok, np.
> Here is what I did:
>
> ----c----
>
>       IColumn crdCol=new TextFilteredPropertyColumn<HrpContent, String>(new
> ResourceModel("contentlisttable.crd"), "crd", "crd") {
>
>            @Override
>            public Component getFilter(String componentId, FilterForm<?>
> form) {
>                   DateConverter dc=new DateConverter(true) {
>
>                    @Override
>                    public String getDatePattern(Locale locale) {
>                        return "YYYY mm dd";
>                    }
>
>                    @Override
>                    protected DateTimeFormatter getFormat(Locale locale) {
>                         DateTimeFormatter
> fm=DateTimeFormat.forPattern("YYYY mm DD");
>                         return fm;
>                    }
>                };
>                return new DateTextField(componentId,dc);
>            }
>        };
>
> ----c----
>
> Now it complains for this:
>
>
>
> Last cause: Component [filter] (path =
> [5:datatablecontainer:filterForm:datatable:topToolbars:toolbars:3:filters:3:filter])
> must be applied to a tag of type [input], not:  '<td wicket:id="filter"
> class="filter-td">' (line 0, column 0)
>
> Markup
>
> The problem is in
> "jar:file:/X:/mavenrepo/org/apache/wicket/wicket-extensions/1.5.5/wicket-extensions-1.5.5.jar!/org/apache/wicket/extensions/markup/html/repeater/data/table/filter/FilterToolbar.html":
>
> <td wicket:id="filter" class="filter-td">[filter]</td>
>
>
> --
> View this message in context: http://apache-wicket.1842946.n4.nabble.com/FilterForm-Date-column-formatting-tp4586557p4589406.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>



--
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

[RESOLVED] Re: FilterForm Date column formatting

Sandor Feher
Hi,

Works fine now :).
Melinda, Martin! Thank you for your help. I really appreciate that!

Just for the archive.

I add a panel overriding the getFilter method.
-----
        IColumn crdCol=new TextFilteredPropertyColumn<HrpContent, String>(new ResourceModel("contentlisttable.crd"), "crd", "crd") {

            @Override
            public Component getFilter(String componentId, FilterForm<?> form) {
                return new DateTextFieldPanel(componentId,getFilterModel(form));
            }
        };  
        columns.add(crdCol);


-----

Here is my panel.

class DateTextFieldPanel extends Panel {

        public DateTextFieldPanel(String id,IModel model) {
            super(id,model);
            DateConverter dc=new DateConverter(true) {

                    @Override
                    public String getDatePattern(Locale locale) {
                        return "yyyy.MM.dd";
                    }

                    @Override
                    protected DateTimeFormatter getFormat(Locale locale) {
                         DateTimeFormatter fm=DateTimeFormat.forPattern("yyyy.MM.dd");
                         return fm;
                    }
                };                
            DateTextField dtf =new DateTextField(id,model,dc);            
            add(dtf);            
        }
    }