use of com.revolsys.ui.web.config.SiteNodeController in project com.revolsys.open by revolsys.
the class DisplayConfigAction method addSiteNode.
private void addSiteNode(final ElementContainer view, final SiteNode siteNode) {
if (siteNode != null) {
final ElementContainer nodeView = new ElementContainer();
view.add(nodeView);
final String path = siteNode.getPath();
if (path == null) {
nodeView.add(new XmlTagElement(HtmlElem.H4, "/"));
} else {
nodeView.add(new XmlTagElement(HtmlElem.H4, path));
}
final SiteNodeController controller = siteNode.getController();
if (controller instanceof PageController) {
final PageController pageController = (PageController) controller;
final ElementContainer pageView = new ElementContainer(new DefinitionListLayout());
nodeView.add(pageView);
pageView.add("Actions");
final ElementContainer actionsView = new ElementContainer(new UnorderedListLayout());
pageView.add(actionsView);
for (final Iterator actions = pageController.getActions().iterator(); actions.hasNext(); ) {
final Action action = (Action) actions.next();
actionsView.add(action.getClass().getName());
}
pageView.add("Menus");
final ElementContainer menusView = new ElementContainer(new UnorderedListLayout());
pageView.add(menusView);
for (final Iterator menus = pageController.getMenus().entrySet().iterator(); menus.hasNext(); ) {
final Map.Entry entry = (Entry) menus.next();
final String name = (String) entry.getKey();
final Menu menu = (Menu) entry.getValue();
addMenu(menusView, name, menu);
}
}
final Collection nodes = siteNode.getNodes();
if (!nodes.isEmpty()) {
final ElementContainer childNodesView = new ElementContainer(new UnorderedListLayout());
nodeView.add(childNodesView);
for (final Iterator nodeIter = nodes.iterator(); nodeIter.hasNext(); ) {
final SiteNode childNode = (SiteNode) nodeIter.next();
addSiteNode(childNodesView, childNode);
}
}
}
}
use of com.revolsys.ui.web.config.SiteNodeController in project com.revolsys.open by revolsys.
the class StylesTag 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 Collection styles = page.getStyles();
String contextPath = context.getContextPath();
if (contextPath.equals("/")) {
contextPath = "";
}
final JspWriter out = this.pageContext.getOut();
final Iterator styleIter = styles.iterator();
while (styleIter.hasNext()) {
final String style = (String) styleIter.next();
out.print("<link rel=\"stylesheet\" href=\"");
out.print(style);
out.println("\" type=\"text/css\" />");
}
}
}
final SiteNodeController controller = (SiteNodeController) this.pageContext.findAttribute("rsWebController");
if (controller instanceof PageController) {
final PageController page = (PageController) controller;
serializeElements(page.getStyles());
}
return SKIP_BODY;
} catch (final Throwable t) {
log.error(t.getMessage(), t);
throw new JspTagException(t.getMessage(), t);
}
}
use of com.revolsys.ui.web.config.SiteNodeController 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;
}
}
}
use of com.revolsys.ui.web.config.SiteNodeController 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;
}
Aggregations