/** * This method is used to set scored questions data. * * @param scoredQuestionsData * @param sortableTable * @param isPrint */ void setSortedData( ArrayList<UserDataDo> scoredQuestionsData, SortTable sortableTable, boolean isPrint) { for (int i = 1; i <= scoredQuestionsData.size(); i++) { sortableTable.setValue(i, 0, scoredQuestionsData.get(i - 1).getItemSequence()); Label questionTitle = new Label( AnalyticsUtil.html2text( scoredQuestionsData.get(i - 1).getTitle() != null ? scoredQuestionsData.get(i - 1).getTitle() : "")); questionTitle.setStyleName(res.css().alignCenterAndBackground()); questionTitle.addStyleName(res.css().alignLeft()); sortableTable.setWidget(i, 1, questionTitle); VerticalPanel answerBreakDownpnl = new VerticalPanel(); if (scoredQuestionsData.get(i - 1).getType() != null) { String getQuestionType = scoredQuestionsData.get(i - 1).getType(); if (MC.equalsIgnoreCase(getQuestionType) || TF.equalsIgnoreCase(getQuestionType) || TSLASHF.equalsIgnoreCase(getQuestionType)) { if ((scoredQuestionsData.get(i - 1).getMetaData() != null) && (scoredQuestionsData.get(i - 1).getMetaData().size() != 0)) { int metaDataSize = scoredQuestionsData.get(i - 1).getMetaData().size(); int totalcount = scoredQuestionsData.get(i - 1).getAttempts(); for (int j = 0; j < metaDataSize; j++) { MetaDataDo metaData = scoredQuestionsData.get(i - 1).getMetaData().get(j); HorizontalPanel datagrap = new HorizontalPanel(); Label tickmarklbl = new Label(); tickmarklbl.setStyleName(res.css().tickMarkImgCss()); datagrap.add(tickmarklbl); String questionSequence = AnalyticsUtil.getCharForNumber(metaData.getSequence() - 1); int attemptCount = 0; Label sequenceCharlbl = new Label(questionSequence + ")"); sequenceCharlbl.setStyleName(res.css().barGraphCharacter()); datagrap.add(sequenceCharlbl); if (scoredQuestionsData.get(i - 1).getOptions() != null) { Map<String, Integer> authorObject = scoredQuestionsData.get(i - 1).getOptions(); /*JSONValue value = JSONParser.parseStrict(scoredQuestionsData.get(i-1).getOptions().toString()); JSONObject authorObject = value.isObject();*/ if (authorObject.keySet().size() != 0 && authorObject.get(questionSequence) != null) { attemptCount = (int) authorObject.get(questionSequence).doubleValue(); } } Label progressBarlbl = new Label(""); if (metaData.getIsCorrect() == 1) { tickmarklbl.addStyleName(res.css().tickMarkImg()); progressBarlbl.addStyleName(res.css().assignment_quesiton_ans_bar()); } else { progressBarlbl.addStyleName(res.css().wrongSelectStyle()); } float setWidth = ((float) attemptCount / (float) totalcount) * 100; setWidth = (setWidth == 0.0 ? 1 : setWidth); progressBarlbl.getElement().getStyle().setWidth(setWidth, Unit.PX); datagrap.add(progressBarlbl); Label countlbl = new Label("(" + attemptCount + ")"); datagrap.add(countlbl); answerBreakDownpnl.add(datagrap); } } } else if ((OE.equalsIgnoreCase(getQuestionType) || FIB.equalsIgnoreCase(getQuestionType) || MA.equalsIgnoreCase(getQuestionType)) && !isPrint) { Label viewResponselbl = new Label(i18n.GL2286()); viewResponselbl.getElement().setAttribute("labelType", "View Response"); viewResponselbl .getElement() .setAttribute( "resourceGooruId", scoredQuestionsData.get(i - 1).getResourceGooruOId()); viewResponselbl .getElement() .setAttribute("questionType", scoredQuestionsData.get(i - 1).getType()); viewResponselbl.setStyleName(res.css().viewResponseTextOpended()); viewResponselbl.addClickHandler(new ClickOnTableCell()); answerBreakDownpnl.add(viewResponselbl); } sortableTable.setWidget(i, 3, answerBreakDownpnl); sortableTable.setValue( i, 4, AnalyticsUtil.getTimeStampLabel(scoredQuestionsData.get(i - 1).getAvgTimeSpent()) .getText()); sortableTable.setWidget( i, 5, new AnalyticsReactionWidget(scoredQuestionsData.get(i - 1).getAvgReaction())); int[] pieChatValues = new int[4]; pieChatValues[0] = scoredQuestionsData.get(i - 1).getTotalInCorrectCount(); pieChatValues[1] = scoredQuestionsData.get(i - 1).getTotalCorrectCount(); pieChatValues[2] = scoredQuestionsData.get(i - 1).getSkip(); pieChatValues[3] = pieChatValues[0] + pieChatValues[1] + pieChatValues[2]; // set row style if (i % 2 == 0) { sortableTable.getRowFormatter().addStyleName(i, res.css().tableRowOdd()); sortableTable.setWidget( i, 2, new HCBarChart().pieChart("#fafafa", pieChatValues, isPrint)); } else { sortableTable.getRowFormatter().addStyleName(i, res.css().tableRowEven()); sortableTable.setWidget(i, 2, new HCBarChart().pieChart("#fff", pieChatValues, isPrint)); } } } }
/** * This method is used to set opended question data. * * @param result */ void setOpenendedQuestionsData(ArrayList<UserDataDo> result) { int totalUserCount = collectionMetaData.getUserCount(); final AdvancedFlexTable adTable = new AdvancedFlexTable(); adTable.getElement().setAttribute("style", "background: #fff; width: 1000px;"); adTable.setHeaderWidget(0, getHeaderLbl(i18n.GL3259(), 25)); adTable.setHeaderWidget(1, getHeaderLbl(i18n.GL0308(), 35)); adTable.setHeaderWidget(2, getHeaderLbl(i18n.GL3260(), 500)); adTable.setHeaderWidget(3, getHeaderLbl(i18n.GL2084(), 70)); adTable.setHeaderWidget(4, getHeaderLbl(i18n.GL3261(), 30)); adTable.setHeaderWidget(5, getHeaderLbl(i18n.GL3273(), 80)); if (result.size() != 0) { for (int i = 0; i < result.size(); i++) { adTable.setWidget(i, 0, new Label(String.valueOf(result.get(i).getItemSequence()))); // Set Question Title Label questionTitle = new Label(AnalyticsUtil.html2text(result.get(i).getTitle())); questionTitle.setStyleName(res.css().alignCenterAndBackground()); questionTitle.addStyleName(res.css().alignLeft()); adTable.setWidget(i, 1, questionTitle); // Set completion HTMLPanel completionpnl = new HTMLPanel(""); Label progressBar = new Label(); progressBar.setStyleName(res.css().setProgressBar()); completionpnl.add(progressBar); Label incompleteProgressBar = new Label(); incompleteProgressBar.setStyleName(res.css().setIncorrectProgressBar()); completionpnl.add(incompleteProgressBar); int attemptedCount = result.get(i).getTotalAttemptUserCount(); float maxAvgVal = ((float) attemptedCount) / ((float) totalUserCount); progressBar.getElement().getStyle().setWidth(maxAvgVal * 100, Unit.PX); incompleteProgressBar.getElement().getStyle().setWidth((100 - maxAvgVal * 100), Unit.PX); Label studentTextlbl = new Label(attemptedCount + "/" + totalUserCount + " Students"); studentTextlbl.setStyleName(res.css().alignCenterAndBackground()); studentTextlbl.getElement().getStyle().setWidth(100, Unit.PX); completionpnl.add(studentTextlbl); adTable.setWidget(i, 2, completionpnl); // Set time spent adTable.setWidget(i, 3, AnalyticsUtil.getTimeStampLabel(result.get(i).getAvgTimeSpent())); // Set reactions int reaction = result.get(i).getAvgReaction(); HTMLPanel reactionpnl = new HTMLPanel(""); reactionpnl.add(new AnalyticsReactionWidget(reaction)); Label reactioncount = new Label(); reactionpnl.add(reactioncount); reactioncount.setText(reaction + "/5"); reactioncount.setStyleName(res.css().alignCenterAndBackground()); adTable.setWidget(i, 4, reactionpnl); // set View response label Label viewResponselbl = new Label(i18n.GL2286()); viewResponselbl.setStyleName(res.css().viewResponseTextOpended()); viewResponselbl .getElement() .setAttribute("resourceGooruId", result.get(i).getResourceGooruOId()); viewResponselbl.getElement().setAttribute("questionType", result.get(i).getType()); viewResponselbl.getElement().setAttribute("labelType", "View Response"); adTable.setWidget(i, 5, viewResponselbl); } } adTable.getElement().setId("opendedData"); teacherOpenendedData.add(adTable); if (result.size() == 0) { Label erroeMsg = new Label(); erroeMsg.setStyleName(res.css().displayMessageTextForOEQuestions()); erroeMsg.setText(i18n.GL3118()); teacherOpenendedData.add(erroeMsg); } adTable.addDomHandler(new ClickOnTableCell(), ClickEvent.getType()); adTable .getElement() .getFirstChildElement() .getFirstChildElement() .getFirstChildElement() .getStyle() .setProperty("width", "98% !important"); }