/* * Created on 14.7.2003 by tryggvil in project golf.project */ package is.idega.idegaweb.golf.tournament.presentation; import java.rmi.RemoteException; import is.idega.idegaweb.golf.entity.Tournament; import is.idega.idegaweb.golf.entity.TournamentHome; import is.idega.idegaweb.golf.entity.TournamentParticipants; import is.idega.idegaweb.golf.entity.TournamentRound; import is.idega.idegaweb.golf.entity.TournamentRoundParticipants; import is.idega.idegaweb.golf.entity.TournamentType; import is.idega.idegaweb.golf.handicap.presentation.HandicapRegisterWindow; import is.idega.idegaweb.golf.handicap.presentation.HandicapUtility; import is.idega.idegaweb.golf.presentation.GolfBlock; import com.idega.core.localisation.business.LocaleSwitcher; import com.idega.data.IDOLookup; import com.idega.idegaweb.IWBundle; import com.idega.idegaweb.IWMainApplication; import com.idega.idegaweb.IWResourceBundle; import com.idega.presentation.IWContext; import com.idega.presentation.Image; import com.idega.presentation.Table; import com.idega.presentation.text.Link; import com.idega.presentation.text.Text; import com.idega.presentation.ui.CheckBox; import com.idega.presentation.ui.DropdownMenu; import com.idega.presentation.ui.Form; import com.idega.presentation.ui.GenericButton; import com.idega.presentation.ui.HiddenInput; import com.idega.presentation.ui.Parameter; import com.idega.presentation.ui.SubmitButton; /** * ScorecardSelect : Initial conversion from scorecard_select.jsp Copyright (C) * idega software 2003 * * @author <a href="mailto:tryggvi@idega.is">Tryggvi Larusson </a> * @version 1.0 */ public class ScorecardSelect extends TournamentBlock { IWResourceBundle iwrb; public void main(IWContext modinfo) throws Exception { iwrb = getResourceBundle(); String tournament_round_id = modinfo.getParameter("tournament_round_id"); String tournament_id = null; if (getTournamentID(modinfo) > 0) { tournament_id = Integer.toString(getTournamentID(modinfo)); } if (tournament_id != null && tournament_round_id == null) { Tournament motid = ((TournamentHome) IDOLookup.getHomeLegacy(Tournament.class)).findByPrimaryKey(Integer.parseInt(tournament_id)); TournamentRound[] round = motid.getTournamentRounds(); if (round.length == 1) { main(tournament_id, Integer.toString(round[0].getID()), modinfo); } else { getRounds(tournament_id, round, modinfo); } } if (tournament_id != null && tournament_round_id != null) { main(tournament_id, tournament_round_id, modinfo); } } public void getTournaments(IWContext modinfo) throws RemoteException { iwrb = getResourceBundle(modinfo); //dialog = new GolfTournamentAdminDialog(); //super.add(dialog); DropdownMenu menu = null; GenericButton submit = getButton(new SubmitButton(localize("tournament.continue", "Continue"))); Form myForm = new Form(); myForm.setMethod("get"); Table myTable = new Table(1, 3); myTable.setAlignment("center"); myTable.setAlignment(1, 2, "center"); myTable.setAlignment(1, 3, "right"); myTable.setCellpadding(4); menu = getTournamentBusiness(modinfo).getDropdownOrderedByUnion(new DropdownMenu("tournament"), modinfo); menu.setMarkupAttribute("size", "10"); Text selectText = new Text(iwrb.getLocalizedString("tournament.choose_tournament", "Choose tournament") + ":"); selectText.setBold(); selectText.setFontSize(3); myTable.add(selectText, 1, 1); myTable.add(menu, 1, 2); myTable.add(submit, 1, 3); myForm.add(myTable); add("<br>"); add(myForm); } public void getRounds(String tournament_id, TournamentRound[] round, IWContext modinfo) throws Exception { iwrb = getResourceBundle(modinfo); //dialog = new GolfTournamentAdminDialog(); //super.add(dialog); DropdownMenu menu = new DropdownMenu("tournament_round_id"); HiddenInput tournament = new HiddenInput("tournament", tournament_id); GenericButton submit = getButton(new SubmitButton(localize("tournament.continue", "Continue"))); Form myForm = new Form(); myForm.add(tournament); Table myTable = new Table(1, 3); myTable.setAlignment("center"); myTable.setAlignment(1, 2, "center"); myTable.setAlignment(1, 3, "right"); myTable.setCellpadding(4); DropdownMenu select_round = new DropdownMenu("tournament_round_id"); select_round.setStyleAttribute("font-size: 7pt"); for (int y = 0; y < round.length; y++) { select_round.addMenuElement(String.valueOf(round[y].getID()), iwrb.getLocalizedString("tournament.round", "Round") + " " + round[y].getRoundNumber()); } Text selectText = new Text(iwrb.getLocalizedString("tournament.choose_round", "Choose round") + ":"); selectText.setBold(); selectText.setFontSize(3); myTable.add(selectText, 1, 1); myTable.add(select_round, 1, 2); myTable.add(submit, 1, 3); myForm.add(myTable); add("<br>"); add(myForm); } public void main(String tournament_id, String tournament_round_id, IWContext modinfo) throws Exception { IWBundle iwb = getBundle(modinfo); //dialog = new GolfTournamentAdminDialog(); //super.add(dialog); getParentPage().setPageFontSize("1"); Tournament tournament = ((TournamentHome) IDOLookup.getHomeLegacy(Tournament.class)).findByPrimaryKey(Integer.parseInt(tournament_id)); TournamentType tournamentType = tournament.getTournamentType(); String order = modinfo.getParameter("order"); if (order == null) order = "byStartingTime"; Table dialogTable = new Table(1, 2); dialogTable.setWidth("90%"); Form orderForm = new Form(); orderForm.setMethod("get"); orderForm.add(new HiddenInput("tournament", tournament_id)); orderForm.add(new HiddenInput("tournament_round_id", tournament_round_id)); Table orderTable = new Table(1, 1); orderTable.setCellpadding(0); orderTable.setCellspacing(0); orderTable.setAlignment("right"); DropdownMenu orderMenu = new DropdownMenu("order"); orderMenu.addMenuElement("alphabetical", iwrb.getLocalizedString("tournament.order_by_name", "Order by name")); orderMenu.addMenuElement("byStartingTime", iwrb.getLocalizedString("tournament.order_by_tee_time", "Order by tee time")); orderMenu.setSelectedElement(order); orderTable.add(orderMenu, 1, 1); orderForm.add(orderTable); SubmitButton orderButton = new SubmitButton(iwrb.getLocalizedString("tournament.reorder", "Reorder")); orderTable.addText(" "); orderTable.add(orderButton, 1, 1); Form myForm = new Form(); myForm.setWindowToOpen(GroupScorecardWindow.class); myForm.add(new HiddenInput("tournament_id", tournament_id)); myForm.add(new HiddenInput("tournament_round_id", tournament_round_id)); Parameter[] parentReloadParameters = getReloadParametersToAdd(tournament_id, tournament_round_id, modinfo); for (int i = 0; i < parentReloadParameters.length; i++) { myForm.add(parentReloadParameters[i]); } Table myTable = new Table(); myTable.setAlignment("center"); myTable.setCellpadding(3); myTable.setCellspacing(1); myTable.setWidth("100%"); Text textProxy = new Text(""); textProxy.setFontSize(1); Text checkText = (Text) textProxy.clone(); checkText.setText(iwrb.getLocalizedString("tournament.register", "Register")); Text memberText = (Text) textProxy.clone(); memberText.setText(iwrb.getLocalizedString("tournament.golfer", "Golfer")); Text unionText = (Text) textProxy.clone(); unionText.setText(iwrb.getLocalizedString("tournament.club", "Club")); Text groupText = (Text) textProxy.clone(); groupText.setText(iwrb.getLocalizedString("tournament.group", "Group")); Text handicapText = (Text) textProxy.clone(); handicapText.setText(iwrb.getLocalizedString("tournament.handicap_short", "Hcp.")); Text holeText = (Text) textProxy.clone(); holeText.setText(iwrb.getLocalizedString("tournament.hole", "Hole")); Text strokeText = (Text) textProxy.clone(); strokeText.setText(iwrb.getLocalizedString("tournament.total", "Total")); Text strokeText2 = (Text) textProxy.clone(); strokeText2.setText(iwrb.getLocalizedString("tournament.net", "Net")); Text pointsText = (Text) textProxy.clone(); pointsText.setText(iwrb.getLocalizedString("tournament.points", "Points")); Text parText = (Text) textProxy.clone(); parText.setText(iwrb.getLocalizedString("tournament.paf", "Par")); myTable.add(checkText, 1, 1); myTable.add(memberText, 2, 1); myTable.add(unionText, 3, 1); myTable.add(groupText, 4, 1); myTable.add(handicapText, 5, 1); myTable.add(holeText, 6, 1); myTable.add(strokeText, 7, 1); myTable.add(strokeText2, 8, 1); myTable.add(pointsText, 9, 1); myTable.add(parText, 10, 1); Text proxyText = new Text(""); CheckBox checkProxy = new CheckBox("members"); int numberOfGolfers = 0; if (order.equalsIgnoreCase("alphabetical")) { TournamentParticipants[] members = getTournamentBusiness(modinfo).getTournamentParticipants("tr.tournament_round_id", tournament_round_id, "first_name,last_name,middle_name"); numberOfGolfers = members.length; for (int a = 0; a < members.length; a++) { int scorecard_id = members[a].getScorecardID(); CheckBox check = (CheckBox) checkProxy.clone(); check.setContent(Integer.toString(members[a].getMemberID())); Text tournamentMember = (Text) proxyText.clone(); tournamentMember.setText(members[a].getName()); Link memberLink = new Link(tournamentMember); memberLink.setWindowToOpen(HandicapRegisterWindow.class); for (int i = 0; i < parentReloadParameters.length; i++) { memberLink.addParameter(parentReloadParameters[i]); } if (members[a].getScorecardID() > 0) { memberLink.addParameter("scorecard_id", members[a].getScorecardID()); } else { memberLink.addParameter("member_id", members[a].getMemberID()); } Text memberUnion = (Text) proxyText.clone(); memberUnion.setText(members[a].getAbbrevation()); Text memberGroup = (Text) proxyText.clone(); memberGroup.setText(members[a].getGroupName()); int holesPlayed = members[a].getHolesPlayed(); if (holesPlayed == -1) { holesPlayed = 1; } int totalStrokes = members[a].getStrokesWithoutHandicap(); if (totalStrokes == -1) { totalStrokes = 0; } int playHandicap = (int) members[a].getRoundHandicap(); if (playHandicap == -1) { playHandicap = 0; } int totalStrokes2 = members[a].getStrokesWithHandicap(); if (totalStrokes2 == -1) { totalStrokes2 = 0; } int totalPoints = members[a].getTotalPoints(); if (totalPoints == -1) { totalPoints = 0; } int difference = members[a].getDifference(); if (difference == -1 && holesPlayed == 0) { difference = 0; } String out_differ = "E"; if (difference == 0) { out_differ = "E"; } else if (difference < 0) { out_differ = String.valueOf(difference); } else if (difference > 0) { out_differ = "+" + String.valueOf(difference); } myTable.add(check, 1, a + 2); myTable.add(memberLink, 2, a + 2); myTable.add(memberUnion, 3, a + 2); myTable.add(memberGroup, 4, a + 2); myTable.add(playHandicap + "", 5, a + 2); myTable.addText(holesPlayed + "", 6, a + 2); if (totalStrokes > 0) { myTable.addText(totalStrokes + "", 7, a + 2); } if (totalStrokes2 > 0) { myTable.addText(totalStrokes2 + "", 8, a + 2); } myTable.addText(totalPoints + "", 9, a + 2); if (totalStrokes > 0) { myTable.addText(out_differ + "", 10, a + 2); } Image changeImage = iwb.getImage("shared/icons/tees.gif", iwrb.getLocalizedString("tournament.change_tees", "Change tees")); changeImage.setAlignment("absmiddle"); Link changeLink = new Link(changeImage); changeLink.setWindowToOpen(HandicapUtility.class); changeLink.addParameter(HandicapUtility.PARAMETER_SCORECARD_ID, scorecard_id); changeLink.addParameter(HandicapUtility.PARAMETER_METHOD, HandicapUtility.ACTION_CHANGE_TEES); Image changeImage2 = iwb.getImage("shared/icons/updown.gif", iwrb.getLocalizedString("tournament.update_handicap", "Update handicap")); changeImage2.setAlignment("absmiddle"); Link changeLink2 = new Link(changeImage2); changeLink2.setWindowToOpen(HandicapUtility.class); changeLink2.addParameter(HandicapUtility.PARAMETER_MEMBER_ID, members[a].getMemberID()); changeLink2.addParameter(HandicapUtility.PARAMETER_TOURNAMENT_ID, members[a].getTournamentID()); changeLink2.addParameter(HandicapUtility.PARAMETER_METHOD, HandicapUtility.ACTION_UPDATE_HANDICAP); Image positionImage = iwb.getImage("shared/icons/position.gif", iwrb.getLocalizedString("tournament.change_position", "Change position")); positionImage.setAlignment("absmiddle"); Link positionLink = new Link(positionImage); positionLink.setWindowToOpen(ChangePositionWindow.class); positionLink.addParameter("member_id", members[a].getMemberID()); positionLink.addParameter("tournament_id", members[a].getTournamentID()); Image groupImage = iwb.getImage("shared/icons/edit.gif", iwrb.getLocalizedString("tournament.change_group", "Change group")); groupImage.setAlignment("absmiddle"); Link groupLink = new Link(groupImage); groupLink.setWindowToOpen(ChangeGroupWindow.class); groupLink.addParameter("member_id", members[a].getMemberID()); groupLink.addParameter("tournament_id", members[a].getTournamentID()); Image dismissImage = iwb.getImage("shared/icons/delete.gif", iwrb.getLocalizedString("tournament.dismiss", "Dismiss")); dismissImage.setAlignment("absmiddle"); Link dismissLink = new Link(dismissImage); dismissLink.setWindowToOpen(DismissWindow.class); dismissLink.addParameter("member_id", members[a].getMemberID()); dismissLink.addParameter("tournament_id", members[a].getTournamentID()); myTable.add(changeLink, 11, a + 2); myTable.add(" ", 11, a + 2); myTable.add(changeLink2, 11, a + 2); myTable.add(" ", 11, a + 2); myTable.add(groupLink, 11, a + 2); myTable.add(" ", 11, a + 2); myTable.add(dismissLink, 11, a + 2); if (tournamentType.getWithoutHandicap()) { myTable.add(" ", 11, a + 2); myTable.add(positionLink, 11, a + 2); } } if (members.length == 0) { myTable.addText(iwrb.getLocalizedString("tournament.no_golfer_in_tournament", "No golfer registered in tournament"), 1, 2); } } else if (order.equalsIgnoreCase("byStartingTime")) { TournamentRoundParticipants[] members = getTournamentBusiness(modinfo).getTournamentRoundParticipants("tr.tournament_round_id", tournament_round_id, "grup_num"); numberOfGolfers = members.length; for (int a = 0; a < members.length; a++) { int scorecard_id = members[a].getScorecardID(); CheckBox check = (CheckBox) checkProxy.clone(); check.setContent(Integer.toString(members[a].getMemberID())); Text tournamentMember = (Text) proxyText.clone(); tournamentMember.setText(members[a].getName()); Link memberLink = new Link(tournamentMember); memberLink.setWindowToOpen(HandicapRegisterWindow.class); for (int i = 0; i < parentReloadParameters.length; i++) { memberLink.addParameter(parentReloadParameters[i]); } if (members[a].getScorecardID() > 0) { memberLink.addParameter("scorecard_id", members[a].getScorecardID()); } else { memberLink.addParameter("member_id", members[a].getMemberID()); } Text memberUnion = (Text) proxyText.clone(); memberUnion.setText(members[a].getAbbrevation()); Text memberGroup = (Text) proxyText.clone(); memberGroup.setText(members[a].getGroupName()); int holesPlayed = members[a].getHolesPlayed(); if (holesPlayed == -1) { holesPlayed = 1; } int totalStrokes = members[a].getStrokesWithoutHandicap(); if (totalStrokes == -1) { totalStrokes = 0; } int playHandicap = (int) members[a].getRoundHandicap(); if (playHandicap == -1) { playHandicap = 0; } int totalStrokes2 = members[a].getStrokesWithHandicap(); if (totalStrokes2 == -1) { totalStrokes2 = 0; } int totalPoints = members[a].getTotalPoints(); if (totalPoints == -1) { totalPoints = 0; } int difference = members[a].getDifference(); if (difference == -1 && holesPlayed == 0) { difference = 0; } String out_differ = "E"; if (difference == 0) { out_differ = "E"; } else if (difference < 0) { out_differ = String.valueOf(difference); } else if (difference > 0) { out_differ = "+" + String.valueOf(difference); } myTable.add(check, 1, a + 2); myTable.add(memberLink, 2, a + 2); myTable.add(memberUnion, 3, a + 2); myTable.add(memberGroup, 4, a + 2); myTable.add(playHandicap + "", 5, a + 2); myTable.addText(holesPlayed + "", 6, a + 2); if (totalStrokes > 0) { myTable.addText(totalStrokes + "", 7, a + 2); } if (totalStrokes2 > 0) { myTable.addText(totalStrokes2 + "", 8, a + 2); } myTable.addText(totalPoints + "", 9, a + 2); if (totalStrokes > 0) { myTable.addText(out_differ + "", 10, a + 2); } Image changeImage = iwb.getImage("shared/icons/tees.gif", iwrb.getLocalizedString("tournament.change_tees", "Change tees")); changeImage.setAlignment("absmiddle"); Link changeLink = new Link(changeImage); changeLink.setWindowToOpen(HandicapUtility.class); changeLink.addParameter(HandicapUtility.PARAMETER_SCORECARD_ID, scorecard_id); changeLink.addParameter(HandicapUtility.PARAMETER_METHOD, HandicapUtility.ACTION_CHANGE_TEES); Image changeImage2 = iwb.getImage("shared/icons/updown.gif", iwrb.getLocalizedString("tournament.update_handicap", "Update handicap")); changeImage2.setAlignment("absmiddle"); Link changeLink2 = new Link(changeImage2); changeLink2.setWindowToOpen(HandicapUtility.class); changeLink2.addParameter(HandicapUtility.PARAMETER_MEMBER_ID, members[a].getMemberID()); changeLink2.addParameter(HandicapUtility.PARAMETER_TOURNAMENT_ID, members[a].getTournamentID()); changeLink2.addParameter(HandicapUtility.PARAMETER_METHOD, HandicapUtility.ACTION_UPDATE_HANDICAP); Image positionImage = iwb.getImage("shared/icons/position.gif", iwrb.getLocalizedString("tournament.change_position", "Change position")); positionImage.setAlignment("absmiddle"); Link positionLink = new Link(positionImage); positionLink.setWindowToOpen(ChangePositionWindow.class); positionLink.addParameter("member_id", members[a].getMemberID()); positionLink.addParameter("tournament_id", members[a].getTournamentID()); Image groupImage = iwb.getImage("shared/icons/edit.gif", iwrb.getLocalizedString("tournament.change_group", "Change group")); groupImage.setAlignment("absmiddle"); Link groupLink = new Link(groupImage); groupLink.setWindowToOpen(ChangeGroupWindow.class); groupLink.addParameter("member_id", members[a].getMemberID()); groupLink.addParameter("tournament_id", members[a].getTournamentID()); Image dismissImage = iwb.getImage("shared/icons/delete.gif", iwrb.getLocalizedString("tournament.dismiss", "Dismiss")); dismissImage.setAlignment("absmiddle"); Link dismissLink = new Link(dismissImage); dismissLink.setWindowToOpen(DismissWindow.class); dismissLink.addParameter("member_id", members[a].getMemberID()); dismissLink.addParameter("tournament_id", members[a].getTournamentID()); myTable.add(changeLink, 11, a + 2); myTable.add(" ", 11, a + 2); myTable.add(changeLink2, 11, a + 2); myTable.add(" ", 11, a + 2); myTable.add(groupLink, 11, a + 2); myTable.add(" ", 11, a + 2); myTable.add(dismissLink, 11, a + 2); if (tournamentType.getWithoutHandicap()) { myTable.add(" ", 11, a + 2); myTable.add(positionLink, 11, a + 2); } } if (members.length == 0) { myTable.addText(iwrb.getLocalizedString("tournament.no_tee_times", "No tee times distributed"), 1, 2); } } int rows = myTable.getRows(); myTable.mergeCells(1, rows + 1, 10, rows + 1); myTable.mergeCells(1, rows + 2, 5, rows + 2); myTable.mergeCells(6, rows + 2, 10, rows + 2); myTable.setAlignment(6, rows + 2, "right"); myTable.addText("<hr size=\"1\" noshade align=\"left\" width=\"150\">" + iwrb.getLocalizedString("tournament.number_of_contestants", "Number of contestants") + ": " + numberOfGolfers, 1, rows + 1); myTable.add(getButton(new SubmitButton(localize("tournament.register", "Register"))), 6, rows + 2); Link backLink = new Link(getTournamentBusiness(modinfo).getBackLink(modinfo)); myTable.add(backLink, 1, rows + 2); myForm.addBreak(); myForm.add(myTable); dialogTable.add(orderForm, 1, 1); dialogTable.add(myForm, 1, 2); add(dialogTable); } protected boolean tournamentMustBeSet() { return true; } private Parameter[] getReloadParametersToAdd(String tournament_id, String tournament_round_id,IWContext modinfo) { Parameter[] parentWindowParameters = new Parameter[4]; parentWindowParameters[0] = new Parameter(GolfBlock.PRM_PARENT_PREFIX+"tournament",tournament_id); parentWindowParameters[1] = new Parameter(GolfBlock.PRM_PARENT_PREFIX+IWMainApplication.classToInstanciateParameter,modinfo.getParameter(IWMainApplication.classToInstanciateParameter)); parentWindowParameters[2] = new Parameter(GolfBlock.PRM_PARENT_PREFIX+"tournament_round_id",tournament_round_id); parentWindowParameters[3] = new Parameter(GolfBlock.PRM_PARENT_PREFIX+LocaleSwitcher.languageParameterString,modinfo.getParameter(LocaleSwitcher.languageParameterString)); return parentWindowParameters; } }