/* * Created on 5.3.2004 */ package is.idega.idegaweb.golf.tournament.presentation; import is.idega.idegaweb.golf.access.AccessControl; import is.idega.idegaweb.golf.entity.Member; import is.idega.idegaweb.golf.entity.TeeColor; 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.Union; import is.idega.idegaweb.golf.moduleobject.GolfDialog; import is.idega.idegaweb.golf.presentation.GolfBlock; import java.rmi.RemoteException; import java.sql.SQLException; import java.util.List; import javax.ejb.FinderException; import com.idega.data.EntityFinder; import com.idega.data.IDOLookup; import com.idega.idegaweb.IWResourceBundle; import com.idega.presentation.IWContext; import com.idega.presentation.PresentationObject; import com.idega.presentation.Table; import com.idega.presentation.text.Text; import com.idega.presentation.ui.BackButton; 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.presentation.ui.TextInput; /** * @author gimmi */ public class TournamentGroups extends GolfBlock { private GolfDialog dialog; private static String ACTION_PARAMETER = "thisAction"; private static String PARAMETER_CLOSE = "close"; private static String PARAMETER_CREATE_GROUP = "createGroup"; private static String PARAMETER_VIEW_GROUP = "viewGroup"; private static String PARAMETER_DELETE_GROUP = "deleteGroup"; public void add(PresentationObject modObj) { dialog.add(modObj); } public void main(IWContext modinfo) throws Exception { dialog = new GolfDialog(""); String action = modinfo.getParameter(ACTION_PARAMETER); if (action == null) { Form form = new Form(); GenericButton sbCreate = getButton(new SubmitButton(localize("new_tournament_group","New Tournament Group"), ACTION_PARAMETER, PARAMETER_CREATE_GROUP)); GenericButton sbView = getButton(new SubmitButton(localize("view_tournament_group","View Tournament Group"), ACTION_PARAMETER, PARAMETER_VIEW_GROUP)); GenericButton sbDelete = getButton(new SubmitButton(localize("delete_tournament_group","Delete Tournament Group"), ACTION_PARAMETER, PARAMETER_DELETE_GROUP)); GenericButton close = getButton(new SubmitButton(localize("close","Close"), ACTION_PARAMETER, PARAMETER_CLOSE)); form.add(sbCreate); form.add(Text.BREAK); form.add(sbView); form.add(Text.BREAK); form.add(sbDelete); form.add(Text.BREAK); form.add(close); dialog.add(form); } else if (action.equals(PARAMETER_CREATE_GROUP)) { fromCreateTournamentGroup(modinfo, getResourceBundle()); } else if (action.equals(PARAMETER_VIEW_GROUP)) { fromViewTournamentGroup(modinfo, getResourceBundle()); } else if (action.equals(PARAMETER_DELETE_GROUP)) { fromDeleteTournamentGroup(modinfo, getResourceBundle()); } else if (action.equalsIgnoreCase("close")) { getParentPage().setToReload(); getParentPage().close(); } super.add(dialog); } public void fromCreateTournamentGroup(IWContext modinfo, IWResourceBundle iwrb) throws Exception { if ((isAdmin()) || (isClubAdmin())) { String action = modinfo.getParameter("tournament_group_action"); if (action == null) { createTournamentGroup(modinfo, iwrb); } else if (action.equals("submitted")) { saveTournamentGroup(modinfo, iwrb); } } else { add(iwrb.getLocalizedString("tournament.access_denied", "Access denied")); } } private void createTournamentGroup(IWContext modinfo, IWResourceBundle iwrb) throws SQLException, RemoteException { Form form = new Form(); form.maintainParameter(ACTION_PARAMETER); TextInput name = new TextInput("name", ""); TextInput description = new TextInput("description", ""); TextInput maxAge = new TextInput("max_age", "100"); maxAge.setSize(3); TextInput minAge = new TextInput("min_age", "0"); minAge.setSize(3); TextInput maxHandicap = new TextInput("max_handicap", "50"); maxHandicap.setSize(3); TextInput minHandicap = new TextInput("min_handicap", "-10"); minHandicap.setSize(3); DropdownMenu teeColor = new DropdownMenu(EntityFinder.findAllOrdered((TeeColor) IDOLookup.instanciateEntity(TeeColor.class), "tee_color_name")); DropdownMenu sex = new DropdownMenu("sex"); sex.addMenuElement("M", iwrb.getLocalizedString("tournament.males", "Male")); sex.addMenuElement("F", iwrb.getLocalizedString("tournament.females", "Female")); sex.addMenuElement("B", iwrb.getLocalizedString("tournament.both", "Both")); int row = 1; Table table = new Table(); form.add(table); table.setBorder(0); table.setCellpadding(2); table.add("<b>" + iwrb.getLocalizedString("tournament.new_tournament_group", "New tournament group") + "</b>", 1, 1); ++row; table.add(iwrb.getLocalizedString("tournament.name", "Name"), 1, row); table.add(name, 2, row); ++row; table.add(iwrb.getLocalizedString("tournament.description", "Description"), 1, row); table.add(description, 2, row); ++row; table.add(iwrb.getLocalizedString("tournament.tee", "Tee color"), 1, row); table.add(teeColor, 2, row); ++row; table.add(iwrb.getLocalizedString("tournament.maximum_age", "Maximum age"), 1, row); table.add(maxAge, 2, row); ++row; table.add(iwrb.getLocalizedString("tournament.minimum_age", "Minimum age"), 1, row); table.add(minAge, 2, row); ++row; table.add(iwrb.getLocalizedString("tournament.maximum_handicap", "Maximum handicap"), 1, row); table.add(maxHandicap, 2, row); ++row; table.add(iwrb.getLocalizedString("tournament.minimum_handicap", "Minumum handicap"), 1, row); table.add(minHandicap, 2, row); ++row; table.add(iwrb.getLocalizedString("tournament.sex", "Sex"), 1, row); table.add(sex, 2, row); ++row; if (isClubAdmin()) { Member member = (Member) getMember(); table.add(new HiddenInput("union_id", "" + member.getMainUnionID())); } table.setVerticalAlignment(1, row, "top"); table.add(getTournamentBusiness(modinfo).getBackLink(modinfo), 1, row); table.setAlignment(2, row, "right"); table.add(getTournamentBusiness(modinfo).getAheadButton(modinfo, "tournament_group_action", "submitted"), 2, row); //table.add(new HiddenInput("tournament_group_action","submitted")); add(form); } private void saveTournamentGroup(IWContext modinfo, IWResourceBundle iwrb) throws RemoteException { String name = modinfo.getParameter("name"); String description = modinfo.getParameter("description"); String maxAge = modinfo.getParameter("max_age"); String minAge = modinfo.getParameter("min_age"); String maxHandicap = modinfo.getParameter("max_handicap"); String minHandicap = modinfo.getParameter("min_handicap"); String teeColorId = modinfo.getParameter("tee_color"); String sex = modinfo.getParameter("sex"); String union_id = modinfo.getParameter("union_id"); try { TournamentGroup tGroup = (TournamentGroup) IDOLookup.createLegacy(TournamentGroup.class); tGroup.setDescription(description); tGroup.setGender(sex); tGroup.setMaxAge(Integer.parseInt(maxAge)); tGroup.setMinAge(Integer.parseInt(minAge)); tGroup.setMaxHandicap(Float.parseFloat(maxHandicap)); tGroup.setMinHandicap(Float.parseFloat(minHandicap)); tGroup.setName(name); tGroup.setTeeColor(Integer.parseInt(teeColorId)); if (union_id != null) { tGroup.setUnionID(Integer.parseInt(union_id)); } else { tGroup.setUnionID(3); } tGroup.insert(); add(iwrb.getLocalizedString("tournament.tournament_group_created", "Tournament group created")); } catch (Exception e) { add(iwrb.getLocalizedString("touranment.tournament_group_not_created", "Tournament group not created")); } add("<br>"); add("<br>"); add(getTournamentBusiness(modinfo).getBackLink(modinfo)); } public Form getBackButtonForm(IWResourceBundle iwrb) { Form form = new Form(); form.add(new BackButton()); return form; } public void fromViewTournamentGroup(IWContext modinfo, IWResourceBundle iwrb) throws SQLException, RemoteException { if ((isAdmin()) || (isClubAdmin())) { String action = modinfo.getParameter("view_action"); if (action == null) action = ""; if (action.equals("group_chosen")) { viewGroup(modinfo, iwrb); } else if (action.equals("update")) { update(modinfo, iwrb); } else { chooseTournamentGroup(modinfo, iwrb); } } else { add(iwrb.getLocalizedString("tournament.access_denied", "Access denied")); add(getTournamentBusiness(modinfo).getBackLink(modinfo)); } } private void chooseTournamentGroup(IWContext modinfo, IWResourceBundle iwrb) throws RemoteException, SQLException { Form form = new Form(); form.maintainParameter(ACTION_PARAMETER); Table table = new Table(2, 3); table.mergeCells(1, 1, 2, 1); table.mergeCells(1, 2, 2, 2); table.setVerticalAlignment(1, 3, "top"); table.setVerticalAlignment(2, 3, "top"); table.setAlignment(1, 3, "left"); table.setAlignment(2, 3, "right"); table.setBorder(0); form.add(table); table.add(iwrb.getLocalizedString("tournament.choose_tournament", "Choose tournament"), 1, 1); DropdownMenu menu = null; if (isClubAdmin()) { Member member = (Member) getMember(); try { menu = new DropdownMenu(getTournamentBusiness(modinfo).getUnionTournamentGroups(member.getMainUnion())); } catch (FinderException fe) { throw new SQLException(fe.getMessage()); } } else { menu = new DropdownMenu(EntityFinder.findAllOrdered((TournamentGroup) IDOLookup.instanciateEntity(TournamentGroup.class), "name")); } menu.setMarkupAttribute("size", "7"); table.add(menu, 1, 2); table.add(getTournamentBusiness(modinfo).getBackLink(modinfo), 1, 3); table.add(getTournamentBusiness(modinfo).getAheadButton(modinfo, "view_action", "group_chosen"), 2, 3); //table.add(new HiddenInput("view_action","group_chosen"),2,3); add(form); } private void viewGroup(IWContext modinfo, IWResourceBundle iwrb) throws SQLException, RemoteException { String tournament_group_id = modinfo.getParameter("tournament_group"); if (tournament_group_id != null) { Form form = new Form(); Table table = new Table(); form.maintainParameter(ACTION_PARAMETER); form.add(table); table.setBorder(0); table.setCellpadding(2); TournamentGroup tGroup = null; try { tGroup = ((TournamentGroupHome) IDOLookup.getHomeLegacy(TournamentGroup.class)).findByPrimaryKey(Integer.parseInt(tournament_group_id)); } catch (FinderException fe) { throw new SQLException(fe.getMessage()); } Union union = tGroup.getUnion(); TextInput name = new TextInput("name", tGroup.getName()); String desc = tGroup.getDescription(); if (desc == null) desc = ""; TextInput description = new TextInput("description", desc); TextInput maxAge = new TextInput("max_age", "" + tGroup.getMaxAge()); maxAge.setSize(3); TextInput minAge = new TextInput("min_age", "" + tGroup.getMinAge()); minAge.setSize(3); TextInput maxHandicap = new TextInput("max_handicap", "" + tGroup.getMaxHandicap()); maxHandicap.setSize(3); TextInput minHandicap = new TextInput("min_handicap", "" + tGroup.getMinHandicap()); minHandicap.setSize(3); int teeColorId = tGroup.getTeeColorID(); DropdownMenu teeColor = new DropdownMenu(EntityFinder.findAllOrdered((TeeColor) IDOLookup.instanciateEntity(TeeColor.class), "tee_color_name")); teeColor.setSelectedElement(Integer.toString(teeColorId)); String sexString = tGroup.getGenderString(); DropdownMenu sex = new DropdownMenu("sex"); sex.addMenuElement("M", iwrb.getLocalizedString("tournament.males", "Male")); sex.addMenuElement("F", iwrb.getLocalizedString("tournament.females", "Female")); sex.addMenuElement("B", iwrb.getLocalizedString("tournament.both", "Both")); if (sexString != null) { sex.setSelectedElement(sexString); } int row = 1; table.add("<b>" + tGroup.getName() + "</b>", 1, row); table.add(new HiddenInput("tournament_group_id", "" + tGroup.getID()), 1, row); table.mergeCells(1, row, 2, row); ++row; table.add(iwrb.getLocalizedString("tournament.name", "Name"), 1, row); table.add(name, 2, row); ++row; table.add(iwrb.getLocalizedString("tournament.description", "Description"), 1, row); table.add(description, 2, row); ++row; table.add(iwrb.getLocalizedString("tournament.tee", "Tee color"), 1, row); table.add(teeColor, 2, row); ++row; table.add(iwrb.getLocalizedString("tournament.belongs_to", "Belongs to"), 1, row); table.add(union.getName(), 2, row); table.add(new HiddenInput("union_id", "" + union.getID()), 2, row); ++row; table.add(iwrb.getLocalizedString("tournament.maximum_age", "Maximum age"), 1, row); table.add(maxAge, 2, row); ++row; table.add(iwrb.getLocalizedString("tournament.minimum_age", "Minimum age"), 1, row); table.add(minAge, 2, row); ++row; table.add(iwrb.getLocalizedString("tournament.maximum_handicap", "Maximum handicap"), 1, row); table.add(maxHandicap, 2, row); ++row; table.add(iwrb.getLocalizedString("tournament.minimum_handicap", "Minumum handicap"), 1, row); table.add(minHandicap, 2, row); ++row; table.add(iwrb.getLocalizedString("tournament.sex", "Sex"), 1, row); table.add(sex, 2, row); ++row; table.add(getTournamentBusiness(modinfo).getBackLink(modinfo), 1, row); table.setAlignment(2, row, "right"); table.setVerticalAlignment(1, row, "top"); table.setVerticalAlignment(2, row, "top"); if (isClubAdmin()) { Member member = (is.idega.idegaweb.golf.entity.Member) getMember(); int tempUnionId = member.getMainUnionID(); if (tempUnionId == union.getID()) { table.add(new SubmitButton(localize("tournament.update","Update"), "view_action", "update"), 2, row); //table.add(new HiddenInput("view_action","update"),2,row); } } else if (isAdmin()) { table.add(getButton(new SubmitButton(localize("trounaemnt.update","Update"), "view_action", "update")), 2, row); //table.add(new HiddenInput("view_action","update"),2,row); } add(form); } else { add("Enginn m�tsh�pur valinn<br><br>"); add(getTournamentBusiness(modinfo).getBackLink(modinfo)); } } public void update(IWContext modinfo, IWResourceBundle iwrb) throws RemoteException { String name = modinfo.getParameter("name"); String description = modinfo.getParameter("description"); String maxAge = modinfo.getParameter("max_age"); String minAge = modinfo.getParameter("min_age"); String maxHandicap = modinfo.getParameter("max_handicap"); String minHandicap = modinfo.getParameter("min_handicap"); String teeColorId = modinfo.getParameter("tee_color"); String sex = modinfo.getParameter("sex"); String union_id = modinfo.getParameter("union_id"); String tournament_group_id = modinfo.getParameter("tournament_group_id"); try { maxHandicap = com.idega.util.text.TextSoap.findAndReplace(maxHandicap, ',', '.'); minHandicap = com.idega.util.text.TextSoap.findAndReplace(minHandicap, ',', '.'); TournamentGroup tGroup = ((TournamentGroupHome) IDOLookup.getHomeLegacy(TournamentGroup.class)).findByPrimaryKey(Integer.parseInt(tournament_group_id)); tGroup.setDescription(description); tGroup.setGender(sex); tGroup.setMaxAge(Integer.parseInt(maxAge)); tGroup.setMinAge(Integer.parseInt(minAge)); tGroup.setMaxHandicap(Float.parseFloat(maxHandicap)); tGroup.setMinHandicap(Float.parseFloat(minHandicap)); tGroup.setName(name); tGroup.setTeeColor(Integer.parseInt(teeColorId)); if (union_id != null) { tGroup.setUnionID(Integer.parseInt(union_id)); } else { tGroup.setUnionID(3); } tGroup.update(); add(iwrb.getLocalizedString("tournament.tournament_group_updated", "Tournament group updated")); } catch (Exception e) { add("Villa !!<br>"); add(iwrb.getLocalizedString("tournament.tournament_group_not_updated", "Tournament group not updated")); } add("<br>"); add("<br>"); add(getTournamentBusiness(modinfo).getBackLink(modinfo)); } public String getModuleControlParameter() { return "tournament_group_delete_action"; } public void fromDeleteTournamentGroup(IWContext modinfo, IWResourceBundle iwrb) throws Exception { if ((isAdmin()) || (isClubAdmin())) { String action = modinfo.getParameter(getModuleControlParameter()); if (action == null) { action = ""; } if (action.equalsIgnoreCase("confirm")) { confirm(modinfo, iwrb); } else if (action.equalsIgnoreCase("delete")) { delete(modinfo, iwrb); } else { start(modinfo, iwrb); } } else { add(iwrb.getLocalizedString("tournament.access_denied", "Access denied")); } } public void start(IWContext modinfo, IWResourceBundle iwrb) throws Exception { Form form = new Form(); form.maintainParameter(ACTION_PARAMETER); dialog.add(form); TournamentGroup[] groups; if (isClubAdmin()) { Member member = (Member) AccessControl.getMember(modinfo); int union_id = member.getMainUnionID(); groups = (TournamentGroup[]) ((TournamentGroup) IDOLookup.instanciateEntity(TournamentGroup.class)).findAllByColumnEqualsOrdered("union_id", Integer.toString(union_id), "name"); } else { groups = getTournamentGroups(modinfo); } if (groups.length == 0) { add(iwrb.getLocalizedString("tournament.no_tournament_groups", "No tournament groups")); } else { DropdownMenu drop = new DropdownMenu(groups); form.add(drop); } form.add(getButton(new SubmitButton(localize("trounament.delete","Delete"), getModuleControlParameter(), "confirm"))); //form.add(new HiddenInput(getModuleControlParameter(),"confirm")); } public void confirm(IWContext modinfo, IWResourceBundle iwrb) throws Exception { //GolfDialog dialog = new // GolfDialog(iwrb.getLocalizedString("tournament.warning","Warning")); //add(dialog); dialog.addMessage(iwrb.getLocalizedString("tournament.are_you_sure_you_want_to_delete_the_tournament_group", "Are you sure you want to delete the tournament group") + " "); Form form = new Form(); dialog.add(form); form.maintainParameter("tournament_group"); form.maintainParameter(ACTION_PARAMETER); form.add(new SubmitButton(iwrb.getLocalizedString("yes", "Yes"), getModuleControlParameter(), "delete")); form.add(new SubmitButton(iwrb.getLocalizedString("no", "No"), getModuleControlParameter(), "start")); } public void delete(IWContext modinfo, IWResourceBundle iwrb) throws Exception { //GolfDialog dialog = new // GolfDialog(iwrb.getLocalizedString("tournament.confirmation","Confirmation")); //add(dialog); List tournaments = com.idega.data.EntityFinder.findRelated(getGroup(modinfo), (Tournament) IDOLookup.instanciateEntity(Tournament.class)); if (tournaments == null) { try { TournamentGroup group = getGroup(modinfo); group.delete(); dialog.addMessage(iwrb.getLocalizedString("tournament.the_group", "The group") + " " + group.getName() + " " + iwrb.getLocalizedString("tournament.was_deleted", "was deleted")); dialog.add(getTournamentBusiness(modinfo).getBackLink(modinfo)); } catch (Exception ex) { ex.printStackTrace(System.err); dialog.addMessage(iwrb.getLocalizedString("tournament.delete_tournament_group_error", "Error. There are probable members registered in this tournament group")); } } else { dialog.addMessage(iwrb.getLocalizedString("tournament.delete_tournament_group_error", "Error. There are probable members registered in this tournament group")); } } public TournamentGroup[] getTournamentGroups(IWContext modinfo) throws Exception { return (TournamentGroup[]) ((TournamentGroup) IDOLookup.instanciateEntity(TournamentGroup.class)).findAllOrdered("name"); } public TournamentGroup getGroup(IWContext modinfo) throws Exception { return ((TournamentGroupHome) IDOLookup.getHomeLegacy(TournamentGroup.class)).findByPrimaryKey(Integer.parseInt(modinfo.getParameter("tournament_group"))); } protected boolean tournamentMustBeSet() { return false; } }