package com.idega.user.presentation; import com.idega.block.media.presentation.ImageInserter; import com.idega.idegaweb.IWResourceBundle; import com.idega.presentation.IWContext; import com.idega.presentation.Table; import com.idega.presentation.text.Text; import com.idega.presentation.ui.CheckBox; import com.idega.user.business.UserBusiness; import com.idega.user.data.User; /** * Title: A simple tab to add images to users * Copyright: Idega Software Copyright (c) 2001 * Company: Idega Software * @author <a href="mailto:eiki@idega.is">Eirikur Hrafnsson</a> * @version 1.0 */ public class UserImageTab extends UserTab { private static final String IW_BUNDLE_IDENTIFIER = "com.idega.user"; private static final String TAB_NAME = "usr_imag_tab_name"; private static final String DEFAULT_TAB_NAME = "Image"; /* this is the order methods are executed initializeFieldNames(); initializeFields(); initializeTexts(); initializeFieldValues(); lineUpFields(); */ private ImageInserter imageField; private String imageFieldName; private Text imageText; private CheckBox removeImageField; private String removeImageFieldName; private Text removeImageText; private UserBusiness biz; private User user = null; private int systemImageId = -1; public UserImageTab() { super(); IWContext iwc = IWContext.getInstance(); IWResourceBundle iwrb = getResourceBundle(iwc); setName(iwrb.getLocalizedString(TAB_NAME, DEFAULT_TAB_NAME)); // setName("Image"); } public UserImageTab(int userId) { this(); setUserID(userId); } public void initializeFieldNames() { this.imageFieldName = "usr_imag_userSystemImageId"; this.removeImageFieldName = "image_removeImageFieldName"; } public void initializeFields() { this.imageField = new ImageInserter(this.imageFieldName + getUserId()); this.imageField.setHasUseBox(false); this.removeImageField = new CheckBox(this.removeImageFieldName); } public void initializeTexts() { IWContext iwc = IWContext.getInstance(); IWResourceBundle iwrb = getResourceBundle(iwc); this.imageText = getTextObject(); this.imageText.setText(iwrb.getLocalizedString(this.imageFieldName, "Image") + ":"); this.removeImageText = getTextObject(); this.removeImageText.setText(iwrb.getLocalizedString(this.removeImageFieldName, "do not show an image")); } public void initializeFieldValues() { this.systemImageId = -1; this.fieldValues.put(this.removeImageFieldName, new Boolean(false)); } public void lineUpFields() { this.resize(1, 1); Table imageTable = new Table(1, 3); imageTable.setWidth("100%"); imageTable.setCellpadding(0); imageTable.setCellspacing(0); imageTable.add(this.imageText, 1, 1); imageTable.add(this.imageField, 1, 2); imageTable.add(this.removeImageField, 1, 3); imageTable.add(Text.getNonBrakingSpace(),1,3); imageTable.add(this.removeImageText,1,3); this.add(imageTable, 1, 1); } public void updateFieldsDisplayStatus() { this.imageField.setImageId(this.systemImageId); this.removeImageField.setChecked(((Boolean)this.fieldValues.get(this.removeImageFieldName)).booleanValue()); } public boolean collect(IWContext iwc) { String imageID = iwc.getParameter(this.imageFieldName + this.getUserId()); if (imageID != null) { this.fieldValues.put(this.imageFieldName, imageID); } this.fieldValues.put(this.removeImageFieldName, new Boolean(iwc.isParameterSet(this.removeImageFieldName))); return true; } public boolean store(IWContext iwc) { try { if (getUserId() > -1) { String image = (String)this.fieldValues.get(this.imageFieldName); if ((image != null) && (!image.equals("-1")) && (!image.equals(""))) { if (this.user == null) { this.user = getUser(); } int tempId; if (((Boolean) this.fieldValues.get(this.removeImageFieldName)).booleanValue()) { this.user.setSystemImageID(null); // set variables to default values this.systemImageId = -1; this.fieldValues.put(this.imageFieldName, "-1"); this.user.store(); updateFieldsDisplayStatus(); } else if ((tempId = Integer.parseInt(image)) != this.systemImageId) { this.systemImageId = tempId; this.user.setSystemImageID(this.systemImageId); this.user.store(); updateFieldsDisplayStatus(); } iwc.removeSessionAttribute(this.imageFieldName + getUserId()); } } } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("update user exception"); } return true; } public void initFieldContents() { try { this.imageField.setImSessionImageName(this.imageFieldName + getUserId()); if (this.user == null) { this.user = getUser(); } this.systemImageId = getSelectedImageId(this.user); if (this.systemImageId != -1) { this.fieldValues.put(this.imageFieldName, Integer.toString(this.systemImageId)); } this.fieldValues.put(this.removeImageFieldName, new Boolean(false)); this.updateFieldsDisplayStatus(); } catch (Exception e) { System.err.println( "UserImageTab error initFieldContents, userId : " + getUserId()); } } private void setSelectedImageId() { try { String image = (String)this.fieldValues.get(this.imageFieldName); if ((image != null) && (!image.equals("-1")) && (!image.equals("")) && (!image.equals("0"))) { this.systemImageId = Integer.parseInt(image); } } catch (Exception ex) { ex.printStackTrace(System.err); } } private int getSelectedImageId(User user) { try { int tempImageId = user.getSystemImageID(); if ((this.systemImageId == -1) && (tempImageId != -1)) { this.systemImageId = tempImageId; } } catch (Exception ex) { ex.printStackTrace(System.err); } return this.systemImageId; } public String getBundleIdentifier() { return IW_BUNDLE_IDENTIFIER; } }