Search in sources :

Example 16 with Link

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());
    }
}
Also used : Link(org.olat.core.gui.components.link.Link)

Example 17 with Link

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();
}
Also used : ArrayList(java.util.ArrayList) List(java.util.List) AssertException(org.olat.core.logging.AssertException) Link(org.olat.core.gui.components.link.Link)

Example 18 with Link

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);
        }
    }
}
Also used : RenderResult(org.olat.core.gui.render.RenderResult) Link(org.olat.core.gui.components.link.Link) ContextPair(org.olat.core.util.mail.ui.MailDataModel.ContextPair) URLBuilder(org.olat.core.gui.render.URLBuilder)

Example 19 with Link

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);
}
Also used : ArrayList(java.util.ArrayList) Identity(org.olat.core.id.Identity) Link(org.olat.core.gui.components.link.Link) Certificate(org.olat.course.certificate.Certificate)

Example 20 with Link

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);
}
Also used : Link(org.olat.core.gui.components.link.Link) FormLink(org.olat.core.gui.components.form.flexible.elements.FormLink) Date(java.util.Date)

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