/* * $Id: PersonalNumberSearch.java,v 1.8 2005/05/07 17:10:30 palli Exp $ * * Copyright (C) 2001 Idega hf. All Rights Reserved. * * This software is the proprietary information of Idega hf. Use is subject to * license terms. * */ package is.idega.idegaweb.campus.presentation; import com.idega.idegaweb.IWBundle; import com.idega.idegaweb.IWResourceBundle; import com.idega.presentation.Block; import com.idega.presentation.IWContext; import com.idega.presentation.Image; import com.idega.presentation.Table; import com.idega.presentation.text.Text; import com.idega.presentation.ui.Form; import com.idega.presentation.ui.HelpButton; import com.idega.presentation.ui.SubmitButton; import com.idega.presentation.ui.TextInput; /** * @author <a href="mailto:aron@idega.is">Aron Birkir </a> * @version 1.0 */ public class PersonalNumberSearch extends Block { public static final String PERSONAL_NUMBER = "cam_personal_number"; public static final int LAYOUT_VERTICAL = 1; public static final int LAYOUT_HORIZONTAL = 2; public static final int LAYOUT_STACKED = 3; private int inputLength = 10; private int maxInputLength = -1; private int layout = -1; private int pageId; private int numberTextSize; private String backgroundImageUrl = ""; private String numberWidth = ""; private String numberHeight = ""; private String numberText; private String colour = ""; private String numberTextColour; private String styleAttribute = "font-size: 10pt"; private String textStyles = "font-family: Arial,Helvetica,sans-serif; font-size: 8pt; font-weight: bold; color: #000000; text-decoration: none;"; private String submitButtonAlignment; private String submitButtonText = null; private boolean hasHelpButton = false; private final static String IW_BUNDLE_IDENTIFIER = "is.idega.idegaweb.campus"; private Table outerTable; private Form myForm; protected IWResourceBundle iwrb; protected IWBundle iwb; public PersonalNumberSearch() { super(); setDefaultValues(); } public void main(IWContext iwc) throws Exception { iwb = getBundle(iwc); iwrb = getResourceBundle(iwc); numberText = iwrb.getLocalizedString("personal_number", "Kennitala"); submitButtonText = iwrb.getLocalizedString("get", "Get"); setup(); outerTable.add(myForm); add(outerTable); } private void setup() { Table numberTable = new Table(1, 2); numberTable.setBorder(0); numberTable.setWidth(numberWidth); numberTable.setHeight(numberHeight); if (!colour.equals("")) { numberTable.setColor(colour); } numberTable.setCellpadding(0); numberTable.setCellspacing(0); if (!"".equals(this.backgroundImageUrl)) { numberTable.setBackgroundImage(new Image(backgroundImageUrl)); } HelpButton helpButton = new HelpButton(iwrb.getLocalizedString("help_headline", "Personal number"), iwrb.getLocalizedString("personal_number_help", "Help")); Text numberTexti = new Text(numberText); if (numberTextSize != -1) { numberTexti.setFontSize(numberTextSize); } if (numberTextColour != null) { numberTexti.setFontColor(numberTextColour); } numberTexti.setFontStyle(textStyles); Table inputTable; TextInput number = new TextInput(PERSONAL_NUMBER); number.setMarkupAttribute("style", styleAttribute); number.setSize(inputLength); if (maxInputLength > 0) number.setMaxlength(maxInputLength); switch (layout) { case LAYOUT_HORIZONTAL: inputTable = new Table(3, 2); inputTable.setBorder(0); if (!(colour.equals(""))) { inputTable.setColor(colour); } inputTable.setCellpadding(0); inputTable.setCellspacing(0); inputTable.setAlignment(2, 1, "right"); inputTable.setAlignment(2, 2, "right"); inputTable.setWidth("100%"); inputTable.add(numberTexti, 2, 1); inputTable.add(number, 2, 2); inputTable.setAlignment(2, 1, "right"); inputTable.setAlignment(2, 2, "right"); numberTable.add(inputTable, 1, 1); break; case LAYOUT_VERTICAL: inputTable = new Table(3, 3); inputTable.setBorder(0); if (!(colour.equals(""))) { inputTable.setColor(colour); } inputTable.setCellpadding(0); inputTable.setCellspacing(0); inputTable.setHorizontalAlignment("center"); inputTable.mergeCells(1, 2, 3, 2); inputTable.addText("", 1, 2); inputTable.setHeight(2, "10"); inputTable.setAlignment(1, 1, "right"); inputTable.setAlignment(1, 3, "right"); inputTable.add(numberTexti, 1, 1); inputTable.add(number, 3, 1); numberTable.add(inputTable, 1, 1); break; case LAYOUT_STACKED: inputTable = new Table(1, 2); inputTable.setBorder(0); inputTable.setCellpadding(0); inputTable.setCellspacing(0); inputTable.addText("", 1, 2); inputTable.setHeight(1, "2"); if (!(colour.equals(""))) { inputTable.setColor(colour); } inputTable.setAlignment(1, 1, "left"); inputTable.setAlignment(1, 2, "left"); inputTable.add(numberTexti, 1, 1); inputTable.add(number, 1, 2); numberTable.setAlignment(1, 1, "center"); numberTable.add(inputTable, 1, 1); break; } Table submitTable = new Table(1, 1); if (hasHelpButton) { submitTable = new Table(2, 1); } submitTable.setBorder(0); if (!colour.equals("")) { submitTable.setColor(colour); } submitTable.setRowVerticalAlignment(1, "middle"); if (!hasHelpButton) { submitTable.setAlignment(1, 1, submitButtonAlignment); } else { submitTable.setAlignment(2, 1, "right"); } submitTable.setWidth("100%"); if (!hasHelpButton) { submitTable.add(new SubmitButton("commit", submitButtonText), 1, 1); } else { submitTable.add(new SubmitButton("commit", submitButtonText), 2, 1); submitTable.add(helpButton, 1, 1); } numberTable.add(submitTable, 1, 2); myForm.add(numberTable); if (pageId > 0) { myForm.setPageToSubmitTo(pageId); } } public String getBundleIdentifier() { return IW_BUNDLE_IDENTIFIER; } public void setHelpButton(boolean usehelp) { hasHelpButton = usehelp; } public void addHelpButton() { hasHelpButton = true; } public void setLayout(int layout) { this.layout = layout; } private void setDefaultValues() { numberWidth = "148"; numberHeight = "89"; submitButtonAlignment = "center"; layout = LAYOUT_VERTICAL; outerTable = new Table(); outerTable.setCellpadding(0); outerTable.setCellspacing(0); //outerTable.setHorizontalAlignment("left"); myForm = new Form(); myForm.setMethod("post"); } public void setVertical() { layout = LAYOUT_VERTICAL; } public void setHorizontal() { layout = LAYOUT_HORIZONTAL; } public void setStacked() { layout = LAYOUT_STACKED; } public void setStyle(String styleAttribute) { this.styleAttribute = styleAttribute; } public void setInputLength(int inputLength) { this.inputLength = inputLength; } public void setMaxInputLength(int inputLength) { maxInputLength = inputLength; } public void setnumberTextSize(int size) { numberTextSize = size; } public void setnumberTextColor(String color) { numberTextColour = color; } public void setColor(String color) { colour = color; } public void setHeight(String height) { numberHeight = height; } public void setWidth(String width) { numberWidth = width; } public void setBackgroundImageUrl(String url) { backgroundImageUrl = url; } public void setSubmitButtonAlignment(String alignment) { submitButtonAlignment = alignment; } public void setTextStyle(String styleAttribute) { textStyles = styleAttribute; } public void setPage(com.idega.core.builder.data.ICPage page) { pageId = ((Integer) page.getPrimaryKey()).intValue(); } public synchronized Object clone() { PersonalNumberSearch obj = null; try { obj = (PersonalNumberSearch) super.clone(); if (outerTable != null) obj.outerTable = (Table) outerTable.clone(); if (myForm != null) obj.myForm = (Form) myForm.clone(); } catch (Exception ex) { ex.printStackTrace(System.err); } return obj; } }