Search in sources :

Example 6 with Page

use of com.revolsys.ui.web.config.Page 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 7 with Page

use of com.revolsys.ui.web.config.Page in project com.revolsys.open by revolsys.

the class WebUiFilter method doFilter.

public void doFilter(final HttpServletRequest request, final HttpServletResponse response, final FilterChain chain) throws IOException, ServletException {
    if (this.rsWebUiConfig != null) {
        try {
            final HttpServletRequest httpRequest = request;
            final HttpServletResponse httpResponse = response;
            final String contextPath = httpRequest.getContextPath();
            Page page;
            try {
                page = this.rsWebUiConfig.getPage(request.getServletPath() + request.getPathInfo());
            } catch (final PageNotFoundException e) {
                page = new Page(null, null, "/", false);
            }
            WebUiContext.set(new WebUiContext(this.rsWebUiConfig, contextPath, page, httpRequest, httpResponse));
            request.setAttribute("rsWebUiConfig", this.rsWebUiConfig);
            chain.doFilter(request, response);
        } finally {
            WebUiContext.set(null);
        }
    } else {
        try {
            final String path = request.getServletPath();
            final String serverName = request.getServerName();
            if (this.applicationContext.containsBean(serverName)) {
                this.site = (Site) this.applicationContext.getBean(serverName);
            } else {
                LOG.info("using default site");
                this.site = (Site) this.applicationContext.getBean("default");
            }
            if (this.site != null) {
                final SiteNodeController controller = this.site.getController(path);
                LOG.debug(path + "=" + controller);
                request.setAttribute("site", this.site);
                request.setAttribute("rsWebController", controller);
                if (controller != null) {
                    controller.process(this.servletContext, request, response);
                    return;
                }
            }
            chain.doFilter(request, response);
        } catch (final RuntimeException e) {
            LOG.error(e.getMessage(), e);
            throw e;
        } catch (final ServletException e) {
            LOG.error(e.getMessage(), e);
            throw e;
        }
    }
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) ServletException(javax.servlet.ServletException) SiteNodeController(com.revolsys.ui.web.config.SiteNodeController) PageNotFoundException(com.revolsys.ui.web.exception.PageNotFoundException) HttpServletResponse(javax.servlet.http.HttpServletResponse) Page(com.revolsys.ui.web.config.Page) WebUiContext(com.revolsys.ui.web.config.WebUiContext)

Example 8 with Page

use of com.revolsys.ui.web.config.Page in project com.revolsys.open by revolsys.

the class ScriptsTag method doStartTag.

/**
 * Process the start tag.
 *
 * @return SKIP_BODY
 * @throws JspException If there was an exception processing the tag.
 */
@Override
public int doStartTag() throws JspException {
    try {
        final WebUiContext context = WebUiContext.get();
        if (context != null) {
            final Page page = context.getPage();
            if (page != null) {
                final JspWriter out = this.pageContext.getOut();
                String contextPath = context.getContextPath();
                if (contextPath.equals("/")) {
                    contextPath = "";
                }
                final Iterator scripts = page.getScripts().iterator();
                while (scripts.hasNext()) {
                    final String script = (String) scripts.next();
                    out.print("<script type=\"text/javascript\" src=\"");
                    out.print(contextPath);
                    out.print(script);
                    out.println("\">\n</script>");
                }
            }
        }
        final SiteNodeController controller = (SiteNodeController) this.pageContext.findAttribute("rsWebController");
        if (controller instanceof PageController) {
            final PageController page = (PageController) controller;
            writeScripts(page.getScripts());
        }
    } catch (final Throwable t) {
        log.error(t.getMessage(), t);
    }
    return SKIP_BODY;
}
Also used : SiteNodeController(com.revolsys.ui.web.config.SiteNodeController) PageController(com.revolsys.ui.web.config.PageController) Iterator(java.util.Iterator) Page(com.revolsys.ui.web.config.Page) WebUiContext(com.revolsys.ui.web.config.WebUiContext) JspWriter(javax.servlet.jsp.JspWriter)

Example 9 with Page

use of com.revolsys.ui.web.config.Page in project com.revolsys.open by revolsys.

the class IafServlet method processRequest.

/**
 * Process the service request, uses the full path name of the request to
 * finds the page definition. The component heirarchy, list of request
 * processors and the menu tree from the config are used to handle the
 * request. If a PageNotFoundException was thrown by any of the request
 * processors a 404 response error code is set and no further processing is
 * performed. If a RedirectException is thrown the response is redirected to
 * the url from the exception.
 *
 * @param request the servlet request
 * @param response the servlet response
 * @exception ServletException if any unhandled exceptions occured during the
 *              processing of the request
 * @exception IOException if there was a problem sending data to the client
 * @see PageNotFoundException
 * @see RedirectException
 */
public void processRequest(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
    try {
        String path = request.getServletPath();
        final String pathInfo = request.getPathInfo();
        if (pathInfo != null && !path.endsWith(pathInfo)) {
            path += pathInfo;
        }
        boolean secure = false;
        final String contextPath = request.getContextPath();
        if (path.endsWith(".wp")) {
            path = path.substring(0, path.length() - 3);
        } else if (path.endsWith(".wps")) {
            secure = true;
            path = path.substring(0, path.length() - 4);
        }
        final Page page = this.applicationConfig.getPage(contextPath + path);
        WebUiContext.set(new WebUiContext(this.applicationConfig, contextPath, page, request, response));
        if (page.isSecure() && !secure) {
            response.sendRedirect(page.getFullUrl());
            return;
        }
        processArguments(page, request);
        processAttributes(page, request);
        request.setAttribute("niceConfig", this.applicationConfig);
        request.setAttribute("nicePage", page);
        final String menuName = request.getParameter("menuName");
        request.setAttribute("menuSelected", menuName);
        request.setAttribute("title", page.getTitle());
        page.invokeActions(this.servletContext, request, response);
        final Layout layout = page.getLayout();
        if (layout != null) {
            final String file = layout.getFile();
            if (file != null && file.length() > 0) {
                forward(file, request, response);
            }
        }
    } catch (final FinishRequestException fre) {
        // Do nothing as the actions have handled the request
        return;
    } catch (final AuthenticationException pne) {
        response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
    } catch (final PageNotFoundException pne) {
        log.error(pne.getMessage(), pne);
        response.sendError(HttpServletResponse.SC_NOT_FOUND);
    } catch (final RedirectException re) {
        response.sendRedirect(response.encodeRedirectURL(re.getUrl()));
    } catch (final Throwable t) {
        log.error(t.getMessage(), t);
        throw new ServletException(t);
    }
}
Also used : ServletException(javax.servlet.ServletException) FinishRequestException(com.revolsys.ui.web.exception.FinishRequestException) PageNotFoundException(com.revolsys.ui.web.exception.PageNotFoundException) Layout(com.revolsys.ui.web.config.Layout) AuthenticationException(com.revolsys.ui.web.exception.AuthenticationException) Page(com.revolsys.ui.web.config.Page) WebUiContext(com.revolsys.ui.web.config.WebUiContext) RedirectException(com.revolsys.ui.web.exception.RedirectException)

Example 10 with Page

use of com.revolsys.ui.web.config.Page in project com.revolsys.open by revolsys.

the class HtmlUiBuilder method initPages.

protected void initPages() {
    final Class<?> clazz = getClass();
    final Method[] methods = clazz.getMethods();
    for (final Method method : methods) {
        final String name = method.getName();
        final RequestMapping requestMapping = method.getAnnotation(RequestMapping.class);
        if (requestMapping != null) {
            String pageName = requestMapping.name();
            if (Property.isEmpty(pageName)) {
                pageName = name;
            }
            String title = requestMapping.title();
            if (Property.isEmpty(title)) {
                title = CaseConverter.toCapitalizedWords(pageName);
            }
            final boolean secure = requestMapping.secure();
            String path = null;
            final String[] paths = requestMapping.value();
            if (paths.length > 0) {
                path = paths[0];
            }
            final String[] fieldNames = requestMapping.fieldNames();
            if (fieldNames.length > 0) {
                newView(pageName, Arrays.asList(fieldNames));
                newKeyList(pageName, Arrays.asList(fieldNames));
                final ColumnSortOrder[] columnSortOrder = requestMapping.columnSortOrder();
                final List<List<Object>> tableSortOrder = new ArrayList<>();
                for (final ColumnSortOrder sortOrder : columnSortOrder) {
                    int fieldIndex = -1;
                    final String sortFieldName = sortOrder.value();
                    for (int i = 0; i < fieldNames.length; i++) {
                        final String fieldName = fieldNames[i];
                        if (sortFieldName.equals(fieldName)) {
                            fieldIndex = i;
                        }
                    }
                    final boolean ascending = sortOrder.ascending();
                    String direction;
                    if (ascending) {
                        direction = "asc";
                    } else {
                        direction = "desc";
                    }
                    tableSortOrder.add(Arrays.asList(fieldIndex, direction));
                }
                if (!tableSortOrder.isEmpty()) {
                    setListSortOrder(pageName, tableSortOrder);
                }
            }
            final String permission = requestMapping.permission();
            final Page page = new Page(pageName, title, path, secure);
            page.setPermission(permission);
            addPage(page);
        }
    }
}
Also used : ArrayList(java.util.ArrayList) Page(com.revolsys.ui.web.config.Page) Method(java.lang.reflect.Method) ColumnSortOrder(com.revolsys.ui.web.annotation.ColumnSortOrder) RequestMapping(com.revolsys.ui.web.annotation.RequestMapping) List(java.util.List) ArrayList(java.util.ArrayList)

Aggregations

Page (com.revolsys.ui.web.config.Page)14 WebUiContext (com.revolsys.ui.web.config.WebUiContext)5 Menu (com.revolsys.ui.model.Menu)4 PageNotFoundException (com.revolsys.ui.web.exception.PageNotFoundException)4 HttpServletRequest (javax.servlet.http.HttpServletRequest)4 ButtonsToolbarElement (com.revolsys.ui.html.view.ButtonsToolbarElement)3 ElementContainer (com.revolsys.ui.html.view.ElementContainer)3 TabElementContainer (com.revolsys.ui.html.view.TabElementContainer)3 SiteNodeController (com.revolsys.ui.web.config.SiteNodeController)3 Iterator (java.util.Iterator)3 JspWriter (javax.servlet.jsp.JspWriter)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 PageController (com.revolsys.ui.web.config.PageController)2 HashMap (java.util.HashMap)2 HashSet (java.util.HashSet)2 LinkedHashMap (java.util.LinkedHashMap)2 ServletException (javax.servlet.ServletException)2 KeySerializer (com.revolsys.ui.html.serializer.key.KeySerializer)1