Search in sources :

Example 1 with QItemEdited

use of org.olat.modules.qpool.ui.events.QItemEdited in project OpenOLAT by OpenOLAT.

the class QuestionItemDetailsController method event.

@Override
protected void event(UserRequest ureq, Controller source, Event event) {
    if (source == copyConfirmationCtrl) {
        doPostCopy(ureq, event);
        cmc.deactivate();
        cleanUp();
    } else if (source == conversionConfirmationCtrl) {
        doPostConvert(ureq, event);
        cmc.deactivate();
        cleanUp();
    } else if (source == selectGroupCtrl) {
        if (event instanceof BusinessGroupSelectionEvent) {
            BusinessGroupSelectionEvent bge = (BusinessGroupSelectionEvent) event;
            List<BusinessGroup> groups = bge.getGroups();
            if (groups.size() > 0) {
                QuestionItem item = (QuestionItem) ((SelectBusinessGroupController) source).getUserObject();
                doShareItemsWithGroup(ureq, item, groups);
                metadatasCtrl.updateShares();
            }
        }
        cmc.deactivate();
        cleanUp();
    } else if (source == selectPoolCtrl) {
        cmc.deactivate();
        if (event instanceof QPoolSelectionEvent) {
            QPoolSelectionEvent qpe = (QPoolSelectionEvent) event;
            List<Pool> pools = qpe.getPools();
            if (pools.size() > 0) {
                QuestionItemShort item = (QuestionItemShort) selectPoolCtrl.getUserObject();
                doShareItemsWithPool(ureq, item, pools);
                metadatasCtrl.updateShares();
            }
        }
        cleanUp();
    } else if (source == reviewActionCtrl) {
        if (QItemReviewEvent.START.equals(event.getCommand())) {
            doConfirmStartReview(ureq);
        } else if (QItemReviewEvent.DO.equals(event.getCommand())) {
            openReview(ureq);
        }
    } else if (source == reviewStartCtrl) {
        if (event == Event.DONE_EVENT) {
            TaxonomyLevel taxonomyLevel = reviewStartCtrl.getSelectedTaxonomyLevel();
            doStartReview(ureq, taxonomyLevel);
        }
        cmc.deactivate();
        cleanUp();
    } else if (source == reviewCtrl) {
        if (event == Event.DONE_EVENT) {
            float rating = reviewCtrl.getCurrentRatting();
            String comment = reviewCtrl.getComment();
            doRate(ureq, rating, comment);
        }
        cmc.deactivate();
        cleanUp();
    } else if (source == confirmEndOfLifeCtrl) {
        boolean endOfLife = DialogBoxUIFactory.isYesEvent(event) || DialogBoxUIFactory.isOkEvent(event);
        if (endOfLife) {
            QuestionItem item = (QuestionItem) confirmEndOfLifeCtrl.getUserObject();
            doEndOfLife(ureq, item);
        }
        cleanUp();
    } else if (source == deleteConfirmationCtrl) {
        if (event == Event.DONE_EVENT) {
            List<QuestionItemShort> items = deleteConfirmationCtrl.getItemsToDelete();
            doDelete(ureq, items);
        }
        cmc.deactivate();
        cleanUp();
    } else if (source == cmc) {
        cleanUp();
    } else if (source == questionCtrl) {
        if (event instanceof QItemEdited) {
            questionEdited = true;
            fireEvent(ureq, event);
        }
    } else if (source == metadatasCtrl) {
        if (event instanceof QItemEdited) {
            reloadData(ureq);
            fireEvent(ureq, event);
        }
    }
    super.event(ureq, source, event);
}
Also used : QItemEdited(org.olat.modules.qpool.ui.events.QItemEdited) BusinessGroup(org.olat.group.BusinessGroup) QPoolSelectionEvent(org.olat.modules.qpool.ui.events.QPoolSelectionEvent) BusinessGroupSelectionEvent(org.olat.group.model.BusinessGroupSelectionEvent) QuestionItemShort(org.olat.modules.qpool.QuestionItemShort) TaxonomyLevel(org.olat.modules.taxonomy.TaxonomyLevel) List(java.util.List) ArrayList(java.util.ArrayList) QuestionItem(org.olat.modules.qpool.QuestionItem)

Example 2 with QItemEdited

use of org.olat.modules.qpool.ui.events.QItemEdited in project OpenOLAT by OpenOLAT.

the class QuestionListController method event.

@Override
protected void event(UserRequest ureq, Controller source, Event event) {
    if (source == shareTargetCtrl) {
        List<QuestionItemShort> items = getSelectedShortItems();
        calloutCtrl.deactivate();
        if (items.isEmpty()) {
            showWarning("error.select.one");
        } else if (ShareTargetController.SHARE_GROUP_CMD.equals(event.getCommand())) {
            doSelectGroup(ureq, items);
        } else if (ShareTargetController.SHARE_POOL_CMD.equals(event.getCommand())) {
            doSelectPool(ureq, items);
        }
    } else if (source == selectPoolCtrl) {
        cmc.deactivate();
        if (event instanceof QPoolSelectionEvent) {
            QPoolSelectionEvent qpe = (QPoolSelectionEvent) event;
            List<Pool> pools = qpe.getPools();
            if (pools.size() > 0) {
                @SuppressWarnings("unchecked") List<QuestionItemShort> items = (List<QuestionItemShort>) selectPoolCtrl.getUserObject();
                doShareItemsToPools(ureq, items, pools);
            }
        }
    } else if (source == importSourcesCtrl) {
        calloutCtrl.deactivate();
        if (ImportSourcesController.IMPORT_FILE.equals(event.getCommand())) {
            doOpenFileImport(ureq);
        } else if (ImportSourcesController.IMPORT_REPO.equals(event.getCommand())) {
            doOpenRepositoryImport(ureq);
        } else if (ImportSourcesController.IMPORT_EXCEL_QTI_12.equals(event.getCommand())) {
            doOpenExcelImportQTI12(ureq);
        } else if (ImportSourcesController.IMPORT_EXCEL_QTI_21.equals(event.getCommand())) {
            doOpenExcelImportQTI21(ureq);
        }
    } else if (source == newItemOptionsCtrl) {
        cmc.deactivate();
        if (event instanceof QItemCreationCmdEvent) {
            QItemCreationCmdEvent qicce = (QItemCreationCmdEvent) event;
            doCreateNewItem(ureq, qicce.getTitle(), qicce.getTaxonomyLevel(), qicce.getFactory());
        }
    } else if (source == selectGroupCtrl) {
        cmc.deactivate();
        if (event instanceof BusinessGroupSelectionEvent) {
            BusinessGroupSelectionEvent bge = (BusinessGroupSelectionEvent) event;
            List<BusinessGroup> groups = bge.getGroups();
            if (groups.size() > 0) {
                @SuppressWarnings("unchecked") List<QuestionItemShort> items = (List<QuestionItemShort>) selectGroupCtrl.getUserObject();
                doShareItemsToGroups(ureq, items, groups);
            }
        }
    } else if (source == shareItemsCtrl) {
        if (event instanceof QPoolEvent) {
            fireEvent(ureq, event);
        }
        cmc.deactivate();
        cleanUp();
    } else if (source == listTargetCtrl) {
        List<QuestionItemShort> items = getSelectedShortItems();
        calloutCtrl.deactivate();
        if (CollectionTargetController.ADD_TO_LIST_POOL_CMD.equals(event.getCommand())) {
            if (items.isEmpty()) {
                showWarning("error.select.one");
            } else {
                doChooseCollection(ureq, items);
            }
        } else if (CollectionTargetController.NEW_LIST_CMD.equals(event.getCommand())) {
            doAskCollectionName(ureq, items);
        } else if (CollectionTargetController.RENAME_LIST_CMD.equals(event.getCommand())) {
            doOpenRenameCallout(ureq);
        } else if (CollectionTargetController.DELETE_LIST_CMD.equals(event.getCommand())) {
            doConfirmDeleteSource(ureq);
        }
    } else if (source == createCollectionCtrl) {
        if (Event.DONE_EVENT == event) {
            List<QuestionItemShort> items = createCollectionCtrl.getUserObject();
            String collectionName = createCollectionCtrl.getName();
            doCreateCollection(ureq, collectionName, items);
        }
        cmc.deactivate();
        cleanUp();
    }
    if (source == confirmDeleteSourceBox) {
        boolean delete = DialogBoxUIFactory.isYesEvent(event) || DialogBoxUIFactory.isOkEvent(event);
        if (delete) {
            doDeleteItemCollection(ureq);
        }
    } else if (source == renameCtrl) {
        cmc.deactivate();
        if (Event.CHANGED_EVENT == event) {
            String newName = renameCtrl.getName();
            doRenameItemCollection(ureq, newName);
        }
    } else if (source == chooseCollectionCtrl) {
        cmc.deactivate();
        cleanUp();
    } else if (source == createTestTargetCtrl && event instanceof ExportFormatSelectionEvent) {
        calloutCtrl.deactivate();
        ExportFormatSelectionEvent efsEvent = (ExportFormatSelectionEvent) event;
        ExportFormatOptions format = efsEvent.getFormat();
        List<QuestionItemShort> items = getSelectedShortItems();
        doShowCreateTestOverview(ureq, items, format);
    } else if (source == createTestOverviewCtrl) {
        List<QuestionItemShort> items = createTestOverviewCtrl.getExportableQuestionItems();
        String typeFormat = createTestOverviewCtrl.getResourceTypeFormat();
        cmc.deactivate();
        cleanUp();
        if (event == Event.DONE_EVENT) {
            doOpenCreateRepositoryTest(ureq, items, typeFormat);
        }
    } else if (source == exportWizard) {
        if (event == Event.CANCELLED_EVENT || event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
            getWindowControl().pop();
            removeAsListenerAndDispose(exportWizard);
            StepsRunContext runContext = exportWizard.getRunContext();
            exportWizard = null;
            if (event == Event.CHANGED_EVENT) {
                doExecuteExport(ureq, runContext);
            }
        }
    } else if (source == excelImportWizard) {
        if (event == Event.CANCELLED_EVENT || event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
            getWindowControl().pop();
            removeAsListenerAndDispose(excelImportWizard);
            excelImportWizard = null;
        }
    } else if (source == importAuthorsWizard) {
        if (event == Event.CANCELLED_EVENT || event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
            getWindowControl().pop();
            removeAsListenerAndDispose(importAuthorsWizard);
            importAuthorsWizard = null;
        }
    } else if (source == importItemCtrl) {
        if (event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
            getItemsTable().reset();
        }
        cmc.deactivate();
        cleanUp();
    } else if (source == importTestCtrl) {
        RepositoryEntry re = importTestCtrl.getSelectedEntry();
        cmc.deactivate();
        cleanUp();
        if (event == ReferencableEntriesSearchController.EVENT_REPOSITORY_ENTRY_SELECTED) {
            doImportResource(ureq, re);
        }
    } else if (source == shareItemsToSourceCtrl) {
        if (QPoolEvent.ITEM_SHARED.equals(event.getCommand())) {
            getItemsTable().reset();
        }
        cmcShareItemToSource.deactivate();
        cleanUp();
    } else if (source == bulkChangeCtrl) {
        if (event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
            updateRows(bulkChangeCtrl.getUpdatedItems());
            fireEvent(ureq, new QPoolEvent(QPoolEvent.BULK_CHANGE));
        }
        cmc.deactivate();
        cleanUp();
    } else if (source == copyConfirmationCtrl) {
        doPostCopy(ureq, event);
        cmc.deactivate();
        cleanUp();
    } else if (source == conversionConfirmationCtrl) {
        doPostConvert(ureq, event);
        cmc.deactivate();
        cleanUp();
    } else if (source == deleteConfirmationCtrl) {
        if (event == Event.DONE_EVENT) {
            List<QuestionItemShort> items = deleteConfirmationCtrl.getItemsToDelete();
            doDelete(items);
        }
        cmc.deactivate();
        cleanUp();
    } else if (source == confirmRemoveBox) {
        if (DialogBoxUIFactory.isYesEvent(event) || DialogBoxUIFactory.isOkEvent(event)) {
            @SuppressWarnings("unchecked") List<QuestionItemShort> items = (List<QuestionItemShort>) confirmRemoveBox.getUserObject();
            doRemove(items);
        }
    } else if (source == currentDetailsCtrl) {
        if (event instanceof QItemEvent) {
            QItemEvent qce = (QItemEvent) event;
            if ("copy-item".equals(qce.getCommand()) || "convert-item".equals(qce.getCommand())) {
                stackPanel.popUpToRootController(ureq);
                doOpenDetails(ureq, qce.getItem());
            } else if ("previous".equals(qce.getCommand())) {
                doPrevious(ureq, qce.getItem());
            } else if ("next".equals(qce.getCommand())) {
                doNext(ureq, qce.getItem());
            }
        } else if (event instanceof QItemEdited) {
            String title = ((QItemEdited) event).getItem().getTitle();
            stackPanel.changeDisplayname(title, null, currentDetailsCtrl);
            itemCollectionDirty = true;
        } else if (event instanceof QPoolEvent) {
            QPoolEvent qce = (QPoolEvent) event;
            if (QPoolEvent.ITEM_DELETED.equals(qce.getCommand())) {
                fireEvent(ureq, qce);
            } else if (QPoolEvent.ITEM_STATUS_CHANGED.equals(qce.getCommand())) {
                itemCollectionDirty = true;
            }
        }
    } else if (source == addController) {
        if (event instanceof EntryChangedEvent) {
            cmc.deactivate();
            cleanUp();
            EntryChangedEvent addEvent = (EntryChangedEvent) event;
            Long repoEntryKey = addEvent.getRepositoryEntryKey();
            doCreateRepositoryTest(ureq, repoEntryKey);
        } else if (event == Event.CANCELLED_EVENT) {
            cmc.deactivate();
            cleanUp();
        }
    } else if (source == cmc) {
        cleanUp();
    }
    super.event(ureq, source, event);
}
Also used : BusinessGroup(org.olat.group.BusinessGroup) BusinessGroupSelectionEvent(org.olat.group.model.BusinessGroupSelectionEvent) QPoolEvent(org.olat.modules.qpool.ui.events.QPoolEvent) RepositoryEntry(org.olat.repository.RepositoryEntry) StepsRunContext(org.olat.core.gui.control.generic.wizard.StepsRunContext) ExportFormatSelectionEvent(org.olat.modules.qpool.ui.events.ExportFormatSelectionEvent) QItemEdited(org.olat.modules.qpool.ui.events.QItemEdited) ExportFormatOptions(org.olat.modules.qpool.ExportFormatOptions) EntryChangedEvent(org.olat.repository.controllers.EntryChangedEvent) QPoolSelectionEvent(org.olat.modules.qpool.ui.events.QPoolSelectionEvent) QuestionItemShort(org.olat.modules.qpool.QuestionItemShort) QItemCreationCmdEvent(org.olat.modules.qpool.ui.events.QItemCreationCmdEvent) QItemEvent(org.olat.modules.qpool.ui.events.QItemEvent) QItemList(org.olat.modules.qpool.model.QItemList) List(java.util.List) ArrayList(java.util.ArrayList)

Example 3 with QItemEdited

use of org.olat.modules.qpool.ui.events.QItemEdited in project OpenOLAT by OpenOLAT.

the class QuestionMetadataEditController method formOK.

@Override
protected void formOK(UserRequest ureq) {
    if (item instanceof QuestionItemImpl) {
        QuestionItemImpl itemImpl = (QuestionItemImpl) item;
        QuestionItemAuditLogBuilder builder = qpoolService.createAuditLogBuilder(getIdentity(), Action.UPDATE_QUESTION_ITEM_METADATA);
        builder.withBefore(itemImpl);
        int day = learningTimeDayElement.getIntValue();
        int hour = learningTimeHourElement.getIntValue();
        int minute = learningTimeMinuteElement.getIntValue();
        int seconds = learningTimeSecondElement.getIntValue();
        String timeStr = MetadataConverterHelper.convertDuration(day, hour, minute, seconds);
        itemImpl.setEducationalLearningTime(timeStr);
        BigDecimal difficulty = toBigDecimal(difficultyEl.getValue());
        itemImpl.setDifficulty(difficulty);
        BigDecimal stdevDifficulty = toBigDecimal(stdevDifficultyEl.getValue());
        itemImpl.setStdevDifficulty(stdevDifficulty);
        BigDecimal differentiation = toBigDecimal(differentiationEl.getValue());
        itemImpl.setDifferentiation(differentiation);
        int numOfAnswerAlternatives = toInt(numAnswerAltEl.getValue());
        itemImpl.setNumOfAnswerAlternatives(numOfAnswerAlternatives);
        int numUsage = toInt(usageEl.getValue());
        itemImpl.setUsage(numUsage);
        item = qpoolService.updateItem(itemImpl);
        builder.withAfter(item);
        qpoolService.persist(builder.create());
        fireEvent(ureq, new QItemEdited(item));
    }
}
Also used : QuestionItemAuditLogBuilder(org.olat.modules.qpool.QuestionItemAuditLogBuilder) QItemEdited(org.olat.modules.qpool.ui.events.QItemEdited) QuestionItemImpl(org.olat.modules.qpool.model.QuestionItemImpl) MetaUIFactory.bigDToString(org.olat.modules.qpool.ui.metadata.MetaUIFactory.bigDToString) BigDecimal(java.math.BigDecimal) MetaUIFactory.validateBigDecimal(org.olat.modules.qpool.ui.metadata.MetaUIFactory.validateBigDecimal) MetaUIFactory.toBigDecimal(org.olat.modules.qpool.ui.metadata.MetaUIFactory.toBigDecimal)

Example 4 with QItemEdited

use of org.olat.modules.qpool.ui.events.QItemEdited in project OpenOLAT by OpenOLAT.

the class RightsMetadataEditController method formOK.

@Override
protected void formOK(UserRequest ureq) {
    if (item instanceof QuestionItemImpl) {
        QuestionItemImpl itemImpl = (QuestionItemImpl) item;
        QuestionItemAuditLogBuilder builder = qpoolService.createAuditLogBuilder(getIdentity(), Action.UPDATE_QUESTION_ITEM_METADATA);
        builder.withBefore(itemImpl);
        if (licenseModule.isEnabled(licenseHandler)) {
            if (licenseEl != null && licenseEl.isOneSelected()) {
                String licenseTypeKey = licenseEl.getSelectedKey();
                LicenseType licneseType = licenseService.loadLicenseTypeByKey(licenseTypeKey);
                license.setLicenseType(licneseType);
            }
            String licensor = null;
            String freetext = null;
            if (licensorEl != null && licensorEl.isVisible()) {
                licensor = StringHelper.containsNonWhitespace(licensorEl.getValue()) ? licensorEl.getValue() : null;
            }
            if (licenseFreetextEl != null && licenseFreetextEl.isVisible()) {
                freetext = StringHelper.containsNonWhitespace(licenseFreetextEl.getValue()) ? licenseFreetextEl.getValue() : null;
            }
            license.setLicensor(licensor);
            license.setFreetext(freetext);
            license = licenseService.update(license);
            licensorEl.setValue(license.getLicensor());
            licenseFreetextEl.setValue(license.getFreetext());
        }
        item = qpoolService.updateItem(item);
        builder.withAfter(itemImpl);
        qpoolService.persist(builder.create());
        fireEvent(ureq, new QItemEdited(item));
    }
}
Also used : QuestionItemAuditLogBuilder(org.olat.modules.qpool.QuestionItemAuditLogBuilder) QItemEdited(org.olat.modules.qpool.ui.events.QItemEdited) QuestionItemImpl(org.olat.modules.qpool.model.QuestionItemImpl) LicenseType(org.olat.core.commons.services.license.LicenseType)

Example 5 with QItemEdited

use of org.olat.modules.qpool.ui.events.QItemEdited in project OpenOLAT by OpenOLAT.

the class RightsMetadataEditController method event.

@Override
protected void event(UserRequest ureq, Controller source, Event event) {
    if (source == groupController) {
        if (event instanceof IdentitiesAddEvent) {
            IdentitiesAddEvent identitiesAddedEvent = (IdentitiesAddEvent) event;
            List<Identity> list = identitiesAddedEvent.getAddIdentities();
            qpoolService.addAuthors(list, Collections.<QuestionItemShort>singletonList(item));
            identitiesAddedEvent.getAddedIdentities().addAll(list);
        } else if (event instanceof IdentitiesRemoveEvent) {
            IdentitiesRemoveEvent identitiesRemoveEvent = (IdentitiesRemoveEvent) event;
            List<Identity> list = identitiesRemoveEvent.getRemovedIdentities();
            qpoolService.removeAuthors(list, Collections.<QuestionItemShort>singletonList(item));
        }
        reloadAuthors();
    // cmc.deactivate();
    // cleanUp();
    } else if (source == cmc) {
        fireEvent(ureq, new QItemEdited(item));
        cleanUp();
    }
    super.event(ureq, source, event);
}
Also used : QItemEdited(org.olat.modules.qpool.ui.events.QItemEdited) IdentitiesRemoveEvent(org.olat.admin.securitygroup.gui.IdentitiesRemoveEvent) QuestionItemShort(org.olat.modules.qpool.QuestionItemShort) IdentitiesAddEvent(org.olat.admin.securitygroup.gui.IdentitiesAddEvent) ArrayList(java.util.ArrayList) List(java.util.List) Identity(org.olat.core.id.Identity)

Aggregations

QItemEdited (org.olat.modules.qpool.ui.events.QItemEdited)18 QuestionItemImpl (org.olat.modules.qpool.model.QuestionItemImpl)12 QuestionItemAuditLogBuilder (org.olat.modules.qpool.QuestionItemAuditLogBuilder)8 ArrayList (java.util.ArrayList)6 List (java.util.List)6 QuestionItemShort (org.olat.modules.qpool.QuestionItemShort)6 BusinessGroup (org.olat.group.BusinessGroup)4 BusinessGroupSelectionEvent (org.olat.group.model.BusinessGroupSelectionEvent)4 QPoolSelectionEvent (org.olat.modules.qpool.ui.events.QPoolSelectionEvent)4 TaxonomyLevel (org.olat.modules.taxonomy.TaxonomyLevel)4 BigDecimal (java.math.BigDecimal)2 IdentitiesAddEvent (org.olat.admin.securitygroup.gui.IdentitiesAddEvent)2 IdentitiesRemoveEvent (org.olat.admin.securitygroup.gui.IdentitiesRemoveEvent)2 LicenseType (org.olat.core.commons.services.license.LicenseType)2 StepsRunContext (org.olat.core.gui.control.generic.wizard.StepsRunContext)2 Identity (org.olat.core.id.Identity)2 ExportFormatOptions (org.olat.modules.qpool.ExportFormatOptions)2 QuestionItem (org.olat.modules.qpool.QuestionItem)2 QEducationalContext (org.olat.modules.qpool.model.QEducationalContext)2 QItemList (org.olat.modules.qpool.model.QItemList)2