user959135
user959135

Reputation: 31

How to create an accordion in wicket

I am using wicket 1.4.17.I went through quite a few posts on this but couldn't understand it clearly. How can I make an accordion in wicket?

Basically what I am looking for is kind of a table with 1 column and multiple rows where each row can be expanded or collapsed, and each row on expansion shows another table of data.

Upvotes: 0

Views: 1277

Answers (1)

Thorsten Wendelmuth
Thorsten Wendelmuth

Reputation: 780

The following code example should help you get started. Feel free to ask questions if something seems unclear. Of course you could go even deeper in your DetailPanel (that's why I would suggest that approach)

    AbstractRepeater exampleView = new ListView<Object>("exampleView", myList) {


        @Override
        protected void populateItem(ListItem<Object> item) {
            //you can use a own panel, fragment, etc to illustrate your detail view here
            //you could also use one WebMarkupContainer for visibility - but I'd assume this will get very messy, very soon
            final DetailPanel detailPanel = new DetailPanel("detailPanel", item.getModel());
            detailPanel.setVisible(false);
            detailPanel.setOutputMarkupPlaceholderTag(true);
            item.add(detailPanel);

            //add AjaxLink to switch between the visibilty of the detailView
            AjaxLink<Void> detailLink = new AjaxLink<Void>("detailLink") {

                @Override
                public void onClick(AjaxRequestTarget target) {
                    detailPanel.setVisible(!detailPanel.isVisible());
                    target.addComponent(detailPanel);
                }
            };
            item.add(detailLink);

        }
    };
    add(exampleView);

Upvotes: 2

Related Questions