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);
}
}
}
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);
}
}
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("'> </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());
}
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);
}
}
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"));
}
}
Aggregations