Search in sources :

Example 31 with Link

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

the class BusinessGroupChooserController method event.

@Override
protected void event(UserRequest ureq, Component source, Event event) {
    if (source instanceof Link) {
        Link select = (Link) source;
        selectGroup = (BusinessGroup) select.getUserObject();
        fireEvent(ureq, Event.DONE_EVENT);
    }
}
Also used : Link(org.olat.core.gui.components.link.Link)

Example 32 with Link

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

the class WikiMainController method event.

@Override
public void event(UserRequest ureq, Controller source, Event event) {
    Wiki wiki = getWiki();
    if (wiki == null) {
        mainPanel.setContent(createVelocityContainer("deleted"));
        return;
    }
    // reload page from cache
    WikiPage page = wiki.getPage(pageId, true);
    // set recent page id to the page currently used
    this.pageId = page.getPageId();
    if (event instanceof TreeEvent) {
        TreeEvent te = (TreeEvent) event;
        String nodeId = te.getNodeId();
        if (navAZNode.getIdent().equals(nodeId)) {
            openAtoZPage(ureq, wiki);
        } else if (navChangesNode.getIdent().equals(nodeId)) {
            openLastChangesPage(ureq, wiki);
        } else if (navMainPageNode.getIdent().equals(nodeId)) {
            page = openIndexPage(ureq, wiki);
        } else if (wikiMenuNode.getIdent().equals(nodeId)) {
            page = openPage(ureq, WikiPage.WIKI_MENU_PAGE, wiki);
        } else {
            TreeNode node = wikiMenuModel.getNodeById(nodeId);
            if (node != null && node.getUserObject() instanceof String) {
                String link = (String) node.getUserObject();
                page = openPage(ureq, link, wiki);
            }
        }
        if (page != null) {
            this.pageId = page.getPageId();
        }
    } else if (source == versioningTableCtr) {
        /**
         ***********************************************************************
         * history table events
         ***********************************************************************
         */
        if (event.getCommand().equals(Table.COMMANDLINK_ROWACTION_CLICKED)) {
            TableEvent te = (TableEvent) event;
            if (te.getActionId().equals(ACTION_COMPARE)) {
                selectedPage = versioningTableModel.getObject(te.getRowId());
                diffs = wiki.getDiff(page, selectedPage.getVersion() - 1, selectedPage.getVersion());
                versioningContent.contextPut("diffs", diffs);
                versioningContent.remove(wikiVersionDisplayComp);
                versioningContent.contextPut("page", selectedPage);
            } else if (te.getActionId().equals(ACTION_SHOW)) {
                versioningContent.contextRemove("diffs");
                selectedPage = versioningTableModel.getObject(te.getRowId());
                selectedPage = wiki.loadVersion(selectedPage, selectedPage.getVersion());
                wikiVersionDisplayComp.setWikiContent(selectedPage.getContent());
                wikiVersionDisplayComp.setImageMapperUri(ureq, wikiContainer);
                versioningContent.put("versionDisplay", wikiVersionDisplayComp);
                versioningContent.contextPut("page", selectedPage);
            }
        }
    } else if (source == wikiUploadFileCtr) {
        if (event.getCommand().equals(FolderEvent.UPLOAD_EVENT)) {
            FolderEvent fEvent = (FolderEvent) event;
            createMediaMetadataFile(fEvent.getFilename(), ureq.getIdentity().getKey());
            updateFileAndLinkList(wiki);
        }
        cmc.deactivate();
        cleanUp();
    } else if (source == removePageDialogCtr) {
        if (DialogBoxUIFactory.isOkEvent(event)) {
            wiki.removePage(page);
            breadcrumpDropdown.removeComponent(page.getPageName());
            WikiManager.getInstance().deleteWikiPage(ores, page);
            page = wiki.getPage(WikiPage.WIKI_INDEX_PAGE);
            updatePageContext(ureq, page);
            tabs.setSelectedPane(ureq, 0);
        }
    } else if (source == mediaTableCtr) {
        if (event.getCommand().equals(Table.COMMANDLINK_ROWACTION_CLICKED)) {
            TableEvent te = (TableEvent) event;
            if (te.getActionId().equals(ACTION_DELETE_MEDIA)) {
                List<MediaFileElement> list = new ArrayList<MediaFileElement>(1);
                list.add(mediaFilesTableModel.getObject(te.getRowId()));
                deleteMediaFile(list, ureq);
            } else if (te.getActionId().equals(ACTION_SHOW_MEDIA)) {
                // show a selected file from the media folder
                MediaFileElement element = mediaFilesTableModel.getObject(te.getRowId());
                if (isImage(element.getFilename())) {
                    // show images inline
                    // as modal overlay
                    imageDisplay.contextPut("mediaElement", element);
                    imageDisplay.contextPut("imageUri", wikiArticleComp.getImageBaseUri());
                    removeAsListenerAndDispose(cmc);
                    cmc = new CloseableModalController(getWindowControl(), translate("close"), imageDisplay);
                    listenTo(cmc);
                    cmc.activate();
                } else {
                    deliverMediaFile(ureq, element.getFilename());
                }
            }
        } else if (event.getCommand().equals(Table.COMMAND_MULTISELECT)) {
            TableMultiSelectEvent tmse = (TableMultiSelectEvent) event;
            if (tmse.getAction().equals(ACTION_DELETE_MEDIAS)) {
                deleteMediaFile(mediaFilesTableModel.getObjects(tmse.getSelection()), ureq);
                updateFileAndLinkList(wiki);
            }
        }
    } else if (source == archiveWikiDialogCtr) {
        if (DialogBoxUIFactory.isOkEvent(event)) {
            WikiToCPResource rsrc = new WikiToCPResource(ores, getIdentity(), getTranslator());
            ureq.getDispatchResult().setResultingMediaResource(rsrc);
        }
    } else if (source == createArticleForm) {
        calloutCtrl.deactivate();
        String query = createArticleForm.getQuery();
        if (!StringHelper.containsNonWhitespace(query)) {
            query = WikiPage.WIKI_INDEX_PAGE;
        }
        page = wiki.findPage(query);
        pageId = page.getPageId();
        if (page.getPageName().equals(Wiki.NEW_PAGE)) {
            setTabsEnabled(false);
        }
        page.incrementViewCount();
        updatePageContext(ureq, page);
        if (!page.getPageName().startsWith("O_")) {
            Link pageLink = LinkFactory.createToolLink(page.getPageName(), "select-page", page.getPageName(), this);
            breadcrumpDropdown.addComponent(pageLink);
        }
        tabs.setSelectedPane(ureq, 0);
    } else if (source == wikiEditForm) {
        // set recent page id to the page currently used
        this.pageId = page.getPageId();
        boolean wantPreview = false;
        boolean wantSave = false;
        boolean wantClose = false;
        if (event == Event.CANCELLED_EVENT) {
            wantClose = true;
        } else if (event == Event.DONE_EVENT) {
            wantSave = true;
        } else if (event.getCommand().equals("save.and.close")) {
            wantClose = true;
            wantSave = true;
            event = Event.DONE_EVENT;
        } else if (event.getCommand().equals("preview")) {
            wantPreview = true;
            event = Event.DONE_EVENT;
        } else if (event.getCommand().equals("delete.page")) {
            String msg = translate("question", page.getPageName());
            removePageDialogCtr = activateOkCancelDialog(ureq, null, msg, removePageDialogCtr);
            return;
        } else if (event.getCommand().equals("media.upload")) {
            doUploadFiles(ureq);
            return;
        } else if (event.getCommand().equals("manage.media")) {
            doManageMedias(ureq, wiki);
            return;
        }
        boolean dirty = !wikiEditForm.getWikiContent().equals(page.getContent());
        if (wantPreview) {
            WikiPage preview = new WikiPage("temp");
            preview.setContent(wikiEditForm.getWikiContent());
            wikiVersionDisplayComp.setWikiContent(preview.getContent());
            editContent.put("versionDisplay", wikiVersionDisplayComp);
        }
        if (wantSave && dirty) {
            editContent.contextPut("isDirty", Boolean.valueOf(false));
            page.setContent(wikiEditForm.getWikiContent());
            page.setModifyAuthor(getIdentity().getKey().longValue());
            page.setUpdateComment(wikiEditForm.getUpdateComment());
            if (page.getInitalAuthor() == 0)
                page.setInitalAuthor(getIdentity().getKey().longValue());
            // changed
            if (page.getPageName().equals(WikiPage.WIKI_MENU_PAGE)) {
                updateWikiMenu(wiki);
            }
            WikiManager.getInstance().saveWikiPage(ores, page, true, wiki);
            // inform subscription context about changes
            NotificationsManager.getInstance().markPublisherNews(subsContext, ureq.getIdentity(), true);
            updatePageContext(ureq, page);
        }
        if (dirty && wantPreview && !wantSave) {
            // wikiEditForm.setDirty(true);
            editContent.contextPut("isDirty", Boolean.valueOf(dirty));
        }
        if (wantClose) {
            tabs.setSelectedPane(ureq, 0);
            doReleaseEditLock();
            return;
        }
    }
}
Also used : CloseableModalController(org.olat.core.gui.control.generic.closablewrapper.CloseableModalController) TableMultiSelectEvent(org.olat.core.gui.components.table.TableMultiSelectEvent) ArrayList(java.util.ArrayList) TreeEvent(org.olat.core.gui.components.tree.TreeEvent) TableEvent(org.olat.core.gui.components.table.TableEvent) GenericTreeNode(org.olat.core.gui.components.tree.GenericTreeNode) TreeNode(org.olat.core.gui.components.tree.TreeNode) FolderEvent(org.olat.core.commons.modules.bc.FolderEvent) Link(org.olat.core.gui.components.link.Link)

Example 33 with Link

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

the class WikiMainController method openPage.

private WikiPage openPage(UserRequest ureq, String name, Wiki wiki) {
    WikiPage page = wiki.getPage(name, true);
    page.incrementViewCount();
    updatePageContext(ureq, page);
    Link pageLink = LinkFactory.createToolLink(page.getPageName(), "select-page", page.getPageName(), this);
    breadcrumpDropdown.addComponent(pageLink);
    setTabsEnabled(true);
    tabs.setSelectedPane(ureq, 0);
    return page;
}
Also used : Link(org.olat.core.gui.components.link.Link)

Example 34 with Link

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

the class WikiMainController method event.

@Override
public void event(UserRequest ureq, Component source, Event event) {
    String command = event.getCommand();
    setTabsEnabled(true);
    // to make shure we use the lateste page, reload from cache
    Wiki wiki = getWiki();
    if (wiki == null) {
        mainPanel.setContent(createVelocityContainer("deleted"));
        return;
    }
    WikiPage page = null;
    // FIXME:gs images and media should also be wiki pages -> see jamwiki
    if (!(event instanceof RequestNewPageEvent) && !(event instanceof RequestMediaEvent) && !(event instanceof RequestImageEvent)) {
        page = wiki.getPage(pageId, true);
        // set recent page id to the page currently used
        if (page != null) {
            pageId = page.getPageId();
        }
    }
    if (source == content) {
    // noting yet
    } else if (source == tabs) {
        /**
         ***********************************************************************
         * tabbed pane events
         ***********************************************************************
         */
        TabbedPaneChangedEvent tabEvent = (TabbedPaneChangedEvent) event;
        Component comp = tabEvent.getNewComponent();
        String compName = comp.getComponentName();
        selectTab(ureq, command, compName, page, wiki);
    } else if (source == wikiArticleComp) {
        /**
         ***********************************************************************
         * wiki component events
         ***********************************************************************
         */
        if (event instanceof RequestPageEvent) {
            RequestPageEvent pageEvent = (RequestPageEvent) event;
            page = openPage(ureq, pageEvent.getCommand(), wiki);
        } else if (event instanceof RequestNewPageEvent) {
            page = handleRequestNewPageEvent(ureq, (RequestNewPageEvent) event, wiki);
        } else if (event instanceof ErrorEvent) {
            showWarning(event.getCommand());
        } else if (event instanceof RequestMediaEvent) {
            deliverMediaFile(ureq, event.getCommand());
        } else if (event instanceof RequestImageEvent) {
            // instead of linking to the image-view-page itself
            if (isImageDetailView) {
                page = wiki.getPage(pageId, true);
                updatePageContext(ureq, page);
                isImageDetailView = false;
            } else {
                final WikiPage imagePage = new WikiPage(event.getCommand());
                imagePage.setContent("[[Image:" + event.getCommand() + "]]");
                articleContent.contextPut("page", imagePage);
                wikiArticleComp.setWikiContent(imagePage.getContent());
                setTabsEnabled(false);
                isImageDetailView = true;
            }
        }
    } else if (source == navigationContent) {
        /**
         ***********************************************************************
         * article container events
         ***********************************************************************
         */
        if (command.equals(ACTION_EDIT_MENU)) {
            page = wiki.getPage(WikiPage.WIKI_MENU_PAGE);
            updateFileAndLinkList(wiki);
            tryToSetEditLock(page, ureq, ores);
            updatePageContext(ureq, page);
            tabs.setSelectedPane(ureq, 2);
        }
    } else if (source == toMainPageLink) {
        // home link
        page = openIndexPage(ureq, wiki);
    } else if (source == a2zLink) {
        openAtoZPage(ureq, wiki);
    } else if (source == changesLink) {
        openLastChangesPage(ureq, wiki);
    } else if (source == editMenuButton) {
        page = wiki.getPage(WikiPage.WIKI_MENU_PAGE);
        updateFileAndLinkList(wiki);
        tryToSetEditLock(page, ureq, ores);
        updatePageContext(ureq, page);
        // wikiEditForm.setPage(page);
        tabs.setSelectedPane(ureq, 2);
    } else if (source == archiveLink) {
        // archive a snapshot of the wiki in the users personal folder
        archiveWikiDialogCtr = activateOkCancelDialog(ureq, null, translate("archive.question"), archiveWikiDialogCtr);
        return;
    } else if (source == createLink) {
        removeAsListenerAndDispose(calloutCtrl);
        removeAsListenerAndDispose(createArticleForm);
        createArticleForm = new WikiArticleSearchForm(ureq, getWindowControl());
        listenTo(createArticleForm);
        calloutCtrl = new CloseableCalloutWindowController(ureq, getWindowControl(), createArticleForm.getInitialComponent(), createLink, "", true, null);
        listenTo(calloutCtrl);
        calloutCtrl.activate();
    } else if (source == versioningContent) {
    // nothing to do
    } else if (source == editContent) {
    // nothing to do
    } else if (source == closePreviewButton) {
        editContent.remove(wikiVersionDisplayComp);
    } else if (source == revertVersionButton) {
        wikiEditForm.setPage(selectedPage);
        tabs.setSelectedPane(ureq, 2);
        tryToSetEditLock(page, ureq, ores);
    } else if (source instanceof Link && "select-page".equals(command)) {
        String name = source.getComponentName();
        page = openPage(ureq, name, wiki);
    }
    // set recent page id to the page currently used
    if (page != null) {
        this.pageId = page.getPageId();
    }
}
Also used : RequestPageEvent(org.olat.modules.wiki.gui.components.wikiToHtml.RequestPageEvent) TabbedPaneChangedEvent(org.olat.core.gui.components.tabbedpane.TabbedPaneChangedEvent) CloseableCalloutWindowController(org.olat.core.gui.control.generic.closablewrapper.CloseableCalloutWindowController) RequestNewPageEvent(org.olat.modules.wiki.gui.components.wikiToHtml.RequestNewPageEvent) RequestMediaEvent(org.olat.modules.wiki.gui.components.wikiToHtml.RequestMediaEvent) ErrorEvent(org.olat.modules.wiki.gui.components.wikiToHtml.ErrorEvent) Component(org.olat.core.gui.components.Component) WikiMarkupComponent(org.olat.modules.wiki.gui.components.wikiToHtml.WikiMarkupComponent) JSAndCSSComponent(org.olat.core.gui.components.htmlheader.jscss.JSAndCSSComponent) MediaCollectorComponent(org.olat.modules.portfolio.ui.component.MediaCollectorComponent) Link(org.olat.core.gui.components.link.Link) RequestImageEvent(org.olat.modules.wiki.gui.components.wikiToHtml.RequestImageEvent)

Example 35 with Link

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

the class ItemsController method createButtonsForItem.

private void createButtonsForItem(UserRequest ureq, Feed feed, Item item) {
    boolean author = getIdentity().getKey().equals(item.getAuthorKey());
    boolean edit = callback.mayEditItems() || (author && callback.mayEditOwnItems());
    boolean delete = callback.mayDeleteItems() || (author && callback.mayDeleteOwnItems());
    String guid = item.getGuid();
    String editId = "feed.edit.item.".concat(guid);
    Link editButton = LinkFactory.createCustomLink(editId, editId, "feed.edit.item", Link.BUTTON_SMALL, vcItems, this);
    editButton.setElementCssClass("o_sel_feed_item_edit");
    editButton.setEnabled(edit);
    editButton.setVisible(edit);
    String deleteId = "delete.".concat(guid);
    Link deleteButton = LinkFactory.createCustomLink(deleteId, deleteId, "delete", Link.BUTTON_SMALL, vcItems, this);
    deleteButton.setElementCssClass("o_sel_feed_item_delete");
    deleteButton.setEnabled(delete);
    deleteButton.setVisible(delete);
    if (feedResource.isInternal() && getIdentity().getKey() != null && getIdentity().getKey().equals(item.getAuthorKey())) {
        String businessPath = BusinessControlFactory.getInstance().getAsString(getWindowControl().getBusinessControl());
        businessPath += "[item=" + item.getKey() + ":0]";
        if (portfolioModule.isEnabled()) {
            String name = "feed.artefact.item.".concat(guid);
            BlogEntryMedia media = new BlogEntryMedia(feed, item);
            MediaCollectorComponent collectorCmp = new MediaCollectorComponent(name, getWindowControl(), media, blogMediaHandler, businessPath);
            vcItems.put(name, collectorCmp);
        } else {
            Controller artefactCtrl = EPUIFactory.createArtefactCollectWizzardController(ureq, getWindowControl(), feedResource, businessPath);
            if (artefactCtrl != null) {
                artefactLinks.put(item, artefactCtrl);
                vcItems.put("feed.artefact.item.".concat(guid), artefactCtrl.getInitialComponent());
            }
        }
    }
    editButton.setUserObject(item);
    deleteButton.setUserObject(item);
    editButtons.add(editButton);
    deleteButtons.add(deleteButton);
}
Also used : MediaCollectorComponent(org.olat.modules.portfolio.ui.component.MediaCollectorComponent) BlogEntryMedia(org.olat.modules.webFeed.portfolio.BlogEntryMedia) UserCommentsAndRatingsController(org.olat.core.commons.services.commentAndRating.ui.UserCommentsAndRatingsController) CloseableModalController(org.olat.core.gui.control.generic.closablewrapper.CloseableModalController) DialogBoxController(org.olat.core.gui.control.generic.modal.DialogBoxController) BasicController(org.olat.core.gui.control.controller.BasicController) FormBasicController(org.olat.core.gui.components.form.flexible.impl.FormBasicController) YearNavigationController(org.olat.core.commons.controllers.navigation.YearNavigationController) Controller(org.olat.core.gui.control.Controller) 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