Search in sources :

Example 1 with Link

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

the class GlossaryMainController method event.

/**
 * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest,
 *      org.olat.core.gui.components.Component,
 *      org.olat.core.gui.control.Event)
 */
@Override
protected void event(UserRequest ureq, Component source, Event event) {
    if (source == addButton) {
        removeAsListenerAndDispose(glossEditCtrl);
        glossEditCtrl = new GlossaryItemEditorController(ureq, getWindowControl(), glossaryFolder, glossaryItemList, null, true);
        listenTo(glossEditCtrl);
        removeAsListenerAndDispose(cmc);
        cmc = new CloseableModalController(getWindowControl(), "close", glossEditCtrl.getInitialComponent());
        cmc.activate();
        listenTo(cmc);
    } else if (source instanceof Link) {
        Link button = (Link) source;
        String cmd = button.getCommand();
        if (button.getUserObject() instanceof GlossaryItem) {
            GlossaryItem currentGlossaryItem = (GlossaryItem) button.getUserObject();
            if (cmd.startsWith(CMD_EDIT)) {
                removeAsListenerAndDispose(glossEditCtrl);
                glossEditCtrl = new GlossaryItemEditorController(ureq, getWindowControl(), glossaryFolder, glossaryItemList, currentGlossaryItem, false);
                listenTo(glossEditCtrl);
                removeAsListenerAndDispose(cmc);
                cmc = new CloseableModalController(getWindowControl(), "close", glossEditCtrl.getInitialComponent());
                cmc.activate();
                listenTo(cmc);
            } else if (button.getCommand().startsWith(CMD_DELETE)) {
                currentDeleteItem = currentGlossaryItem;
                if (deleteDialogCtr != null) {
                    deleteDialogCtr.dispose();
                }
                deleteDialogCtr = activateYesNoDialog(ureq, null, translate("glossary.delete.dialog", StringHelper.escapeHtml(currentGlossaryItem.getGlossTerm())), deleteDialogCtr);
            }
        } else if (button.getCommand().startsWith(REGISTER_LINK)) {
            filterIndex = cmd.substring(cmd.lastIndexOf(".") + 1);
            updateRegisterAndGlossaryItems();
        }
    } else if (source == glistVC) {
        String cmd = event.getCommand();
        if (cmd.startsWith(CMD_AUTHOR)) {
            String url = event.getCommand().substring(CMD_AUTHOR.length());
            openProfil(ureq, url, true);
        } else if (cmd.startsWith(CMD_MODIFIER)) {
            String url = event.getCommand().substring(CMD_MODIFIER.length());
            openProfil(ureq, url, false);
        }
    }
}
Also used : CloseableModalController(org.olat.core.gui.control.generic.closablewrapper.CloseableModalController) Link(org.olat.core.gui.components.link.Link)

Example 2 with Link

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

the class BreadcrumbedStackedPanel method rootController.

@Override
public void rootController(String displayName, Controller controller) {
    if (stack.size() > 0) {
        for (int i = stack.size(); i-- > 0; ) {
            Link link = stack.remove(i);
            BreadCrumb crumb = (BreadCrumb) link.getUserObject();
            if (neverDisposeRootController && i == 0) {
                continue;
            }
            crumb.dispose();
        }
    }
    pushController(displayName, controller);
}
Also used : Link(org.olat.core.gui.components.link.Link)

Example 3 with Link

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

the class BreadcrumbedStackedPanel method getRootController.

@Override
public Controller getRootController() {
    Controller controller = null;
    if (stack.size() > 0) {
        Link lastPath = stack.get(0);
        BreadCrumb crumb = (BreadCrumb) lastPath.getUserObject();
        controller = crumb.getController();
    }
    return controller;
}
Also used : VetoableCloseController(org.olat.core.gui.control.VetoableCloseController) Controller(org.olat.core.gui.control.Controller) Link(org.olat.core.gui.components.link.Link)

Example 4 with Link

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

the class BreadcrumbedStackedPanel method getLastController.

public Controller getLastController() {
    Controller controller = null;
    if (stack.size() > 0) {
        Link lastPath = stack.get(stack.size() - 1);
        BreadCrumb crumb = (BreadCrumb) lastPath.getUserObject();
        controller = crumb.getController();
    }
    return controller;
}
Also used : VetoableCloseController(org.olat.core.gui.control.VetoableCloseController) Controller(org.olat.core.gui.control.Controller) Link(org.olat.core.gui.components.link.Link)

Example 5 with Link

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

the class BreadcrumbedStackedPanel method pushController.

/**
 * Push the controller in the stack. If the breadcrumb has no controller, the method
 * prevent the last breadcrumb to be the same has the new one and be same, it's mean
 * the same uobject.
 *
 * @param displayName
 * @param iconLeftCss
 * @param controller
 * @param uobject
 */
public void pushController(String displayName, String iconLeftCss, Controller controller, Object uobject) {
    // deduplicate last crumb
    if (uobject != null && controller == null && stack.size() > 0) {
        Link lastLink = stack.get(stack.size() - 1);
        BreadCrumb lastCrumb = (BreadCrumb) lastLink.getUserObject();
        if (lastCrumb.getController() == null && lastCrumb.getUserObject() != null && lastCrumb.getUserObject().equals(uobject)) {
            stack.remove(lastLink);
        }
    }
    Link link = LinkFactory.createLink("crumb_" + stack.size(), (Translator) null, this);
    link.setCustomDisplayText(StringHelper.escapeHtml(displayName));
    if (StringHelper.containsNonWhitespace(iconLeftCss)) {
        link.setIconLeftCSS(iconLeftCss);
    }
    link.setDomReplacementWrapperRequired(false);
    link.setUserObject(createCrumb(controller, uobject));
    stack.add(link);
    if (controller != null) {
        setContent(controller);
    }
    updateCloseLinkTitle();
}
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