package org.brixcms.plugin.content.folder; import org.apache.wicket.markup.html.form.Button; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.link.Link; import org.apache.wicket.model.IModel; import org.brixcms.jcr.api.JcrNode; import org.brixcms.jcr.wrapper.BrixNode; import org.brixcms.plugin.site.admin.NodeManagerPanel; import org.brixcms.web.ContainerFeedbackPanel; import org.brixcms.web.model.ModelBuffer; /** * @author dan.simko@gmail.com */ @SuppressWarnings("serial") abstract class FolderNodeEditTab extends NodeManagerPanel { public FolderNodeEditTab(String id, final IModel<BrixNode> nodeModel) { super(id, nodeModel); Form<Void> form = new Form<Void>("form"); add(form); final ModelBuffer adapter = new ModelBuffer(nodeModel); IModel<String> titleModel = adapter.forProperty("title"); form.add(new TextField<String>("title", titleModel).setRequired(true)); form.add(new ContainerFeedbackPanel("feedback", this)); form.add(new Button("save") { @Override public void onSubmit() { JcrNode node = nodeModel.getObject(); node.checkout(); adapter.apply(); node.save(); node.checkin(); getSession().info(getString("content-plugin.status.saved")); goBack(); } }); form.add(new Link<Void>("cancel") { @Override public void onClick() { getSession().info(getString("content-plugin.status.cancelled")); goBack(); } }); } abstract void goBack(); }