package com.idega.core.user.presentation; import java.sql.SQLException; import com.idega.core.contact.data.Email; import com.idega.core.contact.data.Phone; import com.idega.core.contact.data.PhoneType; import com.idega.core.user.business.UserBusiness; 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.DropdownMenu; import com.idega.presentation.ui.TextInput; /** * 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 UserPhoneTab extends UserTab{ private TextInput homePhoneField; private TextInput workPhoneField; private TextInput mobilePhoneField; private TextInput faxPhoneField; private DropdownMenu homePhoneMenu; private DropdownMenu workPhoneMenu; private DropdownMenu mobilePhoneMenu; private DropdownMenu faxPhoneMenu; private TextInput emailField; public static String homePhoneFieldName = "homePhone"; public static String workPhoneFieldName = "workPhone"; public static String mobilePhoneFieldName = "mobilePhone"; public static String faxPhoneFieldName = "faxPhone"; public static String homePhoneMenuName = "homeChoice"; public static String workPhoneMenuName = "workChoice"; public static String mobilePhoneMenuName = "mobileChoice"; public static String faxPhoneMenuName = "faxChoice"; public static String emailFieldName = "email"; private Text homePhoneText; private Text workPhoneText; private Text mobilePhoneText; private Text faxPhoneText; private Text emailText; public UserPhoneTab() { super(); this.setName("Phone/Mail"); } public UserPhoneTab(int userId){ this(); this.setUserID(userId); } public void initializeFieldNames(){ } public void initializeFieldValues(){ this.fieldValues.put(UserPhoneTab.homePhoneFieldName,""); this.fieldValues.put(UserPhoneTab.workPhoneFieldName,""); this.fieldValues.put(UserPhoneTab.mobilePhoneFieldName,""); this.fieldValues.put(UserPhoneTab.faxPhoneFieldName,""); this.fieldValues.put(UserPhoneTab.homePhoneMenuName,""); this.fieldValues.put(UserPhoneTab.workPhoneMenuName,""); this.fieldValues.put(UserPhoneTab.mobilePhoneMenuName,""); this.fieldValues.put(UserPhoneTab.faxPhoneMenuName,""); this.fieldValues.put(UserPhoneTab.emailFieldName,""); this.updateFieldsDisplayStatus(); } public void updateFieldsDisplayStatus(){ this.homePhoneField.setContent((String)this.fieldValues.get(UserPhoneTab.homePhoneFieldName)); this.workPhoneField.setContent((String)this.fieldValues.get(UserPhoneTab.workPhoneFieldName)); this.mobilePhoneField.setContent((String)this.fieldValues.get(UserPhoneTab.mobilePhoneFieldName)); this.faxPhoneField.setContent((String)this.fieldValues.get(UserPhoneTab.faxPhoneFieldName)); if ( (String)this.fieldValues.get(UserPhoneTab.homePhoneMenuName) != null && ((String)this.fieldValues.get(UserPhoneTab.homePhoneMenuName)).length() > 0) { this.homePhoneMenu.setSelectedElement((String)this.fieldValues.get(UserPhoneTab.homePhoneMenuName)); } if ( (String)this.fieldValues.get(UserPhoneTab.workPhoneMenuName) != null && ((String)this.fieldValues.get(UserPhoneTab.workPhoneMenuName)).length() > 0) { this.workPhoneMenu.setSelectedElement((String)this.fieldValues.get(UserPhoneTab.workPhoneMenuName)); } if ( (String)this.fieldValues.get(UserPhoneTab.mobilePhoneMenuName) != null && ((String)this.fieldValues.get(UserPhoneTab.mobilePhoneMenuName)).length() > 0) { this.mobilePhoneMenu.setSelectedElement((String)this.fieldValues.get(UserPhoneTab.mobilePhoneMenuName)); } if ( (String)this.fieldValues.get(UserPhoneTab.faxPhoneMenuName) != null && ((String)this.fieldValues.get(UserPhoneTab.faxPhoneMenuName)).length() > 0 ) { this.faxPhoneMenu.setSelectedElement((String)this.fieldValues.get(UserPhoneTab.faxPhoneMenuName)); } this.emailField.setContent((String)this.fieldValues.get(UserPhoneTab.emailFieldName)); } public void initializeFields() { PhoneType[] phoneTypes = null; try { phoneTypes = (PhoneType[]) GenericEntity.getStaticInstance(PhoneType.class).findAll(); } catch (SQLException ex) { ex.printStackTrace(); } this.homePhoneField = new TextInput(homePhoneFieldName); this.homePhoneField.setLength(24); this.workPhoneField = new TextInput(workPhoneFieldName); this.workPhoneField.setLength(24); this.mobilePhoneField = new TextInput(mobilePhoneFieldName); this.mobilePhoneField.setLength(24); this.faxPhoneField = new TextInput(faxPhoneFieldName); this.faxPhoneField.setLength(24); this.homePhoneMenu = new DropdownMenu(phoneTypes,homePhoneMenuName); this.workPhoneMenu = new DropdownMenu(phoneTypes,workPhoneMenuName); this.mobilePhoneMenu = new DropdownMenu(phoneTypes,mobilePhoneMenuName); this.faxPhoneMenu = new DropdownMenu(phoneTypes,faxPhoneMenuName); for ( int a = 0; a < phoneTypes.length; a++ ) { if ( a == 0 ) { this.homePhoneMenu.setSelectedElement(Integer.toString(phoneTypes[a].getID())); } else if ( a == 1 ) { this.workPhoneMenu.setSelectedElement(Integer.toString(phoneTypes[a].getID())); } else if ( a == 2 ) { this.mobilePhoneMenu.setSelectedElement(Integer.toString(phoneTypes[a].getID())); } else if ( a == 3 ) { this.faxPhoneMenu.setSelectedElement(Integer.toString(phoneTypes[a].getID())); } } this.emailField = new TextInput(emailFieldName); this.emailField.setLength(24); } public void initializeTexts(){ this.homePhoneText = new Text("Phone"+" 1:"); this.homePhoneText.setFontSize(this.fontSize); this.workPhoneText = new Text("Phone"+" 2:"); this.workPhoneText.setFontSize(this.fontSize); this.mobilePhoneText = new Text("Phone"+" 3:"); this.mobilePhoneText.setFontSize(this.fontSize); this.faxPhoneText = new Text("Phone"+" 4:"); this.faxPhoneText.setFontSize(this.fontSize); this.emailText = new Text("E-mail"+":"); this.emailText.setFontSize(this.fontSize); } public void lineUpFields(){ this.resize(1,3); Table staffTable = new Table(3,4); staffTable.setWidth("100%"); staffTable.setCellpadding(0); staffTable.setCellspacing(0); staffTable.setHeight(1,this.rowHeight); staffTable.setHeight(2,this.rowHeight); staffTable.setHeight(3,this.rowHeight); staffTable.setHeight(4,this.rowHeight); staffTable.add(this.homePhoneText,1,1); staffTable.add(this.homePhoneMenu,3,1); staffTable.add(this.homePhoneField,2,1); staffTable.add(this.workPhoneText,1,2); staffTable.add(this.workPhoneMenu,3,2); staffTable.add(this.workPhoneField,2,2); staffTable.add(this.mobilePhoneText,1,3); staffTable.add(this.mobilePhoneMenu,3,3); staffTable.add(this.mobilePhoneField,2,3); staffTable.add(this.faxPhoneText,1,4); staffTable.add(this.faxPhoneMenu,3,4); staffTable.add(this.faxPhoneField,2,4); this.add(staffTable,1,1); Table mailTable = new Table(2,1); mailTable.setWidth("100%"); mailTable.setCellpadding(0); mailTable.setCellspacing(0); mailTable.setHeight(1,this.rowHeight); mailTable.add(this.emailText,1,1); mailTable.add(this.emailField,2,1); this.add(mailTable,1,3); } public boolean collect(IWContext iwc){ if(iwc != null){ String homePhone = iwc.getParameter(UserPhoneTab.homePhoneFieldName); String workPhone = iwc.getParameter(UserPhoneTab.workPhoneFieldName); String mobilePhone = iwc.getParameter(UserPhoneTab.mobilePhoneFieldName); String faxPhone = iwc.getParameter(UserPhoneTab.faxPhoneFieldName); String homePhoneType = iwc.getParameter(UserPhoneTab.homePhoneMenuName); String workPhoneType = iwc.getParameter(UserPhoneTab.workPhoneMenuName); String mobilePhoneType = iwc.getParameter(UserPhoneTab.mobilePhoneMenuName); String faxPhoneType = iwc.getParameter(UserPhoneTab.faxPhoneMenuName); String email = iwc.getParameter(UserPhoneTab.emailFieldName); if(homePhone != null){ this.fieldValues.put(UserPhoneTab.homePhoneFieldName,homePhone); } if(workPhone != null){ this.fieldValues.put(UserPhoneTab.workPhoneFieldName,workPhone); } if(mobilePhone != null){ this.fieldValues.put(UserPhoneTab.mobilePhoneFieldName,mobilePhone); } if(faxPhone != null){ this.fieldValues.put(UserPhoneTab.faxPhoneFieldName,faxPhone); } if(homePhoneType != null){ this.fieldValues.put(UserPhoneTab.homePhoneMenuName,homePhoneType); } if(workPhoneType != null){ this.fieldValues.put(UserPhoneTab.workPhoneMenuName,workPhoneType); } if(mobilePhoneType != null){ this.fieldValues.put(UserPhoneTab.mobilePhoneMenuName,mobilePhoneType); } if(faxPhoneType != null){ this.fieldValues.put(UserPhoneTab.faxPhoneMenuName,faxPhoneType); } if(email != null){ this.fieldValues.put(UserPhoneTab.emailFieldName,email); } this.updateFieldsDisplayStatus(); return true; } return false; } public boolean store(IWContext iwc){ try{ if(getUserId() > -1){ String[] phoneString = { (String)this.fieldValues.get(UserPhoneTab.homePhoneFieldName),(String)this.fieldValues.get(UserPhoneTab.workPhoneFieldName),(String)this.fieldValues.get(UserPhoneTab.mobilePhoneFieldName),(String)this.fieldValues.get(UserPhoneTab.faxPhoneFieldName) }; String[] phoneTypeString = { (String)this.fieldValues.get(UserPhoneTab.homePhoneMenuName),(String)this.fieldValues.get(UserPhoneTab.workPhoneMenuName),(String)this.fieldValues.get(UserPhoneTab.mobilePhoneMenuName),(String)this.fieldValues.get(UserPhoneTab.faxPhoneMenuName) }; for ( int a = 0; a < phoneString.length; a++ ) { if ( phoneString[a] != null && phoneString[a].length() > 0 ) { this.business.updateUserPhone(getUserId(),Integer.parseInt(phoneTypeString[a]),phoneString[a]); } } if ( (String)this.fieldValues.get(UserPhoneTab.emailFieldName) != null && ((String)this.fieldValues.get(UserPhoneTab.emailFieldName)).length() > 0 ) { this.business.updateUserMail(getUserId(),(String)this.fieldValues.get(UserPhoneTab.emailFieldName)); } } } catch(Exception e){ e.printStackTrace(System.err); throw new RuntimeException("update user exception"); } return true; } public void initFieldContents(){ try{ Phone[] phones = UserBusiness.getUserPhones(getUserId()); Email mail = UserBusiness.getUserMail(getUserId()); for ( int a = 0; a < phones.length; a++ ) { if ( a == 0 ) { this.fieldValues.put(UserPhoneTab.homePhoneMenuName,(phones[a].getPhoneTypeId() != -1) ? Integer.toString(phones[a].getPhoneTypeId()):"" ); this.fieldValues.put(UserPhoneTab.homePhoneFieldName,(phones[a].getNumber() != null) ? phones[a].getNumber():"" ); } else if ( a == 1 ) { this.fieldValues.put(this.workPhoneMenuName,(phones[a].getPhoneTypeId() != -1) ? Integer.toString(phones[a].getPhoneTypeId()):"" ); this.fieldValues.put(this.workPhoneFieldName,(phones[a].getNumber() != null) ? phones[a].getNumber():"" ); } else if ( a == 2 ) { this.fieldValues.put(this.mobilePhoneMenuName,(phones[a].getPhoneTypeId() != -1) ? Integer.toString(phones[a].getPhoneTypeId()):"" ); this.fieldValues.put(this.mobilePhoneFieldName,(phones[a].getNumber() != null) ? phones[a].getNumber():"" ); } else if ( a == 3 ) { this.fieldValues.put(this.faxPhoneMenuName,(phones[a].getPhoneTypeId() != -1) ? Integer.toString(phones[a].getPhoneTypeId()):"" ); this.fieldValues.put(this.faxPhoneFieldName,(phones[a].getNumber() != null) ? phones[a].getNumber():"" ); } } if ( mail != null ) { this.fieldValues.put(this.emailFieldName,(mail.getEmailAddress() != null) ? mail.getEmailAddress():"" ); } this.updateFieldsDisplayStatus(); } catch(Exception e){ System.err.println("UserPhoneTab error initFieldContents, userId : " + getUserId()); } } } // Class UserPhoneTab