Search in sources :

Example 56 with Component

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

the class OverviewAuthoringController method event.

@Override
protected void event(UserRequest ureq, Component source, Event event) {
    if (source == segmentView) {
        if (event instanceof SegmentViewEvent) {
            SegmentViewEvent sve = (SegmentViewEvent) event;
            String segmentCName = sve.getComponentName();
            Component clickedLink = mainVC.getComponent(segmentCName);
            if (clickedLink == favoriteLink) {
                doOpenMark(ureq);
            } else if (clickedLink == myEntriesLink) {
                doOpenMyEntries(ureq);
            } else if (clickedLink == searchLink) {
                doSearchEntries(ureq);
            } else if (clickedLink == deletedLink) {
                doOpenDeletedEntries(ureq);
            }
        }
    }
}
Also used : SegmentViewEvent(org.olat.core.gui.components.segmentedview.SegmentViewEvent) Component(org.olat.core.gui.components.Component) SegmentViewComponent(org.olat.core.gui.components.segmentedview.SegmentViewComponent)

Example 57 with Component

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

the class WeeklyStatisticDisplayController method createInitialComponent.

@Override
protected Component createInitialComponent(UserRequest ureq) {
    setVelocityRoot(Util.getPackageVelocityRoot(getClass()));
    weeklyStatisticVc_ = createVelocityContainer("weeklystatisticparent");
    weeklyStatisticFormVc_ = createVelocityContainer("weeklystatisticform");
    form_ = new DateChooserForm(ureq, getWindowControl(), 8 * 7);
    listenTo(form_);
    weeklyStatisticFormVc_.put("statisticForm", form_.getInitialComponent());
    weeklyStatisticFormVc_.contextPut("statsSince", getStatsSinceStr());
    weeklyStatisticVc_.put("weeklystatisticform", weeklyStatisticFormVc_);
    Component parentInitialComponent = super.createInitialComponent(ureq);
    weeklyStatisticVc_.put("statistic", parentInitialComponent);
    return weeklyStatisticVc_;
}
Also used : DateChooserForm(org.olat.course.statistic.DateChooserForm) Component(org.olat.core.gui.components.Component)

Example 58 with Component

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

the class QTIEditorMainController 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)
 */
public void event(UserRequest ureq, Component source, Event event) {
    // 
    if (source == menuTree) {
        // catch menu tree clicks
        if (event.getCommand().equals(MenuTree.COMMAND_TREENODE_CLICKED)) {
            GenericQtiNode clickedNode;
            clickedNode = menuTreeModel.getQtiNode(menuTree.getSelectedNodeId());
            Component tabbedPane = clickedNode.createEditTabbedPane(ureq, getWindowControl(), getTranslator(), this);
            if (tabbedPane != null) {
                main.put("tabbedPane", tabbedPane);
            } else {
                VelocityContainer itemNotEditable = createVelocityContainer("tab_itemAlien");
                main.put("tabbedPane", itemNotEditable);
                return;
            }
            // only available in full edit mode
            if (clickedNode instanceof AssessmentNode) {
                deleteLink.setEnabled(false);
                moveLink.setEnabled(false);
                copyLink.setEnabled(false);
                stackedPanel.setDirty(true);
            } else {
                deleteLink.setEnabled(true && !restrictedEdit);
                moveLink.setEnabled(true && !restrictedEdit);
                if (clickedNode instanceof ItemNode) {
                    copyLink.setEnabled(true && !restrictedEdit);
                } else {
                    copyLink.setEnabled(false);
                }
                stackedPanel.setDirty(true);
            }
        }
    } else if (source == exitVC) {
        if (CMD_EXIT_SAVE.equals(event.getCommand())) {
            if (isRestrictedEdit() && history.size() > 0) {
                // changes were recorded
                // start work flow:
                // -sending an e-mail to everybody being a stake holder of this qti
                // resource
                // -email with change message
                // -after sending email successfully -> saveNexit is called.
                chngMsgFormVC = createVelocityContainer("changeMsgForm");
                // FIXME:pb:a Bitte diesen Velocity container entfernen und statt
                // dessen den
                // ContentOnlyController verwenden. Es ist äusserst wichtig dass das
                // Layout nie selber gemacht
                // wird sondern immer die Layout controller verwendet werden, d.h. den
                // ContentOnlyController oder
                // den MenuAndToolController. Dort kann das Tool übrigens auch null
                // sein wenn man nur ein Menü braucht.
                // TODO:pb:a extend ContentOnlyController to work also if menu and
                // tool are null, hence only content is desired
                String userN = UserManager.getInstance().getUserDisplayEmail(ureq.getIdentity(), ureq.getLocale());
                String lastN = ureq.getIdentity().getUser().getProperty(UserConstants.LASTNAME, ureq.getLocale());
                String firstN = ureq.getIdentity().getUser().getProperty(UserConstants.FIRSTNAME, ureq.getLocale());
                String changeMsg = "Changed by: " + firstN + " " + lastN + " [" + userN + "]\n";
                changeMsg += createChangeMessage();
                changeEmail.setBodyText(changeMsg);
                chngMsgFormVC.contextPut("chngMsg", changeEmail.getBodyText());
                removeAsListenerAndDispose(chngMsgFrom);
                chngMsgFrom = new ChangeMessageForm(ureq, getWindowControl());
                listenTo(chngMsgFrom);
                chngMsgFormVC.put("chngMsgForm", chngMsgFrom.getInitialComponent());
                exitPanel.setContent(chngMsgFormVC);
                return;
            } else {
                // remove modal dialog and proceed with exit process
                cmcExit.deactivate();
                removeAsListenerAndDispose(cmcExit);
                cmcExit = null;
                // remove lock, clean tmp dir, fire done event to close editor
                saveAndExit(ureq);
            }
        } else if (CMD_EXIT_DISCARD.equals(event.getCommand())) {
            // remove modal dialog and proceed with exit process
            cmcExit.deactivate();
            removeAsListenerAndDispose(cmcExit);
            cmcExit = null;
            // cleanup, so package does not get resumed
            qtiPackage.cleanupTmpPackageDir();
            // remove lock
            removeLocksAndExit(ureq);
        } else if (CMD_EXIT_CANCEL.equals(event.getCommand())) {
            // remove modal dialog and go back to edit mode
            cmcExit.deactivate();
            removeAsListenerAndDispose(cmcExit);
            cmcExit = null;
        }
    } else if (source == notEditableButton) {
        // close editor
        fireEvent(ureq, Event.DONE_EVENT);
    } else if (closeLink == source) {
        // exitVC hook:
        // save package back to repository
        exitVC = createVelocityContainer("exitDialog");
        exitPanel = new Panel("exitPanel");
        exitPanel.setContent(exitVC);
        cmcExit = new CloseableModalController(getWindowControl(), translate("editor.preview.close"), exitPanel, true, translate("exit.header"));
        cmcExit.activate();
        listenTo(cmcExit);
        return;
    } else if (previewLink == source) {
        // preview
        previewController = CoreSpringFactory.getImpl(IQManager.class).createIQDisplayController(new QTIEditorResolver(qtiPackage), qtiPackage.getQTIDocument().isSurvey() ? AssessmentInstance.QMD_ENTRY_TYPE_SURVEY : AssessmentInstance.QMD_ENTRY_TYPE_SELF, new IQPreviewSecurityCallback(), ureq, getWindowControl());
        if (previewController.isReady()) {
            // in case previewController was unable to initialize, a message was
            // set by displayController
            // this is the case if no more attempts or security check was
            // unsuccessfull
            previewController.addControllerListener(this);
            cmcPrieview = new CloseableModalController(getWindowControl(), translate("editor.preview.close"), previewController.getInitialComponent());
            cmcPrieview.activate();
            listenTo(cmcPrieview);
        } else {
            getWindowControl().setWarning(translate("error.preview"));
        }
    } else if (deleteLink == source) {
        // multi return in Firefox
        if (deleteDialog != null)
            return;
        GenericQtiNode clickedNode = menuTreeModel.getQtiNode(menuTree.getSelectedNodeId());
        String msg = "";
        if (clickedNode instanceof SectionNode) {
            if (QTIEditHelper.countSections(qtiPackage.getQTIDocument().getAssessment()) == 1) {
                // At least one section
                getWindowControl().setError(translate("error.atleastonesection"));
                return;
            }
            msg = translate("delete.section", clickedNode.getTitle());
        } else if (clickedNode instanceof ItemNode) {
            if (((SectionNode) clickedNode.getParent()).getChildCount() == 1) {
                // At least one item
                getWindowControl().setError(translate("error.atleastoneitem"));
                return;
            }
            msg = translate("delete.item", clickedNode.getTitle());
        }
        deleteDialog = activateYesNoDialog(ureq, null, msg, deleteDialog);
        deleteDialog.setUserObject(clickedNode);
        return;
    } else if (moveLink == source) {
        // cannot move the last item
        GenericQtiNode clickedNode = menuTreeModel.getQtiNode(menuTree.getSelectedNodeId());
        if (clickedNode instanceof ItemNode && ((SectionNode) clickedNode.getParent()).getChildCount() == 1) {
            getWindowControl().setError(translate("error.move.atleastoneitem"));
        } else {
            TreeNode selectedNode = menuTree.getSelectedNode();
            int type = (selectedNode instanceof SectionNode) ? InsertItemTreeModel.INSTANCE_ASSESSMENT : InsertItemTreeModel.INSTANCE_SECTION;
            InsertItemTreeModel treeModel = new InsertItemTreeModel(menuTreeModel, selectedNode, type);
            moveCtrl = new InsertNodeController(ureq, getWindowControl(), treeModel);
            listenTo(moveCtrl);
            cmc = new CloseableModalController(getWindowControl(), "close", moveCtrl.getInitialComponent(), true, translate("title.move"));
            cmc.activate();
            listenTo(cmc);
        }
    } else if (copyLink == source) {
        InsertItemTreeModel treeModel = new InsertItemTreeModel(menuTreeModel, menuTree.getSelectedNode(), InsertItemTreeModel.INSTANCE_SECTION);
        copyCtrl = new InsertNodeController(ureq, getWindowControl(), treeModel);
        listenTo(copyCtrl);
        cmc = new CloseableModalController(getWindowControl(), "close", copyCtrl.getInitialComponent(), true, translate("title.copy"));
        cmc.activate();
        listenTo(cmc);
    } else if (addPoolLink == source) {
        doSelectQItem(ureq);
    } else if (exportPoolLink == source) {
        doExportQItem();
    } else if (exportDocLink == source) {
        doExportDocx(ureq);
    } else if (convertQTI21Link == source) {
        doConvertToQTI21(ureq);
    } else if (importTableLink == source) {
        doImportTable(ureq);
    } else if (addSectionLink == source) {
        Section newSection = QTIEditHelper.createSection(getTranslator());
        Item newItem = QTIEditHelper.createSCItem(getTranslator());
        newSection.getItems().add(newItem);
        SectionNode scNode = new SectionNode(newSection, qtiPackage);
        ItemNode itemNode = new ItemNode(newItem, qtiPackage);
        scNode.addChild(itemNode);
        doSelectInsertionPoint(ureq, CMD_TOOLS_ADD_SECTION, scNode);
    } else if (addSCLink == source) {
        ItemNode insertObject = new ItemNode(QTIEditHelper.createSCItem(getTranslator()), qtiPackage);
        doSelectInsertionPoint(ureq, CMD_TOOLS_ADD_SINGLECHOICE, insertObject);
    } else if (addMCLink == source) {
        ItemNode insertObject = new ItemNode(QTIEditHelper.createMCItem(getTranslator()), qtiPackage);
        doSelectInsertionPoint(ureq, CMD_TOOLS_ADD_MULTIPLECHOICE, insertObject);
    } else if (addKPrimLink == source) {
        ItemNode insertObject = new ItemNode(QTIEditHelper.createKPRIMItem(getTranslator()), qtiPackage);
        doSelectInsertionPoint(ureq, CMD_TOOLS_ADD_KPRIM, insertObject);
    } else if (addFIBLink == source) {
        ItemNode insertObject = new ItemNode(QTIEditHelper.createFIBItem(getTranslator()), qtiPackage);
        doSelectInsertionPoint(ureq, CMD_TOOLS_ADD_FIB, insertObject);
    } else if (addEssayLink == source) {
        ItemNode insertObject = new ItemNode(QTIEditHelper.createEssayItem(getTranslator()), qtiPackage);
        doSelectInsertionPoint(ureq, CMD_TOOLS_ADD_FREETEXT, insertObject);
    }
}
Also used : AssessmentNode(org.olat.ims.qti.editor.tree.AssessmentNode) CloseableModalController(org.olat.core.gui.control.generic.closablewrapper.CloseableModalController) GenericQtiNode(org.olat.ims.qti.editor.tree.GenericQtiNode) QTIEditorResolver(org.olat.ims.qti.process.QTIEditorResolver) SectionNode(org.olat.ims.qti.editor.tree.SectionNode) Section(org.olat.ims.qti.editor.beecom.objects.Section) IQPreviewSecurityCallback(org.olat.modules.iq.IQPreviewSecurityCallback) VelocityContainer(org.olat.core.gui.components.velocity.VelocityContainer) TooledStackedPanel(org.olat.core.gui.components.stack.TooledStackedPanel) Panel(org.olat.core.gui.components.panel.Panel) Item(org.olat.ims.qti.editor.beecom.objects.Item) ItemNode(org.olat.ims.qti.editor.tree.ItemNode) InsertItemTreeModel(org.olat.ims.qti.editor.tree.InsertItemTreeModel) TreeNode(org.olat.core.gui.components.tree.TreeNode) Component(org.olat.core.gui.components.Component) JSAndCSSComponent(org.olat.core.gui.components.htmlheader.jscss.JSAndCSSComponent)

Example 59 with Component

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

the class IQManager method createLockedMessageController.

private GenericMainController createLockedMessageController(UserRequest ureq, WindowControl wControl, String fullName) {
    // wrap simple message into mainLayout
    GenericMainController glc = new GenericMainController(ureq, wControl) {

        @Override
        public void init(UserRequest uureq) {
            Panel empty = new Panel("empty");
            setTranslator(Util.createPackageTranslator(this.getClass(), uureq.getLocale()));
            Controller contentCtr = MessageUIFactory.createInfoMessage(uureq, getWindowControl(), translate("status.currently.locked.title"), translate("status.currently.locked", fullName));
            // auto dispose later
            listenTo(contentCtr);
            Component resComp = contentCtr.getInitialComponent();
            LayoutMain3ColsController columnLayoutCtr = new LayoutMain3ColsController(uureq, getWindowControl(), empty, resComp, /*do not save no prefs*/
            null);
            // auto dispose later
            listenTo(columnLayoutCtr);
            putInitialPanel(columnLayoutCtr.getInitialComponent());
        }

        @Override
        protected Controller handleOwnMenuTreeEvent(Object uobject, UserRequest uureq) {
            // no menutree means no menu events.
            return null;
        }
    };
    glc.init(ureq);
    return glc;
}
Also used : Panel(org.olat.core.gui.components.panel.Panel) GenericMainController(org.olat.core.gui.control.generic.layout.GenericMainController) LayoutMain3ColsController(org.olat.core.commons.fullWebApp.LayoutMain3ColsController) LayoutMain3ColsController(org.olat.core.commons.fullWebApp.LayoutMain3ColsController) GenericMainController(org.olat.core.gui.control.generic.layout.GenericMainController) IQEditController(org.olat.course.nodes.iq.IQEditController) OLATResourceableListeningWrapperController(org.olat.core.util.controller.OLATResourceableListeningWrapperController) MainLayoutController(org.olat.core.gui.control.generic.layout.MainLayoutController) Controller(org.olat.core.gui.control.Controller) Component(org.olat.core.gui.components.Component) UserRequest(org.olat.core.gui.UserRequest)

Example 60 with Component

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

the class GoToAdminController method event.

@Override
protected void event(UserRequest ureq, Component source, Event event) {
    if (source == segmentView) {
        if (event instanceof SegmentViewEvent) {
            SegmentViewEvent sve = (SegmentViewEvent) event;
            String segmentCName = sve.getComponentName();
            Component clickedLink = mainVC.getComponent(segmentCName);
            if (clickedLink == accountLink) {
                doOpenAccountSettings(ureq);
            } else if (clickedLink == organizersLink) {
                doOpenOrganizersList(ureq);
            } else if (clickedLink == meetingsLink) {
                doOpenMeetingsList(ureq);
            }
        }
    }
}
Also used : SegmentViewEvent(org.olat.core.gui.components.segmentedview.SegmentViewEvent) Component(org.olat.core.gui.components.Component) SegmentViewComponent(org.olat.core.gui.components.segmentedview.SegmentViewComponent)

Aggregations

Component (org.olat.core.gui.components.Component)300 SegmentViewComponent (org.olat.core.gui.components.segmentedview.SegmentViewComponent)90 SegmentViewEvent (org.olat.core.gui.components.segmentedview.SegmentViewEvent)90 ArrayList (java.util.ArrayList)36 Controller (org.olat.core.gui.control.Controller)28 Link (org.olat.core.gui.components.link.Link)22 BasicController (org.olat.core.gui.control.controller.BasicController)22 CloseableModalController (org.olat.core.gui.control.generic.closablewrapper.CloseableModalController)22 VelocityContainer (org.olat.core.gui.components.velocity.VelocityContainer)18 Panel (org.olat.core.gui.components.panel.Panel)12 HighScoreRunController (org.olat.course.highscore.ui.HighScoreRunController)12 Date (java.util.Date)10 UserRequest (org.olat.core.gui.UserRequest)10 ComponentRenderer (org.olat.core.gui.components.ComponentRenderer)10 TreeNode (org.olat.core.gui.components.tree.TreeNode)10 RenderResult (org.olat.core.gui.render.RenderResult)10 StringOutput (org.olat.core.gui.render.StringOutput)10 Translator (org.olat.core.gui.translator.Translator)10 AbstractComponent (org.olat.core.gui.components.AbstractComponent)8 GenericTreeModel (org.olat.core.gui.components.tree.GenericTreeModel)8