package de.alpharogroup.swap.panel; import org.apache.wicket.Component; import org.apache.wicket.markup.html.panel.Fragment; import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.IModel; import de.alpharogroup.swap.SwapFragmentPanel; public abstract class SwapComponentsFragmentPanel<T> extends SwapFragmentPanel<T> { private static final long serialVersionUID = 1L; public SwapComponentsFragmentPanel(String id, IModel<T> model) { super(id, model); setDefaultModel(new CompoundPropertyModel<T>(model)); setOutputMarkupPlaceholderTag(true); add(view = newFragmentView(FRAGMENT_ID)); edit = newFragmentEdit(FRAGMENT_ID); } protected abstract Component newEditComponent(String id, IModel<T> model); /** * Creates the fragment to edit person. * * @return the fragment */ protected Fragment newFragmentEdit(final String id) { Fragment editFragment = new Fragment(id, "edit", this, getDefaultModel()); editFragment.setOutputMarkupPlaceholderTag(true); editFragment.add(newEditComponent("editPanel", getModel())); return editFragment; } /** * Creates the fragment to view person. * * @return the fragment */ protected Fragment newFragmentView(final String id) { Fragment viewFragment = new Fragment(id, "view", this, getModel()); viewFragment.setOutputMarkupPlaceholderTag(true); viewFragment.add(newViewComponent("viewPanel", getModel())); return viewFragment; } protected abstract Component newViewComponent(String id, IModel<T> model); }