Package org.olat.core.util.bulk

Examples of org.olat.core.util.bulk.BulkAction


    fKeys = new String[sizeBulkActions];
    fValues = new String[sizeBulkActions];
    int j = 0;
    for (Iterator iter = bulkActions.iterator(); iter.hasNext();) {
      fKeys[j] = Integer.toString(j);
      BulkAction ba = (BulkAction) iter.next();
      fValues[j] = ba.getDisplayName();
      j++;
    }
   
    initForm(ureq);
  }
View Full Code Here


    String[] fKeys = new String[sizeBulkActions];
    String[] fValues = new String[sizeBulkActions];
    int j = 0;
    for (Iterator iter = bulkActions.iterator(); iter.hasNext();) {
      fKeys[j] = Integer.toString(j);
      BulkAction ba = (BulkAction) iter.next();
      fValues[j] = ba.getDisplayName();
      j++;
    }
    bulkSelElement = new StaticSingleSelectionElement("form.step3.bulkactions", fKeys, fValues);
    bulkSelElement.select("0",true);
    addFormElement("form.step3.bulkactions", bulkSelElement);
View Full Code Here

        step2VC = createVelocityContainer("bulkstep2");
        back2 = LinkFactory.createLinkBack(step2VC, this);
       
        selectedBulk = bulkStep1Form.getSelectedBulkAction();
        bulkType = Integer.parseInt(selectedBulk);
        BulkAction ba = (BulkAction) bulkActions.get(bulkType);
        bulkActionDisplayName = ba.getDisplayName();
        step2VC.contextPut("bulkActionDisplayName", bulkActionDisplayName);
       
        doNodeChoose(ureq);
        wc.setWizardTitle(translate("wizard.step2.title"));
        wc.setNextWizardStep(translate("wizard.step2.howto"), step2VC);
    }
    // event from step 2, preparing step 3
    if (source == nodeListCtr && event.getCommand().equals(Table.COMMANDLINK_ROWACTION_CLICKED)) {
        TableEvent te = (TableEvent) event;
        String actionid = te.getActionId();
        if (actionid.equals(CMD_SELECT_NODE)) {
          int rowid = te.getRowId();
          Map nodeData = (Map) nodeTableModel.getObject(rowid);
          ICourse course = CourseFactory.loadCourse(ores);
          this.currentCourseNode = course.getRunStructure().getNode((String) nodeData.get(AssessmentHelper.KEY_IDENTIFYER));
          currentNodeShortTitle = currentCourseNode.getShortTitle();
         
          removeAsListenerAndDispose(bulkStep3Form);
          bulkStep3Form = new BulkStep3Form(ureq, getWindowControl());
          listenTo(bulkStep3Form);
         
         
          step3VC = createVelocityContainer("bulkstep3");
          step3VC.contextPut("currentNodeShortTitle", currentNodeShortTitle);
          step3VC.contextPut("bulkActionDisplayName", bulkActionDisplayName);
         
          back3 = LinkFactory.createLinkBack(step3VC, this);
         
          step3VC.put("step3Form", bulkStep3Form.getInitialComponent());
         
          wc.setWizardTitle(translate("wizard.step3.title"));
          wc.setNextWizardStep(translate("wizard.step3.howto"), step3VC);
      }
    }
    // events from step 3, preparing step 4
    else if (source == bulkStep3Form && event == Event.DONE_EVENT) {

        this.rows = bulkStep3Form.getInputRows();
        this.numOfLines = bulkStep3Form.getNumOfLines();
        this.numOfValPerLine = bulkStep3Form.getNumOfValPerLine();

        columnNames = new ArrayList();
        tableConfig = new TableGuiConfiguration();
        tableConfig.setDownloadOffered(false);
        tableConfig.setSortingEnabled(false);
        tableConfig.setColumnMovingOffered(false);
        hcTranslator = new HeaderColumnTranslator(getTranslator());
        dataTableCtr = new TableController(tableConfig, ureq, getWindowControl(), hcTranslator, this);
        for(int i = 0;i < numOfValPerLine; i++){
          dataTableCtr.addColumnDescriptor(new DefaultColumnDescriptor("ccc"+(i+1), i, null, ureq.getLocale()));
          // add every name of a column to a list deployed as pulldown to the user for matching column with olat key
          columnNames.add(getTranslator().translate("column", new String[]{""+(i+1)}));
        }
       
        step4VC = createVelocityContainer("bulkstep4");
        step4VC.contextPut("bulkActionDisplayName", bulkActionDisplayName);
        step4VC.contextPut("currentNodeShortTitle", currentNodeShortTitle);
       
        back4 = LinkFactory.createLinkBack(step4VC, this);
       
        dataModel = new GenericObjectArrayTableDataModel(rows, numOfLines);
        // the data model already contains the column for the feedback,
        // which is used at step 6 and not yet shown to the user
        dataTableCtr.setTableDataModel(dataModel);
        step4VC.put("dataTable", dataTableCtr.getInitialComponent());
       
        olatKeys = new ArrayList();
        // adding order is relevant for the "if-else if"-statement below at events from step 5
        olatKeys.add(translate("username"));
        olatKeys.add(translate("form.name.email"));
       
        removeAsListenerAndDispose(bulkStep4Form);
        bulkStep4Form = new BulkStep4Form(ureq, getWindowControl(), olatKeys,columnNames);
        listenTo(bulkStep4Form);
       
        step4VC.put("step4Form", bulkStep4Form.getInitialComponent());
       
        wc.setWizardTitle(translate("wizard.step4.title"));
        wc.setNextWizardStep(translate("wizard.step4.howto"), step4VC);
     
    }
    // events from step 4, preparing step 5
    else if (source == bulkStep4Form && event == Event.DONE_EVENT) {

        selectedColForOlatKey = Integer.parseInt(bulkStep4Form.getSelectedColumn());
        selectedOlatKey = Integer.parseInt(bulkStep4Form.getSelectedOlatKey());
        selectedValueOfOlatKey = (String) olatKeys.get(selectedOlatKey);
       
        step5VC = createVelocityContainer("bulkstep5");
        step5VC.contextPut("bulkActionDisplayName", bulkActionDisplayName);
        step5VC.contextPut("currentNodeShortTitle", currentNodeShortTitle);
       
        back5 = LinkFactory.createLinkBack(step5VC, this);
       
        dataTableCtr = new TableController(tableConfig, ureq, getWindowControl(), hcTranslator, this);
        columnNames = null;
        columnNames = new ArrayList();
        for(int i = 0;i < numOfValPerLine; i++){
          if (i != selectedColForOlatKey){
            dataTableCtr.addColumnDescriptor(new DefaultColumnDescriptor("ccc"+(i+1), i, null, ureq.getLocale()));
            // add every name of a column to a list deployed as pulldown to the user for matching column with bulk action
            columnNames.add(getTranslator().translate("column", new String[]{""+(i+1)}));
          }else{
            dataTableCtr.addColumnDescriptor(new DefaultColumnDescriptor("hhh" + selectedValueOfOlatKey, i, null, ureq.getLocale()));
          }
        }
       
        dataTableCtr.setTableDataModel(dataModel);
        step5VC.put("dataTable", dataTableCtr.getInitialComponent());
       
        removeAsListenerAndDispose(bulkStep5Form);
        bulkStep5Form = new BulkStep5Form(ureq, getWindowControl(), columnNames, bulkActions);
        listenTo(bulkStep5Form);
       
        step5VC.put("step5Form", bulkStep5Form.getInitialComponent());
       
        wc.setWizardTitle(translate("wizard.step5.title"));
        wc.setNextWizardStep(translate("wizard.step5.howto"), step5VC);
    }
    // events from step 5, preparing step 6
    else if (source == bulkStep5Form && event == Event.DONE_EVENT) { // user clicked 'next'-button !!!!!!!
        List rowsFeedbackStep = new ArrayList(rows.size());
        for (Iterator iter = rows.iterator(); iter.hasNext();) {
          Object[] values = (Object[]) iter.next();
          rowsFeedbackStep.add(values.clone());
        }
        String selectedColForBulk = bulkStep5Form.getSelectedColumn();
        int colForBulk = Integer.parseInt(selectedColForBulk);
        // While the user is matching the olatKey with a table column the relation between
        // table indices and pulldown menu indices is ok, but now while matching the bulkaction
        // with a table column the indices are only ok in certain cases, because the user choosen
        // column for the olatKey is not more shown in the second pulldown menu. It means by example
        // if the user choose pulldown index [1] for the olatKey, it really meets the table index[1],
        // then in the next step the pulldown has not more as many indices as before.
        // If the user is now choosing the pulldown index[1] for the bulkaction he would meet the before selected
        // column for the olatKey, if the system id not adding 1 to the index count.
        if (selectedColForOlatKey <= colForBulk) colForBulk++;

        step6VC = createVelocityContainer("bulkstep6");
        finishedButton = LinkFactory.createButtonSmall("finished", step6VC, this);
        step6VC.put("finishedButton", finishedButton);
       
        step6VC.contextPut("bulkActionDisplayName", bulkActionDisplayName);
        step6VC.contextPut("currentNodeShortTitle", currentNodeShortTitle);
       
        back6 = LinkFactory.createLinkBack(step6VC, this);
       
        GenericObjectArrayTableDataModel feedbackDataModel = new GenericObjectArrayTableDataModel(rowsFeedbackStep, numOfLines);
       
        UserManager um = UserManager.getInstance();
        Manager secMgr = ManagerFactory.getManager();
       
        BulkActionModule bam = new BulkActionModule();
        BulkAction ba = (BulkAction) bulkActions.get(bulkType);

        // TODO: as:b may be add additional class hierarchy (ask pb !!!)
        if ((ba instanceof BulkActionSetNodeScore)){
          ((BulkActionSetNodeScore) ba).setCourseNode((AssessableCourseNode)currentCourseNode);
        }else if ((ba instanceof BulkActionSetNodePassed)){
          ((BulkActionSetNodePassed) ba).setCourseNode((AssessableCourseNode)currentCourseNode);
        }else if ((ba instanceof BulkActionSetNodeUserComment)){
          ((BulkActionSetNodeUserComment) ba).setCourseNode((AssessableCourseNode)currentCourseNode);
        }
       
        List identitiesAndTheirAssessments = new ArrayList(feedbackDataModel.getRowCount());
        // read values from the column which the user has defined as olat key (e.g. username)
        // and add them to a list.
        for(int i = 0; i < feedbackDataModel.getRowCount(); i ++ ){
          String val = (String) feedbackDataModel.getValueAt(i, selectedColForOlatKey);
          val = val.trim();
          String assessment = (String) feedbackDataModel.getValueAt(i, colForBulk);
          Identity identity = null;

          if (selectedOlatKey == 0){ // username
              identity = secMgr.findIdentityByName(val);
          }else if (selectedOlatKey == 1) { // email
            identity = um.findIdentityByEmail(val);
          }
          identitiesAndTheirAssessments.add(new Object[]{identity,assessment});
        }
        List bulkResults = bam.apply(identitiesAndTheirAssessments, ba);
       
        // add the bulk results to the data model
        for(int i = 0; i < feedbackDataModel.getRowCount(); i++ ){           
          Object[] feedback = (Object[]) bulkResults.get(i);
          feedbackDataModel.setValueAt(feedback[2],i, numOfValPerLine);
        }
       
        tableConfig.setDownloadOffered(true);
       
        feedbackDataTableCtr = new TableController(tableConfig, ureq, getWindowControl(), hcTranslator, this);
        columnNames = null;
        columnNames = new ArrayList();
        for(int i = 0;i < numOfValPerLine; i++){
          if (i == selectedColForOlatKey){
            feedbackDataTableCtr.addColumnDescriptor(new DefaultColumnDescriptor("hhh" + selectedValueOfOlatKey, i, null, ureq.getLocale()));
          }else if (i == colForBulk){
            feedbackDataTableCtr.addColumnDescriptor(new DefaultColumnDescriptor("hhh" + ba.getDisplayName(), i, null, ureq.getLocale()));
          }else{
            feedbackDataTableCtr.addColumnDescriptor(new DefaultColumnDescriptor("ccc"+(i+1), i, null, ureq.getLocale()));
          }
        }
        // add feedback columns
View Full Code Here

         
        UserManager um = UserManager.getInstance();
        Manager secMgr = ManagerFactory.getManager();
       
        BulkActionModule bam = new BulkActionModule();
        BulkAction ba = (BulkAction) bulkActions.get(bulk);
        List identities = new ArrayList(sepValFinModel.getRowCount());
       
        // read values from the column which the user has defined as olat key (e.g. username)
        // and add them to a list.
        for(int i = 0; i < sepValFinModel.getRowCount(); i ++ ){
          String val = (String) sepValFinModel.getValueAt(i, selectedColForOlatKey);
          val = val.trim();
          Identity identity = null;

          if (selectedOlatKey == 0) { // matrikelnumber
            Map<String, String> searchValue = new HashMap<String, String>();
            searchValue.put(UserConstants.INSTITUTIONALUSERIDENTIFIER, val);
            List identitiesFoundByInst = ManagerFactory.getManager().getIdentitiesByPowerSearch(null, searchValue, true, null, null, null, null, null, null);
            //FIXME:as:b error handling if there is more than one identity found by institutionalUserIdentifier
            // see also in BulkAssessmentWizardController
            if (identitiesFoundByInst.size() == 1){
              identity = (Identity) identitiesFoundByInst.get(0);
            }
          }else if (selectedOlatKey == 1){ // username
              identity = secMgr.findIdentityByName(val);
          }else if (selectedOlatKey == 2) { // email
            identity = um.findIdentityByEmail(val);
          }
          identities.add(identity);
        }
        // get results from the user chosen bulk action for every identity
        List bulkResults = bam.apply(identities, ba);
        // add the bulk results to the data model
        for(int i = 0; i < sepValFinModel.getRowCount(); i++ ){
          String result = (String) bulkResults.get(i);
          sepValFinModel.setValueAt(result,i,colForBulk);
        }
       
        tableConfig.setDownloadOffered(true);
        TableController sepValFinTableCtr = new TableController(tableConfig, ureq, getWindowControl(), hcTranslator, this);
        columnNames = null;
        columnNames = new ArrayList();
        for(int i = 0;i < numOfValuesPerLine+1; i++){
          if (i == selectedColForOlatKey){
            sepValFinTableCtr.addColumnDescriptor(new DefaultColumnDescriptor("hhh" + selectedValueOfOlatKey, i, null, ureq.getLocale()));
          }else if (i == colForBulk){
            sepValFinTableCtr.addColumnDescriptor(new DefaultColumnDescriptor("hhh" + ba.getDisplayName(), i, null, ureq.getLocale()));
          }else{
            sepValFinTableCtr.addColumnDescriptor(new DefaultColumnDescriptor("ccc"+(i+1), i, null, ureq.getLocale()));
          }
        }
       
View Full Code Here

TOP

Related Classes of org.olat.core.util.bulk.BulkAction

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.