All Downloads are FREE. Search and download functionalities are using the official Maven repository.

uk.co.crystalmark.wicket.components.FoldingPanel Maven / Gradle / Ivy

The newest version!
package uk.co.crystalmark.wicket.components;

import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.ExternalLink;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;

public abstract class FoldingPanel extends Panel {
    private static final long serialVersionUID = 1L;

    public FoldingPanel(final String id, final IModel titleModel) {
        super(id);

        // Required to generate a new html id for the accordion
        WebMarkupContainer container = new WebMarkupContainer("accordion");
        container.setOutputMarkupId(true);
        add(container);

        WebMarkupContainer colapsable = new WebMarkupContainer("colapsable");
        container.setOutputMarkupId(true);
        container.add(colapsable);

        colapsable.add(getComponent("body"));

        ExternalLink link = new ExternalLink("openclose", "#" + colapsable.getMarkupId());
        link.add(new AttributeModifier("data-parent", "#" + container.getMarkupId()));
        container.add(link);

        link.add(new Label("title", titleModel));

    }

    public abstract Component getComponent(String wicketId);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy