I would recommend you to try:
http://7thweb.net/wicket-jquery-ui/accordion/DefaultAccordionPage
The code will be much simplier :)

On Tue, Mar 10, 2015 at 5:02 PM, avchavan <avinash.cha...@yahoo.co.in>
wrote:

> This is what i have tried so far:
>
> <----------HomePage class----------->
> package com.proj.wicket.ui;
>
> import java.util.ArrayList;
> import java.util.List;
>
> import org.apache.wicket.Component;
> import org.apache.wicket.ajax.AjaxEventBehavior;
> import org.apache.wicket.ajax.AjaxRequestTarget;
> import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
> import
> org.apache.wicket.ajax.attributes.AjaxRequestAttributes.EventPropagation;
> import org.apache.wicket.behavior.AttributeAppender;
> import org.apache.wicket.markup.head.IHeaderResponse;
> import org.apache.wicket.markup.head.JavaScriptHeaderItem;
> import org.apache.wicket.markup.head.PriorityHeaderItem;
> import org.apache.wicket.markup.html.WebMarkupContainer;
> import org.apache.wicket.markup.html.WebPage;
> import org.apache.wicket.markup.html.basic.Label;
> import org.apache.wicket.markup.html.form.Radio;
> import org.apache.wicket.markup.html.form.RadioGroup;
> import org.apache.wicket.markup.html.list.ListItem;
> import org.apache.wicket.markup.html.list.ListView;
> import org.apache.wicket.model.Model;
>
> @SuppressWarnings("unused")
> public class HomePage extends WebPage {
>
>         public HomePage() {
>                 final WebMarkupContainer mainContainer = new
> WebMarkupContainer("mainContainer");
>                 final WebMarkupContainer accordionContainer = new
> WebMarkupContainer("accordion");
>
>                 final List<ServiceView> persons = new
> ArrayList<ServiceView>();
>
>                 ServiceView view1 = new ServiceView();
>                 ServiceView view2 = new ServiceView();
>                 ServiceView view3 = new ServiceView();
>                 ServiceView view4 = new ServiceView();
>                 ServiceView view5 = new ServiceView();
>                 ServiceView view6 = new ServiceView();
>                 ServiceView view7 = new ServiceView();
>
>                 view1.setName("David,ngog 2013");
>                 view1.setDate("31-1-2015");
>                 view1.setDesc("This is a Demo Desc!!!");
>                 view1.setCode("6KH9K");
>                 view1.setStatus("Active");
>
>                 view2.setName("David,ngog 2014");
>                 view2.setDate("31-1-2015");
>                 view2.setDesc("This is a Demo Desc!!!");
>                 view2.setCode("6KH9K");
>                 view2.setStatus("Active");
>
>                 view3.setName("David,ngog 2015");
>                 view3.setDate("31-1-2015");
>                 view3.setDesc("This is a Demo Desc!!!");
>                 view3.setCode("6KH9K");
>                 view3.setStatus("Inactive");
>
>                 view4.setName("David,ngog 2016");
>                 view4.setDate("31-1-2015");
>                 view4.setDesc("This is a Demo Desc!!!");
>                 view4.setCode("6KH9K");
>                 view4.setStatus("Active");
>
>                 view5.setName("David,ngog 2017");
>                 view5.setDate("31-1-2015");
>                 view5.setDesc("This is a Demo Desc!!!");
>                 view5.setCode("6KH9K");
>                 view5.setStatus("Inactive");
>
>                 view6.setName("David,ngog 2018");
>                 view6.setDate("31-1-2015");
>                 view6.setDesc("This is a Demo Desc!!!");
>                 view6.setCode("6KH9K");
>                 view6.setStatus("Inactive");
>
>                 view7.setName("David,ngog 2019");
>                 view7.setDate("31-1-2015");
>                 view7.setDesc("This is a Demo Desc!!!");
>                 view7.setCode("6KH9K");
>                 view7.setStatus("Active");
>
>                 persons.add(view1);
>                 persons.add(view2);
>                 persons.add(view3);
>                 persons.add(view4);
>                 persons.add(view5);
>                 persons.add(view6);
>                 persons.add(view7);
>
>                 final ListView<ServiceView> listRepeat = new
> ListView<ServiceView>("listRepeat") {
>                         @Override
>                         protected void populateItem(final
> ListItem<ServiceView> item) {
>                                 final WebMarkupContainer listContainer =
> new
> WebMarkupContainer("listContainer");
>                                 final Label name = new Label("name",
> item.getModelObject().getName());
>                                 final Label date = new Label("date",
> item.getModelObject().getDate());
>                                 final Label status = new Label("status",
> item.getModelObject().getStatus());
>                                 final WebMarkupContainer
> descriptionContainer = new
> WebMarkupContainer("descriptionContainer");
>                                 final Label desc = new Label("desc",
> item.getModelObject().getDesc());
>                                 final Label code = new Label("code",
> item.getModelObject().getCode());
>
>                                 descriptionContainer.add(desc);
>                                 descriptionContainer.add(code);
>
>
> descriptionContainer.setOutputMarkupPlaceholderTag(true);
>
> descriptionContainer.setOutputMarkupId(true);
>                                 descriptionContainer.setVisible(false);
>
>                                 final RadioGroup radioGroup = new
> RadioGroup("radioGroup");
>                                 final Radio selectionRadio = new
> Radio("selectionRadio", new
> Model(Boolean.FALSE), radioGroup);
>                                 selectionRadio.add(new
> AjaxEventBehavior("onclick") {
>                                         @Override
>                                         protected void
> onEvent(AjaxRequestTarget target) {
>                                                 for(Component acc:
> (ListView<String>)accordionContainer.get("listRepeat")){
>                                         final Component accord =
> (Component)
> acc.get("descriptionContainer");
>                                         if(accord.isVisible()){
>                                                 accord.setVisible(false);
>                                                 target.add(accord);
>                                         }
>                                 }
>                                 descriptionContainer.setVisible(true);
>                                 selectionRadio.setModel(new
> Model(Boolean.TRUE));
>                                 radioGroup.add(selectionRadio);
>                                 listContainer.add(radioGroup);
>                                 target.add(listContainer);
>                                 target.add(descriptionContainer);
>                                         }
>
>                                         @Override
>                                         protected void
> updateAjaxAttributes(AjaxRequestAttributes attributes) {
>
> super.updateAjaxAttributes(attributes);
>
> attributes.setAllowDefault(true);
>
> attributes.setEventPropagation(EventPropagation.STOP);
>                                         }
>                                 });
>
> selectionRadio.setOutputMarkupPlaceholderTag(true);
>                                 radioGroup.add(selectionRadio);
>
> radioGroup.setOutputMarkupPlaceholderTag(true);
>                                 listContainer.add(radioGroup);
>                                 listContainer.add(name);
>                                 listContainer.add(date);
>                                 listContainer.add(status);
>
>
> listContainer.setOutputMarkupPlaceholderTag(true);
>
>                                 listContainer.add(new
> AjaxEventBehavior("onclick") {
>                                         @SuppressWarnings({ "unchecked",
> "rawtypes" })
>                                         @Override
>                                         protected void onEvent(final
> AjaxRequestTarget target) {
>                                 for(Component acc:
> (ListView<String>)accordionContainer.get("listRepeat")){
>                                         final Component accord =
> (Component)
> acc.get("descriptionContainer");
>                                         if(accord.isVisible()){
>                                                 accord.setVisible(false);
>                                                 target.add(accord);
>                                         }
>                                 }
>                                 descriptionContainer.setVisible(true);
>                                 target.add(listContainer);
>                                 target.add(descriptionContainer);
>                                         }
>                                 });
>
>                                 listContainer.add(new
> AttributeAppender("onclick", new
> Model("$('"+listContainer.getMarkupId()+"').toggle('slow')")));
>
>                                 item.add(listContainer);
>                                 item.add(descriptionContainer);
>                                 item.setOutputMarkupPlaceholderTag(true);
>
>                         }
>                 };
>                 listRepeat.setList(persons);
>                 listRepeat.setOutputMarkupPlaceholderTag(true);
>                 accordionContainer.add(listRepeat);
>                 accordionContainer.setOutputMarkupPlaceholderTag(true);
>                 mainContainer.add(accordionContainer);
>                 this.add(mainContainer);
>         }
>
>         @Override
>         public void renderHead(IHeaderResponse response) {
>                 response.render(new
>
> PriorityHeaderItem(JavaScriptHeaderItem.forReference(getApplication().getJavaScriptLibrarySettings().getJQueryReference())));
>         }
>
> }
>
>
> <----------WicketApplication class------------>
> package com.proj.wicket.ui;
>
> import org.apache.wicket.protocol.http.WebApplication;
> import org.apache.wicket.request.Url;
> import org.apache.wicket.request.resource.UrlResourceReference;
>
> public class WicketApplication extends WebApplication {
>     @Override
>     public Class<HomePage> getHomePage() {
>         return HomePage.class;
>     }
>
>     @Override
>     public void init() {
>       super.init();
>       this.getJavaScriptLibrarySettings().setJQueryReference(new
> UrlResourceReference(Url.parse(("https://code.jquery.com/jquery-1.10.2.js
> "))));
>     }
> }
>
>
> <----------ServiceView class----------->
> package com.proj.wicket.ui;
>
> public class ServiceView {
>         private String name;
>         private String date;
>         private String status;
>         private String code;
>         private String desc;
>
>         public String getName() {
>                 return name;
>         }
>         public void setName(String name) {
>                 this.name = name;
>         }
>         public String getDate() {
>                 return date;
>         }
>         public void setDate(String date) {
>                 this.date = date;
>         }
>         public String getStatus() {
>                 return status;
>         }
>         public void setStatus(String status) {
>                 this.status = status;
>         }
>         public String getCode() {
>                 return code;
>         }
>         public void setCode(String code) {
>                 this.code = code;
>         }
>         public String getDesc() {
>                 return desc;
>         }
>         public void setDesc(String desc) {
>                 this.desc = desc;
>         }
>
> }
>
>
> <----------Home HTML----------->
>
>
> The toggle("slow") part doesnt work.
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/Accordion-folding-unfolding-smoothly-tp4669851p4669900.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


-- 
WBR
Maxim aka solomax

Reply via email to