download wicket-quickstart project

hack Index page to reproduce the problem

i dont need your entire app, just looking at the code youve sent all i need from your app is maybe the category object, then instead of calling product proxy create the list of cats yourself.

then zip up quickstart into a zip and attach it. that way i can download, open and run it and see the problem myself so i can walk it in the debugger.

-Igor


On 5/22/06, Vincent Jenks <[EMAIL PROTECTED]> wrote:
Sure, how?  Maybe I'm misunderstanding?  I can't stick the whole app
in there, however.  Maybe I could just send you both of the entire
files (java + html)?

I've found that if I set it to 1 column, it renders w/o an exception.
If I set it to 3 columns, it bombs.  When it does render, I see one
row w/ 3 items even though there are 5 items.  Weird.

On 5/22/06, Igor Vaynberg <[EMAIL PROTECTED] > wrote:
> do you want to stick this into wicket-quickstart and let me take a look? it
> is the most efficient way i can find the problem
>
>
> -Igor
>
>
> On 5/22/06, VGJ < [EMAIL PROTECTED]> wrote:
> >
> >
> > ok, riddle me this, Batman.
> >
> > I changed it to just look like:
> >
> > item.add(new GridView("name", provider)
> > {
> > };
> >
> > Whereas before, I was creating the GridView, *then* adding it to the
> top-level ListView in two separate steps.
> >
> > I'm sure my hierarchy before was right because I can simply change what I
> show above to
> >
> > GridView gv = new GridView("name", provider)
> > {
> > };
> >
> > item.add(gv);
> >
> > ...and, I get the hierarchy exception!
> >
> > I'd be fine w/ the "fix" I came up w/, however, I can't get more than one
> row to appear.
> >
> > I did this:
> >
> > item.add(new GridView("name", provider)
> > {
> > }.setRows(3).setColumns(3));
> >
> > ...however, I only get one row no matter how many items there are.  If I
> switch back to the old ListView I was using, sure enough, all 5 items show
> up in a single row.
> >
> > any ideas?
> >
> >
> > On Mon, 2006-05-22 at 15:52 -0700, Igor Vaynberg wrote:
> >
> >
> > where is the populateEmptyItem you are supposed to implement for the
> gridview? this method populate left over cells and is probably what is
> causing the hierarchy mismatch.
> >
> > also here is how to implement detachable idataprovider:
> >
> > class mydataprovider implemetns IDataProvider, IDetachable {
> >    private transient List list;
> >
> >    public void detach() { list=null; }
> >
> >    public iterator iterateor(int first, int last) {
> >        return getlist().listiterator(first);
> >    }
> >
> >    public int size() {
> >       return getlist().size();
> >    }
> >
> >    private List getlist() {
> >        if (list==null) {
> >             list=...load list here
> >         }
> >         return list;
> >    }
> > }
> >
> > -Igor
> >
> >
> >
> >
> > On 5/22/06, Vincent Jenks < [EMAIL PROTECTED]> wrote:
> >
> > Yeah, that's what I figured given the example, however that's where my
> > problem lies.  The items I'm adding in populateItem in the GridView
> > can't be found, I'm getting the hierarchy problem exception.
> >
> > Here's what I'm doing in the page as an overview:
> >
> > 1. List Product Categories (ListView)
> >   2. for each Category, retrieve and display Products (GridView)
> >     3. Display 3-column table w/ Product details ("cols" in GridView)
> >
> > Here's the code:
> >
> >                 //add ListView object to page w/ data
> >                 add(new ListView("categoryView", categoryModel)
> >                 {
> >                         protected void
> populateItem(ListItem item)
> >                         {
> >                                 //get catagory item
> >                                 final ProductCategory
> category = (ProductCategory)item.getModelObject();
> >
> >                                 //add category label
> >                                 item.add(new
> Label("category", category.getName()));
> >
> >                                 //STILL DON'T UNDERSTAND
> HOW TO PASS THIS INTO GRIDVIEW
> >                                 IModel productModel = new
> LoadableDetachableModel()
> >                                 {
> >                                         protected Object
> load()
> >                                         {
> >                                                 return
> ProductProxy.getProducts (category);
> >                                         }
> >                                 };
> >
> >                                 IDataProvider provider =
> new
> > ProductDataProvider(ProductProxy.getProducts(category)); //HARDCODED,
> > NOT DETACHED!  SEE DETACHED MODEL ABOVE!
> >                                 GridView productView =
> new GridView("productView", provider)
> >                                 {
> >                                         protected void
> populateItem(Item item)
> >                                         {
> >                                                 //get
> product item
> >                                                 final
> Product product = (Product)item.getModelObject();
> >
> >                                                 //create
> thumbnail link w/ event
> >                                                 Link
> thumbnailLink = new Link("thumbnailLink")
> >                                                 {
> >
>  public void onClick()
> >                                                         {
> >
>       setResponsePage(new ProductDetail(product));
> >                                                         }
> >                                                 };
> >
> >                                                 //add
> attribute modifier
> >
> thumbnailLink.add(wmc);
> >
> >                                                 //add
> thumbnail link
> >
> item.add(thumbnailLink);
> > .....
> >
> > You'll notice I've got a detached model in there...right now it's not
> > being used since I haven't figured out how to send detached data from
> > this page into the IDataProvider derived class (another issue, not to
> > get off track, sorry!)
> >
> > Here's my HTML, I'm sure it's fantastically wrong but I need to see it
> > rendered to decide if it looks right:
> >
> > ...............
> >
> >                                                 <tr
> wicket:id="categoryView">
> >
> <td>
> >
>       <span wicket:id="category"
> class="titleSmall">category</span>
> >
>       <hr width="100%" size="1" />
> >
>       <br />
> >
>       <table width="200" align="left"
> wicket:id="productView">
> >
>               <tr>
> >
>                       <td wicket:id="cols">
> >
>                               <table
> width="200" align="left">
> >
>                                       <tr>
> >
>
>    <td>
> >
>
>            <a href="" wicket:id="thumbnailLink">
> >
>
>                    <img src="" wicket:id="thumnailImg"
> width="200"
> > height="134" border="0" />
> >
>
>            </a>
> >
>
>    </td>
> >
>
> </tr>
> >
> > ................
> >
> > Here's the exception I'm getting, it's not finding the thumbnailLink
> > control above:
> >
> > WicketMessage: Unable to find component with id 'thumbnailLink' in
> > [MarkupContainer [Component id = 4, page =
> > com.myapp.ui.ProductCatalog, path =
> > 2:categoryView:0:productView:1:cols:4.Item, isVisible =
> true,
> > isVersioned = true]]. This means that you declared
> > wicket:id=thumbnailLink in your markup, but that you either did not
> > add the component to your page at all, or that the hierarchy does not
> > match.[markup =
> > file:/C:/Program%20Files/jboss-
> 4.0.4.GA/server/default/tmp/deploy/tmp37375MyAppEAR.ear-contents/MyApp-exp.war/WEB-INF/classes/com/myapp/ui/ProductCatalog.html,
> > index = 29, current = '<a href="" wicket:id="thumbnailLink">' (line
> > 61, column 15)]
> >
> > I must just be missing something obvious....I thought I set it up
> > correctly per the wicket-examples GridViewPage example.
> >
> > On 5/22/06, Igor Vaynberg < [EMAIL PROTECTED]> wrote:
> > > cols objects are generated by the gridview, whatever components you add
> to
> > > the gridview in populate have to go inside the cols
> > >
> > >  -Igor
> > >
> > >
> > > On 5/22/06, VGJ <[EMAIL PROTECTED]> wrote:
> > > >
> > > >
> > > > The code in examples looks screwy to me too, since it defines
> > > wicket:id="rows" for the GridView control and wicket:id="cols" as the
> > > columns...yet in the class there is no mention of "cols" anywhere.  Is
> this
> > > some built-in object?
> > > >
> > > > I'm obviously getting an exception because I've setup "rows" and
> "cols"
> > > but there is no "cols" - every widget I've nested inside of "cols" is
> > > causing my hierarchy to be incorrect.
> > > >
> > > >
> > > > On Mon, 2006-05-22 at 10:02 -0700, Igor Vaynberg wrote:
> > > >
> > > >
> > > >
> > > >
> > > > On 5/22/06, VGJ < [EMAIL PROTECTED]> wrote:
> > > >
> > > > Ok, this makes more sense than the example in wicket-examples.
> However,
> > > what if the List I'm passing in is actually wrapped in a
> > > LoadableDetachableModel?
> > > >
> > > > that should be ok because dataview will check if the idataprovider
> impl
> > > you passed in also implements IDetachable and call detach on it at the
> end
> > > of request.
> > > >
> > > > so class MyDataProvider extends ListDataProvider implements
> IDetachable
> > > {....}
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Congrats on the baby, by the way!!
> > > >
> > > > thank you :)
> > > >
> > > > -Igor
> > > >
> > > >
> > > >
> > >
> > >
> >
> >
> > -------------------------------------------------------
> > Using Tomcat but need to do more? Need to support web services, security?
> > Get stuff done quickly with pre-integrated technology to make your job
> easier
> > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> >
> http://sel.as-us.falkag.net/sel?cmdlnk&kid0709&bid&3057&dat1642
> > _______________________________________________
> > Wicket-user mailing list
> > Wicket-user@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/wicket-user
> >
> >
> >
>
>


-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmdlnk&kid0709&bid&3057&dat1642
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to