use of org.olat.core.gui.components.link.Link in project OpenOLAT by OpenOLAT.
the class BreadCrumbController method removeFromBreadCrumb.
/**
* Remove a crumb controller and all it's child controllers that are created
* by this controller or it's children from the bread crumb stack and calls
* dispose on the crumb controller. Use
* crumbController.removeFromBreadCrumbPathAndDispose() if you manually want
* to remove a crumb controller from the bread crumb
*
* @param crumbController
*/
void removeFromBreadCrumb(CrumbController crumbController) {
int activateLinkPos = 0;
for (Link link : breadCrumbLinks) {
CrumbController linkController = (CrumbController) link.getUserObject();
if (linkController.equals(crumbController)) {
linkController.deactivateAndDisposeChildCrumbController();
linkController.dispose();
break;
}
activateLinkPos++;
}
if (activateLinkPos > 0) {
// remove children elements from list and reput to hibernate
breadCrumbLinks = breadCrumbLinks.subList(0, activateLinkPos);
breadCrumbVC.contextPut("breadCrumbs", breadCrumbLinks);
// disable current link and update content view from current controller
Link parentLink = breadCrumbLinks.get(activateLinkPos - 1);
parentLink.setEnabled(false);
CrumbController parentController = (CrumbController) parentLink.getUserObject();
breadCrumbVC.put("content", parentController.getInitialComponent());
}
}
use of org.olat.core.gui.components.link.Link in project OpenOLAT by OpenOLAT.
the class PortalImpl method initPortlets.
/**
* Initialize all portles found in the configuration
* @param ureq
*/
private void initPortlets(UserRequest ureq) {
// load all possible portlets, portlets run controller is only loaded when really used
Iterator<Portlet> portletsIter = PortletFactory.getPortlets().values().iterator();
while (portletsIter.hasNext()) {
Portlet portlet = portletsIter.next();
log.debug("initPortlets portletName=" + portlet.getName());
if (portlet.isEnabled()) {
PortletContainer pc = null;
// fxdiff make the system tolerant to portlet errors
try {
pc = PortletFactory.getPortletContainerFor(portlet, getWindowControl(), ureq);
} catch (Exception e) {
log.error("Cannot open a portlet: " + portlet, e);
}
pc.addControllerListener(this);
// remember this portlet container
portletContainers.put(portlet.getName(), pc);
String addLinkName = "command.add." + portlet.getName();
Link tmp = LinkFactory.createCustomLink(addLinkName, addLinkName, "add", Link.BUTTON_SMALL, portalVC, this);
tmp.setIconLeftCSS("o_icon o_icon_add");
tmp.setElementCssClass("o_portlet_edit_add");
tmp.setUserObject(portlet.getName());
// and add to velocity
portalVC.put(portlet.getName(), pc.getInitialComponent());
// check if portlet is active for this user
Iterator<List<String>> colIter = portalColumns.iterator();
boolean isActive = false;
while (colIter.hasNext()) {
List<String> row = colIter.next();
Iterator<String> rowIter = row.iterator();
while (rowIter.hasNext()) {
String activePortletName = rowIter.next();
if (portlet.getName().equals(activePortletName))
isActive = true;
}
}
if (isActive) {
// initialize portlet container for active portlets only
pc.initializeRunComponent(ureq, editModeEnabled);
} else {
// add it to inacitve portlets list if not active
inactivePortlets.add(portlet.getName());
}
}
}
// update links on visible portlets
updatePositionChangeLinks();
}
use of org.olat.core.gui.components.link.Link in project OpenOLAT by OpenOLAT.
the class MailContextCellRenderer method render.
@Override
public void render(StringOutput sb, Renderer renderer, Object val, Locale locale, int alignment, String action) {
if (val instanceof ContextPair) {
ContextPair context = (ContextPair) val;
if (renderer == null) {
StringHelper.escapeHtml(sb, context.getName());
} else {
String contextName = StringHelper.escapeHtml(context.getName());
Link link = LinkFactory.createLink("bp_" + UUID.randomUUID().toString(), container, listeningController);
link.setCustomDisplayText(contextName);
link.setUserObject(context.getBusinessPath());
URLBuilder ubu = renderer.getUrlBuilder().createCopyFor(link);
RenderResult renderResult = new RenderResult();
link.getHTMLRendererSingleton().render(renderer, sb, link, ubu, translator, renderResult, null);
}
}
}
use of org.olat.core.gui.components.link.Link in project OpenOLAT by OpenOLAT.
the class AssessedIdentityCertificatesController method loadList.
private void loadList() {
Identity assessedIdentity = assessedUserCourseEnv.getIdentityEnvironment().getIdentity();
List<Certificate> certificates = certificatesManager.getCertificates(assessedIdentity, resource);
List<Links> certificatesLink = new ArrayList<>(certificates.size());
int count = 0;
for (Certificate certificate : certificates) {
String displayName = formatter.formatDateAndTime(certificate.getCreationDate());
String url = DownloadCertificateCellRenderer.getUrl(certificate);
Links links = new Links(url, displayName, certificate.getStatus().name());
certificatesLink.add(links);
if (canDelete) {
Link deleteLink = LinkFactory.createLink("delete." + count++, "delete", getTranslator(), mainVC, this, Link.NONTRANSLATED);
deleteLink.setCustomDisplayText(" ");
deleteLink.setElementCssClass("o_sel_certificate_delete");
deleteLink.setIconLeftCSS("o_icon o_icon-lg o_icon_delete");
deleteLink.setUserObject(certificate);
links.setDelete(deleteLink);
}
}
mainVC.contextPut("certificates", certificatesLink);
}
use of org.olat.core.gui.components.link.Link in project OpenOLAT by OpenOLAT.
the class VCEditForm method formInnerEvent.
@Override
protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
if (source.getComponent() instanceof Link) {
if (vcAddButtonList.contains(source)) {
Long row = new Long(vcAddButtonList.indexOf(source));
int index = row.intValue() + 1;
MeetingDate meetingData = new MeetingDate();
meetingData.setBegin(new Date());
meetingData.setEnd(new Date(meetingData.getBegin().getTime() + 1000 * 60 * 60));
dateList.add(index, meetingData);
addRow(index, meetingData);
} else if (vcDelButtonList.contains(source)) {
// special case: only one line existent
if (dateList.size() == 1) {
// clear this line
vcTitleInputList.get(0).setValue("");
vcDescriptionInputList.get(0).setValue("");
vcCalenderbeginInputList.get(0).setDate(new Date());
vcDurationInputList.get(0).setValue("01:00");
} else {
int row = vcDelButtonList.indexOf(source);
removeRow(row);
}
}
} else if (source == multiSelectOptions) {
boolean useDates = multiSelectOptions.getSelectedKeys().contains(OPTION_DATES);
if (useDates)
addDates();
else
removeDates();
editVC.contextRemove("useDates");
editVC.contextPut("useDates", useDates);
editVC.setDirty(true);
}
super.formInnerEvent(ureq, source, event);
}
Aggregations