Search in sources :

Example 16 with Menu

use of com.revolsys.ui.model.Menu in project com.revolsys.open by revolsys.

the class HtmlUiBuilder method newObjectEditPage.

public Element newObjectEditPage(final T object, final String prefix) throws IOException, ServletException {
    if (object == null) {
        throw new PageNotFoundException();
    } else {
        final HttpServletRequest request = HttpServletUtils.getRequest();
        final Set<String> parameterNamesToSave = new HashSet<>();
        parameterNamesToSave.add(getIdParameterName());
        final String pageName = getName(prefix, "edit");
        final Form form = newTableForm(object, pageName);
        for (final String param : parameterNamesToSave) {
            form.addSavedParameter(param, request.getParameter(param));
        }
        form.initialize(request);
        if (form.isPosted() && form.isMainFormTask()) {
            if (form.isValid() && preUpdate(form, object)) {
                updateObject(object);
                postUpdate(object);
                final Map<String, Object> parameters = new HashMap<>();
                // Get after object has changed
                final Object id = Property.get(object, getIdPropertyName());
                parameters.put(getIdParameterName(), id);
                final Page viewPage = getPage(prefix, "view");
                final String url = viewPage.getFullUrl(parameters);
                redirectAfterCommit(url);
                return new TabElementContainer();
            } else {
                setRollbackOnly(object);
            }
        } else {
            setRollbackOnly(object);
        }
        final Page page = getPage(prefix, "edit");
        final String title = page.getExpandedTitle();
        request.setAttribute("title", title);
        final Menu actionMenu = new Menu();
        addMenuItem(actionMenu, prefix, "view", "Cancel", "_top").addProperty("buttonClass", "btn-danger");
        addMenuItem(actionMenu, prefix, "edit", "Revert to Saved", "_top").addProperty("buttonClass", "btn-warning");
        final String name = form.getName();
        final Menu saveItem = new Menu("Save", "javascript:$('#" + name + "').submit()");
        saveItem.addProperty("buttonClass", "btn-primary");
        actionMenu.addMenuItem(saveItem);
        final ButtonsToolbarElement buttonsToolbar = new ButtonsToolbarElement(actionMenu);
        final ElementContainer view = new ElementContainer(form, buttonsToolbar);
        final TabElementContainer tabs = new TabElementContainer();
        tabs.add(title, view);
        return tabs;
    }
}
Also used : ElementContainer(com.revolsys.ui.html.view.ElementContainer) TabElementContainer(com.revolsys.ui.html.view.TabElementContainer) UiBuilderObjectForm(com.revolsys.ui.html.form.UiBuilderObjectForm) HtmlUiBuilderObjectForm(com.revolsys.ui.html.form.HtmlUiBuilderObjectForm) Form(com.revolsys.ui.html.form.Form) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) Page(com.revolsys.ui.web.config.Page) TabElementContainer(com.revolsys.ui.html.view.TabElementContainer) HttpServletRequest(javax.servlet.http.HttpServletRequest) PageNotFoundException(com.revolsys.ui.web.exception.PageNotFoundException) Menu(com.revolsys.ui.model.Menu) ButtonsToolbarElement(com.revolsys.ui.html.view.ButtonsToolbarElement) HashSet(java.util.HashSet)

Aggregations

Menu (com.revolsys.ui.model.Menu)16 ElementContainer (com.revolsys.ui.html.view.ElementContainer)5 ButtonsToolbarElement (com.revolsys.ui.html.view.ButtonsToolbarElement)4 TabElementContainer (com.revolsys.ui.html.view.TabElementContainer)4 Page (com.revolsys.ui.web.config.Page)4 ArrayList (java.util.ArrayList)4 HashMap (java.util.HashMap)3 LinkedHashMap (java.util.LinkedHashMap)3 HttpServletRequest (javax.servlet.http.HttpServletRequest)3 Form (com.revolsys.ui.html.form.Form)2 HtmlUiBuilderObjectForm (com.revolsys.ui.html.form.HtmlUiBuilderObjectForm)2 UiBuilderObjectForm (com.revolsys.ui.html.form.UiBuilderObjectForm)2 KeySerializer (com.revolsys.ui.html.serializer.key.KeySerializer)2 PageNotFoundException (com.revolsys.ui.web.exception.PageNotFoundException)2 OutputStream (java.io.OutputStream)2 HashSet (java.util.HashSet)2 Map (java.util.Map)2 XmlWriter (com.revolsys.record.io.format.xml.XmlWriter)1 DefinitionListLayout (com.revolsys.ui.html.layout.DefinitionListLayout)1 UnorderedListLayout (com.revolsys.ui.html.layout.UnorderedListLayout)1