package is.idega.idegaweb.golf.handicap.presentation; /** * Title: Description: Copyright: Copyright (c) 2001 Company: * * @author @version 1.0 */ import is.idega.idegaweb.golf.access.AccessControl; import is.idega.idegaweb.golf.entity.Field; import is.idega.idegaweb.golf.entity.FieldHome; import is.idega.idegaweb.golf.entity.Member; import is.idega.idegaweb.golf.entity.MemberHome; import is.idega.idegaweb.golf.entity.Tee; import is.idega.idegaweb.golf.entity.TeeColor; import is.idega.idegaweb.golf.entity.TeeColorHome; import is.idega.idegaweb.golf.presentation.GolfBlock; import is.idega.idegaweb.golf.util.GolfConstants; import java.io.IOException; import java.sql.SQLException; import javax.ejb.FinderException; import com.idega.data.IDOLookup; import com.idega.idegaweb.IWBundle; import com.idega.idegaweb.IWResourceBundle; import com.idega.presentation.IWContext; import com.idega.presentation.Table; import com.idega.presentation.text.Text; 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.SubmitButton; import com.idega.user.data.User; import com.idega.user.data.UserHome; import com.idega.util.IWCalendar; public class HandicapScore extends GolfBlock { private String member_id; private boolean isAdmin = false; protected IWResourceBundle iwrb; protected IWBundle iwb; private Form myForm; private Table myTable; private Member iMember; public HandicapScore() { } public HandicapScore(String member_id) { this.member_id = member_id; } public HandicapScore(int member_id) { this.member_id = String.valueOf(member_id); } public void main(IWContext modinfo) throws Exception { iwrb = getResourceBundle(); iwb = getBundle(); this.isAdmin = isAdministrator(modinfo); if (modinfo.isParameterSet(GolfConstants.MEMBER_UUID)) { MemberHome home = (MemberHome) IDOLookup.getHomeLegacy(Member.class); try { Member member = home.findByUniqueID(modinfo.getParameter(GolfConstants.MEMBER_UUID)); member_id = member.getPrimaryKey().toString(); } catch (FinderException fe) { UserHome userHome = (UserHome) IDOLookup.getHome(User.class); try { User user = userHome.findUserByUniqueId(modinfo.getParameter(GolfConstants.MEMBER_UUID)); Member member = home.findMemberByIWMemberSystemUser(user); member_id = member.getPrimaryKey().toString(); } catch (FinderException e) { //Nothing found... } } if (member_id != null) { modinfo.setSessionAttribute("member_id", member_id); } } if (member_id == null) { member_id = modinfo.getRequest().getParameter("member_id"); } if (member_id == null) { member_id = (String) modinfo.getSession().getAttribute("member_id"); if (member_id == null) { Member memberinn = (Member) modinfo.getSession().getAttribute("member_login"); if (memberinn != null) { member_id = String.valueOf(memberinn.getID()); if (member_id == null) { member_id = "1"; } } else { member_id = "1"; } } } iMember = ((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(Integer.parseInt(member_id)); if ((int) iMember.getHandicap() == 100) { Table noTable = new Table(); noTable.setAlignment("center"); noTable.setCellpadding(12); noTable.setCellspacing(12); Text texti = getHeader(iwrb.getLocalizedString("handicap.member_no_handicap", "Member does not have a registered handicap.")); texti.addBreak(); texti.addBreak(); texti.addToText(iwrb.getLocalizedString("handicap.handicap_help", "Contact your club to get your handicap.")); noTable.add(texti); add(noTable); } else { getForm(); drawTable(modinfo); myForm.add(myTable); add(myForm); } } private void drawTable(IWContext modinfo) throws IOException, SQLException, FinderException { Member memberInfo = ((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(Integer.parseInt(member_id)); float forgjof = memberInfo.getHandicap(); int union_id = memberInfo.getMainUnionID(); String gender = memberInfo.getGender(); String field_id = (String) modinfo.getSession().getAttribute("field_id"); if (field_id == null) { Field[] field = (Field[]) ((Field) IDOLookup.instanciateEntity(Field.class)).findAllByColumnEquals("union_id", String.valueOf(union_id)); if (union_id > 3 && field.length > 0) { field_id = String.valueOf(field[0].getID()); } else field_id = "49"; } HiddenInput fieldID = new HiddenInput("field_id", field_id); myForm.add(fieldID); Field fieldName = ((FieldHome) IDOLookup.getHomeLegacy(Field.class)).findByPrimaryKey(Integer.parseInt(field_id)); IWCalendar dagatal = new IWCalendar(); String month = String.valueOf(dagatal.getMonth()); String year = String.valueOf(dagatal.getYear()); String day = String.valueOf(dagatal.getDay()); String tee_number = "1"; if (String.valueOf(memberInfo.getHandicap()) != null && memberInfo.getGender() != null) { if (forgjof >= 26.5 && gender.equals("M")) { tee_number = "6"; } else if (forgjof >= 10.5 && gender.equals("F")) { tee_number = "4"; } else if (forgjof <= 10.4 && gender.equals("F")) { tee_number = "3"; } else if (forgjof <= 28.0 && forgjof >= 4.5 && gender.equals("M")) { tee_number = "2"; } else if (forgjof <= 4.4 && gender.equals("M")) { tee_number = "1"; } } DropdownMenu select_tee = (DropdownMenu) getStyledInterface(new DropdownMenu("tee_number")); DropdownMenu select_holes = (DropdownMenu) getStyledInterface(new DropdownMenu("number_of_holes")); select_holes.addMenuElement("18", iwrb.getLocalizedString("handicap.18_holes", "18 holes")); if (forgjof > 26.4 || isAdmin) { select_holes.addMenuElement("1", iwrb.getLocalizedString("handicap.first_9_holes", "First 9 holes")); select_holes.addMenuElement("10", iwrb.getLocalizedString("handicap.last_9_holes", "Last 9 holes")); } select_holes.keepStatusOnAction(); DropdownMenu select_stats = (DropdownMenu) getStyledInterface(new DropdownMenu("statistics")); select_stats.addMenuElement("0", iwrb.getLocalizedString("handicap.no_statistics", "No statistics")); select_stats.addMenuElement("1", iwrb.getLocalizedString("handicap.register_statistics", "Register statistics")); select_stats.setSelectedElement("1"); select_stats.keepStatusOnAction(); DropdownMenu select_month = (DropdownMenu) getStyledInterface(new DropdownMenu("month")); for (int m = 1; m <= 12; m++) { select_month.addMenuElement(String.valueOf(m), dagatal.getMonthName(m).toLowerCase()); } select_month.setSelectedElement(month); select_month.keepStatusOnAction(); DropdownMenu select_year = (DropdownMenu) getStyledInterface(new DropdownMenu("year")); for (int y = 2001; y <= dagatal.getYear(); y++) { select_year.addMenuElement(String.valueOf(y), String.valueOf(y)); } select_year.setSelectedElement(year); select_year.keepStatusOnAction(); DropdownMenu select_day = (DropdownMenu) getStyledInterface(new DropdownMenu("day")); for (int d = 1; d <= 31; d++) { select_day.addMenuElement(String.valueOf(d), String.valueOf(d) + "."); } select_day.setSelectedElement(day); select_day.keepStatusOnAction(); Tee[] teeID = (Tee[]) ((Tee) IDOLookup.instanciateEntity(Tee.class)).findAll("select distinct tee_color_id from tee where field_id=" + field_id); for (int a = 0; a < teeID.length; a++) { int teeColorID = teeID[a].getIntColumnValue("tee_color_id"); select_tee.addMenuElement(String.valueOf(teeColorID), (((TeeColorHome) IDOLookup.getHomeLegacy(TeeColor.class)).findByPrimaryKey(teeColorID)).getStringColumnValue("tee_color_name")); } select_tee.keepStatusOnAction(); select_tee.setSelectedElement(tee_number); GenericButton selectMember = getButton(new GenericButton("select_member", iwrb.getLocalizedString("handicap.select", "Select member"))); selectMember.setWindowToOpen(HandicapFindMember.class); GenericButton selectField = getButton(new GenericButton("select_field", iwrb.getLocalizedString("handicap.select_course", "Select course"))); selectField.setWindowToOpen(HandicapUtility.class); selectField.addParameterToWindow(HandicapUtility.PARAMETER_METHOD, HandicapUtility.ACTION_FIND_FIELD); SubmitButton writeScore = (SubmitButton) getButton(new SubmitButton(iwrb.getLocalizedString("handicap.register_score", "Register score"))); Text member = getHeader(iwrb.getLocalizedString("handicap.member", "Member") + ":" + Text.NON_BREAKING_SPACE); Text memberText = getText(memberInfo.getName()); Text field = getHeader(iwrb.getLocalizedString("handicap.course", "Course") + ":" + Text.NON_BREAKING_SPACE); Text fieldText = getText(fieldName.getName()); Text tees = getHeader(iwrb.getLocalizedString("handicap.tees", "Tees") + ":" + Text.NON_BREAKING_SPACE); Text date = getHeader(iwrb.getLocalizedString("handicap.day", "Day") + ":" + Text.NON_BREAKING_SPACE); Text numberOfHoles = getHeader(iwrb.getLocalizedString("handicap.number_of_holes", "Number of holes") + ":" + Text.NON_BREAKING_SPACE); Text statistics = getHeader(iwrb.getLocalizedString("handicap.statistics", "Statistics") + ":" + Text.NON_BREAKING_SPACE); myTable = new Table(); myTable.setBorder(0); myTable.setCellpadding(0); myTable.setCellspacing(0); int row = 1; myTable.add(member, 1, row++); myTable.setHeight(1, row++, 12); myTable.add(field, 1, row++); myTable.setHeight(1, row++, 12); myTable.add(tees, 1, row++); myTable.setHeight(1, row++, 12); myTable.add(date, 1, row++); myTable.setHeight(1, row++, 12); myTable.add(numberOfHoles, 1, row++); myTable.setHeight(1, row++, 12); myTable.add(statistics, 1, row++); myTable.setHeight(1, row++, 12); row = 1; myTable.add(memberText, 2, row); if (isAdmin) { myTable.add(getSmallText(Text.NON_BREAKING_SPACE + Text.NON_BREAKING_SPACE), 2, 1); myTable.add(selectMember, 2, row); } row++; myTable.setHeight(2, row++, 12); myTable.add(fieldText, 2, row); myTable.add(getSmallText(Text.NON_BREAKING_SPACE + Text.NON_BREAKING_SPACE), 2, row); myTable.add(selectField, 2, row++); myTable.setHeight(1, row++, 12); if (teeID.length > 0) { myTable.add(select_tee, 2, row++); } else { myTable.add(getErrorText(iwrb.getLocalizedString("handicap.no_tees", "No tees registered") + ":"), 2, row++); } myTable.setHeight(2, row++, 12); myTable.add(select_day, 2, row); myTable.add(select_month, 2, row); myTable.add(select_year, 2, row++); myTable.setHeight(2, row++, 12); myTable.add(select_holes, 2, row++); myTable.setHeight(2, row++, 12); myTable.add(select_stats, 2, row++); myTable.setHeight(2, row++, 12); myTable.mergeCells(1, row, 2, row); myTable.setColumnAlignment(1, "right"); myTable.setVerticalAlignment(1, row, "top"); GenericButton foreignRound = getButton(new GenericButton("foreign_round", iwrb.getLocalizedString("handicap.foreign_round", "Foreign round"))); foreignRound.setWindowToOpen(HandicapRegisterForeign.class); foreignRound.addParameterToWindow("member_id", member_id); if (AccessControl.isLoggedOn(modinfo)) { myTable.add(foreignRound, 1, row); if (teeID.length > 0) { myTable.add(Text.getNonBrakingSpace(), 1, row); myTable.add(Text.getNonBrakingSpace(), 1, row); myTable.add(writeScore, 1, row); } } } private void getForm() { myForm = new Form(); myForm.setWindowToOpen(HandicapRegisterWindow.class); myForm.add(new HiddenInput("member_id", member_id)); } }