How to create a custom dialog?

Every dialog can have a class property which defines class to instantiate.

Example:

public class DocumentDialog extends ConfiguredDialog {

private String versionName;

/** * @param name * @param request * @param response * @param configNode */ public DocumentDialog(String name, HttpServletRequest request, HttpServletResponse response, Content configNode) { super(name, request, response, configNode); // get a special parameter versionName = request.getParameter("mgnlVersion"); }

/** * Overriden to force creation if the node does not exist */ protected Save onPreSave() { Save save = super.onPreSave(); save.setCreate(true); save.setCreationItemType(ItemType.CONTENTNODE); return save; }

/* * (non-Javadoc) * @see info.magnolia.module.admininterface.DialogMVCHandler#onPostSave(info.magnolia.cms.gui.control.Save) */ protected void onPostSave(Save control) { super.onPostSave(control); Content node = this.getStorageNode();

// .. do something after saving }

/** * do not reload the tree */ public void renderHtml(String view) throws IOException { PrintWriter out = response.getWriter();

// after saving if (view == VIEW_CLOSE_WINDOW) { // .. do some thing special (perhaps make an alert) } // show the created dialog else { super.renderHtml(view); } } }