Hi all,
i found a little problem using Datatable component.
I use Wicket for a french software development.
Ib the datatable, the text "Showing 1 to 10 of N" in the navigation toolbar
can not be internationalized.

The Datatable component is associated to a NavigatorToolBar component, wich
is associated to a NavigatorLabel.
I've found this code in the NavigatorLabel.java file : "Showing ${from} to
${to} of ${of}"

To make the datatable internationalizable, i must create new Components
inherited from  DataTable, NavigatorToolBar, NavigatorLabel, etc...
 and change the following text : "Showing ${from} to ${to} of ${of}"

This could be fixed in NavigatorLabel class,  with a call to a .properties
file like  :

protected WebComponent newNavigatorLabel(String navigatorId, final DataTable
table)
    {
        IModel model = new NavigatorLabelModel(table);

                return new Label(
                    navigatorId,
                    new StringResourceModel(
                        "navigatorLabel",
                        this,
                        model,
                        new Object[] {
                            new PropertyModel(model, "from"),
                            new PropertyModel(model, "of"),
                            new PropertyModel(model, "to")
                        }
                    )
                );
    }


with  in .properties file :

navigatorLabel = Lignes {0} to {2} of{1}

and this classes :

public class NavigatorLabelModel extends LoadableDetachableModel {

    private static final long serialVersionUID = 1L;
    private DataTable dataTable;

    public NavigatorLabelModel(DataTable dataTable) {
        super();
        this.dataTable = dataTable;
    }


    protected Object load() {

        int of = 0;
        int from = 0;
        int to = 0;

        of = this.dataTable.getRowCount();
        from = this.dataTable.getCurrentPage() *
this.dataTable.getRowsPerPage();
        to = Math.min(of, from + this.dataTable.getRowsPerPage());
        from++;

        if (of == 0) {
            from = 0;
            to = 0;
        }

        return new NavigationLabelBean(from, of, to);
    }

}

and

public class NavigationLabelBean {

    private int from;
    private int of;
    private int to;

    public NavigationLabelBean(int from, int of, int to) {
        this.from = from;
        this.of = of;
        this.to = to;
    }

//getters and setters ...

}

I've tried and it works fine.

Do you think it could be added in sources?
If you think it's a good idea i can try to get a acccount on SVN to add
this, or maybe someone here wants to do it.

Thanks,

-- 
Loïc Descotte
9 rue Sébastien Gryphe
69007 Lyon

06 23 23 36 80

Reply via email to