/*
* Created on 4.3.2004
*/
package is.idega.idegaweb.golf.clubs.presentation;
import is.idega.idegaweb.golf.entity.Member;
import is.idega.idegaweb.golf.entity.Union;
import is.idega.idegaweb.golf.presentation.GolfBlock;
import java.sql.SQLException;
import java.util.StringTokenizer;
import java.util.Vector;
import com.idega.data.IDOLookup;
import com.idega.presentation.IWContext;
import com.idega.presentation.Table;
import com.idega.presentation.text.Link;
import com.idega.presentation.text.Text;
import com.idega.presentation.ui.CheckBox;
import com.idega.presentation.ui.Form;
import com.idega.presentation.ui.HiddenInput;
import com.idega.presentation.ui.SubmitButton;
import com.idega.presentation.ui.TextArea;
import com.idega.presentation.ui.Window;
/**
* @author laddi
*/
public class GolfBagSelector extends GolfBlock {
SubmitButton leitaButton = new SubmitButton(localize("search","Search"));
SubmitButton skraButton = new SubmitButton(localize("register","Register"));
public void main(IWContext modinfo) throws Exception {
getParentPage().setTitle("Pokamerki");
String action = modinfo.getParameter("action");
if (action == null) {
action = "begin";
}
if (action.equalsIgnoreCase("begin")) {
searchBySocialSecurityNumber(modinfo);
}
if (action.equalsIgnoreCase("getSearchBySocialSecurityNumberResults")) {
getSearchBySocialSecurityNumberResults(modinfo);
}
}
public void getSearchBySocialSecurityNumberResults(IWContext modinfo) throws SQLException {
String socialSecurityNumbers = modinfo.getParameter("socialSecurityNumbers");
Member[] theMembers = this.findMembersBySocialSecurityNumber(socialSecurityNumbers);
drawTableWithMembers(modinfo, theMembers);
}
public void searchBySocialSecurityNumber(IWContext modinfo) {
Form form = new Form();
Table table2 = new Table(1, 3);
table2.setWidth(200);
table2.setAlignment("center");
table2.setAlignment(1, 3, "right");
table2.add("Sl��u inn kennit�lur:", 1, 1);
TextArea numberInput = new TextArea("socialSecurityNumbers");
numberInput.setWidth(30);
numberInput.setHeight(5);
HiddenInput hidden = new HiddenInput("action", "getSearchBySocialSecurityNumberResults");
table2.add(numberInput, 1, 2);
table2.add(hidden, 1, 3);
table2.add(leitaButton, 1, 3);
form.add(table2);
add("<br>");
add(form);
}
public void drawTableWithMembers(IWContext modinfo, Member[] theMembers) {
int tableHeight = 4;
if (theMembers != null) {
tableHeight += theMembers.length;
}
Window window = new Window("Pokamerki", 800, 800, "/clubs/bags.jsp");
window.setMenubar(true);
Form form = new Form(window);
Table table = new Table(8, tableHeight);
table.setBorder(0);
table.setCellpadding(2);
table.setCellspacing(0);
table.setWidth(2, "20");
table.setWidth(4, "20");
table.setWidth(6, "20");
table.setAlignment("center");
table.setAlignment(1, tableHeight, "center");
table.mergeCells(1, 1, 8, 1);
table.add("<u>Ni�ursta�a leitar:</u>", 1, 1);
form.add(table);
Member member = null;
Union union = null;
Member[] members = null;
CheckBox checker = null;
boolean error = false;
boolean notFound = false;
boolean doSearch = true;
Text memberSocialNumber = null;
Text memberName = null;
Text link = null;
int memberId;
int row = 1;
++row;
table.add("Kennitala", 1, row);
table.add("Nafn", 3, row);
if (theMembers != null) {
for (int i = 0; i < theMembers.length; i++) {
++row;
memberSocialNumber = new Text(theMembers[i].getSocialSecurityNumber());
memberName = new Text(theMembers[i].getName());
memberId = theMembers[i].getID();
Window memberWindow = new Window("Me�limur", 930, 630, "/clubs/member.jsp");
memberWindow.setScrollbar(false);
Link memberLink = new Link(memberName, memberWindow);
memberLink.addParameter("member_id", theMembers[i].getID());
checker = new CheckBox("member_id", memberId + "");
checker.setChecked(true);
link = new Text("Prenta pokamerki");
table.add(memberSocialNumber, 1, row);
table.add(memberLink, 3, row);
table.add(link, 7, row);
table.add(checker, 8, row);
table.setAlignment(8, row, "right");
}
++row;
++row;
table.add(this.skraButton, 5, row);
table.add(new HiddenInput("action", "registermarkedmembers"));
table.setAlignment(5, row, "right");
table.mergeCells(5, row, 8, row);
}
else {
++row;
table.add("Enginn fannst", 1, row);
}
table.resize(8, row);
add("<br>");
add(form);
}
public Member[] findMembersBySocialSecurityNumber(String socialSecurityNumbers) throws SQLException {
StringTokenizer token = new StringTokenizer(socialSecurityNumbers, " \n\r\t\f,;:.+abcdefghijklmnopqrstuvwxyz");
Vector vector = new Vector();
while (token.hasMoreTokens()) {
vector.addElement(token.nextToken());
}
return findMembersBySocialSecurityNumber(vector);
}
public Member[] findMembersBySocialSecurityNumber(Vector socialSecurityNumbers) throws SQLException {
Member[] members = null;
String securityNumber;
String SQLString = "Select * from member where ";
int numberInserted = 0;
for (int i = 0; i < socialSecurityNumbers.size(); i++) {
try {
securityNumber = (String) socialSecurityNumbers.elementAt(i);
if (securityNumber.equals("")) {
securityNumber = "idega_engin_kennitala";
}
members = (Member[]) ((Member) IDOLookup.instanciateEntity(Member.class)).findAll("Select * from member where social_security_number = '" + securityNumber + "' ");
if (members.length > 0) {
if (numberInserted != 0) {
SQLString += " OR ";
}
else {
++numberInserted;
}
SQLString += "member_id = " + members[0].getID();
}
}
catch (SQLException s) {
s.printStackTrace(System.err);
}
}
SQLString += "order by social_security_number";
try {
members = (Member[]) ((Member) IDOLookup.instanciateEntity(Member.class)).findAll(SQLString);
}
catch (SQLException s) {
}
return members;
}
}