Search in sources :

Example 1 with Tool

use of org.olat.core.gui.components.stack.TooledStackedPanel.Tool in project OpenOLAT by OpenOLAT.

the class TooledStackedPanelRenderer method render.

@Override
public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) {
    TooledStackedPanel panel = (TooledStackedPanel) source;
    List<Link> breadCrumbs = panel.getBreadCrumbs();
    List<Tool> tools = panel.getTools();
    // panel div
    String mainCssClass = panel.getCssClass();
    sb.append("<div id='o_c").append(source.getDispatchID()).append("' class='").append(mainCssClass, mainCssClass != null).append("'>");
    if (breadCrumbs.size() > panel.getInvisibleCrumb() || tools.size() > 0) {
        sb.append("<div id='o_main_toolbar' class='o_toolbar'>");
        if (breadCrumbs.size() > panel.getInvisibleCrumb()) {
            sb.append("<div class='o_breadcrumb'><ol class='breadcrumb'>");
            Link backLink = panel.getBackLink();
            int numOfCrumbs = breadCrumbs.size();
            if (backLink.isVisible() && numOfCrumbs > panel.getInvisibleCrumb()) {
                sb.append("<li class='o_breadcrumb_back'>");
                backLink.getHTMLRendererSingleton().render(renderer, sb, backLink, ubu, translator, renderResult, args);
                sb.append("</li>");
                for (Link crumb : breadCrumbs) {
                    sb.append("<li").append(" class='active'", breadCrumbs.indexOf(crumb) == numOfCrumbs - 1).append(">");
                    renderer.render(crumb, sb, args);
                    sb.append("</li>");
                }
            }
            Link closeLink = panel.getCloseLink();
            if (closeLink.isVisible()) {
                sb.append("<li class='o_breadcrumb_close'>");
                closeLink.getHTMLRendererSingleton().render(renderer, sb, closeLink, ubu, translator, renderResult, args);
                sb.append("</li>");
            }
            // o_breadcrumb
            sb.append("</ol></div>");
        }
        if (panel.isToolbarAutoEnabled() || panel.isToolbarEnabled()) {
            List<Tool> leftTools = getTools(tools, Align.left);
            List<Tool> rightEdgeTools = getTools(tools, Align.rightEdge);
            List<Tool> rightTools = getTools(tools, Align.right);
            List<Tool> segmentsTools = getTools(tools, Align.segment);
            List<Tool> notAlignedTools = getTools(tools, null);
            if (panel.isToolbarEnabled() || (panel.isToolbarAutoEnabled() && (leftTools.size() > 0 || rightTools.size() > 0 || rightTools.size() > 0 || notAlignedTools.size() > 0 || segmentsTools.size() > 0))) {
                sb.append("<div class='o_tools_container'><div class='container-fluid'>");
                if (leftTools.size() > 0) {
                    sb.append("<ul class='o_tools o_tools_left list-inline'>");
                    renderTools(leftTools, renderer, sb, args);
                    sb.append("</ul>");
                }
                if (rightEdgeTools.size() > 0) {
                    sb.append("<ul class='o_tools o_tools_right_edge list-inline'>");
                    renderTools(rightEdgeTools, renderer, sb, args);
                    sb.append("</ul>");
                }
                if (rightTools.size() > 0) {
                    sb.append("<ul class='o_tools o_tools_right list-inline'>");
                    renderTools(rightTools, renderer, sb, args);
                    sb.append("</ul>");
                }
                if (notAlignedTools.size() > 0) {
                    sb.append("<ul class='o_tools o_tools_center list-inline'>");
                    renderTools(notAlignedTools, renderer, sb, args);
                    sb.append("</ul>");
                }
                // container-fluid,
                sb.append("</div>");
                if (segmentsTools.size() > 0) {
                    boolean segmentAlone = leftTools.isEmpty() && rightTools.isEmpty() && rightTools.isEmpty() && notAlignedTools.isEmpty();
                    sb.append("<ul class='o_tools o_tools_segments list-inline").append(" o_tools_segments_alone", segmentAlone).append("'>");
                    Tool segmentTool = segmentsTools.get(segmentsTools.size() - 1);
                    List<Tool> lastSegmentTool = Collections.singletonList(segmentTool);
                    renderTools(lastSegmentTool, renderer, sb, args);
                    sb.append("</ul>");
                }
                sb.append("</div>");
            }
        }
        // o_toolbar
        sb.append("</div>");
    }
    if (StringHelper.containsNonWhitespace(panel.getMessage())) {
        sb.append("<div class='o_toolbar_message ");
        if (StringHelper.containsNonWhitespace(panel.getMessageCssClass())) {
            sb.append(panel.getMessageCssClass());
        }
        sb.append("'>").append(panel.getMessage()).append("</div>");
    }
    Component toRender = panel.getContent();
    if (toRender != null) {
        renderer.render(sb, toRender, args);
    }
    // end of panel div
    sb.append("</div>");
}
Also used : Component(org.olat.core.gui.components.Component) Link(org.olat.core.gui.components.link.Link) Tool(org.olat.core.gui.components.stack.TooledStackedPanel.Tool)

Example 2 with Tool

use of org.olat.core.gui.components.stack.TooledStackedPanel.Tool in project openolat by klemens.

the class TooledStackedPanelRenderer method renderTools.

private void renderTools(List<Tool> tools, Renderer renderer, StringOutput sb, String[] args) {
    int numOfTools = tools.size();
    for (int i = 0; i < numOfTools; i++) {
        Tool tool = tools.get(i);
        Component cmp = tool.getComponent();
        String cssClass = tool.getToolCss();
        if (cssClass == null) {
            // use defaults
            if (cmp instanceof Dropdown) {
                cssClass = "o_tool_dropdown dropdown";
            } else if (cmp instanceof Link && !cmp.isEnabled()) {
                cssClass = "o_text";
            } else {
                cssClass = "o_tool";
            }
        }
        sb.append("<li class='").append(cssClass).append("'>");
        renderer.render(cmp, sb, args);
        sb.append("</li>");
    }
}
Also used : Dropdown(org.olat.core.gui.components.dropdown.Dropdown) Component(org.olat.core.gui.components.Component) Link(org.olat.core.gui.components.link.Link) Tool(org.olat.core.gui.components.stack.TooledStackedPanel.Tool)

Example 3 with Tool

use of org.olat.core.gui.components.stack.TooledStackedPanel.Tool in project openolat by klemens.

the class TooledStackedPanelRenderer method render.

@Override
public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) {
    TooledStackedPanel panel = (TooledStackedPanel) source;
    List<Link> breadCrumbs = panel.getBreadCrumbs();
    List<Tool> tools = panel.getTools();
    // panel div
    String mainCssClass = panel.getCssClass();
    sb.append("<div id='o_c").append(source.getDispatchID()).append("' class='").append(mainCssClass, mainCssClass != null).append("'>");
    if (breadCrumbs.size() > panel.getInvisibleCrumb() || tools.size() > 0) {
        sb.append("<div id='o_main_toolbar' class='o_toolbar'>");
        if (breadCrumbs.size() > panel.getInvisibleCrumb()) {
            sb.append("<div class='o_breadcrumb'><ol class='breadcrumb'>");
            Link backLink = panel.getBackLink();
            int numOfCrumbs = breadCrumbs.size();
            if (backLink.isVisible() && numOfCrumbs > panel.getInvisibleCrumb()) {
                sb.append("<li class='o_breadcrumb_back'>");
                backLink.getHTMLRendererSingleton().render(renderer, sb, backLink, ubu, translator, renderResult, args);
                sb.append("</li>");
                for (Link crumb : breadCrumbs) {
                    sb.append("<li").append(" class='active'", breadCrumbs.indexOf(crumb) == numOfCrumbs - 1).append(">");
                    renderer.render(crumb, sb, args);
                    sb.append("</li>");
                }
            }
            Link closeLink = panel.getCloseLink();
            if (closeLink.isVisible()) {
                sb.append("<li class='o_breadcrumb_close'>");
                closeLink.getHTMLRendererSingleton().render(renderer, sb, closeLink, ubu, translator, renderResult, args);
                sb.append("</li>");
            }
            // o_breadcrumb
            sb.append("</ol></div>");
        }
        if (panel.isToolbarAutoEnabled() || panel.isToolbarEnabled()) {
            List<Tool> leftTools = getTools(tools, Align.left);
            List<Tool> rightEdgeTools = getTools(tools, Align.rightEdge);
            List<Tool> rightTools = getTools(tools, Align.right);
            List<Tool> segmentsTools = getTools(tools, Align.segment);
            List<Tool> notAlignedTools = getTools(tools, null);
            if (panel.isToolbarEnabled() || (panel.isToolbarAutoEnabled() && (leftTools.size() > 0 || rightTools.size() > 0 || rightTools.size() > 0 || notAlignedTools.size() > 0 || segmentsTools.size() > 0))) {
                sb.append("<div class='o_tools_container'><div class='container-fluid'>");
                if (leftTools.size() > 0) {
                    sb.append("<ul class='o_tools o_tools_left list-inline'>");
                    renderTools(leftTools, renderer, sb, args);
                    sb.append("</ul>");
                }
                if (rightEdgeTools.size() > 0) {
                    sb.append("<ul class='o_tools o_tools_right_edge list-inline'>");
                    renderTools(rightEdgeTools, renderer, sb, args);
                    sb.append("</ul>");
                }
                if (rightTools.size() > 0) {
                    sb.append("<ul class='o_tools o_tools_right list-inline'>");
                    renderTools(rightTools, renderer, sb, args);
                    sb.append("</ul>");
                }
                if (notAlignedTools.size() > 0) {
                    sb.append("<ul class='o_tools o_tools_center list-inline'>");
                    renderTools(notAlignedTools, renderer, sb, args);
                    sb.append("</ul>");
                }
                // container-fluid,
                sb.append("</div>");
                if (segmentsTools.size() > 0) {
                    boolean segmentAlone = leftTools.isEmpty() && rightTools.isEmpty() && rightTools.isEmpty() && notAlignedTools.isEmpty();
                    sb.append("<ul class='o_tools o_tools_segments list-inline").append(" o_tools_segments_alone", segmentAlone).append("'>");
                    Tool segmentTool = segmentsTools.get(segmentsTools.size() - 1);
                    List<Tool> lastSegmentTool = Collections.singletonList(segmentTool);
                    renderTools(lastSegmentTool, renderer, sb, args);
                    sb.append("</ul>");
                }
                sb.append("</div>");
            }
        }
        // o_toolbar
        sb.append("</div>");
    }
    if (StringHelper.containsNonWhitespace(panel.getMessage())) {
        sb.append("<div class='o_toolbar_message ");
        if (StringHelper.containsNonWhitespace(panel.getMessageCssClass())) {
            sb.append(panel.getMessageCssClass());
        }
        sb.append("'>").append(panel.getMessage()).append("</div>");
    }
    Component toRender = panel.getContent();
    if (toRender != null) {
        renderer.render(sb, toRender, args);
    }
    // end of panel div
    sb.append("</div>");
}
Also used : Component(org.olat.core.gui.components.Component) Link(org.olat.core.gui.components.link.Link) Tool(org.olat.core.gui.components.stack.TooledStackedPanel.Tool)

Example 4 with Tool

use of org.olat.core.gui.components.stack.TooledStackedPanel.Tool in project OpenOLAT by OpenOLAT.

the class TooledStackedPanelRenderer method renderTools.

private void renderTools(List<Tool> tools, Renderer renderer, StringOutput sb, String[] args) {
    int numOfTools = tools.size();
    for (int i = 0; i < numOfTools; i++) {
        Tool tool = tools.get(i);
        Component cmp = tool.getComponent();
        String cssClass = tool.getToolCss();
        if (cssClass == null) {
            // use defaults
            if (cmp instanceof Dropdown) {
                cssClass = "o_tool_dropdown dropdown";
            } else if (cmp instanceof Link && !cmp.isEnabled()) {
                cssClass = "o_text";
            } else {
                cssClass = "o_tool";
            }
        }
        sb.append("<li class='").append(cssClass).append("'>");
        renderer.render(cmp, sb, args);
        sb.append("</li>");
    }
}
Also used : Dropdown(org.olat.core.gui.components.dropdown.Dropdown) Component(org.olat.core.gui.components.Component) Link(org.olat.core.gui.components.link.Link) Tool(org.olat.core.gui.components.stack.TooledStackedPanel.Tool)

Aggregations

Component (org.olat.core.gui.components.Component)4 Link (org.olat.core.gui.components.link.Link)4 Tool (org.olat.core.gui.components.stack.TooledStackedPanel.Tool)4 Dropdown (org.olat.core.gui.components.dropdown.Dropdown)2