You are right. A lot is still poiler-plate code. Why not make a component
out of it with a method populateDataItem(DataItem di, int col, int row),
which calls di with null when there are no Objects in the model anymore or
has an additional method with populateEmptyDataItem(DataItem di, int col,
int row)?
Alternatively we should make an PageableOrderedRepeatingView.
BTW: What's about renaming RepeatingView to UnorderedRepeatingView and the
OrderedRepeatingView to RepeatingView. I think you will most often use
OrderedRepeatingView.
Christian
On Thu, 18 Aug 2005 10:17:14 -0700, Igor Vaynberg <[EMAIL PROTECTED]>
wrote:
I just checked in a very small example on how to build a simple grid. It
is
in no way complete as it is not a component and it misses some basic
functionality such as adding a <td colspan="x"> </td> to the last
row
if there arent enough items in the dataprovider.
But what it does demonstrate is that it is VERY EASY to create a
component
that works with proper semantics in the markup if you don't try to
overengineer things!
<table cellspacing="0" cellpadding="2" border="1">
<tr wicket:id="rows">
<td wicket:id="cols"><span
wicket:id="firstName">[firstname]</span></td>
</tr>
</table>
-Igor
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
Igor Vaynberg
Sent: Wednesday, August 17, 2005 11:14 AM
To: wicket-user@lists.sourceforge.net
Subject: RE: [Wicket-user] Re: ColumnedDataProvider
startIndex problems
I would disagree with everything except 1.
(2) wont work because cells might create different
hierarchies of components based on a model, ie insert
different panels based on model objects type.
(3) this is not error prone at all. You have to understand
that you cannot add directly into the dataview because it
MANAGES ITS CHILDREN itself and for you. There is nothing
stopping you from adding different things into the dataitem itself.
(4) see the reason for (2) - it would be cheaper to recreate
a cell as opposed to swapping its model which you then need
to undo on the back button.
(5) sure but this is not a requirement - use a
detachablemodel and an attribute modifier.
I think you are trying to create a component that is very
specific to your needs as opposed to creating a more general
one and adopting it.
-Igor
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Gili
> Sent: Wednesday, August 17, 2005 10:41 AM
> To: wicket-user@lists.sourceforge.net
> Subject: Re: [Wicket-user] Re: ColumnedDataProvider startIndex
> problems
>
>
> Ok, I give up :(
>
> I tried simplifying everything by creating a
GridDataView that is a
> DataView that is explicitly aware of columns and rows but this is
> taking up way too much of my time and I'm getting stuck way
too often.
>
> Some points:
>
> 1) We need a component which consists of a fixed number of
columns and
> rows.
>
> 2) Ideally, the grid is lazily-initialized *once* with a
DataItem in
> each cell at the first request. Future requests do not
modify the grid
> structure.
>
> 3) We *don't* invoke populateItem(DataItem) and have to
add() into the
> item because as we have seen this is error prone.
> Users expect to add() directly onto the component, not the DataItem
> and as Igor mentioned, there are problems with allowing
> Component.add() to be invoked. So...
>
> 4) All cells always exist, whether or not there is a live
item inside
> them.
>
> 5) At request-time, DataItems get re-rendered. At render time,
> DataItems should reinitialize themselves from the DB -- this means
> images might change or an image that used to exist no longer does.
> DataItems would be responsible for invoking
> setVisible() on themselves based upon whether or not there
is an item
> to render.
>
> I like the above design because it is more consistent
with the Wicket
> framework. The structure is created *once* at initialization time.
> Users get to add() directly onto components and there is no
longer any
> confusion -- no need to item.add().
>
> My only problem is that I am not familiar with how
> OrderedRepeatingView works in order to figure out how to
implement all
> of this. I don't think extending the existing DataView is
an option --
> it is just too different. I would be glad to work with Phil
or Igor to
> make the above work -- I cannot do it all by myself.
>
> Thanks,
> Gili
>
>
> -------------------------------------------------------
> SF.Net email is Sponsored by the Better Software Conference & EXPO
> September 19-22, 2005 * San Francisco, CA * Development Lifecycle
> Practices Agile & Plan-Driven Development * Managing
Projects & Teams
> * Testing & QA Security * Process Improvement & Measurement *
> http://www.sqe.com/bsce5sf
> _______________________________________________
> Wicket-user mailing list
> Wicket-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>
>
>
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference &
EXPO September 19-22, 2005 * San Francisco, CA * Development
Lifecycle Practices Agile & Plan-Driven Development *
Managing Projects & Teams * Testing & QA Security * Process
Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle
Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing &
QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user
--
Christian Essl
___________________________________________________________
Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user