Search in sources :

Example 6 with Menu

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

the class HtmlUiBuilder method addObjectViewPage.

public void addObjectViewPage(final TabElementContainer tabs, final Object object, final String prefix) {
    final HttpServletRequest request = getRequest();
    if (object == null) {
        throw new PageNotFoundException();
    } else {
        final String pageName = getName(prefix, "view");
        final Page page = getPage(pageName);
        if (page == null) {
            throw new PageNotFoundException("Page not found " + pageName);
        } else {
            final List<KeySerializer> serializers = getSerializers(pageName, "view");
            final Element detailView = newDetailView(object, serializers);
            setPageTitle(request, pageName);
            final Menu actionMenu = new Menu();
            final Menu editMenu = addMenuItem(actionMenu, prefix, "edit", "Edit", "_top");
            if (editMenu != null) {
                editMenu.addProperty("buttonClass", "btn-primary");
            }
            final ElementContainer view = new ElementContainer(detailView);
            addMenuElement(view, actionMenu);
            final String tabId = getTypeName() + "_" + pageName;
            final String title = getPageTitle(pageName);
            tabs.add(tabId, title, view);
        }
    }
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) PageNotFoundException(com.revolsys.ui.web.exception.PageNotFoundException) ElementContainer(com.revolsys.ui.html.view.ElementContainer) TabElementContainer(com.revolsys.ui.html.view.TabElementContainer) ButtonsToolbarElement(com.revolsys.ui.html.view.ButtonsToolbarElement) Element(com.revolsys.ui.html.view.Element) Page(com.revolsys.ui.web.config.Page) Menu(com.revolsys.ui.model.Menu) KeySerializer(com.revolsys.ui.html.serializer.key.KeySerializer)

Example 7 with Menu

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

the class HtmlUiBuilder method newDataTable.

public ElementContainer newDataTable(final HttpServletRequest request, final String pageName, Map<String, ? extends Object> parameters, final Collection<? extends Object> rows) {
    parameters = new HashMap<>(parameters);
    final List<KeySerializer> serializers = getSerializers(pageName, "list");
    final RowsTableSerializer model = new KeySerializerTableSerializer(serializers, rows);
    final String typeName = getTypeName();
    final TableView tableView = new TableView(model, typeName + " dataTable no-footer");
    tableView.setWidth("100%");
    final String tableId = typeName + "_" + pageName + "_table";
    tableView.setId(tableId);
    tableView.setNoRecordsMessgae(null);
    final Map<String, Object> tableParams = new LinkedHashMap<>();
    tableParams.put("stateSave", true);
    tableParams.put("autoWidth", true);
    tableParams.put("dom", Maps.getString(parameters, "dom", "frtiS"));
    final Boolean ordering = Maps.getBoolean(parameters, "ordering");
    if (ordering != null) {
        tableParams.put("ordering", ordering);
    }
    final String scrollY = (String) parameters.get("scrollY");
    if (scrollY == null) {
        tableParams.put("scrollY", "300px");
    } else {
        tableParams.put("scrollY", scrollY);
    }
    final String scrollX = (String) parameters.get("scrollX");
    if (scrollX == null) {
        tableParams.put("scrollX", "true");
    } else {
        tableParams.put("scrollX", scrollX);
    }
    tableParams.put("order", getListSortOrder(pageName));
    Boolean serverSide = (Boolean) parameters.get("serverSide");
    final String ajaxSource = (String) parameters.get("ajaxSource");
    if (Property.hasValue(ajaxSource)) {
        if (serverSide == null) {
            serverSide = true;
        }
        tableParams.put("serverSide", serverSide);
        tableParams.put("ajax", ajaxSource);
    } else if (serverSide == null) {
        serverSide = false;
    }
    tableParams.put("scroller", Collections.singletonMap("loadingIndicator", true));
    final List<Map<String, Object>> columnDefs = new ArrayList<>();
    int i = 0;
    for (final KeySerializer serializer : serializers) {
        final Map<String, Object> columnDef = new LinkedHashMap<>();
        columnDef.put("targets", Arrays.asList(i));
        columnDef.put("name", serializer.getKey());
        columnDef.put("className", serializer.getKey().replaceAll("[^A-Za-z0-9]", "_"));
        columnDef.put("title", serializer.getLabel());
        final Boolean sortable = serializer.getProperty("sortable");
        if (sortable != null) {
            columnDef.put("orderable", sortable);
        }
        final Boolean searchable = serializer.getProperty("searchable");
        if (searchable != null) {
            columnDef.put("searchable", searchable);
        }
        final Boolean visible = serializer.getProperty("visible");
        if (visible != null) {
            columnDef.put("visible", visible);
        }
        final String width = serializer.getWidth();
        if (width != null) {
            columnDef.put("width", width);
        }
        columnDefs.add(columnDef);
        i++;
    }
    if (!columnDefs.isEmpty()) {
        tableParams.put("columnDefs", columnDefs);
    }
    Number scrollYPercent = (Number) parameters.get("scrollYPercent");
    if (scrollYPercent == null) {
        if (scrollY == null) {
            scrollYPercent = 0;
        } else {
            scrollYPercent = 0.98;
        }
    }
    final Script script = new Script();
    String jsonMap = Json.toString(tableParams);
    jsonMap = jsonMap.substring(0, jsonMap.length() - 1) + ",\"createdRow\": function( row, data, dataIndex ) {refreshButtons(row);}" + ",\"initComplete\": function() {$(this).DataTable().columns.adjust();}";
    jsonMap += "}";
    final StringBuffer scriptBody = new StringBuffer();
    scriptBody.append("$(document).ready(function() {\n");
    scriptBody.append("  var tableDiv = $('#");
    scriptBody.append(tableId);
    scriptBody.append(" table');\n");
    scriptBody.append("  var table = tableDiv.dataTable(");
    scriptBody.append(jsonMap);
    scriptBody.append("\n );\n");
    scriptBody.append("  tableShowEvents(table,");
    scriptBody.append(scrollYPercent);
    scriptBody.append(");\n");
    scriptBody.append("$(window).bind('resize', function () {$(table).DataTable().columns.adjust();} );");
    scriptBody.append("});");
    script.setContent(scriptBody.toString());
    final ElementContainer container = new ElementContainer(tableView, script);
    final String prefix = pageName.replaceAll("[lL]ist$", "");
    final Menu actionMenu = new Menu();
    final Menu addMenuItem = addMenuItem(actionMenu, prefix, "add", "Add", "_top");
    if (addMenuItem != null) {
        addMenuItem.addProperty("buttonClass", "btn-primary");
    }
    addListMenuItems(actionMenu, prefix);
    addMenuElement(container, actionMenu);
    return container;
}
Also used : KeySerializerTableSerializer(com.revolsys.ui.html.serializer.KeySerializerTableSerializer) Script(com.revolsys.ui.html.view.Script) ElementContainer(com.revolsys.ui.html.view.ElementContainer) TabElementContainer(com.revolsys.ui.html.view.TabElementContainer) ArrayList(java.util.ArrayList) KeySerializer(com.revolsys.ui.html.serializer.key.KeySerializer) LinkedHashMap(java.util.LinkedHashMap) Menu(com.revolsys.ui.model.Menu) RowsTableSerializer(com.revolsys.ui.html.serializer.RowsTableSerializer) Map(java.util.Map) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) TableView(com.revolsys.ui.html.view.TableView)

Example 8 with Menu

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

the class HtmlUiBuilder method addMenuItem.

public Menu addMenuItem(final Menu menu, final String prefix, final String pageName, final String linkTitle, final String target, final Map<String, Object> parameters) {
    final Page page = getPage(prefix, pageName);
    if (page != null) {
        final String url = page.getFullUrl(parameters);
        if (url != null) {
            final Menu menuItem = new Menu(linkTitle, url);
            menuItem.setTarget(target);
            menu.addMenuItem(menuItem);
            return menuItem;
        }
    }
    return null;
}
Also used : Page(com.revolsys.ui.web.config.Page) Menu(com.revolsys.ui.model.Menu)

Example 9 with Menu

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

the class MenuTag method serializeObject.

@Override
protected void serializeObject(final Writer out, final Object object) throws IOException {
    final Menu menu = (Menu) object;
    Logger.getLogger(MenuTag.class).debug(menu);
    this.element.setMenu(menu);
    this.element.serialize(out);
}
Also used : Menu(com.revolsys.ui.model.Menu)

Example 10 with Menu

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

the class BaseController method getActionMenu.

public Menu getActionMenu(final HttpServletRequest request) {
    final Menu requestMenu = (Menu) request.getAttribute("actionMenu");
    if (requestMenu == null) {
        return this.actionMenu;
    } else {
        final Menu newMenu = this.actionMenu.clone();
        newMenu.addAllMenuItems(requestMenu);
        return newMenu;
    }
}
Also used : Menu(com.revolsys.ui.model.Menu)

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