/* * Created on 4.3.2004 */ package is.idega.idegaweb.golf.field.presentation; 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.Tee; import is.idega.idegaweb.golf.entity.TeeColor; import is.idega.idegaweb.golf.entity.TeeColorHome; import is.idega.idegaweb.golf.handicap.business.Handicap; import is.idega.idegaweb.golf.presentation.GolfBlock; import is.idega.idegaweb.golf.templates.page.GolfWindow; import java.io.IOException; import java.sql.SQLException; import javax.ejb.FinderException; import com.idega.data.IDOLookup; import com.idega.presentation.IWContext; import com.idega.presentation.Table; import com.idega.presentation.text.Text; import com.idega.presentation.ui.CloseButton; import com.idega.presentation.ui.DropdownMenu; import com.idega.presentation.ui.Form; import com.idega.presentation.ui.HiddenInput; import com.idega.presentation.ui.SubmitButton; import com.idega.presentation.ui.TextInput; /** * @author laddi */ public class FieldHandicapCalculator extends GolfWindow { public FieldHandicapCalculator() { setWidth(300); setHeight(230); setTitle("Field handicap calculator"); add(new Calculator()); this.setScrollbar(true); } public void main(IWContext iwc) throws Exception { super.main(iwc); addHeading(_iwrb.getLocalizedString("field.field_handicap_calculator", "Field handicap calculator")); } public class Calculator extends GolfBlock { public void main(IWContext modinfo) throws Exception { String field_id = modinfo.getParameter("field_id"); Field field = ((FieldHome) IDOLookup.getHomeLegacy(Field.class)).findByPrimaryKey(Integer.parseInt(field_id)); fillContentTable(modinfo, field, field_id); } public void fillContentTable(IWContext modinfo, Field field, String field_id) throws IOException, SQLException, FinderException { Table contentTable = new Table(); contentTable.setWidth("100%"); contentTable.setCellpadding(0); contentTable.setCellspacing(0); contentTable.setAlignment(1, 1, Table.HORIZONTAL_ALIGN_CENTER); String gender = "none"; String handicap = modinfo.getParameter("handicap"); if (handicap == null || handicap.equals("")) { handicap = "36"; } String tee_color_id = modinfo.getParameter("tee_color_id"); Member member = (Member) modinfo.getSessionAttribute("member_login"); if (member != null) { gender = member.getGender(); } Table myTable = new Table(2, 5); myTable.mergeCells(1, 5, 2, 5); myTable.setCellpadding(5); myTable.setCellspacing(0); Form myForm = new Form(); myForm.add(new HiddenInput("field_id", field_id)); DropdownMenu tees = (DropdownMenu) getStyledInterface(new DropdownMenu("tee_color_id")); TextInput handicapInput = (TextInput) getStyledInterface(new TextInput("handicap")); handicapInput.setLength(4); handicapInput.setMaxlength(4); handicapInput.setSize(4); if (member != null) { handicapInput.setValue(String.valueOf(member.getHandicap())); } Tee[] teeColor = (Tee[]) ((Tee) IDOLookup.instanciateEntity(Tee.class)).findAll("select distinct tee_color_id from tee where field_id=" + String.valueOf(field.getID())); if (gender != null) { if (gender.equals("M")) { teeColor = (Tee[]) ((Tee) IDOLookup.instanciateEntity(Tee.class)).findAll("select distinct tee_color_id from tee where field_id=" + String.valueOf(field.getID()) + " and tee_color_id != 3 and tee_color_id != 4"); } if (gender.equals("F")) { teeColor = (Tee[]) ((Tee) IDOLookup.instanciateEntity(Tee.class)).findAll("select distinct tee_color_id from tee where field_id=" + String.valueOf(field.getID()) + " and tee_color_id > 2 and tee_color_id < 5"); } } for (int a = 0; a < teeColor.length; a++) { tees.addMenuElement(teeColor[a].getStringColumnValue("tee_color_id"), ((TeeColorHome) IDOLookup.getHomeLegacy(TeeColor.class)).findByPrimaryKey(teeColor[a].getIntColumnValue("tee_color_id")).getName()); } if (handicap != null && tee_color_id != null) { tees.setSelectedElement(tee_color_id); if (handicap.equals("")) { handicap = "36"; } if (handicap.indexOf(",") != -1) { handicap = handicap.replace(',', '.'); } Double forgjof = Double.valueOf(handicap); double grunn = forgjof.doubleValue(); Handicap leikForgjof = new Handicap(grunn); Tee[] tee = (Tee[]) ((Tee) IDOLookup.instanciateEntity(Tee.class)).findAllByColumnEquals("tee_color_id", tee_color_id, "field_id", field_id); int slope = tee[0].getIntColumnValue("slope"); float course_rating = tee[0].getFloatColumnValue("course_rating"); int field_par = field.getIntColumnValue("field_par"); int leik = leikForgjof.getLeikHandicap((double) slope, (double) course_rating, (double) field_par); myTable.add(getText(String.valueOf(leik)), 2, 4); handicapInput.setValue(handicap); } Text courseText = getHeader(localize("field.course", "Course")); Text handicapText = getHeader(localize("field.base_handicap", "Handicap")); Text teeText = getHeader(localize("field.tees", "Tees")); Text gameHandText = getHeader(localize("field.play_handicap", "Play handicap")); Text fieldText = getText(field.getName()); myTable.add(courseText, 1, 1); myTable.add(handicapText, 1, 2); myTable.add(teeText, 1, 3); myTable.add(gameHandText, 1, 4); myTable.add(fieldText, 2, 1); myTable.add(handicapInput, 2, 2); myTable.add(tees, 2, 3); myTable.add(new CloseButton(localize("close", "Close")), 1, 5); myTable.add(Text.getNonBrakingSpace(), 1, 5); myTable.add(new SubmitButton(localize("calculate", "Calculate")), 1, 5); myTable.setAlignment(1, 1, "right"); myTable.setAlignment(1, 2, "right"); myTable.setAlignment(1, 3, "right"); myTable.setAlignment(1, 4, "right"); myTable.setAlignment(1, 5, "right"); myForm.add(myTable); contentTable.add(myForm, 1, 1); add(contentTable); } } }