package is.idega.idegaweb.golf; import is.idega.idegaweb.golf.entity.Union; import is.idega.idegaweb.golf.entity.UnionHome; import is.idega.idegaweb.golf.entity.UnionMemberInfo; import is.idega.idegaweb.golf.entity.UserId; import is.idega.idegaweb.golf.entity.UserIdHome; import is.idega.idegaweb.golf.entity.UserIds; import is.idega.idegaweb.golf.entity.UserIdsHome; import java.sql.SQLException; import java.text.DecimalFormat; import java.util.Hashtable; import javax.ejb.FinderException; import com.idega.data.IDOLookup; import com.idega.presentation.Editor; import com.idega.presentation.IWContext; import com.idega.presentation.PresentationObject; import com.idega.presentation.Table; import com.idega.presentation.text.Link; import com.idega.presentation.ui.CheckBox; 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; public class UserIdEditor extends Editor { public final String strAction = "usid_action"; public final int ACT5 = 5; public final String prefix = "usid_"; public DecimalFormat myFormatter = new DecimalFormat("0000000000000000"); public UserIdEditor(){ super(); } protected void control(IWContext modinfo){ try{ if(modinfo.getParameter(strAction) == null){ doMain(modinfo); } if(modinfo.getParameter(strAction) != null){ String sAct = modinfo.getParameter(strAction); int iAct = Integer.parseInt(sAct); switch (iAct) { case ACT1 : doMain(modinfo); break; case ACT2 : doChange(modinfo); break; case ACT3 : doUpdate(modinfo); break; case ACT4 : doMakeIds(modinfo); break; case ACT5 : doTrulyMakeIds(modinfo); break; default: doMain(modinfo); break; } } } catch(SQLException S){ S.printStackTrace(); } catch(Exception S){ S.printStackTrace(); } } protected PresentationObject makeLinkTable(int menuNr){ Table LinkTable = new Table(4,1); int last = 4; LinkTable.setWidth("100%"); LinkTable.setCellpadding(2); LinkTable.setCellspacing(1); LinkTable.setColor(this.DarkColor); LinkTable.setWidth(last,"100%"); Link Link1 = new Link("Yfirlit"); Link1.setFontColor(this.LightColor); Link1.addParameter(this.strAction,String.valueOf(this.ACT1)); Link Link2 = new Link("Breyta"); Link2.setFontColor(this.LightColor); Link2.addParameter(this.strAction,String.valueOf(this.ACT2)); Link Link3 = new Link("Sm��a n�mer"); Link3.setFontColor(this.LightColor); Link3.addParameter(this.strAction,String.valueOf(this.ACT4)); if(isAdmin){ LinkTable.add(Link1,1,1); LinkTable.add(Link2,2,1); LinkTable.add(Link3,3,1); } return LinkTable; } protected void doMain(IWContext modinfo) throws SQLException{ UserIds[] I = getUserIds(); Hashtable H = getUnionHash(getUnions()); int count = I.length; Table T = new Table(5,count+1); T.setWidth("100%"); T.setHorizontalZebraColored(LightColor,WhiteColor); T.setRowColor(1,MiddleColor); T.setCellpadding(2); T.setCellspacing(1) ; //T.setColumnAlignment(3, "right"); T.add(formatText("Nr"),1,1); T.add(formatText("Kl�bbur"),2,1); T.add(formatText("Byrjar"),3,1); T.add(formatText("Endar"),4,1); T.add(formatText("S��asta"),5,1); if(isAdmin){ if(count > 0){ for (int i = 0;i < count;i++){ T.add(formatText( String.valueOf(i+1)),1,i+2); Integer id = new Integer(I[i].getUnionId()); if(H.contains(id)){ String Abbr = (String)H.get(id); T.add(formatText(Abbr),2,i+2); } T.add(formatText(I[i].getStart()),3,i+2); T.add(formatText(I[i].getEnding()),4,i+2); T.add(formatText(I[i].getLast() ),5,i+2); } } } this.makeView(); this.addHeader(this.makeLinkTable(0)); this.addMain(T); } protected void doChange(IWContext modinfo) throws SQLException{ Form myForm = new Form(); Union[] U = getUnions(); UserIds[] UserIds = getUserIds(); int count = U.length; Table T = new Table(5,count+1); T.setWidth("100%"); T.setCellpadding(2); T.setCellspacing(1); T.setColumnAlignment(1,"right"); T.setHorizontalZebraColored(LightColor,WhiteColor); T.setRowColor(1,MiddleColor); T.add(formatText("Nr"),1,1); T.add(formatText("Kl�bbur"),2,1); T.add(formatText("Byrjar"),3,1); T.add(formatText("Endar"),4,1); for (int i = 1; i <= count ;i++){ int unionId = U[i-1].getID(); String sUnion = U[i-1].getAbbrevation(); String rownum = String.valueOf(i); String s = ""; TextInput sone,stwo,sthree,sfour; TextInput eone,etwo,ethree,efour; CheckBox saveCheck = new CheckBox(prefix+"chk"+i,"true"); HiddenInput uionIdInput = new HiddenInput(prefix+"unid"+i,String.valueOf(unionId)); sone = new TextInput(prefix+"sone"+i,"0352"); stwo = new TextInput(prefix+"stwo"+i); sthree = new TextInput(prefix+"sthree"+i,"1000"); sfour = new TextInput(prefix+"sfour"+i,"0001"); eone = new TextInput(prefix+"eone"+i,"0352"); etwo = new TextInput(prefix+"etwo"+i); ethree = new TextInput(prefix+"ethree"+i,"1999"); efour = new TextInput(prefix+"efour"+i,"9999"); int w = 3; sone.setSize(w); stwo.setSize(w); sthree.setSize(w); sfour.setSize(w); eone.setSize(w); etwo.setSize(w); ethree.setSize(w); efour.setSize(w); sone.setMaxlength(4); stwo.setMaxlength(4); sthree.setMaxlength(4); sfour.setMaxlength(4); eone.setMaxlength(4); etwo.setMaxlength(4); ethree.setMaxlength(4); efour.setMaxlength(4); T.add(formatText(rownum),1,i+1); T.add(sUnion,2,i+1); T.add(sone,3,i+1); T.add(stwo,3,i+1); T.add(sthree,3,i+1); T.add(sfour,3,i+1); T.add(eone,4,i+1); T.add(etwo,4,i+1); T.add(ethree,4,i+1); T.add(efour,4,i+1); T.add(uionIdInput); T.add(saveCheck,5,i+1); } myForm.add(T); myForm.add(new HiddenInput(prefix+"rowcount",String.valueOf(count))); myForm.add(new SubmitButton("Vista",this.strAction,String.valueOf(this.ACT3 ))); this.makeView(); this.addHeader(this.makeLinkTable(0)); this.addMain(myForm); } protected void doUpdate(IWContext modinfo) throws Exception{ int count = Integer.parseInt(modinfo.getParameter(prefix+"rowcount")); String sone,stwo,sthree,sfour; String eone,etwo,ethree,efour; String chk; String sUnionId; UserIds[] ids = new UserIds[count]; UserIds usid = null; for (int i = 1; i < count+1 ;i++){ chk = modinfo.getParameter(prefix+"chk"+i); if(chk!=null){ sone = modinfo.getParameter(prefix+"sone"+i); stwo = modinfo.getParameter(prefix+"stwo"+i); sthree = modinfo.getParameter(prefix+"sthree"+i); sfour = modinfo.getParameter(prefix+"sfour"+i); eone = modinfo.getParameter(prefix+"eone"+i); etwo = modinfo.getParameter(prefix+"etwo"+i); ethree = modinfo.getParameter(prefix+"ethree"+i); efour = modinfo.getParameter(prefix+"efour"+i); sUnionId = modinfo.getParameter(prefix+"unid"+i); try { usid = ((UserIdsHome) IDOLookup.getHomeLegacy(UserIds.class)).create(); usid.setStart(makeId(sone,stwo,sthree,sfour)); usid.setEnding(makeId(eone,etwo,ethree,efour)); usid.setLast(usid.getStart()); usid.setUnionId(Integer.parseInt(sUnionId)); usid.insert(); } catch (Exception ex) { } }// for loop } doMain(modinfo); } private void doMakeIds(IWContext modinfo) throws Exception{ Form form = new Form(); Table T = new Table(); T.setWidth("100%"); T.setCellpadding(2); T.setCellspacing(1); T.setColumnAlignment(1,"right"); T.setHorizontalZebraColored(LightColor,WhiteColor); T.add(drpClubs(getUnions(),prefix+"drp"),1,1); T.add(new SubmitButton("Keyra",this.strAction,String.valueOf(this.ACT5 )),2,1); form.add(T); this.makeView(); this.addHeader(this.makeLinkTable(0)); this.addMain(form); } private void doTrulyMakeIds(IWContext modinfo) throws Exception{ int id = Integer.parseInt(modinfo.getParameter(prefix+"drp")); UnionMemberInfo[] umi = getUMIs(id); UserIds U = ((UserIds[])((UserIds) IDOLookup.instanciateEntity(UserIds.class)).findAllByColumnEquals("union_id",id))[0]; UserId userid = null; long last = new Long(U.getLast()).longValue(); for (int i = 0; i < umi.length; i++) { userid = ((UserIdHome) IDOLookup.getHomeLegacy(UserId.class)).create(); userid.setMemberId(umi[i].getMemberID()); userid.setUserId(makeId(last++)); userid.insert(); } U.setLast(myFormatter.format(last)); U.update(); this.makeView(); this.addHeader(this.makeLinkTable(0)); //this.addMain("b�inn"); doMain(modinfo); } private String makeId(String one,String two,String three,String four) throws NumberFormatException{ String s = one+two+three+four; Long L = new Long(s); s = myFormatter.format(L.longValue()); return s; } private String makeId(long l) throws NumberFormatException{ String s = myFormatter.format(l); return s; } private UserIds[] getUserIds()throws SQLException{ UserIds[] U = (UserIds[]) ((UserIds)IDOLookup.instanciateEntity(UserIds.class)).findAll(); return U; } private Union[] getUnions() throws SQLException{ Union[] u = (Union[])((Union) IDOLookup.instanciateEntity(Union.class)).findAllOrdered("abbrevation"); return u; } private Union[] getUnion(int unionid)throws SQLException, FinderException{ Union[] u = new Union[1]; u[0] = ((UnionHome) IDOLookup.getHomeLegacy(Union.class)).findByPrimaryKey(unionid); return u; } private Hashtable getUnionHash(Union[] U){ Hashtable H = new Hashtable(); for (int i = 0; i < U.length; i++) { H.put(new Integer(U[i].getID()),U[i].getAbbrevation()); } return H; } private UnionMemberInfo[] getUMIs(int iUnionId)throws SQLException{ UnionMemberInfo[] umis = (UnionMemberInfo[])((UnionMemberInfo) IDOLookup.instanciateEntity(UnionMemberInfo.class)).findAllByColumnEquals("union_id",String.valueOf(iUnionId),"member_status","A"); return umis; } private DropdownMenu drpClubs(Union[] unions,String name){ DropdownMenu drp = new DropdownMenu(name); int len = unions.length; if(len > 1) drp.addMenuElement("0","Allir"); for(int i = 0; i < len; i++){ drp.addMenuElement(unions[i].getID(),unions[i].getAbbrevation()+ " \t "+unions[i].getName()); } return drp; } }