package is.idega.idegaweb.golf.startingtime.presentation; import is.idega.idegaweb.golf.access.AccessControl; import is.idega.idegaweb.golf.business.GolfCacher; import is.idega.idegaweb.golf.entity.Member; import is.idega.idegaweb.golf.entity.MemberBMPBean; import is.idega.idegaweb.golf.entity.StartingtimeFieldConfig; import is.idega.idegaweb.golf.entity.TournamentRound; import is.idega.idegaweb.golf.startingtime.business.TeeTimeBusinessBean; import is.idega.idegaweb.golf.startingtime.data.TeeTime; import is.idega.idegaweb.golf.startingtime.data.TeeTimeHome; import is.idega.idegaweb.golf.templates.page.GolfWindow; import is.idega.idegaweb.golf.tournament.presentation.MemberSearchWindow; import java.sql.SQLException; import java.text.DecimalFormat; import java.util.List; import java.util.Vector; import javax.ejb.FinderException; import com.idega.data.EntityFinder; import com.idega.data.GenericEntity; import com.idega.data.IDOLookup; import com.idega.presentation.IWContext; import com.idega.presentation.Table; import com.idega.presentation.text.HorizontalRule; import com.idega.presentation.text.Link; import com.idega.presentation.text.Paragraph; import com.idega.presentation.text.Text; import com.idega.presentation.ui.CheckBox; import com.idega.presentation.ui.DropdownMenu; import com.idega.presentation.ui.FloatInput; import com.idega.presentation.ui.Form; import com.idega.presentation.ui.GenericButton; import com.idega.presentation.ui.HiddenInput; import com.idega.presentation.ui.SubmitButton; import com.idega.presentation.ui.TextInput; import com.idega.util.IWTimestamp; import com.idega.util.text.TextSoap; /** * Title: Golf Description: Copyright: Copyright (c) 2001 Company: idega.is * * @author 2000 - idega team - <a href="mailto:gummi@idega.is">Gudmundur Agust Saemundssonn </a> * @version 1.0 */ public class AdminRegisterTime extends GolfWindow { private TeeTimeBusinessBean business; private Form myForm; private Table frameTable; private IWTimestamp currentDay; private String currentField; private String currentUnion; private String MemberID; private int daytime; private StartingtimeFieldConfig fieldInfo; private DecimalFormat hadycapFormat; private static String saveParameterString = "STsave"; private static String timeParameterString = "STtime"; private static String nameParameterString = "STname"; private static String unionParameterString = "STunion"; private static String handicapParameterString = "SThadycap"; private static String showedUpParameterString = "STshowedUp"; private static String deleteParameterString = "STdelete"; private static String groupNumParameterString = "STgroup"; private static String lastGroupParameterString = "STlastGroup"; private static String timeChangeStartIDParameterString = "STstartID"; private static String formParmeterIDParameterString = "STfpID"; private boolean forPrinting = false; public AdminRegisterTime() { super("Gluggi",600,600); this.setResizable(true); this.setScrollbar(true); myForm = new Form(); frameTable = new Table(); frameTable.setAlignment("center"); frameTable.setWidth("100%"); myForm.add(frameTable); super.add(Text.getBreak()); super.add(myForm); business = new TeeTimeBusinessBean(); hadycapFormat = new DecimalFormat("###.0"); } public List getTournamentRoundList() throws SQLException { int interval = fieldInfo.getMinutesBetweenStart(); Vector tournamentGroups = new Vector(0); int tournamentGroupsIndex = 0; List TournamentRounds = EntityFinder.findAll((TournamentRound) IDOLookup.instanciateEntity(TournamentRound.class), "select tournament_round.* from tournament,tournament_round where tournament_round.tournament_id=tournament.tournament_id and tournament_round.round_date >= '" + currentDay.toSQLDateString() + " 00:00' and tournament_round.round_date <= '" + currentDay.toSQLDateString() + " 23:59' and tournament.field_id = " + this.currentField); if (TournamentRounds != null) { for (int i = 0; i < TournamentRounds.size(); i++) { TournamentRound tempRound = (TournamentRound) TournamentRounds.get(i); IWTimestamp begin = new IWTimestamp(tempRound.getRoundDate()); begin.setAsTime(); IWTimestamp End_ = new IWTimestamp(tempRound.getRoundEndDate()); End_.setAsTime(); IWTimestamp begintime = new IWTimestamp(fieldInfo.getOpenTime()); begintime.setAsTime(); int firstGroup = IWTimestamp.getMinutesBetween(begintime, begin) / interval; int groupCount = IWTimestamp.getMinutesBetween(begin, End_) / interval; int[] tempBeginGroupAndEnd = new int[2]; tempBeginGroupAndEnd[0] = firstGroup + 1; tempBeginGroupAndEnd[1] = firstGroup + groupCount; String tournamentName = tempRound.getTournament().getName(); tournamentGroups.add(tournamentGroupsIndex++, tournamentName); tournamentGroups.add(tournamentGroupsIndex++, tempBeginGroupAndEnd); } } return tournamentGroups; } public String getTournamentName(List rounds, int groupNumber) { for (int c = 0; c < rounds.size(); c += 2) { int[] temp = (int[]) rounds.get(c + 1); if (groupNumber >= temp[0] && groupNumber <= temp[1]) { return (String) rounds.get(c); } } return null; } public void lineUpTable(IWContext modinfo) throws SQLException, FinderException { Vector illegalTimes = new Vector(0); int illegalTimesIndex = 0; IWTimestamp openTime = new IWTimestamp(fieldInfo.getOpenTime()); int minBetween = fieldInfo.getMinutesBetweenStart(); IWTimestamp noon = new IWTimestamp(1, 2, 1, 14, 0, 0); noon.setAsTime(); //idegaTimestamp afternoon = new idegaTimestamp(1,2,1,17,0,0); //afternoon.setAsTime(); int groupCount = 0; int firstGroup = 1; List takenTimes = null; IWTimestamp firstTime = null; switch (daytime) { case 1: //afternoon groupCount = IWTimestamp.getMinutesBetween(noon, new IWTimestamp(fieldInfo.getCloseTime())) / minBetween; firstGroup = IWTimestamp.getMinutesBetween(openTime, noon) / minBetween + 1; takenTimes = business.getStartingtimeTableEntries(this.currentDay, this.currentField, firstGroup, firstGroup + groupCount - 1); firstTime = noon; break; /* * case 2: //evening groupCount = * idegaTimestamp.getMinutesBetween(afternoon,new * idegaTimestamp(fieldInfo.getCloseTime()))/minBetween; firstGroup = * idegaTimestamp.getMinutesBetween(openTime * ,afternoon)/minBetween+1; takenTimes = * business.getStartingtimeTableEntries(this.currentDay,this.currentField,firstGroup,firstGroup+groupCount-1); * firstTime = afternoon; break; */ default: // morning groupCount = IWTimestamp.getMinutesBetween(openTime, noon) / minBetween; firstGroup = 1; takenTimes = business.getStartingtimeTableEntries(this.currentDay, this.currentField, firstGroup, groupCount); firstTime = new IWTimestamp(fieldInfo.getOpenTime()); break; } // int groupCount = idegaTimestamp.getMinutesBetween(openTime,new // idegaTimestamp(fieldInfo.getCloseTime()))/minBetween; HorizontalRule hr = new HorizontalRule("100%"); hr.setNoShade(true); hr.setWidth("100%"); List tournamentGroups = getTournamentRoundList(); int countInGroups = 4; int lines = groupCount * countInGroups; frameTable.empty(); String width = Table.HUNDRED_PERCENT; String width1 = "70"; String width2 = "250"; String width3 = "70"; String width4 = "70"; String width5 = "60"; Table startTable = new Table(); startTable.setRows(lines + 1); startTable.setColumns(6); Table illegalTable = null; startTable.setAlignment("center"); startTable.setWidth(width); startTable.setCellspacing(0); startTable.setRowStyleClass(1,getHeaderRowClass()); startTable.setAlignment(1, 1, "center"); startTable.setAlignment(3, 1, "center"); startTable.setAlignment(4, 1, "center"); startTable.setAlignment(5, 1, "center"); startTable.setAlignment(6, 1, "center"); startTable.setWidth(1, width1); startTable.setWidth(2, width2); startTable.setWidth(3, width3); startTable.setWidth(4, width4); //startTable.setWidth(5,width5); startTable.setColumnAlignment(1, "center"); startTable.setColumnAlignment(3, "center"); startTable.setColumnAlignment(4, "center"); startTable.setAlignment(5, 1, "center"); startTable.setAlignment(6, 1, "center"); Text textProxy = getSmallText(""); textProxy.setFontColor("#FFFFFF"); Text time = (Text) textProxy.clone(); time.setText(_iwrb.getLocalizedString("start.time", "Time")); time.setBold(); startTable.add(time, 1, 1); Text name = (Text) textProxy.clone(); name.setText(_iwrb.getLocalizedString("start.social_nr", "Social nr.") + " (" + _iwrb.getLocalizedString("start.name", "Name") + ")"); name.setBold(); startTable.add(name, 2, 1); Text club = (Text) textProxy.clone(); club.setText("(" + _iwrb.getLocalizedString("start.club", "Club") + ")"); club.setBold(); startTable.add(club, 3, 1); Text handicap = (Text) textProxy.clone(); handicap.setText("(" + _iwrb.getLocalizedString("start.handicap", "Handicap") + ")"); handicap.setBold(); startTable.add(handicap, 4, 1); Text showed = (Text) textProxy.clone(); showed.setText(_iwrb.getLocalizedString("start.showed", "Showed")); showed.setBold(); startTable.add(showed, 5, 1); if (!forPrinting) { Text delete = (Text) textProxy.clone(); delete.setText(_iwrb.getLocalizedString("start.delete", "Delete")); delete.setBold(); startTable.add(delete, 6, 1); } CheckBox delCheck = new CheckBox(deleteParameterString); CheckBox showedUpCheck; int groupCounter = 1; int lastGroup = -1; boolean insert = true; if (takenTimes != null) { for (int i = 0; i < takenTimes.size(); i++) { TeeTime tempStart = (TeeTime) takenTimes.get(i); int tempGroupNum = tempStart.getGroupNum(); String tName = getTournamentName(tournamentGroups, tempGroupNum); if (tempGroupNum < 1 || tName != null) { insert = false; } else { if (lastGroup == tempGroupNum) { groupCounter++; if (groupCounter > countInGroups) { insert = false; } } else { groupCounter = 1; } } if (insert) { int line = (tempGroupNum - firstGroup) * countInGroups + groupCounter + 1; //(-1+1) // -groupCounter++ // +headerLine // openTime.addMinutes((tempGroupNum-1)*minBetween); // startTable.add(TextSoap.addZero(openTime.getHour()) + ":" // + TextSoap.addZero(openTime.getMinute()),1,line); // openTime.addMinutes(-(tempGroupNum-1)*minBetween); startTable.add(tempStart.getPlayerName(), 2, line); startTable.add(tempStart.getClubName(), 3, line); if (tempStart.getHandicap() >= 0) { startTable.add(hadycapFormat.format((double) tempStart.getHandicap()), 4, line); } else { startTable.add("-", 4, line); } if (forPrinting) { if (tempStart.getShowedUp()) { startTable.add("Y", 5, line); } else { startTable.add("N", 5, line); } startTable.setAlignment(5, line, "center"); } else { CheckBox tmpShowedCheck = new CheckBox(showedUpParameterString + "_" + tempStart.getID()); tmpShowedCheck.setChecked(tempStart.getShowedUp()); startTable.add(tmpShowedCheck, 5, line); } CheckBox tempDelCheck = (CheckBox) delCheck.clone(); tempDelCheck.setContent(Integer.toString(tempStart.getID())); startTable.add(new HiddenInput(timeChangeStartIDParameterString, Integer.toString(tempStart.getID())), 1, line); if (!forPrinting) { startTable.add(tempDelCheck, 6, line); startTable.setAlignment(6, line, "center"); } } else { insert = true; } lastGroup = tempGroupNum; } } groupCounter = 1; lastGroup = -1; List allTakenTimes = business.getStartingtimeTableEntries(this.currentDay, this.currentField); int allGroupCount = IWTimestamp.getMinutesBetween(new IWTimestamp(fieldInfo.getOpenTime()), new IWTimestamp(fieldInfo.getCloseTime())) / minBetween; int[] freeGroups = new int[allGroupCount]; if (allTakenTimes != null) { for (int i = 0; i < allTakenTimes.size(); i++) { TeeTime tempStart = (TeeTime) allTakenTimes.get(i); int tempGroupNum = tempStart.getGroupNum(); String tName = getTournamentName(tournamentGroups, tempGroupNum); if (tempGroupNum < 1 || tName != null) { illegalTimes.insertElementAt(tempStart, illegalTimesIndex++); } else { if (lastGroup == tempGroupNum) { groupCounter++; if (groupCounter == countInGroups) { if (!(tempGroupNum > allGroupCount) && tempGroupNum > 0) { freeGroups[tempGroupNum - 1] = 1; } else { System.err.println("Error: " + this.getClassName() + " group " + tempGroupNum + " is out of range: 1-" + allGroupCount); } } if (groupCounter > countInGroups) { illegalTimes.insertElementAt(tempStart, illegalTimesIndex++); } } else { groupCounter = 1; } } lastGroup = tempGroupNum; } } // takes TournamentTimes out of timeDropdownMenu for (int c = 0; c < tournamentGroups.size(); c += 2) { int[] temp = (int[]) tournamentGroups.get(c + 1); for (int g = temp[0] - 1; g < temp[1]; g++) { if (g > -1 && g < freeGroups.length) freeGroups[g] = 1; } } DropdownMenu timeMenu = new DropdownMenu(this.timeParameterString); for (int i = 0; i < allGroupCount; i++) { if (freeGroups[i] != 1) { timeMenu.addMenuElement(i + 1, TextSoap.addZero(openTime.getHour()) + ":" + TextSoap.addZero(openTime.getMinute())); } openTime.addMinutes(minBetween); } openTime.addMinutes(-allGroupCount * minBetween); timeMenu.addMenuElement("-", "-"); int loop = lines + 2; // int takenTimesIndex = 0; TextInput nameInput = new TextInput(nameParameterString); nameInput.setSize(30); FloatInput handicapInput = new FloatInput(handicapParameterString); handicapInput.setSize(3); TextInput unionMenu = new TextInput(unionParameterString, "-"); // TextInput unionMenu = new // TextInput(unionParameterString,GolfCacher.getCachedUnion(currentUnion).getAbbrevation()); unionMenu.setLength(3); boolean firstColor = true; int count = 0; int min = 0; Text templ = getSmallText(""); for (int i = 1; i < loop; i++) { String tName = getTournamentName(tournamentGroups, (int) (((firstGroup - 1) * countInGroups + i - 2) / countInGroups + 1)); if (startTable.isEmpty(5, i)) { if (tName == null) { min = ((i - 2) / countInGroups) * minBetween; firstTime.addMinutes(min); startTable.add("<b>" + TextSoap.addZero(firstTime.getHour()) + ":" + TextSoap.addZero(firstTime.getMinute()) + "</b>", 1, i); firstTime.addMinutes(-min); if (!forPrinting) { startTable.add(nameInput, 2, i); startTable.add(unionMenu, 3, i); startTable.add(handicapInput, 4, i); } startTable.add(new HiddenInput(groupNumParameterString, Integer.toString((int) (((firstGroup - 1) * countInGroups + i - 2) / countInGroups + 1)))); } else { min = ((i - 2) / countInGroups) * minBetween; firstTime.addMinutes(min); startTable.add("<b>" + TextSoap.addZero(firstTime.getHour()) + ":" + TextSoap.addZero(firstTime.getMinute()) + "</b>", 1, i); firstTime.addMinutes(-min); Text temp = (Text) templ.clone(); temp.setText(tName); startTable.add(temp, 2, i); } } else if (i > 1 && tName == null) { DropdownMenu tempTimeMenu = (DropdownMenu) timeMenu.clone(); min = ((i - 2) / countInGroups) * minBetween; firstTime.addMinutes(min); tempTimeMenu.addMenuElement(Integer.toString((int) (((firstGroup - 1) * countInGroups + i - 2) / countInGroups + 1)), TextSoap.addZero(firstTime.getHour()) + ":" + TextSoap.addZero(firstTime.getMinute())); firstTime.addMinutes(-min); tempTimeMenu.setSelectedElement(Integer.toString((int) (((firstGroup - 1) * countInGroups + i - 2) / countInGroups + 1))); if (!forPrinting) { startTable.add(tempTimeMenu, 1, i); } else { startTable.add("<b>" + TextSoap.addZero(firstTime.getHour()) + ":" + TextSoap.addZero(firstTime.getMinute()) + "</b>", 1, i); } startTable.add(new HiddenInput(lastGroupParameterString, Integer.toString((int) (((firstGroup - 1) * countInGroups + i - 2) / countInGroups + 1))), 1, i); } if (i > 1) { if (count >= countInGroups) { if (firstColor) { firstColor = false; } else { firstColor = true; } count = 0; } // if (!forPrinting) { if (firstColor) { startTable.setRowStyleClass(i, getLightRowClass()); } else { startTable.setRowStyleClass(i, getDarkRowClass()); } //} count++; } } int illegal = illegalTimes.size(); if (illegal > 0) { illegalTable = new Table(5, illegal); illegalTable.setAlignment("center"); illegalTable.setWidth(width); illegalTable.setCellspacing(0); illegalTable.setWidth(1, width1); illegalTable.setWidth(2, width2); illegalTable.setWidth(3, width3); illegalTable.setWidth(4, width4); //startTable.setWidth(5,width5); illegalTable.setColumnAlignment(1, "center"); illegalTable.setColumnAlignment(3, "center"); illegalTable.setColumnAlignment(4, "center"); illegalTable.setAlignment(5, 1, "center"); for (int i = 1; i <= illegal; i++) { TeeTime tempStart = (TeeTime) illegalTimes.get(i - 1); illegalTable.setRowStyleClass(i, getErrorRowClass()); illegalTable.add(tempStart.getPlayerName(), 2, i); illegalTable.add(tempStart.getClubName(), 3, i); if (tempStart.getHandicap() >= 0) { illegalTable.add(hadycapFormat.format((double) tempStart.getHandicap()), 4, i); } else { illegalTable.add("-", 4, i); } CheckBox tempDelCheck = (CheckBox) delCheck.clone(); tempDelCheck.setContent(Integer.toString(tempStart.getID())); illegalTable.add(new HiddenInput(timeChangeStartIDParameterString, Integer.toString(tempStart.getID())), 1, i); illegalTable.add(tempDelCheck, 5, i); illegalTable.setAlignment(5, i, "center"); DropdownMenu tempTimeMenu = (DropdownMenu) timeMenu.clone(); min = (tempStart.getGroupNum() - 1) * minBetween; openTime.addMinutes(min); tempTimeMenu.addMenuElement(Integer.toString(tempStart.getGroupNum()), TextSoap.addZero(openTime.getHour()) + ":" + TextSoap.addZero(openTime.getMinute())); openTime.addMinutes(-min); tempTimeMenu.setSelectedElement(Integer.toString(tempStart.getGroupNum())); illegalTable.add(tempTimeMenu, 1, i); illegalTable.add(new HiddenInput(lastGroupParameterString, Integer.toString(tempStart.getGroupNum())), 1, i); } } String sDayTime; switch (daytime) { case 1: sDayTime = " - " + _iwrb.getLocalizedString("start.afternoon", "afternoon") + " - "; break; case 2: sDayTime = " - " + _iwrb.getLocalizedString("start.evening", "evening") + " - "; break; case 0: sDayTime = " - " + _iwrb.getLocalizedString("start.morning", "morning") + " - "; break; default: sDayTime = " - "; break; } Text dateText = getSmallHeader(business.getFieldName(Integer.parseInt(this.currentField)) + sDayTime + this.currentDay.getLocaleDate(modinfo.getCurrentLocale())); Table dateTable = new Table(2, 1); dateTable.add(dateText); dateTable.setAlignment("center"); dateTable.setAlignment(1, 1, "left"); dateTable.setAlignment(2, 1, "right"); dateTable.setHeight(1, "25"); dateTable.setWidth(width); if (!forPrinting) { GenericButton theSearch = getButton(new GenericButton(localize("search_form_member","Search For Member"))); theSearch.setWindowToOpen(MemberSearchWindow.class); theSearch.addParameter("action", "getSearch"); dateTable.add(theSearch, 2, 1); } frameTable.add(dateTable); Table borderTable = new Table(); borderTable.setWidth(Table.HUNDRED_PERCENT); borderTable.setCellpadding(0); borderTable.setCellspacing(0); borderTable.setCellBorder(1, 1, 1, "#3A5A20", "solid"); if (illegalTable != null) { borderTable.add(illegalTable); } borderTable.add(startTable); frameTable.add(borderTable); // SubmitButton save = new SubmitButton(" Vista ", // saveParameterString+".x", "do"); // SubmitButton save = new SubmitButton(new GenericButton save = getButton(new SubmitButton(localize("save","Save"), saveParameterString, "do")); Table submSave = new Table(); submSave.add(save); submSave.setAlignment("center"); submSave.setAlignment(1, 1, "right"); submSave.setHeight(1, "30"); submSave.setWidth(width); if (!forPrinting) { frameTable.add(submSave); } } public void handleFormInfo(IWContext modinfo) throws SQLException, FinderException { Object rfObj = modinfo.getSessionAttribute(formParmeterIDParameterString); String rfParam = modinfo.getParameter(formParmeterIDParameterString); if (!((String) rfObj).equals(rfParam)) { modinfo.setSessionAttribute(formParmeterIDParameterString, rfParam); String[] sentTimes = modinfo.getParameterValues(timeParameterString); String[] sentLastGroups = modinfo.getParameterValues(lastGroupParameterString); String[] sentStartIDs = modinfo.getParameterValues(timeChangeStartIDParameterString); String[] sentDeletes = modinfo.getParameterValues(deleteParameterString); String[] sentNames = modinfo.getParameterValues(nameParameterString); String[] sentGroupNums = modinfo.getParameterValues(groupNumParameterString); String[] sentUnions = modinfo.getParameterValues(unionParameterString); String[] sentHandicaps = modinfo.getParameterValues(handicapParameterString); if (sentTimes != null) { for (int i = 0; i < sentTimes.length; i++) { if (!sentTimes[i].equals(sentLastGroups[i]) || sentTimes[i].equals("-")) { try { TeeTime tempSt = ((TeeTimeHome) IDOLookup.getHomeLegacy(TeeTime.class)).findByPrimaryKey(Integer.parseInt(sentStartIDs[i])); tempSt.setGroupNum(Integer.parseInt(sentTimes[i])); String showed = modinfo.getParameter(showedUpParameterString + "_" + sentStartIDs[i]); if (showed == null) { tempSt.setShowedUp(false); } else { tempSt.setShowedUp(true); } tempSt.update(); } catch (Exception e) { //continue } } else if (sentTimes[i].equals(sentLastGroups[i])) { TeeTime tempSt = ((TeeTimeHome) IDOLookup.getHomeLegacy(TeeTime.class)).findByPrimaryKey(Integer.parseInt(sentStartIDs[i])); String showed = modinfo.getParameter(showedUpParameterString + "_" + sentStartIDs[i]); if (showed == null) { tempSt.setShowedUp(false); } else { tempSt.setShowedUp(true); } tempSt.update(); } } } /* * if (showedUps != null) { for (int i = 0; i < showedUps.length; * i++) { try { TeeTime teeTimes = new * TeeTime(Integer.parseInt(showedUps[i])); * teeTimes.setShowedUp(true); teeTimes.update(); }catch (Exception * e) { * } } } */ if (sentDeletes != null) { for (int i = 0; i < sentDeletes.length; i++) { try { ((TeeTimeHome) IDOLookup.getHomeLegacy(TeeTime.class)).findByPrimaryKey(Integer.parseInt(sentDeletes[i])).delete(); } catch (Exception e) { // System.err.println("t�kst ekki a� ey�a t�ma me� id: " // + sentDeletes[i] ); // continue } } } if (sentNames != null) { for (int i = 0; i < sentNames.length; i++) { if (sentNames[i] != null && !"".equals(sentNames[i])) { boolean ssn = false; // social security number if (sentNames[i].length() == 10) { try { Integer.parseInt(sentNames[i].substring(0, 5)); Integer.parseInt(sentNames[i].substring(6, 9)); ssn = true; } catch (NumberFormatException e) { ssn = false; } } /* * if(sentNames[i].length() == 11){ try{ * Integer.parseInt(sentNames[i].substring(0,5)); * Integer.parseInt(sentNames[i].substring(7,10)); * String tempString; tempString = * sentNames[i].substring(0,5); tempString += * sentNames[i].substring(7,10); sentNames[i] = * tempString; ssn = true; }catch(NumberFormatException * e){ ssn = false; } } */ if (ssn) { Member tempMemb = (is.idega.idegaweb.golf.entity.Member) MemberBMPBean.getMember(sentNames[i]); if (tempMemb != null) { // Member tempMemb = (Member)lMember.get(0); business.setStartingtime(Integer.parseInt(sentGroupNums[i]), this.currentDay, this.currentField, Integer.toString(tempMemb.getID()), MemberID, tempMemb.getName(), Float.toString(tempMemb.getHandicap()), GolfCacher.getCachedUnion(tempMemb.getMainUnionID()).getAbbrevation(), null, null); } else { //business.setStartingtime(Integer.parseInt(sentGroupNums[i]), // this.currentDay, this.currentField, null, // MemberID, sentNames[i], sentHandicaps[i], // GolfCacher.getCachedUnion(sentUnions[i]).getAbbrevation(), // null, null); business.setStartingtime(Integer.parseInt(sentGroupNums[i]), this.currentDay, this.currentField, null, MemberID, sentNames[i], sentHandicaps[i], sentUnions[i], null, null); } } else { //business.setStartingtime(Integer.parseInt(sentGroupNums[i]), // this.currentDay, this.currentField, null, // MemberID, sentNames[i], sentHandicaps[i], // GolfCacher.getCachedUnion(sentUnions[i]).getAbbrevation(), // null, null); business.setStartingtime(Integer.parseInt(sentGroupNums[i]), this.currentDay, this.currentField, null, MemberID, sentNames[i], sentHandicaps[i], sentUnions[i], null, null); } } } } } //this.setParentToReload(); } public void noPermission() { Text satyOut = getErrorText(this._iwrb.getLocalizedString("start.no_permission", "No permission")); satyOut.setFontSize(4); Table AlignmentTable = new Table(); AlignmentTable.setBorder(0); AlignmentTable.add(Text.getBreak()); AlignmentTable.add(satyOut); AlignmentTable.setAlignment("center"); AlignmentTable.add(Text.getBreak()); AlignmentTable.add(Text.getBreak()); // Link close = new Link("Loka glugga"); // close.addParameter(closeParameterString, "true"); // AlignmentTable.add(close); frameTable.empty(); frameTable.add(AlignmentTable); } public void main(IWContext modinfo) throws Exception { super.main(modinfo); String date = modinfo.getParameter("date"); currentField = modinfo.getParameter("field_id"); currentUnion = modinfo.getParameter("union_id"); MemberID = modinfo.getParameter("member_id"); String sDayTime = modinfo.getParameter("daytime"); String rfParam = modinfo.getParameter(formParmeterIDParameterString); if (modinfo.getSessionAttribute(formParmeterIDParameterString) == null) { modinfo.setSessionAttribute(formParmeterIDParameterString, Integer.toString(myForm.hashCode() - 1)); myForm.add(new HiddenInput(formParmeterIDParameterString, Integer.toString(myForm.hashCode()))); } else if (rfParam != null) { myForm.add(new HiddenInput(formParmeterIDParameterString, Integer.toString((Integer.parseInt(rfParam) + rfParam.hashCode()) % Integer.MAX_VALUE))); } else { myForm.add(new HiddenInput(formParmeterIDParameterString, Integer.toString(myForm.hashCode()))); } if (sDayTime == null) { Object tempObj = modinfo.getSessionAttribute("when"); if (tempObj != null) { daytime = Integer.parseInt(tempObj.toString()); myForm.add(new HiddenInput("daytime", tempObj.toString())); } } else { daytime = Integer.parseInt(sDayTime.toString()); myForm.maintainParameter("daytime"); } if (date == null) { Object tempObj = modinfo.getSessionAttribute("date"); if (tempObj != null) { date = tempObj.toString(); myForm.add(new HiddenInput("date", date)); } } else { myForm.maintainParameter("date"); } if (currentField == null) { Object tempObj = modinfo.getSessionAttribute("field_id"); if (tempObj != null) { currentField = tempObj.toString(); myForm.add(new HiddenInput("field_id", currentField)); } } else { myForm.maintainParameter("field_id"); } if (currentUnion == null) { Object tempObj = modinfo.getSessionAttribute("union_id"); if (tempObj != null) { currentUnion = tempObj.toString(); myForm.add(new HiddenInput("union_id", currentUnion)); } } else { myForm.maintainParameter("union_id"); } if (MemberID == null) { Object tempObj = AccessControl.getMember(modinfo); if (tempObj != null) { MemberID = Integer.toString(((GenericEntity) tempObj).getID()); myForm.add(new HiddenInput("member_id", MemberID)); } } else { myForm.maintainParameter("member_id"); } boolean keepOn = true; try { currentDay = new IWTimestamp(date); } catch (NullPointerException e) { keepOn = false; this.noPermission(); } if (modinfo.getParameter(saveParameterString + ".x") != null || modinfo.getParameter(saveParameterString) != null) { this.handleFormInfo(modinfo); } if (keepOn) { String hasPermission = modinfo.getParameter("golf"); if (hasPermission != null || AccessControl.isAdmin(modinfo) || (AccessControl.isClubAdmin(modinfo) && modinfo.getSessionAttribute("member_main_union_id").equals(modinfo.getSessionAttribute("union_id"))) || (AccessControl.isClubWorker(modinfo) && modinfo.getSessionAttribute("member_main_union_id").equals(modinfo.getSessionAttribute("union_id")))) { if (hasPermission == null) { myForm.add(new HiddenInput("golf", "79")); // some dummy // value } else { myForm.maintainParameter("golf"); } fieldInfo = business.getFieldConfig(Integer.parseInt(currentField), currentDay); String sDayTimeString; switch (daytime) { case 1: sDayTimeString = " - " + _iwrb.getLocalizedString("start.afternoon", "afternoon") + " - "; break; case 2: sDayTimeString = " - " + _iwrb.getLocalizedString("start.evening", "evening") + " - "; break; case 0: sDayTimeString = " - " + _iwrb.getLocalizedString("start.morning", "morning") + " - "; break; default: sDayTimeString = " - "; break; } this.setTitle(business.getFieldName(Integer.parseInt(this.currentField)) + sDayTimeString + this.currentDay.getLocaleDate(modinfo.getCurrentLocale())); lineUpTable(modinfo); if (!forPrinting) { Paragraph p = new Paragraph(); p.setAlign("center"); Link print = getLink(_iwrb.getLocalizedString("startingtime.print", "print")); print.setWindowToOpen(AdminRegisterTeeTimeWindow.class); print.addParameter("date", date); print.addParameter("field_id", currentField); print.addParameter("union_id", currentUnion); print.addParameter("member_id", MemberID); print.addParameter("daytime", sDayTime); p.add(print); add(p); } } else { noPermission(); } } } // method main() ends public void setForPrinting(boolean forPrinting) { this.forPrinting = forPrinting; } } // Class ends