package se.idega.idegaweb.commune.school.presentation;
import java.util.Collection;
import java.util.Iterator;
import java.rmi.RemoteException;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.presentation.ExceptionWrapper;
import com.idega.presentation.IWContext;
import com.idega.presentation.Table;
import com.idega.presentation.ui.Form;
import se.idega.idegaweb.commune.school.business.SchoolMarksBusiness;
import se.idega.idegaweb.commune.school.business.SchoolStatistics;
import se.idega.idegaweb.commune.school.business.SchoolMarkValues;
import se.idega.idegaweb.commune.presentation.CommuneBlock;
/**
* Presents school marks statistics in a formatted table (approved by Nacka)
* <p>
* $Id: SchoolMarksPresenter2.java,v 1.10 2004/01/28 13:36:49 staffan Exp $
*
* This block presents School Marks Statistics according to the specifications made my
* Jill Salander
* Uppdragskontorer / Team SF
* Nacka Kommun
*
* "Redovisning av betyg i skol�r 9"
*
* The school marks originate from an imported "School Marks file" called 0182.dat which is delivered
* from SCB Statistiska Centralbyr�n. This file is delevered once a year. 0182 is the SCB Commune code.
*
* The "School Marks" calculation takes about 3 minutes the first round. The application however stores
* these first result in SchoolStatisticsDataBMPBean for fast retrieval on the main website.
*
* All algorithms for school marks calculation are done in the SchoolMarksBusiness
*
* A last minute presentation change (2003-10-02) made me do a "Total" calculation in the presentation
* see method sumSchoolTally. The schools are summed on the new field SchoolManagementType.
* All "kommunal" schools are added together and presented as a "total"-presentation (half way in the statistics).
* At the end the whole commune is summed (including the private schools).
*
* @author <a href="mailto:kjell@lindman.com">Kjell Lindman</a>
* @version $version$
*/
public class SchoolMarksPresenter2 extends CommuneBlock {
SchoolMarksBusiness smBiz = null;
private Form mainForm = null;
private IWResourceBundle iwrb = null;
private String blockWidth = "100%";
private String headerColor = "#003366";
private SchoolMarkValues _tallyEnglish;
private SchoolMarkValues _tallyMaths;
private SchoolMarkValues _tallySwedish;
private SchoolMarkValues _tallySwedish2;
private SchoolMarkValues _tallyAuth;
private SchoolMarkValues _tallyTotal;
private String headerStyle = "font-face:verdana; font-size:10px; font-weight: bold; color:#000000;";
private String linkStyle = "font-face:verdana; font-size:10px; font-weight: bold; color:#000080;";
private String textStyle = "font-face:verdana; font-size:10px; font-weight:plain;";
public String getBundleIdentifier() {
return IW_BUNDLE_IDENTIFIER;
}
public void setWidth(String width) {
blockWidth = width;
}
public String setWidth() {
return blockWidth;
}
public void setHeaderColor(String color) {
headerColor = color;
}
public void setLinkStyle(String style) {
linkStyle = style;
}
public String getHeaderColor() {
return headerColor;
}
public void setHeaderStyle(String style) {
headerStyle = style;
}
public void setTextStyle(String style) {
textStyle = style;
}
public String getHeaderStyle() {
return headerStyle;
}
public String getLinkStyle() {
return linkStyle;
}
public String getTextStyle() {
return textStyle;
}
public void main(IWContext iwc) throws Exception {
iwrb = getResourceBundle(iwc);
mainForm = new Form();
init(iwc);
try {
viewSchoolMarksList(iwc);
} catch (Exception e) {
super.add(new ExceptionWrapper(e, this));
}
add(mainForm);
}
private void viewSchoolMarksList(IWContext iwc) {
iwrb.getLocalizedString("school_marks_statistics.merite", "Meritv�rde");
int row = 0;
Table table = getMarksTable();
Collection marks = null;
try {
marks = smBiz.findSchoolMarksStatistics(iwc);
Iterator iter = marks.iterator();
row = 1;
smBiz.resetMeanValues();
resetTally();
String smtOld = "";
String smtNew = "";
int count = 0;
int mValue = 0;
int mNumber = 0;
while (iter.hasNext()) {
SchoolStatistics stat = (SchoolStatistics) iter.next();
smtNew = stat.getSchoolManagementType();
if(smtOld.compareTo(smtNew) != 0) {
smtOld = stat.getSchoolManagementType();
if(count++ > 0) {
table = insertTotals(iwrb.getLocalizedString("school_marks_stats.header1", "Totalt kommunala skolor"), table, row, roundAbout(mValue, mNumber));
row +=10;
}
}
table.add(getHeader(stat.getSchoolName()), 1, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.eg", "Ej godk�nt")), 2, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.g", "Godk�nt")), 4, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.vg", "V�l godk�nt")), 6, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.mvg", "Mycket v�l godk�nt")), 8, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.tot", "Totalt")), 10, row);
table.setColor(1, row, "#aaaaaa");
table.setColor(2, row, "#aaaaaa");
table.setColor(4, row, "#aaaaaa");
table.setColor(6, row, "#aaaaaa");
table.setColor(8, row, "#aaaaaa");
table.setColor(10, row, "#aaaaaa");
table.mergeCells(2, row, 3, row);
table.mergeCells(4, row, 5, row);
table.mergeCells(6, row, 7, row);
table.mergeCells(8, row, 9, row);
table.mergeCells(10, row, 11, row);
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_CENTER);
row++;
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_CENTER);
table.setAlignment(1, row, Table.HORIZONTAL_ALIGN_LEFT);
table.add(getHeader(iwrb.getLocalizedString("school_marks_stats.table_auth_marks_header", "Beh�righetsgivande betyg")), 1, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.number", "Antal")), 2, row);
table.add(getSmallText("%"), 3, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.number", "Antal")), 4, row);
table.add(getSmallText("%"), 5, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.number", "Antal")), 6, row);
table.add(getSmallText("%"), 7, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.number", "Antal")), 8, row);
table.add(getSmallText("%"), 9, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.number", "Antal")), 10, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.mean", "Medel")), 11, row);
row++;
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_RIGHT);
table.setAlignment(1, row, Table.HORIZONTAL_ALIGN_LEFT);
sumSchoolTally(stat.getEnglishMarks(), "English");
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.english", "Engelska")), 1, row);
table.add(getSmallText(stat.getEnglishMarks().eg.number), 2, row);
table.add(getSmallText(formatPct(stat.getEnglishMarks().eg.percent)), 3, row);
table.add(getSmallText(stat.getEnglishMarks().g.number), 4, row);
table.add(getSmallText(formatPct(stat.getEnglishMarks().g.percent)), 5, row);
table.add(getSmallText(stat.getEnglishMarks().vg.number), 6, row);
table.add(getSmallText(formatPct(stat.getEnglishMarks().vg.percent)), 7, row);
table.add(getSmallText(stat.getEnglishMarks().mvg.number), 8, row);
table.add(getSmallText(formatPct(stat.getEnglishMarks().mvg.percent)), 9, row);
table.add(getSmallText(stat.getEnglishMarks().tot.number), 10, row);
table.add(getSmallText(formatPct(stat.getEnglishMarks().tot.percent)), 11, row);
row++;
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_RIGHT);
table.setAlignment(1, row, Table.HORIZONTAL_ALIGN_LEFT);
sumSchoolTally(stat.getMathsMarks(), "Maths");
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.maths", "Matematik")), 1, row);
table.add(getSmallText(stat.getMathsMarks().eg.number), 2, row);
table.add(getSmallText(formatPct(stat.getMathsMarks().eg.percent)), 3, row);
table.add(getSmallText(stat.getMathsMarks().g.number), 4, row);
table.add(getSmallText(formatPct(stat.getMathsMarks().g.percent)), 5, row);
table.add(getSmallText(stat.getMathsMarks().vg.number), 6, row);
table.add(getSmallText(formatPct(stat.getMathsMarks().vg.percent)), 7, row);
table.add(getSmallText(stat.getMathsMarks().mvg.number), 8, row);
table.add(getSmallText(formatPct(stat.getMathsMarks().mvg.percent)), 9, row);
table.add(getSmallText(stat.getMathsMarks().tot.number), 10, row);
table.add(getSmallText(formatPct(stat.getMathsMarks().tot.percent)), 11, row);
row++;
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_RIGHT);
table.setAlignment(1, row, Table.HORIZONTAL_ALIGN_LEFT);
sumSchoolTally(stat.getSwedishMarks(), "Swedish");
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.swedish", "Svenska")), 1, row);
table.add(getSmallText(stat.getSwedishMarks().eg.number), 2, row);
table.add(getSmallText(formatPct(stat.getSwedishMarks().eg.percent)), 3, row);
table.add(getSmallText(stat.getSwedishMarks().g.number), 4, row);
table.add(getSmallText(formatPct(stat.getSwedishMarks().g.percent)), 5, row);
table.add(getSmallText(stat.getSwedishMarks().vg.number), 6, row);
table.add(getSmallText(formatPct(stat.getSwedishMarks().vg.percent)), 7, row);
table.add(getSmallText(stat.getSwedishMarks().mvg.number), 8, row);
table.add(getSmallText(formatPct(stat.getSwedishMarks().mvg.percent)), 9, row);
table.add(getSmallText(stat.getSwedishMarks().tot.number), 10, row);
table.add(getSmallText(formatPct(stat.getSwedishMarks().tot.percent)), 11, row);
row++;
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_RIGHT);
table.setAlignment(1, row, Table.HORIZONTAL_ALIGN_LEFT);
if (containsValues(stat.getSwedish2Marks())) {
sumSchoolTally(stat.getSwedish2Marks(), "Swedish2");
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.swedish2", "Svenska som andraspr�k")), 1, row);
table.add(getSmallText(stat.getSwedish2Marks().eg.number), 2, row);
table.add(getSmallText(formatPct(stat.getSwedish2Marks().eg.percent)), 3, row);
table.add(getSmallText(stat.getSwedish2Marks().g.number), 4, row);
table.add(getSmallText(formatPct(stat.getSwedish2Marks().g.percent)), 5, row);
table.add(getSmallText(stat.getSwedish2Marks().vg.number), 6, row);
table.add(getSmallText(formatPct(stat.getSwedish2Marks().vg.percent)), 7, row);
table.add(getSmallText(stat.getSwedish2Marks().mvg.number), 8, row);
table.add(getSmallText(formatPct(stat.getSwedish2Marks().mvg.percent)), 9, row);
table.add(getSmallText(stat.getSwedish2Marks().tot.number), 10, row);
table.add(getSmallText(formatPct(stat.getSwedish2Marks().tot.percent)), 11, row);
row++;
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_RIGHT);
table.setAlignment(1, row, Table.HORIZONTAL_ALIGN_LEFT);
}
sumSchoolTally(stat.getSumAuthMarks(), "Auth");
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.sumauthmarks", "Summa beh�righetsgivande po�ng")), 1, row);
table.add(getSmallText(stat.getSumAuthMarks().eg.number), 2, row);
table.add(getSmallText(formatPct(stat.getSumAuthMarks().eg.percent)), 3, row);
table.add(getSmallText(stat.getSumAuthMarks().g.number), 4, row);
table.add(getSmallText(formatPct(stat.getSumAuthMarks().g.percent)), 5, row);
table.add(getSmallText(stat.getSumAuthMarks().vg.number), 6, row);
table.add(getSmallText(formatPct(stat.getSumAuthMarks().vg.percent)), 7, row);
table.add(getSmallText(stat.getSumAuthMarks().mvg.number), 8, row);
table.add(getSmallText(formatPct(stat.getSumAuthMarks().mvg.percent)), 9, row);
table.add(getSmallText(stat.getSumAuthMarks().tot.number), 10, row);
table.add(getSmallText(formatPct(stat.getSumAuthMarks().tot.percent)), 11, row);
row++;
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_RIGHT);
table.setAlignment(1, row, Table.HORIZONTAL_ALIGN_LEFT);
sumSchoolTally(stat.getTotalMarks(), "Total");
table.add(getHeader(iwrb.getLocalizedString("school_marks_stats.total", "Totalt denna skola")), 1, row);
table.add(getHeader(stat.getTotalMarks().eg.number), 2, row);
table.add(getHeader(formatPct(stat.getTotalMarks().eg.percent)), 3, row);
table.add(getHeader(stat.getTotalMarks().g.number), 4, row);
table.add(getHeader(formatPct(stat.getTotalMarks().g.percent)), 5, row);
table.add(getHeader(stat.getTotalMarks().vg.number), 6, row);
table.add(getHeader(formatPct(stat.getTotalMarks().vg.percent)), 7, row);
table.add(getHeader(stat.getTotalMarks().mvg.number), 8, row);
table.add(getHeader(formatPct(stat.getTotalMarks().mvg.percent)), 9, row);
table.add(getHeader(stat.getTotalMarks().tot.number), 10, row);
table.add(getHeader(formatPct(stat.getTotalMarks().tot.percent)), 11, row);
row++;
table.add(getHeader(iwrb.getLocalizedString("school_marks_stats.merite_value", "Meritv�rde")+ ": " +stat.getMeriteValue().number), 1, row);
// mValue += Integer.parseInt(stat.getMeriteValue().number);
// mNumber++;
mValue += Integer.parseInt(stat.getTotalAuthPoints());
mNumber+= Integer.parseInt(stat.getTotalAuthStudents());
row++;
table.mergeCells(1, row, 11, row);
row++;
}
table = insertTotals(iwrb.getLocalizedString("school_marks_stats.header2", "Totalt Nacka skolor"), table, row, roundAbout(mValue, mNumber));
} catch (RemoteException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
mainForm.add(table);
}
private Table insertTotals(String header, Table table, int row, String meanMerite) {
table.add(getHeader(header), 1, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.eg", "Ej godk�nt")), 2, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.g", "Godk�nt")), 4, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.vg", "V�l godk�nt")), 6, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.mvg", "Mycket v�l godk�nt")), 8, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.tot", "Totalt")), 10, row);
table.setColor(1, row, "#aaaaaa");
table.setColor(2, row, "#aaaaaa");
table.setColor(4, row, "#aaaaaa");
table.setColor(6, row, "#aaaaaa");
table.setColor(8, row, "#aaaaaa");
table.setColor(10, row, "#aaaaaa");
table.mergeCells(2, row, 3, row);
table.mergeCells(4, row, 5, row);
table.mergeCells(6, row, 7, row);
table.mergeCells(8, row, 9, row);
table.mergeCells(10, row, 11, row);
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_CENTER);
row++;
table.setRowColor(row, "#e0e0e0");
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_CENTER);
table.setAlignment(1, row, Table.HORIZONTAL_ALIGN_LEFT);
table.add(getHeader(iwrb.getLocalizedString("school_marks_stats.table_auth_marks_header", "Beh�righetsgivande betyg")), 1, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.number", "Antal")), 2, row);
table.add(getSmallText("%"), 3, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.number", "Antal")), 4, row);
table.add(getSmallText("%"), 5, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.number", "Antal")), 6, row);
table.add(getSmallText("%"), 7, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.number", "Antal")), 8, row);
table.add(getSmallText("%"), 9, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.number", "Antal")), 10, row);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.mean", "Medel")), 11, row);
row++;
table.setRowColor(row, "#e0e0e0");
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_RIGHT);
table.setAlignment(1, row, Table.HORIZONTAL_ALIGN_LEFT);
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.english", "Engelska")), 1, row);
table.add(getSmallText(_tallyEnglish.eg.number), 2, row);
table.add(getSmallText(formatPct(tallyMean(_tallyEnglish.eg.percent, _tallyEnglish.ceg))), 3, row);
table.add(getSmallText(_tallyEnglish.g.number), 4, row);
table.add(getSmallText(formatPct(tallyMean(_tallyEnglish.g.percent, _tallyEnglish.cg))), 5, row);
table.add(getSmallText(_tallyEnglish.vg.number), 6, row);
table.add(getSmallText(formatPct(tallyMean(_tallyEnglish.vg.percent, _tallyEnglish.cvg))), 7, row);
table.add(getSmallText(_tallyEnglish.mvg.number), 8, row);
table.add(getSmallText(formatPct(tallyMean(_tallyEnglish.mvg.percent, _tallyEnglish.cmvg))), 9, row);
table.add(getSmallText(_tallyEnglish.tot.number), 10, row);
table.add(getSmallText(formatPct(tallyMean(_tallyEnglish.tot.percent, _tallyEnglish.ctot))), 11, row);
row++;
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_RIGHT);
table.setAlignment(1, row, Table.HORIZONTAL_ALIGN_LEFT);
table.setRowColor(row, "#e0e0e0");
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.maths", "Matematik")), 1, row);
table.add(getSmallText(_tallyMaths.eg.number), 2, row);
table.add(getSmallText(formatPct(tallyMean(_tallyMaths.eg.percent, _tallyMaths.ceg))), 3, row);
table.add(getSmallText(_tallyMaths.g.number), 4, row);
table.add(getSmallText(formatPct(tallyMean(_tallyMaths.g.percent, _tallyMaths.cg))), 5, row);
table.add(getSmallText(_tallyMaths.vg.number), 6, row);
table.add(getSmallText(formatPct(tallyMean(_tallyMaths.vg.percent, _tallyMaths.cvg))), 7, row);
table.add(getSmallText(_tallyMaths.mvg.number), 8, row);
table.add(getSmallText(formatPct(tallyMean(_tallyMaths.mvg.percent, _tallyMaths.cmvg))), 9, row);
table.add(getSmallText(_tallyMaths.tot.number), 10, row);
table.add(getSmallText(formatPct(tallyMean(_tallyMaths.tot.percent, _tallyMaths.ctot))), 11, row);
row++;
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_RIGHT);
table.setAlignment(1, row, Table.HORIZONTAL_ALIGN_LEFT);
table.setRowColor(row, "#e0e0e0");
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.swedish", "Svenska")), 1, row);
table.add(getSmallText(_tallySwedish.eg.number), 2, row);
table.add(getSmallText(formatPct(tallyMean(_tallySwedish.eg.percent, _tallySwedish.ceg))), 3, row);
table.add(getSmallText(_tallySwedish.g.number), 4, row);
table.add(getSmallText(formatPct(tallyMean(_tallySwedish.g.percent, _tallySwedish.cg))), 5, row);
table.add(getSmallText(_tallySwedish.vg.number), 6, row);
table.add(getSmallText(formatPct(tallyMean(_tallySwedish.vg.percent, _tallySwedish.cvg))), 7, row);
table.add(getSmallText(_tallySwedish.mvg.number), 8, row);
table.add(getSmallText(formatPct(tallyMean(_tallySwedish.mvg.percent, _tallySwedish.cmvg))), 9, row);
table.add(getSmallText(_tallySwedish.tot.number), 10, row);
table.add(getSmallText(formatPct(tallyMean(_tallySwedish.tot.percent, _tallySwedish.ctot))), 11, row);
row++;
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_RIGHT);
table.setAlignment(1, row, Table.HORIZONTAL_ALIGN_LEFT);
table.setRowColor(row, "#e0e0e0");
if (containsValues(_tallySwedish2)) {
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.swedish2", "Svenska som andraspr�k")), 1, row);
table.add(getSmallText(_tallySwedish2.eg.number), 2, row);
table.add(getSmallText(formatPct(tallyMean(_tallySwedish2.eg.percent, _tallySwedish2.ceg))), 3, row);
table.add(getSmallText(_tallySwedish2.g.number), 4, row);
table.add(getSmallText(formatPct(tallyMean(_tallySwedish2.g.percent, _tallySwedish2.cg))), 5, row);
table.add(getSmallText(_tallySwedish2.vg.number), 6, row);
table.add(getSmallText(formatPct(tallyMean(_tallySwedish2.vg.percent, _tallySwedish2.cvg))), 7, row);
table.add(getSmallText(_tallySwedish2.mvg.number), 8, row);
table.add(getSmallText(formatPct(tallyMean(_tallySwedish2.mvg.percent, _tallySwedish2.cmvg))), 9, row);
table.add(getSmallText(_tallySwedish2.tot.number), 10, row);
table.add(getSmallText(formatPct(tallyMean(_tallySwedish2.tot.percent, _tallySwedish2.ctot))), 11, row);
row++;
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_RIGHT);
table.setAlignment(1, row, Table.HORIZONTAL_ALIGN_LEFT);
table.setRowColor(row, "#e0e0e0");
}
table.add(getSmallText(iwrb.getLocalizedString("school_marks_stats.sumauthmarks", "Summa beh�righetsgivande po�ng")), 1, row);
table.add(getSmallText(_tallyAuth.eg.number), 2, row);
table.add(getSmallText(formatPct(tallyMean(_tallyAuth.eg.percent, _tallyAuth.ceg))), 3, row);
table.add(getSmallText(_tallyAuth.g.number), 4, row);
table.add(getSmallText(formatPct(tallyMean(_tallyAuth.g.percent, _tallyAuth.cg))), 5, row);
table.add(getSmallText(_tallyAuth.vg.number), 6, row);
table.add(getSmallText(formatPct(tallyMean(_tallyAuth.vg.percent, _tallyAuth.cvg))), 7, row);
table.add(getSmallText(_tallyAuth.mvg.number), 8, row);
table.add(getSmallText(formatPct(tallyMean(_tallyAuth.mvg.percent, _tallyAuth.cmvg))), 9, row);
table.add(getSmallText(_tallyAuth.tot.number), 10, row);
table.add(getSmallText(formatPct(tallyMean(_tallyAuth.tot.percent, _tallyAuth.ctot))), 11, row);
row++;
table.setRowAlignment(row, Table.HORIZONTAL_ALIGN_RIGHT);
table.setAlignment(1, row, Table.HORIZONTAL_ALIGN_LEFT);
table.setRowColor(row, "#e0e0e0");
table.add(getHeader(header), 1, row);
table.add(getHeader(_tallyTotal.eg.number), 2, row);
table.add(getHeader(formatPct(tallyMean(_tallyTotal.eg.percent, _tallyTotal.ceg))), 3, row);
table.add(getHeader(_tallyTotal.g.number), 4, row);
table.add(getHeader(formatPct(tallyMean(_tallyTotal.g.percent, _tallyTotal.cg))), 5, row);
table.add(getHeader(_tallyTotal.vg.number), 6, row);
table.add(getHeader(formatPct(tallyMean(_tallyTotal.vg.percent, _tallyTotal.cvg))), 7, row);
table.add(getHeader(_tallyTotal.mvg.number), 8, row);
table.add(getHeader(formatPct(tallyMean(_tallyTotal.mvg.percent, _tallyTotal.cmvg))), 9, row);
table.add(getHeader(_tallyTotal.tot.number), 10, row);
table.add(getHeader(formatPct(tallyMean(_tallyTotal.tot.percent, _tallyTotal.ctot))), 11, row);
row++;
table.add(getHeader(iwrb.getLocalizedString("school_marks_stats.merite_value", "Meritv�rde")+ ": "+meanMerite), 1, row);
table.setRowColor(row, "#e0e0e0");
row++;
table.mergeCells(1, row, 11, row);
row++;
return table;
}
private boolean containsValues(SchoolMarkValues data) {
int results = Integer.parseInt(data.eg.number) +
Integer.parseInt(data.g.number) +
Integer.parseInt(data.vg.number) +
Integer.parseInt(data.mvg.number);
return results == 0 ? false : true;
}
private void sumSchoolTally(SchoolMarkValues values, String mode) {
if (mode.compareTo("English") == 0) {
_tallyEnglish.eg.number = sumInt(_tallyEnglish.eg.number, values.eg.number);
_tallyEnglish.g.number = sumInt(_tallyEnglish.g.number, values.g.number);
_tallyEnglish.vg.number = sumInt(_tallyEnglish.vg.number, values.vg.number);
_tallyEnglish.mvg.number = sumInt(_tallyEnglish.mvg.number, values.mvg.number);
_tallyEnglish.tot.number = sumInt(_tallyEnglish.tot.number, values.tot.number);
_tallyEnglish.eg.percent = sumDec(_tallyEnglish.eg.percent, values.eg.percent);
_tallyEnglish.g.percent = sumDec(_tallyEnglish.g.percent, values.g.percent);
_tallyEnglish.vg.percent = sumDec(_tallyEnglish.vg.percent, values.vg.percent);
_tallyEnglish.mvg.percent = sumDec(_tallyEnglish.mvg.percent, values.mvg.percent);
_tallyEnglish.tot.percent = sumDec(_tallyEnglish.tot.percent, values.tot.percent);
_tallyEnglish.ceg += Integer.parseInt(values.eg.number) != 0 ? 1 : 0;
_tallyEnglish.cg += Integer.parseInt(values.g.number) != 0 ? 1 : 0;
_tallyEnglish.cvg += Integer.parseInt(values.vg.number) != 0 ? 1 : 0;
_tallyEnglish.cmvg += Integer.parseInt(values.mvg.number) != 0 ? 1 : 0;
_tallyEnglish.ctot += Integer.parseInt(values.tot.number) != 0 ? 1 : 0;
} else if (mode.compareTo("Maths") == 0) {
_tallyMaths.eg.number = sumInt(_tallyMaths.eg.number, values.eg.number);
_tallyMaths.g.number = sumInt(_tallyMaths.g.number, values.g.number);
_tallyMaths.vg.number = sumInt(_tallyMaths.vg.number, values.vg.number);
_tallyMaths.mvg.number = sumInt(_tallyMaths.mvg.number, values.mvg.number);
_tallyMaths.tot.number = sumInt(_tallyMaths.tot.number, values.tot.number);
_tallyMaths.eg.percent = sumDec(_tallyMaths.eg.percent, values.eg.percent);
_tallyMaths.g.percent = sumDec(_tallyMaths.g.percent, values.g.percent);
_tallyMaths.vg.percent = sumDec(_tallyMaths.vg.percent, values.vg.percent);
_tallyMaths.mvg.percent = sumDec(_tallyMaths.mvg.percent, values.mvg.percent);
_tallyMaths.tot.percent = sumDec(_tallyMaths.tot.percent, values.tot.percent);
_tallyMaths.ceg += Integer.parseInt(values.eg.number) != 0 ? 1 : 0;
_tallyMaths.cg += Integer.parseInt(values.g.number) != 0 ? 1 : 0;
_tallyMaths.cvg += Integer.parseInt(values.vg.number) != 0 ? 1 : 0;
_tallyMaths.cmvg += Integer.parseInt(values.mvg.number) != 0 ? 1 : 0;
_tallyMaths.ctot += Integer.parseInt(values.tot.number) != 0 ? 1 : 0;
} else if (mode.compareTo("Swedish") == 0) {
_tallySwedish.eg.number = sumInt(_tallySwedish.eg.number, values.eg.number);
_tallySwedish.g.number = sumInt(_tallySwedish.g.number, values.g.number);
_tallySwedish.vg.number = sumInt(_tallySwedish.vg.number, values.vg.number);
_tallySwedish.mvg.number = sumInt(_tallySwedish.mvg.number, values.mvg.number);
_tallySwedish.tot.number = sumInt(_tallySwedish.tot.number, values.tot.number);
_tallySwedish.eg.percent = sumDec(_tallySwedish.eg.percent, values.eg.percent);
_tallySwedish.g.percent = sumDec(_tallySwedish.g.percent, values.g.percent);
_tallySwedish.vg.percent = sumDec(_tallySwedish.vg.percent, values.vg.percent);
_tallySwedish.mvg.percent = sumDec(_tallySwedish.mvg.percent, values.mvg.percent);
_tallySwedish.tot.percent = sumDec(_tallySwedish.tot.percent, values.tot.percent);
_tallySwedish.ceg += Integer.parseInt(values.eg.number) != 0 ? 1 : 0;
_tallySwedish.cg += Integer.parseInt(values.g.number) != 0 ? 1 : 0;
_tallySwedish.cvg += Integer.parseInt(values.vg.number) != 0 ? 1 : 0;
_tallySwedish.cmvg += Integer.parseInt(values.mvg.number) != 0 ? 1 : 0;
_tallySwedish.ctot += Integer.parseInt(values.tot.number) != 0 ? 1 : 0;
} else if (mode.compareTo("Swedish2") == 0) {
_tallySwedish2.eg.number = sumInt(_tallySwedish2.eg.number, values.eg.number);
_tallySwedish2.g.number = sumInt(_tallySwedish2.g.number, values.g.number);
_tallySwedish2.vg.number = sumInt(_tallySwedish2.vg.number, values.vg.number);
_tallySwedish2.mvg.number= sumInt(_tallySwedish2.mvg.number, values.mvg.number);
_tallySwedish2.tot.number= sumInt(_tallySwedish2.tot.number, values.tot.number);
_tallySwedish2.eg.percent = sumDec(_tallySwedish2.eg.percent, values.eg.percent);
_tallySwedish2.g.percent = sumDec(_tallySwedish2.g.percent, values.g.percent);
_tallySwedish2.vg.percent = sumDec(_tallySwedish2.vg.percent, values.vg.percent);
_tallySwedish2.mvg.percent= sumDec(_tallySwedish2.mvg.percent, values.mvg.percent);
_tallySwedish2.tot.percent= sumDec(_tallySwedish2.tot.percent, values.tot.percent);
_tallySwedish2.ceg += Integer.parseInt(values.eg.number) != 0 ? 1 : 0;
_tallySwedish2.cg += Integer.parseInt(values.g.number) != 0 ? 1 : 0;
_tallySwedish2.cvg += Integer.parseInt(values.vg.number) != 0 ? 1 : 0;
_tallySwedish2.cmvg += Integer.parseInt(values.mvg.number) != 0 ? 1 : 0;
_tallySwedish2.ctot += Integer.parseInt(values.tot.number) != 0 ? 1 : 0;
} else if (mode.compareTo("Auth") == 0) {
_tallyAuth.eg.number = sumInt(_tallyAuth.eg.number, values.eg.number);
_tallyAuth.g.number = sumInt(_tallyAuth.g.number, values.g.number);
_tallyAuth.vg.number = sumInt(_tallyAuth.vg.number, values.vg.number);
_tallyAuth.mvg.number = sumInt(_tallyAuth.mvg.number, values.mvg.number);
_tallyAuth.tot.number = sumInt(_tallyAuth.tot.number, values.tot.number);
_tallyAuth.eg.percent = sumDec(_tallyAuth.eg.percent, values.eg.percent);
_tallyAuth.g.percent = sumDec(_tallyAuth.g.percent, values.g.percent);
_tallyAuth.vg.percent = sumDec(_tallyAuth.vg.percent, values.vg.percent);
_tallyAuth.mvg.percent = sumDec(_tallyAuth.mvg.percent, values.mvg.percent);
_tallyAuth.tot.percent = sumDec(_tallyAuth.tot.percent, values.tot.percent);
_tallyAuth.ceg += Integer.parseInt(values.eg.number) != 0 ? 1 : 0;
_tallyAuth.cg += Integer.parseInt(values.g.number) != 0 ? 1 : 0;
_tallyAuth.cvg += Integer.parseInt(values.vg.number) != 0 ? 1 : 0;
_tallyAuth.cmvg += Integer.parseInt(values.mvg.number) != 0 ? 1 : 0;
_tallyAuth.ctot += Integer.parseInt(values.tot.number) != 0 ? 1 : 0;
} else if (mode.compareTo("Total") == 0) {
_tallyTotal.eg.number = sumInt(_tallyTotal.eg.number, values.eg.number);
_tallyTotal.g.number = sumInt(_tallyTotal.g.number, values.g.number);
_tallyTotal.vg.number = sumInt(_tallyTotal.vg.number, values.vg.number);
_tallyTotal.mvg.number = sumInt(_tallyTotal.mvg.number, values.mvg.number);
_tallyTotal.tot.number = sumInt(_tallyTotal.tot.number, values.tot.number);
_tallyTotal.eg.percent = sumDec(_tallyTotal.eg.percent, values.eg.percent);
_tallyTotal.g.percent = sumDec(_tallyTotal.g.percent, values.g.percent);
_tallyTotal.vg.percent = sumDec(_tallyTotal.vg.percent, values.vg.percent);
_tallyTotal.mvg.percent = sumDec(_tallyTotal.mvg.percent, values.mvg.percent);
_tallyTotal.tot.percent = sumDec(_tallyTotal.tot.percent, values.tot.percent);
_tallyTotal.ceg += Integer.parseInt(values.eg.number) != 0 ? 1 : 0;
_tallyTotal.cg += Integer.parseInt(values.g.number) != 0 ? 1 : 0;
_tallyTotal.cvg += Integer.parseInt(values.vg.number) != 0 ? 1 : 0;
_tallyTotal.cmvg += Integer.parseInt(values.mvg.number) != 0 ? 1 : 0;
_tallyTotal.ctot += Integer.parseInt(values.tot.number) != 0 ? 1 : 0;
}
}
private String sumInt(String sum, String add) {
return "" + (Integer.parseInt(sum) + Integer.parseInt(add));
}
private String sumDec(String sum, String add) {
return "" + (Float.parseFloat(sum) + Float.parseFloat(add));
}
private String tallyMean(String percent, int totalNumber) {
if (totalNumber != 0) {
return "" + (((Float.parseFloat(percent) / Float.parseFloat(""+totalNumber))));
} else {
return "0";
}
}
private void resetTally() {
_tallyEnglish = new SchoolMarkValues();
_tallyMaths = new SchoolMarkValues();
_tallySwedish = new SchoolMarkValues();
_tallySwedish2 = new SchoolMarkValues();
_tallyAuth = new SchoolMarkValues();
_tallyTotal = new SchoolMarkValues();
_tallyEnglish.eg.number = "0";
_tallyEnglish.g.number = "0";
_tallyEnglish.vg.number = "0";
_tallyEnglish.mvg.number = "0";
_tallyEnglish.tot.number = "0";
_tallyEnglish.eg.percent = "0";
_tallyEnglish.g.percent = "0";
_tallyEnglish.vg.percent = "0";
_tallyEnglish.mvg.percent = "0";
_tallyEnglish.tot.percent = "0";
_tallyMaths.eg.number = "0";
_tallyMaths.g.number = "0";
_tallyMaths.vg.number = "0";
_tallyMaths.mvg.number = "0";
_tallyMaths.tot.number = "0";
_tallyMaths.eg.percent = "0";
_tallyMaths.g.percent = "0";
_tallyMaths.vg.percent = "0";
_tallyMaths.mvg.percent = "0";
_tallyMaths.tot.percent = "0";
_tallySwedish.eg.number = "0";
_tallySwedish.g.number = "0";
_tallySwedish.vg.number = "0";
_tallySwedish.mvg.number = "0";
_tallySwedish.tot.number = "0";
_tallySwedish.eg.percent = "0";
_tallySwedish.g.percent = "0";
_tallySwedish.vg.percent = "0";
_tallySwedish.mvg.percent = "0";
_tallySwedish.tot.percent = "0";
_tallySwedish2.eg.number = "0";
_tallySwedish2.g.number = "0";
_tallySwedish2.vg.number = "0";
_tallySwedish2.mvg.number = "0";
_tallySwedish2.tot.number = "0";
_tallySwedish2.eg.percent = "0";
_tallySwedish2.g.percent = "0";
_tallySwedish2.vg.percent = "0";
_tallySwedish2.mvg.percent = "0";
_tallySwedish2.tot.percent= "0";
_tallyAuth.eg.number = "0";
_tallyAuth.g.number = "0";
_tallyAuth.vg.number = "0";
_tallyAuth.mvg.number = "0";
_tallyAuth.tot.number = "0";
_tallyAuth.eg.percent = "0";
_tallyAuth.g.percent = "0";
_tallyAuth.vg.percent = "0";
_tallyAuth.mvg.percent = "0";
_tallyAuth.tot.percent = "0";
_tallyTotal.eg.number = "0";
_tallyTotal.g.number = "0";
_tallyTotal.vg.number = "0";
_tallyTotal.mvg.number = "0";
_tallyTotal.tot.number = "0";
_tallyTotal.eg.percent = "0";
_tallyTotal.g.percent = "0";
_tallyTotal.vg.percent = "0";
_tallyTotal.mvg.percent = "0";
_tallyTotal.tot.percent = "0";
}
private String formatPct(String number) {
try {
if(number == null) {
return "0";
}
float pctDec = (float) (Math.rint(Float.parseFloat(number) * 10) / 10);
return "" + pctDec;
} catch (NumberFormatException e) {}
return "0";
}
private Table getMarksTable() {
Table ret = new Table();
ret.setColumns(11);
ret.setRows(6);
ret.setBorderColor("#cccccc");
ret.setBorder(1);
ret.setCellspacing("0");
ret.setCellpadding("3");
ret.setWidth(blockWidth);
return ret;
}
private void init(IWContext iwc) {
try {
smBiz = getSchoolMarksBusiness(iwc);
} catch (RemoteException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
private String roundAbout(int t, int n) {
float x = (float) (Math.rint(((t/n) * 100)) / 100);
int y = (int) x;
return ""+y;
}
private SchoolMarksBusiness getSchoolMarksBusiness(IWContext iwc) throws Exception {
return (SchoolMarksBusiness) com.idega.business.IBOLookup.getServiceInstance(iwc, SchoolMarksBusiness.class);
}
}