Hi,

 

I would like to do the same page as the Wicket - example source code:

-      A list of element on the left side

-      A main page wich displays the details of the selected element

 

My problem is that the element is correctly taken from database but not
displayed.

 

 

Thanks,

 

 

Here is my code :

 

package com.fred.micro.web;

 

 

import com.fred.micro.AbstractBasePage;

import com.fred.micro.common.TextilMultiLineLabel;

import org.apache.wicket.markup.repeater.Item;

 

import com.fred.micro.domain.Law;

import com.fred.micro.domain.LawNorm;

import com.fred.micro.services.MicrochangesService;

import com.fred.micro.web.model.DomainModelIteratorAdaptor;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

import org.apache.wicket.PageParameters;

import org.apache.wicket.ajax.AjaxRequestTarget;

import org.apache.wicket.ajax.markup.html.AjaxFallbackLink;

import org.apache.wicket.markup.html.WebMarkupContainer;

import org.apache.wicket.markup.html.basic.Label;

import org.apache.wicket.markup.html.navigation.paging.PagingNavigator;

import org.apache.wicket.markup.repeater.RefreshingView;

import org.apache.wicket.markup.repeater.data.DataView;

import org.apache.wicket.markup.repeater.data.ListDataProvider;

import org.apache.wicket.model.CompoundPropertyModel;

import org.apache.wicket.model.IModel;

import org.apache.wicket.spring.injection.annot.SpringBean;

 

/**

 * Homepage

 */

public class LawView extends AbstractBasePage {

 

          private static final long serialVersionUID = 1L;

 

          // TODO Add any page properties or variables here

 

    /**

           * Constructor that is invoked when page is invoked without a
session.

           *

           * @param parameters

           *            Page parameters

           */

 

 

    @SpringBean

    private MicrochangesService service;

 

 

    public LawView(final PageParameters parameters) {

 

        super();

        //add(new DataView("laws", new LawProvider()), 1);

        //List<Law> listLaws = service.findAllLaws();

 

        RefreshingView listView = new RefreshingView("laws"){

 

            @Override

          protected Iterator getItemModels() {

            return new DomainModelIteratorAdaptor<Law>(service

                .findAllLaws().iterator()) {

              @Override

              protected IModel model(Object object) {

                return new CompoundPropertyModel((Law) object);

              }

            };

          }

             

            public void populateItem(final Item item) {

                final Law law = (Law) item.getModelObject();

                //item.add(new Label("lawUniqueId",
String.valueOf(law.getId()) ));

                AjaxFallbackLink link = new
AjaxFallbackLink("linkViewLaw") {

                    @Override

                    public void onClick(AjaxRequestTarget target) {

                        if(target != null) {

                            super.onClick();

                            Law newLaw = service.getLaw(law.getId());

                            target.addComponent(new LawPanel("lawPanel",
newLaw));

                            renderComponent();

                        }

                    }

                };

                link.add(new Label("lawId", law.getLawArticle() + " - "
+ law.getLawArticleFirstArg() + " - " + law.getLawArticleSecondArg()));

                item.add(link);

            }

        };

        add(listView);

        add(new LawPanel("lawPanel", service.findAllLaws().get(0)));

        setOutputMarkupId(true);

        

 

    }

}

 

 

 

<!--

<wicket:extend>

 

    <div id="center" class="column">

      <div id="content">

          <div wicket:id="lawPanel" id="lawPanel">

            lawPanel

          </div>

      </div>

    </div>

 

      <div id="left" class="column">

        <h2>

              Liste des lois

          </h2>

 

        <ul wicket:id="laws">

            <li>

                <a wicket:id="linkViewLaw" href="#">

                    <span wicket:id="lawId">lawId</span>

                </a>

            </li>

        </ul>

 

        </div>

 

      <div id="right" class="column">

 

      </div>

 

</wicket:extend>

 

-->

MICHAEL 

 

 

Reply via email to