package is.idega.idegaweb.golf.service;
import is.idega.idegaweb.golf.entity.Family;
import is.idega.idegaweb.golf.entity.Member;
import is.idega.idegaweb.golf.entity.MemberHome;
import is.idega.idegaweb.golf.entity.UnionMemberInfo;
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.presentation.IWContext;
import com.idega.presentation.Image;
import com.idega.presentation.Table;
import com.idega.presentation.ui.BorderTable;
import com.idega.presentation.ui.CloseButton;
import com.idega.presentation.ui.DropdownMenu;
import com.idega.presentation.ui.Form;
import com.idega.presentation.ui.SubmitButton;
import com.idega.presentation.ui.TextInput;
import com.idega.util.text.Name;
/**
* Title:
* Description:
* Copyright: Copyright (c) 2001
* Company: idega
* @author �gir
* @version 1.0
*/
public class FamilyInsertWindow extends com.idega.presentation.ui.Window{
private static final String NAME = "1";
private static final String NAME_AND_MIDDLE = "2";
private static final String SOSIAL_SEC_NUM = "3";
private static final String ALL = "4";
private final String STORE_NAME = "STOREFAMILY";
private final String FIND_NAME = "FINDFAMILY";
private final String STORE = "store";
private final String FIND = "find";
private UnionMemberInfo uniMemInfo = null;
private Family family;
private DropdownMenu selectFamily;
private String selectionFamilyName = "familyBox";
private String[] selectionFamilyValues;
private String headerText = "Fj�lskylda";
private int unionId;
private TextInput inputFind;
private DropdownMenu choise;
private String findValue;
private String findName = "familyFinder";
private String choiseName = "keyToSearch";
private String choiseValue;
private String[] selectGroupsValues = new String[0];
public FamilyInsertWindow(int memberId, int unionId)throws java.sql.SQLException, FinderException {
setTitle("Finna fj�lskyldu");
this.unionId = unionId;
inputFind = new TextInput(findName);
inputFind.keepStatusOnAction();
choise = getChoises(choiseName);
choise.keepStatusOnAction();
Member mem = (Member) IDOLookup.createLegacy(Member.class);
uniMemInfo = ((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(memberId).getUnionMemberInfo(unionId);
}
public void main(IWContext modinfo) {
this.empty();
add(getInputTable(modinfo));
}
private void setVariables(IWContext modinfo) {
choiseValue = modinfo.getRequest().getParameter(choiseName);
findValue = getValue(findName, modinfo);
if(findValue != null && (! findValue.equals(""))) {
//member.setFamilyId(Integer.parseInt(findValue));
}
}
public Form getInputTable(IWContext modinfo){
Form form = new Form();
form.setMethod("get");
try {
String strStore = modinfo.getRequest().getParameter(STORE_NAME);
String strFind = modinfo.getRequest().getParameter(FIND_NAME);
BorderTable hTable = new BorderTable();
Table table = new Table(1, 6);
table.mergeCells(1, 1, 2, 1);
table.add(choise, 1, 3);
table.add(inputFind, 1, 3);
Table buttonTable = new Table(2,1);
buttonTable.setCellpadding(0);
buttonTable.setCellspacing(0);
table.add(new SubmitButton(new Image("/pics/formtakks/finna.gif"), FIND_NAME, "findval"), 1, 4);
buttonTable.add(new SubmitButton(new Image("/pics/formtakks/skra.gif"), STORE_NAME, "storeval"), 1, 1);
buttonTable.add(new CloseButton(new Image("/pics/formtakks/loka.gif")), 2, 1);
table.add(buttonTable, 1, 6);
if(strStore != null) {
store(modinfo);
close();
setParentToReload();
}
else {
if(strFind != null) {
setVariables(modinfo);
int numRecords = 0;
List l = find(findValue, choiseValue);
System.err.println("\n\nVilla i getInputTable\n\n"+findValue+" hitttt "+ choiseValue);
//List l = find("Agnar �rmannsson", "1");
setSelectionBox(l);
if(l != null) {
numRecords = l.size();
}
table.add("Fj�ldi svara: "+numRecords, 1, 1);
table.add(selectFamily, 1, 5);
}
}
hTable.add(table);
form.add(hTable);
}
catch(Exception e) {
System.err.println("\n\nVilla i getInputTable\n\n");
e.printStackTrace();
}
return form;
}
private void store(IWContext modinfo) {
selectionFamilyValues = modinfo.getRequest().getParameterValues(selectionFamilyName);
String familyId = selectionFamilyValues[0];
int nOldFamilyID = this.uniMemInfo.getFamilyId();
try {
if(selectionFamilyValues != null && selectionFamilyValues.length > 0) {
System.err.println("\n\nN�tt Fj�lskyldu id: "+familyId);
System.err.println("Member id: "+this.uniMemInfo.getMemberID()+"\n");
System.err.println("Union id: "+this.uniMemInfo.getUnionID()+"\n");
System.err.println("Gamalt Fj�lskyldu id: "+nOldFamilyID+"\n");
if(! familyId.equals("")) {
uniMemInfo.setFamilyId(new Integer(familyId));
uniMemInfo.update();
}
}
System.err.println(" Fj�lskyldu id nu: "+nOldFamilyID+"\n");
}
catch(SQLException e) {
System.err.println("Villa � store!! ... !!\n");
System.err.println(e.getMessage());
}
}
public String getValue(String attribute, IWContext modinfo) {
return modinfo.getParameter(attribute);
}
private DropdownMenu getChoises(String name) {
DropdownMenu drp = new DropdownMenu(name);
drp.addMenuElement(NAME, "Fornafn/Fullt nafn");
drp.addMenuElement(NAME_AND_MIDDLE, "Fornafn og millinafn");
drp.addMenuElement(SOSIAL_SEC_NUM, "Kennitala");
drp.addMenuElement(ALL, "Allir");
return drp;
}
private List find(String toFind, String cmd) {
toFind = toFind.replace('*', '%');
Name name = new Name(toFind);
List list = null;
System.err.println("\n\n nafn \n\n"+name.getFirstName()+name.getMiddleName()+name.getLastName());
try {
if ((name.getFirstName().equals("")) && (! cmd.equals(ALL))) {
return list;
}
if(cmd.equals(SOSIAL_SEC_NUM)) {
//System.err.println("\n\n kennitala \n\n");
list = EntityFinder.findAll((UnionMemberInfo) IDOLookup.instanciateEntity(UnionMemberInfo.class), "select union_member_info.* from member, union_member_info where member.member_id = union_member_info.member_id and union_member_info.union_id = "+unionId+" and member.SOCIAL_SECURITY_NUMBER like '"+name.getFirstName()+"'");
}
else if(cmd.equals(ALL)) {
list = EntityFinder.findAll((UnionMemberInfo) IDOLookup.instanciateEntity(UnionMemberInfo.class), "select union_member_info.* from member, union_member_info where member.member_id = union_member_info.member_id and union_member_info.union_id = "+unionId+" order by member.first_name");
}
else if (! name.getMiddleName().equals("")) {
if (cmd.equals(this.NAME)) {
//System.err.println("\n\n �ll \n\n");
//System.err.println(" \n\n SQL ER: select member.* from member, union_member_info where member.member_id = union_member_info.member_id and union_member_info.union_id = "+unionId+" and member.first_name = "+name.getFirstName()+" and member.middle_name = "+name.getMiddleName()+" and member.last_name = "+name.getLastName());
list = EntityFinder.findAll((UnionMemberInfo) IDOLookup.instanciateEntity(UnionMemberInfo.class), "select union_member_info.* from member, union_member_info where member.member_id = union_member_info.member_id and union_member_info.union_id = "+unionId+" and member.first_name like '"+name.getFirstName()+"' and member.middle_name like '"+name.getMiddleName()+"' and member.last_name like '"+name.getLastName()+"'");
}
else { // if (cmd.equals(this.NAME_AND_MIDDLE))
//System.err.println("\n\n nafn og millinafn \n\n");
list = EntityFinder.findAll((UnionMemberInfo) IDOLookup.instanciateEntity(UnionMemberInfo.class), "select union_member_info.* from member, union_member_info where member.member_id = union_member_info.member_id and union_member_info.union_id = "+unionId+" and member.first_name like '"+name.getFirstName()+"' and member.middle_name like '"+name.getMiddleName()+"'");
}
}
else if (! name.getLastName().equals("")) {
//System.err.println("\n\n milli og endanafn \n\n");
list = EntityFinder.findAll((UnionMemberInfo) IDOLookup.instanciateEntity(UnionMemberInfo.class), "select union_member_info.* from member, union_member_info where member.member_id = union_member_info.member_id and union_member_info.union_id = "+unionId+" and member.first_name like '"+name.getFirstName()+"' and member.last_name like '"+name.getLastName()+"'");
}
else {
//System.err.println("\n\n 1 nafn \n\n");
System.err.println(" \n\n SQL ER: select member.* from member, union_member_info where member.member_id = union_member_info.member_id and union_member_info.union_id = "+unionId+" and member.first_name = '"+name.getFirstName()+"'");
list = EntityFinder.findAll((UnionMemberInfo) IDOLookup.instanciateEntity(UnionMemberInfo.class), "select union_member_info.* from member, union_member_info where member.member_id = union_member_info.member_id and union_member_info.union_id = "+unionId+" and member.first_name like '"+name.getFirstName()+"'");
}
}
catch(Exception e) {
System.err.println("Villa i FamilyWinow "+e.getMessage());
e.printStackTrace();
return list;
}
return list;
}
private void setSelectionBox(List list)throws Exception {
selectFamily = new DropdownMenu(selectionFamilyName);
//selectFamily.setHeight(8);
selectFamily.setMarkupAttribute("size", "8");
Member mem = null;
UnionMemberInfo uni = null;
if((list == null) || list.isEmpty()) {
selectFamily.addMenuElement("", "Leit bar ekki �rangur");
}
else if(list != null) {
for (int i = 0; i < list.size(); i++) {
uni = (UnionMemberInfo) list.get(i);
mem = ((MemberHome) IDOLookup.getHomeLegacy(Member.class)).findByPrimaryKey(uni.getMemberID());
if( mem!=null){
selectFamily.addMenuElement(uni.getFamilyId(), mem.getName());
}
}
}
}
}