/* * Created on Feb 5, 2004 */ package com.idega.block.cal.presentation; import java.sql.Timestamp; import java.util.ArrayList; import java.sql.Date; import java.util.Iterator; import java.util.List; import com.idega.block.cal.business.CalBusiness; import com.idega.block.cal.data.CalendarEntry; import com.idega.block.cal.data.CalendarEntryType; import com.idega.block.cal.data.CalendarLedger; import com.idega.idegaweb.IWApplicationContext; import com.idega.idegaweb.IWResourceBundle; import com.idega.idegaweb.presentation.CalendarParameters; import com.idega.presentation.IWContext; import com.idega.presentation.Page; import com.idega.presentation.PresentationObject; import com.idega.presentation.Table; import com.idega.presentation.text.Link; import com.idega.presentation.text.Text; import com.idega.presentation.ui.DatePicker; import com.idega.presentation.ui.DropdownMenu; import com.idega.presentation.ui.Form; import com.idega.presentation.ui.HiddenInput; import com.idega.presentation.ui.RadioButton; import com.idega.presentation.ui.ResetButton; import com.idega.presentation.ui.SelectOption; import com.idega.presentation.ui.StyledButton; import com.idega.presentation.ui.SubmitButton; import com.idega.presentation.ui.TextArea; import com.idega.presentation.ui.TextInput; import com.idega.presentation.ui.TimeInput; import com.idega.user.business.GroupBusiness; import com.idega.user.business.UserBusiness; import com.idega.user.data.User; import com.idega.user.presentation.GroupChooser; import com.idega.util.IWTimestamp; /** * Description: <br> * Copyright: Idega Software 2003 <br> * Company: Idega Software <br> * @author <a href="mailto:birna@idega.is">Birna Iris Jonsdottir</a> */ public class CalendarEntryCreator extends Form{ private final static String IW_BUNDLE_IDENTIFIER = "com.idega.block.cal"; public final static String ENTRY = "entry"; //parameter names public static String entryIDParameterName ="entryID"; public static String headlineFieldParameterName = "headline"; public static String typeFieldParameterName = "type"; public static String generalFieldParameterName = "general"; public static String practiceFieldParameterName = "practice"; public static String repeatFieldParameterName = "repeat"; public static String noRepeatFieldParameterName = "none"; public static String dailyFieldParameterName = "daily"; public static String weeklyFieldParameterName = "weekly"; public static String monthlyFieldParameterName = "monthly"; public static String yearlyFieldParameterName = "yearly"; public static String dayFromFieldParameterName = "dayFrom"; public static String dayToFieldParameterName = "dayTo"; public static String timeFromFieldParameterName ="timeFrom"; public static String timeToFieldParameterName = "timeTo"; public static String chooseGroupParameterName = "calEntryCreator.choose_group"; public static String attendeesFieldParameterName = "attendees"; public static String descriptionFieldParameterName = "description"; public static String saveButtonParameterName = "save"; public static String saveButtonParameterValue = "save"; public static String changeParameterName = "change"; public static String creatorViewParameterName = "creatorView"; public static String ledgerFieldParameterName = "ledger"; public static String locationFieldParameterName = "location"; public static String createNewEntryParameterName = "calendarEntry.create_new"; public static String changeEntryParameterName = "calendarEntry.change_entry"; public static String noLedgerFieldParameterName = "noLedger"; public static String modifyOneOrManyRadioButtonParameterName = "oneOrManyRadioButton"; public static String modifyOneRadioButtonParameterName = "oneRadioButton"; public static String modifyManyRadioButtonParameterName = "manyRadioButton"; public static String groupOrLedger = "calendarEntry.group_or_ledger"; public static String oneValue = "one"; public static String manyValue = "many"; // private static final String HELP_TEXT_KEY = "create_entry"; // public static boolean isEntrySet = false; private String mainTableStyle = "main"; private String borderAllWhite = "borderAllWhite"; private String borderBottomStyle = "borderBottom"; private String styledLinkBox = "styledLinkBox"; private String styledLink = "styledLink"; private String boldText = "bold"; private String headlineFont = "headline"; private String menuTableStyle = "menu"; private String oneOrMany = "one"; //texts private Text headlineText; private Text typeText; private Text repeatText; private Text noRepeatText; private Text dailyText; private Text weeklyText; private Text monthlyText; private Text yearlyText; private Text dayFromText; private Text dayToText; private Text timeFromText; private Text timeToText; private Text attendeesText; private Text descriptionText; private Text generalText; private Text practiceText; private Text ledgerText; private Text locationText; private Text createNewText; private Text changeEntryText; private Text modifyOneText; private Text modifyManyText; private Text groupOrLedgerText; //fields private TextInput headlineField; private DropdownMenu typeField; private SelectOption generalField; private SelectOption practiceField; private DropdownMenu repeatField; private SelectOption noRepeatField; private SelectOption dailyField; private SelectOption weeklyField; private SelectOption monthlyField; private SelectOption yearlyField; private DatePicker dayFromField; private DatePicker dayToField; private TimeInput timeFromField; private TimeInput timeToField; private GroupChooser attendeesField; private TextArea descriptionField; private StyledButton save; private StyledButton reset; // private Link save; private Link deleteLink; private HiddenInput hiddenEntryID; private HiddenInput hiddenView; private HiddenInput hiddenYear; private HiddenInput hiddenMonth; private HiddenInput hiddenDay; private HiddenInput hiddenOneMany; private DropdownMenu ledgerField; private TextInput locationField; private Link newEntryLink; private RadioButton modifyOneRadioButton; private RadioButton modifyManyRadioButton; private CalBusiness calBiz; private boolean insertPracticeOnly; private boolean displayingTimeConflict = false; private String entryIDString = ""; // private Form form; /** * initializes text * @param iwc */ private void initializeTexts(IWContext iwc) { IWResourceBundle iwrb = getResourceBundle(iwc); this.headlineText = new Text(iwrb.getLocalizedString(headlineFieldParameterName,"Name")); this.headlineText.setStyleClass(this.boldText); this.typeText = new Text(iwrb.getLocalizedString(typeFieldParameterName,"Type")); this.typeText.setStyleClass(this.boldText); this.repeatText =new Text(iwrb.getLocalizedString(repeatFieldParameterName,"Repeat")); this.repeatText.setStyleClass(this.boldText); this.noRepeatText = new Text(iwrb.getLocalizedString(noRepeatFieldParameterName,"No Repeat")); this.noRepeatText.setStyleClass(this.boldText); this.dailyText = new Text(iwrb.getLocalizedString(dailyFieldParameterName,"Daily")); this.dailyText.setStyleClass(this.boldText); this.weeklyText = new Text(iwrb.getLocalizedString(weeklyFieldParameterName,"Weekly")); this.weeklyText.setStyleClass(this.boldText); this.monthlyText = new Text(iwrb.getLocalizedString(monthlyFieldParameterName,"Monthly")); this.monthlyText.setStyleClass(this.boldText); this.yearlyText = new Text(iwrb.getLocalizedString(yearlyFieldParameterName,"Yearly")); this.yearlyText.setStyleClass(this.boldText); this.dayFromText = new Text(iwrb.getLocalizedString(dayFromFieldParameterName,"From day")); this.dayFromText.setStyleClass(this.boldText); this.dayToText = new Text(iwrb.getLocalizedString(dayToFieldParameterName,"To Day")); this.dayToText.setStyleClass(this.boldText); this.timeFromText = new Text(iwrb.getLocalizedString(timeFromFieldParameterName, "From time")); this.timeFromText.setStyleClass(this.boldText); this.timeToText = new Text(iwrb.getLocalizedString(timeToFieldParameterName, "To time")); this.timeToText.setStyleClass(this.boldText); this.attendeesText = new Text(iwrb.getLocalizedString(chooseGroupParameterName,"Choose group")); this.attendeesText.setStyleClass(this.boldText); this.descriptionText = new Text(iwrb.getLocalizedString(descriptionFieldParameterName,"Description")); this.descriptionText.setStyleClass(this.boldText); this.generalText = new Text(iwrb.getLocalizedString(generalFieldParameterName,"General")); this.generalText.setStyleClass(this.boldText); this.practiceText = new Text(iwrb.getLocalizedString(practiceFieldParameterName, "Practice")); this.practiceText.setStyleClass(this.boldText); this.ledgerText = new Text(iwrb.getLocalizedString(ledgerFieldParameterName, "Ledger")); this.ledgerText.setStyleClass(this.boldText); this.locationText = new Text(iwrb.getLocalizedString(locationFieldParameterName, "Location")); this.locationText.setStyleClass(this.boldText); this.createNewText = new Text(iwrb.getLocalizedString(createNewEntryParameterName, "Create new entry")); this.createNewText.setStyleClass(this.headlineFont); this.createNewText.setBold(); this.changeEntryText = new Text(iwrb.getLocalizedString(changeEntryParameterName, "Change entry")); this.changeEntryText.setStyleClass(this.headlineFont); this.changeEntryText.setBold(); this.modifyOneText = new Text(iwrb.getLocalizedString(modifyOneRadioButtonParameterName, "Change a single entry")); this.modifyOneText.setStyleClass(this.boldText); this.modifyManyText = new Text(iwrb.getLocalizedString(modifyManyRadioButtonParameterName, "Change group of entries")); this.modifyManyText.setStyleClass(this.boldText); this.groupOrLedgerText = new Text(iwrb.getLocalizedString(groupOrLedger,"Save entry for group or ledger?")); this.groupOrLedgerText.setStyleClass(this.boldText); } /** * initialized fields * @param iwc */ private void initializeFields(IWContext iwc, CalendarEntry entry) { IWResourceBundle iwrb = getResourceBundle(iwc); CalBusiness calBusiness = getCalBusiness(iwc); this.headlineField = new TextInput(headlineFieldParameterName); this.practiceField =new SelectOption(this.practiceText.toString(),generalFieldParameterName); this.generalField =new SelectOption(this.generalText.toString(),practiceFieldParameterName); this.typeField = new DropdownMenu(typeFieldParameterName); //if the general and practice types have not been added -> they are added! if(calBusiness.getEntryTypeByName(practiceFieldParameterName) == null) { calBusiness.createNewEntryType(practiceFieldParameterName); } if(calBusiness.getEntryTypeByName(generalFieldParameterName) == null) { calBusiness.createNewEntryType(generalFieldParameterName); } CalBusiness calBiz = getCalBusiness(iwc); Iterator typeIter = calBiz.getAllEntryTypes().iterator(); while(typeIter.hasNext()) { CalendarEntryType type = (CalendarEntryType) typeIter.next(); if(!this.insertPracticeOnly) { this.typeField.addMenuElement(type.getName(),iwrb.getLocalizedString("calendarEntry."+type.getName(),type.getName())); } else { if(type.getName().equals(practiceFieldParameterName)) { this.typeField.addMenuElement(type.getName(),type.getName()); } } } this.typeField.setSelectedElement(practiceFieldParameterName); this.ledgerField = new DropdownMenu(ledgerFieldParameterName); this.ledgerField.addMenuElement(-1,iwrb.getLocalizedString(noLedgerFieldParameterName,"No ledger")); User user = iwc.getCurrentUser(); Integer userID = (Integer) user.getPrimaryKey(); int userGroupID = user.getPrimaryGroupID(); Iterator ledgerIter = calBiz.getAllLedgers().iterator(); while(ledgerIter.hasNext()) { CalendarLedger ledger = (CalendarLedger) ledgerIter.next(); if(userID.intValue() == ledger.getCoachID() || userGroupID == ledger.getCoachGroupID()) { this.ledgerField.addMenuElement(ledger.getLedgerID(),ledger.getName()); } } this.locationField = new TextInput(locationFieldParameterName); this.noRepeatField = new SelectOption(this.noRepeatText.toString(),noRepeatFieldParameterName); this.dailyField = new SelectOption(this.dailyText.toString(),dailyFieldParameterName); this.weeklyField =new SelectOption(this.weeklyText.toString(),weeklyFieldParameterName); this.monthlyField = new SelectOption(this.monthlyText.toString(),monthlyFieldParameterName); this.yearlyField = new SelectOption(this.yearlyText.toString(),yearlyFieldParameterName); this.repeatField = new DropdownMenu(repeatFieldParameterName); this.repeatField.addOption(this.noRepeatField); this.repeatField.addOption(this.dailyField); this.repeatField.addOption(this.weeklyField); this.repeatField.addOption(this.monthlyField); this.repeatField.addOption(this.yearlyField); IWTimestamp stamp = new IWTimestamp(); String day = iwc.getParameter(CalendarParameters.PARAMETER_DAY); String month = iwc.getParameter(CalendarParameters.PARAMETER_MONTH); String year = iwc.getParameter(CalendarParameters.PARAMETER_YEAR); String view = iwc.getParameter(CalendarParameters.PARAMETER_VIEW); int v = 0; if(view != null && !view.equals("")) { v = Integer.parseInt(view); } this.dayFromField = new DatePicker(dayFromFieldParameterName); this.dayToField = new DatePicker(dayToFieldParameterName); if(day != null && month != null && year != null && v == CalendarParameters.DAY) { //month is month - 1 -> January == 0!! Date date = new Date(Integer.parseInt(year),Integer.parseInt(month)-1,Integer.parseInt(day)); this.dayFromField.setDate(date); this.dayToField.setDate(date); } else { this.dayFromField.setDate(stamp.getDate()); this.dayToField.setDate(stamp.getDate()); } this.timeFromField = new TimeInput(timeFromFieldParameterName); //the default from time is set to the current time this.timeFromField.setHour(stamp.getHour()); this.timeFromField.setMinute(0); this.timeToField = new TimeInput(timeToFieldParameterName); //the default to time is set one hour later than the current time if(stamp.getHour() == 23) { this.timeToField.setHour(0); } else { this.timeToField.setHour(stamp.getHour() + 1); } this.timeToField.setMinute(0); this.attendeesField = new GroupChooser(attendeesFieldParameterName); this.descriptionField = new TextArea(descriptionFieldParameterName); this.descriptionField.setRows(5); this.save = new StyledButton(new SubmitButton(iwrb.getLocalizedString("save", "Save"),saveButtonParameterName,saveButtonParameterValue)); // save.setAsImageButton(true); this.reset = new StyledButton(new ResetButton(iwrb.getLocalizedString("reset", "Reset"))); // reset.setAsImageButton(true); this.hiddenEntryID = new HiddenInput(entryIDParameterName,iwc.getParameter(entryIDParameterName)); this.hiddenView = new HiddenInput(CalendarParameters.PARAMETER_VIEW,view); this.hiddenYear =new HiddenInput(CalendarParameters.PARAMETER_YEAR,new Integer(stamp.getYear()).toString()); this.hiddenMonth = new HiddenInput(CalendarParameters.PARAMETER_MONTH,new Integer(stamp.getMonth()).toString()); this.hiddenDay = new HiddenInput(CalendarParameters.PARAMETER_DAY,new Integer(stamp.getDay()).toString()); //if some entry is selected, data is printed in the fields // if(entryIDString != null && !entryIDString.equals("")) { if(entry != null) { // isEntrySet = true; this.modifyOneRadioButton = new RadioButton(modifyOneOrManyRadioButtonParameterName,oneValue); this.modifyOneRadioButton.setSelected(); this.modifyManyRadioButton = new RadioButton(modifyOneOrManyRadioButtonParameterName,manyValue); this.newEntryLink = new Link(iwrb.getLocalizedString("new_entry","New Entry")); this.newEntryLink.addParameter(entryIDParameterName,""); this.newEntryLink.addParameter(CalendarParameters.PARAMETER_VIEW,view); // newEntryLink.setStyleClass(styledLink); this.newEntryLink.setAsImageButton(true,true); this.deleteLink = new Link(iwrb.getLocalizedString("delete","Delete")); this.deleteLink.setWindowToOpen(ConfirmDeleteWindow.class); this.deleteLink.addParameter(ConfirmDeleteWindow.PRM_DELETE_ID, this.entryIDString); this.deleteLink.addParameter(ConfirmDeleteWindow.PRM_DELETE, CalendarParameters.PARAMETER_TRUE); this.deleteLink.addParameter(ConfirmDeleteWindow.PRM_ENTRY_OR_LEDGER,ENTRY); this.deleteLink.addParameter(CalendarView.ACTION,""); this.deleteLink.setAsImageButton(true,true); this.headlineField.setContent(entry.getName()); this.typeField.setSelectedElement(entry.getEntryTypeName()); this.repeatField.setSelectedElement(entry.getRepeat()); this.ledgerField.setSelectedElement(entry.getLedgerID()); Integer groupID = new Integer(entry.getGroupID()); try { if(groupID.intValue() != -1) { this.attendeesField.setChooserValue(getGroupBusiness(iwc).getGroupByGroupID(groupID.intValue()).getName(),groupID.toString()); // prior version: attendeesField.setSelectedGroup(groupID.toString(),getGroupBusiness(iwc).getGroupByGroupID(groupID.intValue()).getName()); } }catch (Exception e){ e.printStackTrace(); } IWTimestamp iwFrom = new IWTimestamp(entry.getDate()); Date dateF = iwFrom.getDate(); this.dayFromField.setDate(dateF); IWTimestamp iwTo = new IWTimestamp(entry.getEndDate()); Date dateT = iwTo.getDate(); this.dayToField.setDate(dateT); this.timeFromField.setHour(entry.getDate().getHours()); this.timeFromField.setMinute(entry.getDate().getMinutes()); this.timeToField.setHour(entry.getEndDate().getHours()); this.timeToField.setMinute(entry.getEndDate().getMinutes()); this.locationField.setContent(entry.getLocation()); this.descriptionField.setContent(entry.getDescription()); } // } else if(this.displayingTimeConflict) { String entryAttendees = iwc.getParameter(attendeesFieldParameterName); if(entryAttendees == null || entryAttendees.equals("")) { entryAttendees = ""; } else { entryAttendees = entryAttendees.substring(entryAttendees.lastIndexOf("_")+1); } if(entryAttendees != null && !entryAttendees.equals("")) { Integer groupID = new Integer(entryAttendees); try { this.attendeesField.setChooserValue(getGroupBusiness(iwc).getGroupByGroupID(groupID.intValue()).getName(),groupID.toString()); // prior version: attendeesField.setSelectedGroup(groupID.toString(),getGroupBusiness(iwc).getGroupByGroupID(groupID.intValue()).getName()); }catch (Exception e){ e.printStackTrace(); } } this.headlineField.setContent(iwc.getParameter(headlineFieldParameterName)); this.typeField.setSelectedElement(iwc.getParameter(typeFieldParameterName)); this.repeatField.setSelectedElement(iwc.getParameter(repeatFieldParameterName)); this.ledgerField.setSelectedElement(iwc.getParameter(ledgerFieldParameterName)); this.locationField.setContent(iwc.getParameter(locationFieldParameterName)); this.descriptionField.setContent(iwc.getParameter(descriptionFieldParameterName)); } } /** * lines up the gui - for editing entries * @return form containing the gui table */ private Table lineUpEdit(IWContext iwc, CalendarEntry entry) { Table table = new Table(); // table.setStyleClass(borderAllWhite); table.setCellspacing(0); table.setCellpadding(0); table.setWidth(Table.HUNDRED_PERCENT); // table.setStyleClass(1,1,menuTableStyle); table.setHeight(1,1,20); if(entry != null) { Table radioButtonTable = new Table(); radioButtonTable.setWidth(Table.HUNDRED_PERCENT); radioButtonTable.add(this.modifyOneRadioButton,1,1); radioButtonTable.add(Text.NON_BREAKING_SPACE,1,1); radioButtonTable.add(this.modifyOneText,1,1); radioButtonTable.add(this.modifyManyRadioButton,1,2); radioButtonTable.add(Text.NON_BREAKING_SPACE,1,2); radioButtonTable.add(this.modifyManyText,1,2); table.add(radioButtonTable,1,1); Table buttonTableTop = new Table(); buttonTableTop.setWidth(Table.HUNDRED_PERCENT); buttonTableTop.add(this.newEntryLink,1,1); buttonTableTop.add(this.deleteLink,2,1); table.setVerticalAlignment(2,1,Table.VERTICAL_ALIGN_TOP); table.add(buttonTableTop,2,1); } Table headlineTable = new Table(); headlineTable.setCellpadding(2); headlineTable.setCellspacing(0); headlineTable.setWidth(Table.HUNDRED_PERCENT); headlineTable.add(this.headlineText,1,1); headlineTable.add(this.headlineField,1,2); table.add(headlineTable,1,2); Table typeTable = new Table(); typeTable.setCellpadding(2); typeTable.setCellspacing(0); typeTable.setWidth(Table.HUNDRED_PERCENT); typeTable.add(this.typeText,1,1); typeTable.add(this.typeField,1,2); table.add(typeTable,2,2); Table locationTable = new Table(); locationTable.setCellpadding(2); locationTable.setCellspacing(0); locationTable.setWidth(Table.HUNDRED_PERCENT); locationTable.add(this.locationText,1,1); locationTable.add(this.locationField,1,2); table.add(locationTable,1,3); Table repeatTable = new Table(); repeatTable.setCellpadding(2); repeatTable.setCellspacing(0); repeatTable.setWidth(Table.HUNDRED_PERCENT); repeatTable.add(this.repeatText,1,1); repeatTable.add(this.repeatField,1,2); table.add(repeatTable,2,3); Table dayFromTable = new Table(); dayFromTable.setCellpadding(2); dayFromTable.setCellspacing(0); dayFromTable.setWidth(Table.HUNDRED_PERCENT); dayFromTable.add(this.dayFromText,1,1); dayFromTable.add(this.dayFromField,1,2); table.add(dayFromTable,1,4); Table dayToTable = new Table(); dayToTable.setCellpadding(2); dayToTable.setCellspacing(0); dayToTable.add(this.dayToText,1,1); dayToTable.add(this.dayToField,1,2); table.add(dayToTable,2,4); Table timeFromTable = new Table(); timeFromTable.setWidth(Table.HUNDRED_PERCENT); timeFromTable.add(this.timeFromText,1,1); timeFromTable.add(this.timeFromField,1,2); table.add(timeFromTable,1,5); Table timeToTable = new Table(); timeToTable.setWidth(Table.HUNDRED_PERCENT); timeToTable.add(this.timeToText,1,1); timeToTable.add(this.timeToField,1,2); table.add(timeToTable,2,5); Table ledgerTable = new Table(); ledgerTable.setWidth(Table.HUNDRED_PERCENT); ledgerTable.add(this.groupOrLedgerText,1,1); ledgerTable.add(this.ledgerField,1,2); table.add(ledgerTable,1,6); Table groupTable = new Table(); groupTable.setWidth(Table.HUNDRED_PERCENT); groupTable.add(this.attendeesText,1,1); // AttentantChooser is a PresentationObject groupTable.add((PresentationObject) this.attendeesField,1,2); table.add(groupTable,1,7); Table descTable = new Table(); descTable.setCellpadding(2); descTable.setCellspacing(0); descTable.setWidth(Table.HUNDRED_PERCENT); descTable.add(this.descriptionText,1,1); descTable.add(this.descriptionField,1,2); table.setVerticalAlignment(2,6,Table.VERTICAL_ALIGN_TOP); table.mergeCells(2,6,2,7); table.add(descTable,2,6); Table buttonTable = new Table(); buttonTable.setCellpadding(2); buttonTable.setCellspacing(0); // buttonTable.add(help); buttonTable.add(this.save,1,1); buttonTable.add(this.reset,2,1); table.setAlignment(2,8,Table.HORIZONTAL_ALIGN_RIGHT); table.add(buttonTable,2,8); return table; } /** * Saves an entry to the calendar. Either updates it or creates a new one. * @param iwc */ public void saveEntry(IWContext iwc,Page parentPage) { IWResourceBundle iwrb = getResourceBundle(iwc); CalBusiness calBus = getCalBusiness(iwc); String entryHeadline = iwc.getParameter(headlineFieldParameterName); String entryType = iwc.getParameter(typeFieldParameterName); String entryRepeat = iwc.getParameter(repeatFieldParameterName); String entryDate = iwc.getParameter(dayFromFieldParameterName); String entryTimeHour = iwc.getParameter(timeFromFieldParameterName + "_hour"); String entryTimeMinute = iwc.getParameter(timeFromFieldParameterName + "_minute"); String entryEndDate = iwc.getParameter(dayToFieldParameterName); String entryEndTimeHour = iwc.getParameter(timeToFieldParameterName + "_hour"); String entryEndTimeMinute = iwc.getParameter(timeToFieldParameterName + "_minute"); String entryAttendees = iwc.getParameter(attendeesFieldParameterName); String entryLedger = iwc.getParameter(ledgerFieldParameterName); String entryDescription = iwc.getParameter(descriptionFieldParameterName); String entryLocation = iwc.getParameter(locationFieldParameterName); String entryModifyOneOrMany = iwc.getParameter(modifyOneOrManyRadioButtonParameterName); String entryID = iwc.getParameter(entryIDParameterName); User user = iwc.getCurrentUser(); if(entryAttendees == null || entryAttendees.equals("")) { entryAttendees = ""; } else { entryAttendees = entryAttendees.substring(entryAttendees.lastIndexOf("_")+1); } IWTimestamp f = new IWTimestamp(entryDate); IWTimestamp t = new IWTimestamp(entryEndDate); Timestamp from = f.getTimestamp(); Timestamp to = t.getTimestamp(); from.setHours(Integer.parseInt(entryTimeHour)); from.setMinutes(Integer.parseInt(entryTimeMinute)); to.setHours(Integer.parseInt(entryEndTimeHour)); to.setMinutes(Integer.parseInt(entryEndTimeMinute)); int ledgerID; Timestamp ledStartTime = from; if(entryLedger != null && !entryLedger.equals("") && !entryLedger.equals("-1")) { ledgerID = Integer.parseInt(entryLedger); CalendarLedger ledger = getCalBusiness(iwc).getLedger(ledgerID); if(ledger != null) { ledStartTime = ledger.getDate(); } } if(from.getHours() > to.getHours() || (from.getHours() == to.getHours() && from.getMinutes() > to.getMinutes())) { parentPage.setAlertOnLoad(iwrb.getLocalizedString("calEntryCreator.to_time_before_from_time_message","The from time is later than the to time!")); this.displayingTimeConflict = true; } else if(from.compareTo(to)>0) { parentPage.setAlertOnLoad(iwrb.getLocalizedString("calEntryCreator.to_date_before_from_date_message","The from day is later than the to day!")); this.displayingTimeConflict = true; } else if(from.getTime()<ledStartTime.getTime()) { parentPage.setAlertOnLoad(iwrb.getLocalizedString("calEntryCreator.from_date_before_led_start_date_message","The from day is before the ledgers start day!")); this.displayingTimeConflict = true; } else { if(entryID != null && !entryID.equals("")) { CalendarEntry entry = null; try{ entry = calBus.getEntry(Integer.parseInt(entryID)); }catch(Exception fe) { entry = null; } if(entry != null) { List entries = null; if(entryModifyOneOrMany.equals(manyValue)) { entries = new ArrayList(calBus.getEntriesByEntryGroupID(entry.getEntryGroupID())); Iterator entryIter = entries.iterator(); while(entryIter.hasNext()) { CalendarEntry currentEntry = (CalendarEntry) entryIter.next(); int currentEntryID = currentEntry.getEntryID(); calBus.updateEntry(currentEntryID,entryHeadline, user, entryType, entryRepeat, currentEntry.getDate().toString(),entryTimeHour, entryTimeMinute, currentEntry.getEndDate().toString(), entryEndTimeHour, entryEndTimeMinute, entryAttendees, entryLedger, entryDescription, entryLocation, entryModifyOneOrMany ); } } else { calBus.updateEntry(Integer.parseInt(entryID),entryHeadline, user, entryType, entryRepeat, entryDate,entryTimeHour, entryTimeMinute, entryEndDate, entryEndTimeHour, entryEndTimeMinute, entryAttendees, entryLedger, entryDescription, entryLocation, entryModifyOneOrMany ); } } else { calBus.createNewEntry(entryHeadline, user, entryType, entryRepeat, entryDate,entryTimeHour, entryTimeMinute, entryEndDate, entryEndTimeHour, entryEndTimeMinute, entryAttendees, entryLedger, entryDescription, entryLocation); } } else { calBus.createNewEntry(entryHeadline, user, entryType, entryRepeat, entryDate,entryTimeHour, entryTimeMinute, entryEndDate, entryEndTimeHour, entryEndTimeMinute, entryAttendees, entryLedger, entryDescription, entryLocation); } } } public void main(IWContext iwc) { setName("form"); CalendarEntry entry = null; this.entryIDString = iwc.getParameter(entryIDParameterName); if(this.entryIDString == null || this.entryIDString.equals("")) { this.entryIDString = ""; } else { try { entry = getCalBusiness(iwc).getEntry(Integer.parseInt(this.entryIDString)); }catch(Exception e) { entry = null; } } String s = iwc.getParameter(saveButtonParameterName); if(s != null && !this.displayingTimeConflict) { entry = null; } initializeTexts(iwc); initializeFields(iwc, entry); add(this.hiddenView); add(this.hiddenYear); add(this.hiddenMonth); add(this.hiddenDay); add(this.hiddenEntryID); add(lineUpEdit(iwc,entry)); } public String getBundleIdentifier() { return IW_BUNDLE_IDENTIFIER; } public CalBusiness getCalBusiness(IWApplicationContext iwc) { if (this.calBiz == null) { try { this.calBiz = (CalBusiness) com.idega.business.IBOLookup.getServiceInstance(iwc, CalBusiness.class); } catch (java.rmi.RemoteException rme) { throw new RuntimeException(rme.getMessage()); } } return this.calBiz; } protected UserBusiness getUserBusiness(IWApplicationContext iwc) { UserBusiness userBusiness = null; if (userBusiness == null) { try { userBusiness = (UserBusiness) com.idega.business.IBOLookup.getServiceInstance(iwc, UserBusiness.class); } catch (java.rmi.RemoteException rme) { throw new RuntimeException(rme.getMessage()); } } return userBusiness; } public GroupBusiness getGroupBusiness(IWApplicationContext iwc) { GroupBusiness groupBiz = null; if (groupBiz == null) { try { groupBiz = (GroupBusiness) com.idega.business.IBOLookup.getServiceInstance(iwc, GroupBusiness.class); } catch (java.rmi.RemoteException rme) { throw new RuntimeException(rme.getMessage()); } } return groupBiz; } }