package is.idega.idegaweb.golf.tournament.presentation; import is.idega.idegaweb.golf.entity.Member; import is.idega.idegaweb.golf.entity.MemberInfo; import is.idega.idegaweb.golf.entity.MemberInfoHome; import is.idega.idegaweb.golf.entity.Tournament; import is.idega.idegaweb.golf.entity.TournamentGroup; import is.idega.idegaweb.golf.entity.TournamentGroupHome; import is.idega.idegaweb.golf.entity.TournamentHome; import is.idega.idegaweb.golf.member.GenericMemberComparator; import is.idega.idegaweb.golf.presentation.GolfBlock; import java.util.Collections; import java.util.List; import com.idega.data.EntityFinder; import com.idega.data.IDOLookup; import com.idega.data.SimpleQuerier; 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.HiddenInput; import com.idega.presentation.ui.SubmitButton; import com.idega.util.IWTimestamp; import com.idega.util.text.TextSoap; /** * @author gimmi */ public class TournamentMembers extends GolfBlock { private IWResourceBundle iwrb; public void main(IWContext modinfo) throws Exception { try { iwrb = getResourceBundle(); String tournamentID = modinfo.getParameter("tournament_id"); String tournamentGroupID = modinfo.getParameter("tournament_group_id"); Tournament tournament = ((TournamentHome) IDOLookup.getHomeLegacy(Tournament.class)).findByPrimaryKey(Integer.parseInt(tournamentID)); IWTimestamp tournStart = new IWTimestamp(tournament.getStartTime()); boolean useGroups = tournament.getTournamentType().getUseGroups(); Form myForm = new Form(); myForm.add(new HiddenInput("tournament_id",tournamentID)); Table myTable = new Table(1,2); myTable.setAlignment(1,1,"right"); myTable.setWidth("100%"); TournamentGroup[] group = tournament.getTournamentGroups(); DropdownMenu dropdown = new DropdownMenu("tournament_group_id"); for ( int a = 0; a < group.length; a++ ) { dropdown.addMenuElement(group[a].getID(),group[a].getName()); } if ( tournamentGroupID != null ) { dropdown.setSelectedElement(tournamentGroupID); } else { if ( group.length > 0 ) { tournamentGroupID = Integer.toString(group[0].getID()); dropdown.setSelectedElement(tournamentGroupID); } } if ( tournamentGroupID != null ) { TournamentGroup tournamentGroup = ((TournamentGroupHome) IDOLookup.getHomeLegacy(TournamentGroup.class)).findByPrimaryKey(Integer.parseInt(tournamentGroupID)); SubmitButton submit = new SubmitButton("S�kja"); myTable.add(dropdown,1,1); myTable.add(submit,1,1); List memberList = EntityFinder.findAll((Member) IDOLookup.instanciateEntity(Member.class),"select m.* from member m, tournament_member tm where m.member_id = tm.member_id and tm.tournament_id = "+tournamentID+" and tournament_group_id = "+tournamentGroupID); Table memberTable = new Table(); memberTable.setWidth("100%"); if ( memberList != null ) { Collections.sort(memberList,new GenericMemberComparator(GenericMemberComparator.FIRSTLASTMIDDLE)); int rows = memberList.size(); memberTable.setColumns(4); memberTable.setRows(rows+3); memberTable.mergeCells(1,1,4,1); memberTable.mergeCells(1,rows+3,4,rows+3); memberTable.add("<hr size=\"1\" noshade align=\"left\" width=\"150\">"+iwrb.getLocalizedString("tournament.number_of_contestants","Number of contestants")+": "+rows,1,rows+3); Text groupText = new Text(tournamentGroup.getName()); groupText.setBold(); groupText.setFontSize(3); Text memberText = new Text(iwrb.getLocalizedString("tournament.golfer","Golfer")); memberText.setBold(); memberText.setFontSize(2); Text sscText = new Text(iwrb.getLocalizedString("tournament.social_security_number","Social-security")); sscText.setBold(); sscText.setFontSize(2); Text handicapText = new Text(iwrb.getLocalizedString("tournament.handicap","Handicap")); handicapText.setBold(); handicapText.setFontSize(2); memberTable.add(groupText,1,1); memberTable.add(memberText,2,2); if (!useGroups) { memberTable.add(sscText,3,2); } memberTable.add(handicapText,4,2); for ( int a = 0; a < memberList.size(); a++ ) { Member member = (Member) memberList.get(a); Text numberText = new Text(Integer.toString(a+1)); numberText.setFontSize(2); Text nameText = new Text(member.getName()); nameText.setFontSize(2); memberTable.add(numberText,1,a+3); memberTable.add(nameText,2,a+3); if (!useGroups) { String ssc = member.getSocialSecurityNumber(); if ( ssc.length() == 10 ) { ssc = ssc.substring(0,6)+"-"+ssc.substring(6,ssc.length()); } Text securityText = new Text(ssc); securityText.setFontSize(2); memberTable.add(securityText,3,a+3); String sql = "select handicap_after from scorecard where member_id = "+Integer.toString(member.getID())+" and scorecard_date < '"+tournStart.toSQLDateString()+"' order by scorecard_date desc"; String[] handicap = SimpleQuerier.executeStringQuery(sql); Text hcpText = new Text("-"); hcpText.setFontSize(2); if ( handicap.length > 0 ) { hcpText.setText(TextSoap.singleDecimalFormat(handicap[0])); } else { MemberInfo memberInfo = ((MemberInfoHome) IDOLookup.getHomeLegacy(MemberInfo.class)).findByPrimaryKey(member.getID()); hcpText.setText(TextSoap.singleDecimalFormat(Float.toString(memberInfo.getFirstHandicap()))); } memberTable.add(hcpText,4,a+3); } else { Text hcpText = new Text(Integer.toString((int)member.getHandicap())); memberTable.add(hcpText,4,a+3); // member == group // must 1st get members and calculate playing handicap // and add } } memberTable.setColumnAlignment(1,"center"); memberTable.setColumnAlignment(3,"center"); memberTable.setColumnAlignment(4,"center"); memberTable.setAlignment(1,rows+3,"left"); memberTable.setAlignment(1,1,"left"); } myTable.add(memberTable,1,2); } else { getParentPage().close(); } myForm.add(myTable); add(myForm); } catch (Exception e) { e.printStackTrace(System.err); } } }