package com.idega.core.user.presentation; import java.util.StringTokenizer; import com.idega.core.user.data.Gender; import com.idega.core.user.data.User; import com.idega.data.GenericEntity; import com.idega.presentation.IWContext; import com.idega.presentation.Table; import com.idega.presentation.text.Text; import com.idega.presentation.ui.DateInput; import com.idega.presentation.ui.DropdownMenu; import com.idega.presentation.ui.TextArea; import com.idega.presentation.ui.TextInput; import com.idega.util.IWTimestamp; /** * Title: User * Copyright: Copyright (c) 2001 * Company: idega.is * @author 2000 - idega team - <a href="mailto:gummi@idega.is">Gu�mundur �g�st S�mundsson</a> * @version 1.0 */ public class GeneralUserInfoTab extends UserTab{ private TextInput firstNameField; private TextInput middleNameField; private TextInput lastNameField; private TextInput displayNameField; private TextArea descriptionField; private DateInput dateOfBirthField; private DropdownMenu genderField; private TextInput ssnField; private String firstNameFieldName; private String middleNameFieldName; private String lastNameFieldName; private String displayNameFieldName; private String descriptionFieldName; private String dateOfBirthFieldName; private String genderFieldName; private String ssnFieldName; private Text firstNameText; private Text middleNameText; private Text lastNameText; private Text displayNameText; private Text descriptionText; private Text dateOfBirthText; private Text genderText; private Text ssnText; public GeneralUserInfoTab() { super(); this.setName("General"); } public GeneralUserInfoTab(int userId){ this(); this.setUserID(userId); } public void initializeFieldNames(){ this.firstNameFieldName = "UMfname"; this.middleNameFieldName = "UMmname"; this.lastNameFieldName = "UMlname"; this.displayNameFieldName = "UMdname"; this.descriptionFieldName = "UMdesc"; this.dateOfBirthFieldName = "UMdateofbirth"; this.genderFieldName = "UMgender"; this.ssnFieldName = "UMssn"; } public void initializeFieldValues(){ this.fieldValues.put(this.firstNameFieldName,""); this.fieldValues.put(this.middleNameFieldName,""); this.fieldValues.put(this.lastNameFieldName,""); this.fieldValues.put(this.displayNameFieldName,""); this.fieldValues.put(this.descriptionFieldName,""); this.fieldValues.put(this.dateOfBirthFieldName,""); this.fieldValues.put(this.genderFieldName,""); this.fieldValues.put(this.ssnFieldName,""); this.updateFieldsDisplayStatus(); } public void updateFieldsDisplayStatus(){ this.firstNameField.setContent((String)this.fieldValues.get(this.firstNameFieldName)); this.middleNameField.setContent((String)this.fieldValues.get(this.middleNameFieldName)); this.lastNameField.setContent((String)this.fieldValues.get(this.lastNameFieldName)); this.displayNameField.setContent((String)this.fieldValues.get(this.displayNameFieldName)); this.descriptionField.setContent((String)this.fieldValues.get(this.descriptionFieldName)); this.ssnField.setContent((String)this.fieldValues.get(this.ssnFieldName)); StringTokenizer date = new StringTokenizer((String)this.fieldValues.get(this.dateOfBirthFieldName)," -"); // StringTokenizer date2 = new StringTokenizer((String)fieldValues.get(this.dateOfBirthFieldName)," -"); if(date.hasMoreTokens()){ // System.err.println("Year: "+ date2.nextToken()); this.dateOfBirthField.setYear(date.nextToken()); } if(date.hasMoreTokens()){ // System.err.println("Month: "+ date2.nextToken()); this.dateOfBirthField.setMonth(date.nextToken()); } if(date.hasMoreTokens()){ // System.err.println("Day: "+ date2.nextToken()); this.dateOfBirthField.setDay(date.nextToken()); } this.genderField.setSelectedElement((String)this.fieldValues.get(this.genderFieldName)); } public void initializeFields(){ this.firstNameField = new TextInput(this.firstNameFieldName); this.firstNameField.setLength(12); this.middleNameField = new TextInput(this.middleNameFieldName); this.middleNameField.setLength(5); this.lastNameField = new TextInput(this.lastNameFieldName); this.lastNameField.setLength(12); this.displayNameField = new TextInput(this.displayNameFieldName); this.displayNameField.setLength(12); this.displayNameField.setMaxlength(20); this.ssnField = new TextInput(this.ssnFieldName); this.ssnField.setLength(10); this.ssnField.setMaxlength(20); this.descriptionField = new TextArea(this.descriptionFieldName); this.descriptionField.setHeight(7); this.descriptionField.setWidth(42); this.descriptionField.setWrap(true); this.dateOfBirthField = new DateInput(this.dateOfBirthFieldName); IWTimestamp time = IWTimestamp.RightNow(); this.dateOfBirthField.setYearRange(time.getYear(),time.getYear()-100); this.genderField = new DropdownMenu(this.genderFieldName); this.genderField.addMenuElement("","Gender"); Gender[] genders = null; try { Gender g = (Gender)GenericEntity.getStaticInstance(Gender.class); genders = (Gender[])g.findAll(); } catch (Exception ex) { // do nothing } if(genders != null){ for (int i = 0; i < genders.length; i++) { this.genderField.addMenuElement(genders[i].getID(),genders[i].getName()); } } } public void initializeTexts(){ this.firstNameText = getTextObject(); this.firstNameText.setText("First name"); this.middleNameText = getTextObject(); this.middleNameText.setText("Middle name"); this.lastNameText = getTextObject(); this.lastNameText.setText("Last name"); this.displayNameText = getTextObject(); this.displayNameText.setText("Display name"); this.descriptionText = getTextObject(); this.descriptionText.setText("Description : "); this.dateOfBirthText = getTextObject(); this.dateOfBirthText.setText("Date of birth : "); this.genderText = getTextObject(); this.genderText.setText("Gender"); this.ssnText = getTextObject(); this.ssnText.setText("Personal ID : "); } public void lineUpFields(){ this.resize(1,3); //First Part (names) Table nameTable = new Table(4,3); nameTable.setWidth("100%"); nameTable.setCellpadding(0); nameTable.setCellspacing(0); nameTable.setHeight(1,this.columnHeight); nameTable.setHeight(2,this.columnHeight); nameTable.setHeight(3,this.columnHeight); nameTable.add(this.firstNameText,1,1); nameTable.add(this.firstNameField,2,1); nameTable.add(this.middleNameText,3,1); nameTable.add(this.middleNameField,4,1); nameTable.add(this.lastNameText,1,2); nameTable.add(this.lastNameField,2,2); nameTable.add(this.displayNameText,1,3); nameTable.add(this.displayNameField,2,3); nameTable.add(this.genderText,3,3); nameTable.add(this.genderField,4,3); this.add(nameTable,1,1); //First Part ends //Second Part (Date of birth) Table dateofbirthTable = new Table(2,2); dateofbirthTable.setCellpadding(0); dateofbirthTable.setCellspacing(0); dateofbirthTable.setHeight(1,this.columnHeight); dateofbirthTable.setHeight(2,this.columnHeight); dateofbirthTable.add(this.dateOfBirthText,1,1); dateofbirthTable.add(this.dateOfBirthField,2,1); dateofbirthTable.add(this.ssnText,1,2); dateofbirthTable.add(this.ssnField,2,2); this.add(dateofbirthTable,1,2); //Second Part Ends //Third Part (description) Table descriptionTable = new Table(1,2); descriptionTable.setCellpadding(0); descriptionTable.setCellspacing(0); descriptionTable.setHeight(1,this.columnHeight); descriptionTable.add(this.descriptionText,1,1); descriptionTable.add(this.descriptionField,1,2); this.add(descriptionTable,1,3); //Third Part ends } public boolean collect(IWContext iwc){ if(iwc != null){ String fname = iwc.getParameter(this.firstNameFieldName); String mname = iwc.getParameter(this.middleNameFieldName); String lname = iwc.getParameter(this.lastNameFieldName); String dname = iwc.getParameter(this.displayNameFieldName); String desc = iwc.getParameter(this.descriptionFieldName); String dateofbirth = iwc.getParameter(this.dateOfBirthFieldName); String gender = iwc.getParameter(this.genderFieldName); String ssn = iwc.getParameter(this.ssnFieldName); if(fname != null){ this.fieldValues.put(this.firstNameFieldName,fname); } if(mname != null){ this.fieldValues.put(this.middleNameFieldName,mname); } if(lname != null){ this.fieldValues.put(this.lastNameFieldName,lname); } if(dname != null){ this.fieldValues.put(this.displayNameFieldName,dname); } if(desc != null){ this.fieldValues.put(this.descriptionFieldName,desc); } if(dateofbirth != null){ this.fieldValues.put(this.dateOfBirthFieldName,dateofbirth); } if(gender != null){ this.fieldValues.put(this.genderFieldName,gender); } if (ssn != null) { this.fieldValues.put(this.ssnFieldName,ssn); } this.updateFieldsDisplayStatus(); return true; } return false; } public boolean store(IWContext iwc){ try{ if(getUserId() > -1){ IWTimestamp dateOfBirthTS = null; String st = (String)this.fieldValues.get(this.dateOfBirthFieldName); Integer gen = (this.fieldValues.get(this.genderFieldName).equals(""))? null : new Integer((String)this.fieldValues.get(this.genderFieldName)); if( st != null && !st.equals("")){ dateOfBirthTS = new IWTimestamp(st); } this.business.updateUser(getUserId(),(String)this.fieldValues.get(this.firstNameFieldName), (String)this.fieldValues.get(this.middleNameFieldName),(String)this.fieldValues.get(this.lastNameFieldName), (String)this.fieldValues.get(this.displayNameFieldName),(String)this.fieldValues.get(this.descriptionFieldName), gen,dateOfBirthTS,null,(String)this.fieldValues.get(this.ssnFieldName)); } }catch(Exception e){ //return false; e.printStackTrace(System.err); throw new RuntimeException("update user exception"); } return true; } public void initFieldContents(){ try{ User user = ((com.idega.core.user.data.UserHome)com.idega.data.IDOLookup.getHomeLegacy(User.class)).findByPrimaryKeyLegacy(getUserId()); this.fieldValues.put(this.firstNameFieldName,(user.getFirstName() != null) ? user.getFirstName():"" ); this.fieldValues.put(this.middleNameFieldName,(user.getMiddleName() != null) ? user.getMiddleName():"" ); this.fieldValues.put(this.lastNameFieldName,(user.getLastName() != null) ? user.getLastName():"" ); this.fieldValues.put(this.displayNameFieldName,(user.getDisplayName() != null) ? user.getDisplayName():"" ); this.fieldValues.put(this.descriptionFieldName,(user.getDescription() != null) ? user.getDescription():"" ); this.fieldValues.put(this.dateOfBirthFieldName,(user.getDateOfBirth()!= null) ? new IWTimestamp(user.getDateOfBirth()).toSQLDateString() : ""); this.fieldValues.put(this.genderFieldName,(user.getGenderID() != -1) ? Integer.toString(user.getGenderID()):"" ); this.fieldValues.put(this.ssnFieldName,(user.getPersonalID() != null) ? user.getPersonalID():"" ); this.updateFieldsDisplayStatus(); }catch(Exception e){ System.err.println("GeneralUserInfoTab error initFieldContents, userId : " + getUserId()); } } } // Class GeneralUserInfoTab