Search in sources :

Example 91 with Link

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

the class BaseFullWebappController method addDTab.

@Override
public boolean addDTab(UserRequest ureq, DTab dt) {
    if (isDisposed()) {
        return false;
    }
    DTab old = getDTab(dt.getOLATResourceable());
    if (old != null) {
        return true;
    }
    // add to tabs list
    synchronized (dtabs) {
        // make dtabs and dtabsControllers access synchronized
        dtabs.add(dt);
        dtabsLinkNames.add(dtabCreateCounter);
        Link link = LinkFactory.createCustomLink("a" + dtabCreateCounter, "a" + dtabCreateCounter, "", Link.NONTRANSLATED, navTabsVc, this);
        link.setCustomDisplayText(StringHelper.escapeHtml(dt.getNavElement().getTitle()));
        link.setIconLeftCSS("o_icon o_icon-fw " + dt.getNavElement().getIconCSSClass());
        link.setTitle(dt.getTitle());
        link.setUserObject(dt);
        // Set accessibility access key using the 's' key. You can loop through all opened tabs by
        // pressing s repetitively (works only in IE/FF which is normally used by blind people)
        link.setAccessKey("s");
        // add close links
        Link calink = LinkFactory.createCustomLink("c" + dtabCreateCounter, "c" + dtabCreateCounter, "", Link.NONTRANSLATED, navTabsVc, this);
        calink.setCustomEnabledLinkCSS("o_navbar_tab_close");
        calink.setIconLeftCSS("o_icon o_icon_close_tab");
        calink.setTitle(translate("close"));
        calink.setUserObject(dt);
        Controller dtabCtr = dt.getController();
        dtabCtr.addControllerListener(this);
        updateBusinessPath(ureq, dt);
        // add to tabs controller lookup table for later event dispatching
        dtabsControllers.add(dtabCtr);
        // increase DTab added counter.
        dtabCreateCounter++;
    }
    return true;
}
Also used : DTab(org.olat.core.gui.control.generic.dtabs.DTab) ResumeSessionController(org.olat.core.commons.controllers.resume.ResumeSessionController) AssessmentModeGuardController(org.olat.course.assessment.ui.mode.AssessmentModeGuardController) BasicController(org.olat.core.gui.control.controller.BasicController) ChiefController(org.olat.core.gui.control.ChiefController) BaseChiefController(org.olat.core.commons.chiefcontrollers.BaseChiefController) VetoableCloseController(org.olat.core.gui.control.VetoableCloseController) Controller(org.olat.core.gui.control.Controller) UserToolsMenuController(org.olat.gui.control.UserToolsMenuController) Link(org.olat.core.gui.components.link.Link)

Example 92 with Link

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

the class BCPeekviewController 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 instanceof Link) {
        Link nodeLink = (Link) source;
        String relPath = (String) nodeLink.getUserObject();
        if (relPath == null) {
            fireEvent(ureq, new OlatCmdEvent(OlatCmdEvent.GOTONODE_CMD, nodeId));
        } else {
            fireEvent(ureq, new OlatCmdEvent(OlatCmdEvent.GOTONODE_CMD, nodeId + "/" + relPath));
        }
    }
}
Also used : OlatCmdEvent(org.olat.core.gui.components.htmlsite.OlatCmdEvent) Link(org.olat.core.gui.components.link.Link)

Example 93 with Link

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

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 94 with Link

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

the class GlossaryMainController method getIndexLinkList.

/**
 * create a List with all Indexes in this Glossary
 *
 * @param gIList
 * @return List containing the Links.
 */
protected List<Link> getIndexLinkList(List<GlossaryItem> gIList) {
    Set<String> addedKeys = new HashSet<>();
    // get existing indexes
    GlossaryItem[] gIArray = gIList.toArray(new GlossaryItem[gIList.size()]);
    for (GlossaryItem gi : gIArray) {
        String indexChar = gi.getIndex();
        if (!addedKeys.contains(indexChar)) {
            addedKeys.add(indexChar);
        }
    }
    // build register, first found should be used later on
    char alpha;
    boolean firstIndexFound = false;
    List<Link> indexLinkList = new ArrayList<>(gIList.size());
    for (alpha = 'A'; alpha <= 'Z'; alpha++) {
        String indexChar = String.valueOf(alpha);
        Link indexLink = LinkFactory.createCustomLink(REGISTER_LINK + indexChar, REGISTER_LINK + indexChar, indexChar, Link.NONTRANSLATED, glistVC, this);
        if (!addedKeys.contains(indexChar)) {
            indexLink.setEnabled(false);
        } else if (!filterIndex.equals("all") && !firstIndexFound && !addedKeys.contains(filterIndex)) {
            filterIndex = indexChar;
            firstIndexFound = true;
        }
        indexLinkList.add(indexLink);
    }
    return indexLinkList;
}
Also used : ArrayList(java.util.ArrayList) Link(org.olat.core.gui.components.link.Link) HashSet(java.util.HashSet)

Example 95 with Link

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

the class GlossaryMainController method updateView.

/**
 * @param List with GlossaryItems
 * @return a list (same size as GlossaryItems) which contains again lists with
 *         one editButton and one deleteButton
 */
private List<GlossaryItemWrapper> updateView(ArrayList<GlossaryItem> gIList, String choosenFilterIndex) {
    int linkNum = 1;
    Set<String> keys = new HashSet<String>();
    StringBuilder bufDublicates = new StringBuilder();
    List<GlossaryItemWrapper> items = new ArrayList<GlossaryItemWrapper>();
    Collections.sort(gIList);
    glistVC.contextPut("filterIndex", choosenFilterIndex);
    if (!filterIndex.equals("all")) {
        // highlight filtered index
        Link indexLink = (Link) glistVC.getComponent(REGISTER_LINK + choosenFilterIndex);
        if (indexLink != null) {
            indexLink.setCustomEnabledLinkCSS("o_glossary_register_active");
        }
    }
    for (GlossaryItem gi : gIList) {
        boolean canEdit = glossarySecCallback.canEdit(gi);
        if (canEdit) {
            Link tmpEditButton = LinkFactory.createCustomLink(CMD_EDIT + linkNum, CMD_EDIT + linkNum, "cmd.edit", Link.BUTTON_XSMALL, glistVC, this);
            tmpEditButton.setIconLeftCSS("o_icon o_icon_edit o_icon-fw");
            tmpEditButton.setUserObject(gi);
            Link tmpDelButton = LinkFactory.createCustomLink(CMD_DELETE + linkNum, CMD_DELETE + linkNum, "cmd.delete", Link.BUTTON_XSMALL, glistVC, this);
            tmpDelButton.setUserObject(gi);
            tmpDelButton.setIconLeftCSS("o_icon o_icon_delete_item o_icon-fw");
        }
        GlossaryItemWrapper wrapper = new GlossaryItemWrapper(gi, linkNum);
        if (keys.contains(gi.getGlossTerm()) && (bufDublicates.indexOf(gi.getGlossTerm()) == -1)) {
            bufDublicates.append(gi.getGlossTerm());
            bufDublicates.append(" ");
        } else {
            keys.add(gi.getGlossTerm());
        }
        items.add(wrapper);
        linkNum++;
    }
    if ((bufDublicates.length() > 0) && glossarySecCallback.canAdd()) {
        showWarning("warning.contains.dublicates", bufDublicates.toString());
    }
    return items;
}
Also used : ArrayList(java.util.ArrayList) Link(org.olat.core.gui.components.link.Link) HashSet(java.util.HashSet)

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