Search in sources :

Example 21 with Spacer

use of org.olat.core.gui.components.dropdown.Dropdown.Spacer in project OpenOLAT by OpenOLAT.

the class RepositoryEntryRuntimeController method initDeleteTools.

protected void initDeleteTools(Dropdown settingsDropdown, boolean needSpacer) {
    if (reSecurity.isEntryAdmin()) {
        boolean deleteManaged = RepositoryEntryManagedFlag.isManaged(re, RepositoryEntryManagedFlag.delete);
        if (needSpacer && settingsDropdown.size() > 0 && !deleteManaged) {
            settingsDropdown.addComponent(new Spacer("close-delete"));
        }
        if (!deleteManaged) {
            String type = translate(handler.getSupportedType());
            String deleteTitle = translate("details.delete.alt", new String[] { type });
            deleteLink = LinkFactory.createToolLink("delete", deleteTitle, this, "o_icon o_icon-fw o_icon_delete_item");
            deleteLink.setElementCssClass("o_sel_repo_close");
            settingsDropdown.addComponent(deleteLink);
        }
    }
}
Also used : Spacer(org.olat.core.gui.components.dropdown.Dropdown.Spacer)

Example 22 with Spacer

use of org.olat.core.gui.components.dropdown.Dropdown.Spacer in project OpenOLAT by OpenOLAT.

the class CourseRuntimeController method initToolsMyCourse.

private void initToolsMyCourse(ICourse course, UserCourseEnvironmentImpl uce) {
    boolean assessmentLock = isAssessmentLock();
    myCourse = new Dropdown("myCourse", "header.tools.mycourse", false, getTranslator());
    myCourse.setElementCssClass("dropdown-menu-right");
    myCourse.setIconCSS("o_icon o_icon_user");
    // Personal tools on right side
    CourseConfig cc = course.getCourseConfig();
    if ((course.hasAssessableNodes() || cc.isCertificateEnabled()) && !isGuestOnly && !assessmentLock && uce != null) {
        // link to efficiency statements should
        // - not appear when not configured in course configuration
        // - not appear when configured in course configuration but no assessable
        // node exist
        // - appear but dimmed when configured, assessable node exist but no
        // assessment data exists for user
        // - appear as link when configured, assessable node exist and assessment
        // data exists for user
        efficiencyStatementsLink = LinkFactory.createToolLink("efficiencystatement", translate("command.efficiencystatement"), this, "o_icon_certificate");
        efficiencyStatementsLink.setVisible(cc.isEfficencyStatementEnabled() || cc.isCertificateEnabled());
        myCourse.addComponent(efficiencyStatementsLink);
        if (cc.isEfficencyStatementEnabled() || cc.isCertificateEnabled()) {
            boolean certification = uce.hasEfficiencyStatementOrCertificate(false);
            efficiencyStatementsLink.setVisible(certification);
        }
    }
    if (!isGuestOnly && !assessmentLock) {
        noteLink = LinkFactory.createToolLink("personalnote", translate("command.personalnote"), this, "o_icon_notes");
        noteLink.setPopup(new LinkPopupSettings(750, 550, "notes"));
        myCourse.addComponent(noteLink);
    }
    if (allowBookmark && !isGuestOnly) {
        boolean marked = markManager.isMarked(getRepositoryEntry(), getIdentity(), null);
        String css = marked ? Mark.MARK_CSS_ICON : Mark.MARK_ADD_CSS_ICON;
        bookmarkLink = LinkFactory.createToolLink("bookmark", translate("command.bookmark"), this, css);
        bookmarkLink.setTitle(translate(marked ? "details.bookmark.remove" : "details.bookmark"));
        myCourse.addComponent(bookmarkLink);
    }
    if (uce != null) {
        if (myCourse.size() > 0 && (uce.getCoachedGroups().size() > 0 || uce.getParticipatingGroups().size() > 0 || uce.getWaitingLists().size() > 0)) {
            myCourse.addComponent(new Spacer(""));
        }
        // 2) add coached groups
        if (uce.getCoachedGroups().size() > 0) {
            for (BusinessGroup group : uce.getCoachedGroups()) {
                Link link = LinkFactory.createToolLink(CMD_START_GROUP_PREFIX + group.getKey(), "group", StringHelper.escapeHtml(group.getName()), this);
                link.setIconLeftCSS("o_icon o_icon-fw o_icon_group");
                link.setUserObject(group);
                link.setEnabled(!assessmentLock);
                myCourse.addComponent(link);
            }
        }
        // 3) add participating groups
        if (uce.getParticipatingGroups().size() > 0) {
            for (BusinessGroup group : uce.getParticipatingGroups()) {
                Link link = LinkFactory.createToolLink(CMD_START_GROUP_PREFIX + group.getKey(), "group", StringHelper.escapeHtml(group.getName()), this);
                link.setIconLeftCSS("o_icon o_icon-fw o_icon_group");
                link.setUserObject(group);
                link.setEnabled(!assessmentLock);
                myCourse.addComponent(link);
            }
        }
        // 5) add waiting-list groups
        if (uce.getWaitingLists().size() > 0) {
            for (BusinessGroup group : uce.getWaitingLists()) {
                int pos = businessGroupService.getPositionInWaitingListFor(getIdentity(), group);
                String name = StringHelper.escapeHtml(group.getName()) + " (" + pos + ")";
                Link link = LinkFactory.createToolLink(CMD_START_GROUP_PREFIX + group.getKey(), "group", name, this);
                link.setIconLeftCSS("o_icon o_icon-fw o_icon_group");
                link.setUserObject(group);
                link.setEnabled(false);
                myCourse.addComponent(link);
            }
        }
        if (repositoryService.isParticipantAllowedToLeave(getRepositoryEntry()) && !assessmentLock && !roles.isGuestOnly() && !uce.isCourseReadOnly() && isAllowedToLeave(uce)) {
            leaveLink = LinkFactory.createToolLink("sign.out", "leave", translate("sign.out"), this);
            leaveLink.setIconLeftCSS("o_icon o_icon-fw o_icon_sign_out");
            myCourse.addComponent(new Spacer("leaving-space"));
            myCourse.addComponent(leaveLink);
        }
    }
    if (myCourse.size() > 0) {
        toolbarPanel.addTool(myCourse, Align.right);
    }
}
Also used : BusinessGroup(org.olat.group.BusinessGroup) Spacer(org.olat.core.gui.components.dropdown.Dropdown.Spacer) LinkPopupSettings(org.olat.core.gui.components.link.LinkPopupSettings) Dropdown(org.olat.core.gui.components.dropdown.Dropdown) Link(org.olat.core.gui.components.link.Link) CourseConfig(org.olat.course.config.CourseConfig)

Example 23 with Spacer

use of org.olat.core.gui.components.dropdown.Dropdown.Spacer in project OpenOLAT by OpenOLAT.

the class DropdownRenderer method render.

@Override
public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) {
    Dropdown dropdown = (Dropdown) source;
    sb.append("<div class='btn-group'>", dropdown.isEmbbeded());
    Iterable<Component> components = dropdown.getComponents();
    if (dropdown.isButton()) {
        sb.append("<button type='button' class='btn btn-default dropdown-toggle");
    } else {
        sb.append("<a href='#' class='dropdown-toggle");
    }
    if (StringHelper.containsNonWhitespace(dropdown.getElementCssClass())) {
        sb.append(" ").append(dropdown.getElementCssClass());
    }
    sb.append("' data-toggle='dropdown'>");
    if (StringHelper.containsNonWhitespace(dropdown.getIconCSS())) {
        sb.append("<i class='").append(dropdown.getIconCSS()).append("'>&nbsp;</i>");
    }
    String i18nKey = dropdown.getI18nKey();
    if (StringHelper.containsNonWhitespace(i18nKey)) {
        String label;
        if (dropdown.isTranslated()) {
            label = i18nKey;
        } else {
            label = dropdown.getTranslator().translate(dropdown.getI18nKey());
        }
        sb.append("<span>").append(label).append("</span>");
    }
    sb.append(" <i class='o_icon o_icon_caret'> </i>");
    if (dropdown.isButton()) {
        sb.append("</button>");
    } else {
        sb.append("</a>");
    }
    sb.append("<ul class='dropdown-menu");
    if (StringHelper.containsNonWhitespace(dropdown.getElementCssClass())) {
        sb.append(" ").append(dropdown.getElementCssClass());
    }
    if (dropdown.getOrientation() == DropdownOrientation.right) {
        sb.append(" dropdown-menu-right");
    }
    sb.append("' role='menu'>");
    boolean wantSpacer = false;
    for (Component component : components) {
        if (component instanceof Spacer) {
            wantSpacer = true;
        } else if (component.isVisible()) {
            if (wantSpacer) {
                sb.append("<li class='divider'></li>");
                wantSpacer = false;
            }
            if (component.isEnabled()) {
                sb.append("<li>");
            } else {
                sb.append("<li class='disabled'>");
            }
            renderer.render(component, sb, args);
            sb.append("</li>");
        }
    }
    sb.append("</ul>").append("</div>", dropdown.isEmbbeded());
}
Also used : Spacer(org.olat.core.gui.components.dropdown.Dropdown.Spacer) Component(org.olat.core.gui.components.Component)

Example 24 with Spacer

use of org.olat.core.gui.components.dropdown.Dropdown.Spacer in project openolat by klemens.

the class ScormRuntimeController method initSettingsTools.

@Override
protected void initSettingsTools(Dropdown settingsDropdown) {
    super.initSettingsTools(settingsDropdown);
    if (reSecurity.isEntryAdmin()) {
        settingsDropdown.addComponent(new Spacer(""));
        deliveryOptionsLink = LinkFactory.createToolLink("layout", translate("tab.layout"), this, "o_sel_repo_layout");
        deliveryOptionsLink.setIconLeftCSS("o_icon o_icon-fw o_icon_options");
        settingsDropdown.addComponent(deliveryOptionsLink);
    }
}
Also used : Spacer(org.olat.core.gui.components.dropdown.Dropdown.Spacer)

Example 25 with Spacer

use of org.olat.core.gui.components.dropdown.Dropdown.Spacer in project openolat by klemens.

the class VideoRuntimeController method initEditionTools.

@Override
protected void initEditionTools(Dropdown settingsDropdown) {
    super.initEditionTools(settingsDropdown);
    if (reSecurity.isEntryAdmin()) {
        settingsLink = LinkFactory.createToolLink("metaDataConfig", translate("tab.video.settings"), this);
        settingsLink.setIconLeftCSS("o_icon o_icon-fw o_icon_quota o_icon_settings");
        settingsDropdown.addComponent(4, settingsLink);
        changeVideoLink = LinkFactory.createToolLink("changeVideo", translate("tab.video.exchange"), this);
        changeVideoLink.setIconLeftCSS("o_icon o_icon_refresh o_icon-fw");
        settingsDropdown.addComponent(3, changeVideoLink);
        settingsDropdown.addComponent(new Spacer("metadata-poster"));
    }
}
Also used : Spacer(org.olat.core.gui.components.dropdown.Dropdown.Spacer)

Aggregations

Spacer (org.olat.core.gui.components.dropdown.Dropdown.Spacer)32 Dropdown (org.olat.core.gui.components.dropdown.Dropdown)6 Link (org.olat.core.gui.components.link.Link)4 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)2 Component (org.olat.core.gui.components.Component)2 LinkPopupSettings (org.olat.core.gui.components.link.LinkPopupSettings)2 GenericTreeNode (org.olat.core.gui.components.tree.GenericTreeNode)2 INode (org.olat.core.util.nodes.INode)2 TreeVisitor (org.olat.core.util.tree.TreeVisitor)2 Visitor (org.olat.core.util.tree.Visitor)2 CourseConfig (org.olat.course.config.CourseConfig)2 CourseNode (org.olat.course.nodes.CourseNode)2 ENCourseNode (org.olat.course.nodes.ENCourseNode)2 UserCourseEnvironment (org.olat.course.run.userview.UserCourseEnvironment)2 BusinessGroup (org.olat.group.BusinessGroup)2 RepositoryEntry (org.olat.repository.RepositoryEntry)2 RepositoryHandler (org.olat.repository.handlers.RepositoryHandler)2 OrderedRepositoryHandler (org.olat.repository.handlers.RepositoryHandlerFactory.OrderedRepositoryHandler)2