Search in sources :

Example 11 with Link

use of org.olat.core.gui.components.link.Link in project OpenOLAT by OpenOLAT.

the class BreadcrumbedStackedPanel method popController.

private BreadCrumb popController(Component source) {
    int index = stack.indexOf(source);
    if (index < (stack.size() - 1)) {
        BreadCrumb popedCrumb = null;
        for (int i = stack.size(); i-- > (index + 1); ) {
            Link link = stack.remove(i);
            popedCrumb = (BreadCrumb) link.getUserObject();
            popedCrumb.dispose();
        }
        setContent(index);
        updateCloseLinkTitle();
        return popedCrumb;
    }
    return null;
}
Also used : Link(org.olat.core.gui.components.link.Link)

Example 12 with Link

use of org.olat.core.gui.components.link.Link in project OpenOLAT by OpenOLAT.

the class ButtonGroupComponentRenderer method render.

@Override
public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) {
    ButtonGroupComponent cmp = (ButtonGroupComponent) source;
    sb.append("<div id='o_c").append(cmp.getDispatchID()).append("' class='btn-group btn-group-sm");
    if (StringHelper.containsNonWhitespace(cmp.getElementCssClass())) {
        sb.append(" ").append(cmp.getElementCssClass());
    }
    sb.append("'>");
    List<Link> buttons = cmp.getButtons();
    for (Link button : buttons) {
        if (cmp.getSelectedButton() == button) {
            button.setCustomEnabledLinkCSS("btn btn-primary");
        } else {
            button.setCustomEnabledLinkCSS("btn btn-default");
        }
        renderer.render(button, sb, args);
    }
    sb.append("</div>");
}
Also used : Link(org.olat.core.gui.components.link.Link)

Example 13 with Link

use of org.olat.core.gui.components.link.Link in project OpenOLAT by OpenOLAT.

the class TooledStackedPanel method getComponents.

@Override
public Iterable<Component> getComponents() {
    List<Component> cmps = new ArrayList<>();
    cmps.add(getBackLink());
    cmps.add(getContent());
    for (Link crumb : stack) {
        cmps.add(crumb);
    }
    for (Tool tool : getTools()) {
        cmps.add(tool.getComponent());
    }
    return cmps;
}
Also used : ArrayList(java.util.ArrayList) Component(org.olat.core.gui.components.Component) Link(org.olat.core.gui.components.link.Link)

Example 14 with Link

use of org.olat.core.gui.components.link.Link 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 15 with Link

use of org.olat.core.gui.components.link.Link in project OpenOLAT by OpenOLAT.

the class BreadCrumbController method resetCrumbTexts.

/**
 * Reset all texts on the crumb path
 */
public void resetCrumbTexts() {
    for (Link link : breadCrumbLinks) {
        CrumbController crumbController = (CrumbController) link.getUserObject();
        link.setCustomDisplayText(crumbController.getCrumbLinkText());
        link.setTitle(crumbController.getCrumbLinkHooverText());
    }
}
Also used : Link(org.olat.core.gui.components.link.Link)

Aggregations

Link (org.olat.core.gui.components.link.Link)234 ArrayList (java.util.ArrayList)50 Component (org.olat.core.gui.components.Component)26 Identity (org.olat.core.id.Identity)22 Controller (org.olat.core.gui.control.Controller)18 CloseableModalController (org.olat.core.gui.control.generic.closablewrapper.CloseableModalController)16 FormLink (org.olat.core.gui.components.form.flexible.elements.FormLink)14 List (java.util.List)12 VelocityContainer (org.olat.core.gui.components.velocity.VelocityContainer)12 BasicController (org.olat.core.gui.control.controller.BasicController)12 Date (java.util.Date)10 OlatCmdEvent (org.olat.core.gui.components.htmlsite.OlatCmdEvent)10 Event (org.olat.core.gui.control.Event)10 AbstractArtefact (org.olat.portfolio.model.artefacts.AbstractArtefact)10 DialogBoxController (org.olat.core.gui.control.generic.modal.DialogBoxController)9 VetoableCloseController (org.olat.core.gui.control.VetoableCloseController)8 WindowControl (org.olat.core.gui.control.WindowControl)8 CloseableCalloutWindowController (org.olat.core.gui.control.generic.closablewrapper.CloseableCalloutWindowController)8 PortfolioStructure (org.olat.portfolio.model.structel.PortfolioStructure)8 HashSet (java.util.HashSet)6