Package bg.smoc.model.web

Examples of bg.smoc.model.web.ResultsRow


        loadHeaderList();
        loadTableData();
    }

    private void loadHeaderList() {
        ResultsRow headerRow = resultsTable.addHeader();
        ResultsStyle styleHeader = new ResultsStyle();
        styleHeader.setBold(true);

        headerRow.addCell("Rank", styleHeader);
        headerRow.addCell("Names", styleHeader);
        headerRow.addCell("Team", styleHeader);
        for (Contest contest : selectedContests) {
            headerRow.addCell("Login", styleHeader);
            for (Task task : contest.getTasks()) {
                if (includeTestGroupResults) {
                    for (int i = 0; i < task.getTestGroups().size(); ++i) {
                        headerRow.addCell(Integer.toString(i + 1), styleHeader);
                    }
                }
                headerRow.addCell(task.getName(), styleHeader);
            }
            headerRow.addCell(needsGrandTotal() ? contest.getShortName() : "Total", styleHeader);
        }
        if (needsGrandTotal()) {
            headerRow.addCell("Grand total", styleHeader);
        }
    }
View Full Code Here


    }

    private UserContestData reportForUser(Contest contest, String login) {
        BigDecimal totalPoints = BigDecimal.ZERO;

        ResultsRow row = new ResultsRow();
        row.addCell(login);
        for (Task task : contest.getTasks()) {
            AccumulatedGrade testResults = graderManager.getResult(contest.getId(), login, task);
            if (includeTestGroupResults) {
                for (int i = 0; i < testResults.getTestGroups().size(); ++i) {
                    ResultsCell cell = new ResultsCell("-");
                    if (testResults != null) {
                        cell.setValue(testResults.getTestGroups().get(i));
                        if (task.getType() == Task.PROBLEM_TYPE_OUTPUT) {
                            cell.setHref("?contestId="
                                    + contest.getId()
                                    + "&login="
                                    + login
                                    + "&taskId="
                                    + task.getNameForTest(i + 1));
                        }
                    }
                    row.addCell(cell);
                }
            }
            if (testResults != null) {
                totalPoints = totalPoints.add(new BigDecimal(testResults.getTotal()));
            }
            ResultsCell cell = new ResultsCell(testResults != null ? testResults.getTotal()
                    : BigDecimal.ZERO.toString());
            if (task.getType() != Task.PROBLEM_TYPE_OUTPUT) {
                cell.setHref("?contestId="
                        + contest.getId()
                        + "&login="
                        + login
                        + "&taskId="
                        + task.getName());
            }
            row.addCell(cell);
        }
        row.addCell(totalPoints.toString());

        UserContestData data = new UserContestData();
        data.setData(row);
        data.setTotalPoints(totalPoints);
        return data;
View Full Code Here

            }
        }
    }

    private ResultsRow getBlankContestData(Contest contest) {
        ResultsRow row = new ResultsRow();
        row.addCell("-");
        for (Task task : contest.getTasks()) {
            if (includeTestGroupResults) {
                for (int i = 0; i < task.getTestGroups().size(); ++i) {
                    row.addCell("-");
                }
            }
            row.addCell("-");
        }
        row.addCell("0");
        return row;
    }
View Full Code Here

        for (int index = 0; index < personsInReport.size(); ++index) {
            Person person = personsInReport.get(index);
            String[] logins = personLogins.get(index);

            BigDecimal grandTotalPoints = BigDecimal.ZERO;
            ResultsRow row = new ResultsRow();
            row.addCell(person.getNames());
            row.addCell(person.getTown());
            int secondary = 0;
            for (Contest contest : selectedContests) {
                String login = logins[secondary++];
                Hashtable<String, UserContestData> contestData = null;
                UserContestData userContestData = null;
                if (login != null) {
                    contestData = reportData.get(contest.getId());
                    if (contestData != null) {
                        userContestData = contestData.get(login);
                    }
                }
                if (userContestData == null) {
                    row.append(getBlankContestData(contest));
                } else {
                    row.append(userContestData.getData());
                    grandTotalPoints = grandTotalPoints.add(userContestData.getTotalPoints());
                }
            }
            if (needsGrandTotal()) {
                row.addCell(grandTotalPoints.toString());
            }
            resultsTable.appendRow(row);
        }
        sortTableRows();
    }
View Full Code Here

                        .lastElement().getValue())) != 0)
                    break;
            }

            for (int j = 0; j < count; ++j) {
                ResultsRow row = new ResultsRow();
                if (count > 1) {
                    row.addCell(Integer.toString(i + 1) + "-" + Integer.toString(i + count));
                } else {
                    row.addCell(Integer.toString(i + 1));
                }
                row.append(tableRows.get(i + j));
                newRows.add(row);
            }

            i += count - 1;
        }
View Full Code Here

    }

    private UserContestData reportForUser(Contest contest, String login, SessionUtil sessionUtil)
            throws RemoteException {
        UserContestData data = new UserContestData();
        data.setData(new ResultsRow());
        data.setTotalPoints(createResultsRowForUser(contest, login, sessionUtil, data.getData()));

        return data;
    }
View Full Code Here

            throws RemoteException {

        for (Person person : persons) {
            BigDecimal grandTotalPoints = BigDecimal.ZERO;
            boolean include = false;
            ResultsRow row = new ResultsRow();
            row.addCell(person.getNames());
            row.addCell(person.getTown());
            row.addCell(person.getSchool());
            row.addCell(Integer.toString(person.getSchoolYear()));
            for (Contest nextContest : selectedContests) {
                boolean foundLoginForContest = false;
                if (person.getLogins() != null) {
                    for (String login : person.getLogins()) {
                        Hashtable<String, UserContestData> contestData = reportData.get(nextContest
                                .getId());
                        if (contestData.containsKey(login)) {
                            row.append(contestData.get(login).getData());
                            grandTotalPoints = grandTotalPoints.add(contestData.get(login)
                                    .getTotalPoints());
                            contestData.remove(login);
                            foundLoginForContest = true;
                            break;
                        }
                    }
                }
                if (foundLoginForContest) {
                    include = true;
                } else {
                    row.addCell("-");
                    for (Task task : nextContest.getTasks()) {
                        for (int i = 0; i < task.getNumberOfTests(); ++i) {
                            row.addCell("-");
                        }
                        row.addCell("-");
                    }
                    row.addCell("0");
                }
            }
            row.addCell(grandTotalPoints.toString());
            if (include)
                table.appendRow(row);
        }
        for (Contest contest : selectedContests) {
            Hashtable<String, UserContestData> contestData = reportData.get(contest.getId());
            for (String login : contestData.keySet()) {
                BigDecimal total = BigDecimal.ZERO;
                ResultsRow row = table.addRow();
                row.addCell("-");
                row.addCell("-");
                row.addCell("-");
                row.addCell("-");
                for (Contest rowContest : selectedContests) {
                    if (rowContest == contest) {
                        row.append(contestData.get(login).getData());
                        total = contestData.get(login).getTotalPoints();
                    } else {
                        row.addCell("");
                        for (Task task : rowContest.getTasks()) {
                            for (int i = 0; i < task.getNumberOfTests(); ++i)
                                row.addCell("");
                            row.addCell("");
                        }
                        row.addCell("-");
                    }
                }
                row.addCell(total.toString());
            }
        }

        Vector<ResultsRow> newRows = new Vector<ResultsRow>();
        Vector<ResultsRow> tableRows = table.getRows();
        boolean[] used = new boolean[tableRows.size()];
        for (int i = 0; i < tableRows.size(); ++i) {
            used[i] = false;
        }
        for (int i = 0; i < tableRows.size(); ++i) {
            int index = -1;
            BigDecimal max = BigDecimal.ZERO;
            for (int j = 0; j < tableRows.size(); ++j) {
                BigDecimal points = new BigDecimal(tableRows.get(j).getCells().lastElement()
                        .getValue());
                if (!used[j] && max.compareTo(points) <= 0) {
                    max = points;
                    index = j;
                }
            }
            used[index] = true;
            newRows.add(tableRows.get(index));
        }

        tableRows = newRows;
        newRows = new Vector<ResultsRow>();

        for (int i = 0; i < tableRows.size(); ++i) {
            BigDecimal points = new BigDecimal(tableRows.get(i).getCells().lastElement().getValue());

            int count = 1;
            for (; i + count < tableRows.size(); ++count) {
                if (points.compareTo(new BigDecimal(tableRows.get(i + count).getCells()
                        .lastElement().getValue())) != 0)
                    break;
            }

            for (int j = 0; j < count; ++j) {
                ResultsRow row = new ResultsRow();
                if (count > 1) {
                    row.addCell(Integer.toString(i + 1) + "-" + Integer.toString(i + count));
                } else {
                    row.addCell(Integer.toString(i + 1));
                }
                row.append(tableRows.get(i + j));
                newRows.add(row);
            }

            i += count - 1;
        }
View Full Code Here

TOP

Related Classes of bg.smoc.model.web.ResultsRow

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.