/* * Created on Mar 17, 2004 */ package com.idega.block.cal.presentation; import java.util.Collection; import java.util.Iterator; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; import com.idega.block.cal.business.CalBusiness; import com.idega.block.cal.data.AttendanceMark; import com.idega.idegaweb.IWApplicationContext; import com.idega.idegaweb.IWResourceBundle; import com.idega.idegaweb.help.presentation.Help; import com.idega.idegaweb.presentation.CalendarParameters; import com.idega.idegaweb.presentation.StyledIWAdminWindow; import com.idega.presentation.IWContext; import com.idega.presentation.Table; import com.idega.presentation.text.Text; import com.idega.presentation.ui.CloseButton; import com.idega.presentation.ui.Form; import com.idega.presentation.ui.StyledButton; import com.idega.presentation.ui.SubmitButton; import com.idega.presentation.ui.TextInput; /** * Description: <br> * Copyright: Idega Software 2004 <br> * Company: Idega Software <br> * @author <a href="mailto:birna@idega.is">Birna Iris Jonsdottir</a> */ public class NewMarkWindow extends StyledIWAdminWindow{ private final static String IW_BUNDLE_IDENTIFIER = "com.idega.block.cal"; public final static String MARK = "mark"; //parameter names private static String markFieldParameterName = "mark"; private static String markIDParameterName = "markID"; private static String markDescriptionFieldParameterName = "mark_description"; private static String submitButtonParameterName = "submit"; private static String submitButtonParameterValue = "save"; private Help help; private static final String HELP_TEXT_KEY = "new_marker"; //texts private Text markText; private Text markDescriptionText; //fields private TextInput markField; private TextInput markDescriptionField; //buttons private SubmitButton saveButton; private StyledButton styledSaveButton; private CloseButton closeButton; private StyledButton styledCloseButton; private SubmitButton deleteButton; private StyledButton styledDeleteButton; private Table mainTable; private Form form; public NewMarkWindow() { setHeight(200); setWidth(300); setResizable(true); setScrollbar(false); } protected void initializeTexts(IWContext iwc) { IWResourceBundle iwrb = getResourceBundle(iwc); this.markText = new Text(iwrb.getLocalizedString(markFieldParameterName,"Mark")); this.markDescriptionText = new Text(iwrb.getLocalizedString(markDescriptionFieldParameterName,"Mark description")); } protected void initializeFields(IWContext iwc) { IWResourceBundle iwrb = getResourceBundle(iwc); //IWBundle iwb = getBundle(iwc); this.markField = new TextInput(markFieldParameterName); this.markField.setMaxlength(1); this.markField.setSize(10); this.markDescriptionField = new TextInput(markDescriptionFieldParameterName); this.markDescriptionField.setSize(20); this.saveButton = new SubmitButton(iwrb.getLocalizedString("save","Save"),submitButtonParameterName,submitButtonParameterValue); this.styledSaveButton = new StyledButton(this.saveButton); //closes the window this.closeButton = new CloseButton(iwrb.getLocalizedString("close","Close")); this.styledCloseButton = new StyledButton(this.closeButton); String markID = iwc.getParameter(markIDParameterName); if(markID != null && !markID.equals("")) { this.deleteButton = new SubmitButton(iwrb.getLocalizedString("delete","Delete")); this.deleteButton.setWindowToOpen(ConfirmDeleteWindow.class); this.deleteButton.addParameter(ConfirmDeleteWindow.PRM_DELETE_ID, markID); this.deleteButton.addParameter(ConfirmDeleteWindow.PRM_DELETE, CalendarParameters.PARAMETER_TRUE); this.deleteButton.addParameter(ConfirmDeleteWindow.PRM_ENTRY_OR_LEDGER,MARK); this.deleteButton.addParameter(LedgerWindow.LEDGER,iwc.getParameter(LedgerWindow.LEDGER)); this.styledDeleteButton = new StyledButton(this.deleteButton); // deleteButton = new SubmitButton(iwrb.getLocalizedString("delete", "Delete"),markIDParameterName,markID,"window.open("+ deleteWindow.getURL(iwc) +")"); AttendanceMark mark = getCalBusiness(iwc).getMark(Integer.parseInt(markID)); this.markField.setContent(mark.getMark()); this.markDescriptionField.setContent(mark.getMarkDescription()); } } public void lineUp(IWContext iwc) { this.mainTable = new Table(1,3); this.mainTable.setCellspacing(0); this.mainTable.setCellpadding(0); this.mainTable.setWidth(Table.HUNDRED_PERCENT); this.mainTable.setHeight(2, 5); Table inputTable = new Table(); inputTable.setWidth(Table.HUNDRED_PERCENT); inputTable.setCellspacing(12); inputTable.setCellpadding(0); inputTable.setStyleClass("main"); inputTable.add(this.markText + ":",1,1); inputTable.add(this.markField,2,1); inputTable.add(this.markDescriptionText + ":",1,2); inputTable.add(this.markDescriptionField,2,2); inputTable.setAlignment(2,3,"right"); Table buttonTable = new Table(); buttonTable.setCellspacing(0); buttonTable.setCellpadding(0); buttonTable.setAlignment(2,1,Table.HORIZONTAL_ALIGN_RIGHT); buttonTable.add(this.styledSaveButton,1,1); buttonTable.setWidth(2, "5"); buttonTable.add(this.styledCloseButton,3,1); String markID = iwc.getParameter(markIDParameterName); if(markID != null && !markID.equals("")) { buttonTable.setWidth(4, "5"); buttonTable.add(this.styledDeleteButton,5,1); } Table helpTable = new Table(); helpTable.setCellpadding(0); helpTable.setCellspacing(0); helpTable.add(getHelp(HELP_TEXT_KEY),1,1); Table bottomTable = new Table(); bottomTable.setCellpadding(0); bottomTable.setCellspacing(5); bottomTable.setWidth(Table.HUNDRED_PERCENT); bottomTable.setStyleClass("main"); bottomTable.add(helpTable,1,1); bottomTable.setAlignment(2,1,Table.HORIZONTAL_ALIGN_RIGHT); bottomTable.add(buttonTable,2,1); this.mainTable.add(inputTable,1,1); this.mainTable.add(bottomTable,1,3); this.form.add(this.mainTable); } public void saveMark(IWContext iwc) { CalBusiness calBiz = getCalBusiness(iwc); IWResourceBundle iwrb = getResourceBundle(iwc); boolean b = false; String mark = iwc.getParameter(markFieldParameterName); String description = iwc.getParameter(markDescriptionFieldParameterName); String markID = iwc.getParameter(markIDParameterName); Collection marks = calBiz.getAllMarks(); Iterator marksIter = marks.iterator(); while(marksIter.hasNext()) { AttendanceMark m = (AttendanceMark) marksIter.next(); if(mark.equals(m.getMark())) { b = true; } } if(b && (markID == null || markID.equals(""))) { setAlertOnLoad(iwrb.getLocalizedString("newMarkWindow.mark_exists_msg","The selected Mark exists already. Please choose another one")); } else { try { Pattern.compile(mark); if(markID != null && !markID.equals("")) { calBiz.createNewMark(Integer.parseInt(markID),mark, description); } else { calBiz.createNewMark(-1,mark,description); } close(); setOnUnLoad("window.opener.parent.location.reload()"); } catch (PatternSyntaxException e) { setAlertOnLoad(iwrb.getLocalizedString("newMarkWindow.mark_is_not_allowed_msg","The selected Mark is not allowed. Please choose another one")); } } } public void main(IWContext iwc) throws Exception{ IWResourceBundle iwrb = getResourceBundle(iwc); //IWBundle iwb = getBundle(iwc); addTitle(iwrb.getLocalizedString("create_new_mark", "Create a new mark"), TITLE_STYLECLASS); this.form = new Form(); this.form.maintainParameter(markIDParameterName); initializeTexts(iwc); initializeFields(iwc); lineUp(iwc); this.form.maintainParameter(LedgerWindow.LEDGER); String save = iwc.getParameter("submit"); if(save != null && !save.equals("")) { saveMark(iwc); } //setOnUnLoad("window.opener.parent.location.reload()"); add(this.form,iwc); } public String getBundleIdentifier() { return IW_BUNDLE_IDENTIFIER; } public CalBusiness getCalBusiness(IWApplicationContext iwc) { CalBusiness calBiz = null; if (calBiz == null) { try { calBiz = (CalBusiness) com.idega.business.IBOLookup.getServiceInstance(iwc, CalBusiness.class); } catch (java.rmi.RemoteException rme) { throw new RuntimeException(rme.getMessage()); } } return calBiz; } }