Event kann nun bearbeitet werden, ohne daß die Jahresangaben des Start- und Enddatum sich ändern, weil sie nicht (mehr) im definierten Bereich der Jahreszahlen liegen.

git-svn-id: https://svn.libreccm.org/ccm/trunk@703 8810af33-2d31-482b-a856-94f89814c4df
master
quasi 2011-01-22 12:02:21 +00:00
parent ebbc22fbd5
commit d63957b617
1 changed files with 145 additions and 160 deletions

View File

@ -18,7 +18,6 @@
*/
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.Label;
@ -55,19 +54,15 @@ public class EventPropertyForm extends BasicPageForm
/** Name of this form */
public static final String ID = "event_edit";
private final static org.apache.log4j.Logger s_log =
org.apache.log4j.Logger.getLogger(EventPropertyForm.class);
private EventPropertiesStep m_step;
/** event date parameter name */
public static final String START_DATE = "startDate";
public static final String END_DATE = "endDate";
public static final String START_TIME = "startTime";
public static final String END_TIME = "endTime";
public static final String EVENT_DATE = "eventDate";
/** location parameter name */
public static final String LOCATION = "location";
/** lead parameter name */
@ -81,6 +76,10 @@ public class EventPropertyForm extends BasicPageForm
/** cost parameter name */
public static final String COST = "cost";
/* DateWidgets have to be accessible later on */
private com.arsdigita.bebop.form.Date m_startDate;
private com.arsdigita.bebop.form.Date m_endDate;
/**
* Creates a new form to edit the Event object specified by the item
* selection model passed in.
@ -91,6 +90,7 @@ public class EventPropertyForm extends BasicPageForm
public EventPropertyForm(ItemSelectionModel itemModel) {
this(itemModel, null);
}
/**
* Creates a new form to edit the Event object specified by the item
* selection model passed in.
@ -112,8 +112,7 @@ public class EventPropertyForm extends BasicPageForm
super.addWidgets();
/* Summary (lead) */
add(new Label((String)EventGlobalizationUtil.globalize
("cms.contenttypes.ui.event.lead").localize()));
add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.lead").localize()));
ParameterModel leadParam = new StringParameter(LEAD);
//leadParam
// .addParameterListener(new NotNullValidationListener());
@ -123,46 +122,39 @@ public class EventPropertyForm extends BasicPageForm
add(lead);
/* Start date and time */
ParameterModel eventStartDateParam = new DateParameter(START_DATE);
add(new Label((String)EventGlobalizationUtil.globalize
("cms.contenttypes.ui.event.start_date").localize()));
add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.start_date").localize()));
eventStartDateParam.addParameterListener(new NotNullValidationListener());
// Use bebop date instead of java.util.date
com.arsdigita.bebop.form.Date startDate
= new com.arsdigita.bebop.form.Date(eventStartDateParam);
m_startDate = new com.arsdigita.bebop.form.Date(eventStartDateParam);
// Set the upper und lower boundary of the year select box
startDate.setYearRange(Event.getConfig().getStartYear(),
m_startDate.setYearRange(Event.getConfig().getStartYear(),
GregorianCalendar.getInstance().get(Calendar.YEAR) + Event.getConfig().getEndYearDelta());
add(startDate);
add(m_startDate);
ParameterModel eventStartTimeParam = new TimeParameter(START_TIME);
add(new Label((String)EventGlobalizationUtil.globalize
("cms.contenttypes.ui.event.start_time").localize()));
add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.start_time").localize()));
eventStartTimeParam.addParameterListener(new NotNullValidationListener());
Time startTime = new Time(eventStartTimeParam);
add(startTime);
/* End date and time */
ParameterModel eventEndDateParam = new DateParameter(END_DATE);
add(new Label((String)EventGlobalizationUtil.globalize
("cms.contenttypes.ui.event.end_date").localize()));
add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.end_date").localize()));
// Use bebop date instead of java.util.date
com.arsdigita.bebop.form.Date endDate
= new com.arsdigita.bebop.form.Date(eventEndDateParam);
endDate.setYearRange(Event.getConfig().getStartYear(),
m_endDate = new com.arsdigita.bebop.form.Date(eventEndDateParam);
m_endDate.setYearRange(Event.getConfig().getStartYear(),
GregorianCalendar.getInstance().get(Calendar.YEAR) + Event.getConfig().getEndYearDelta());
add(endDate);
add(m_endDate);
ParameterModel eventEndTimeParam = new TimeParameter(END_TIME);
add(new Label((String)EventGlobalizationUtil.globalize
("cms.contenttypes.ui.event.end_time").localize()));
add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.end_time").localize()));
Time endTime = new Time(eventEndTimeParam);
add(endTime);
/* optional additional / literal date description */
if (!Event.getConfig().getHideDateDescription()) {
add(new Label((String)EventGlobalizationUtil.globalize
("cms.contenttypes.ui.event.date_description").localize()));
add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.date_description").localize()));
ParameterModel eventDateParam = new StringParameter(EVENT_DATE);
//eventDateParam
// .addParameterListener(new NotNullValidationListener());
@ -171,8 +163,7 @@ public class EventPropertyForm extends BasicPageForm
eventDate.setCols(40);
eventDate.setRows(8);
add(eventDate);
}
else {
} else {
eventDateParam.addParameterListener(new StringInRangeValidationListener(0, 100));
TextArea eventDate = new TextArea(eventDateParam);
eventDate.setCols(50);
@ -183,8 +174,7 @@ public class EventPropertyForm extends BasicPageForm
/* extensive description of location */
add(new Label((String)EventGlobalizationUtil.globalize
("cms.contenttypes.ui.event.location").localize()));
add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.location").localize()));
ParameterModel locationParam = new StringParameter(LOCATION);
//locationParam
// .addParameterListener(new NotNullValidationListener());
@ -196,8 +186,7 @@ public class EventPropertyForm extends BasicPageForm
/* optional: main contributor */
if (!Event.getConfig().getHideMainContributor()) {
add(new Label((String)EventGlobalizationUtil.globalize
("cms.contenttypes.ui.event.main_contributor").localize()));
add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.main_contributor").localize()));
ParameterModel mainContributorParam =
new StringParameter(MAIN_CONTRIBUTOR);
//mainContributorParam
@ -211,8 +200,7 @@ public class EventPropertyForm extends BasicPageForm
/* optional: event type */
if (!Event.getConfig().getHideEventType()) {
add(new Label((String)EventGlobalizationUtil.globalize
("cms.contenttypes.ui.event.event_type").localize()));
add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.event_type").localize()));
ParameterModel eventTypeParam = new StringParameter(EVENT_TYPE);
//eventTypeParam
// .addParameterListener(new NotNullValidationListener());
@ -225,8 +213,7 @@ public class EventPropertyForm extends BasicPageForm
/* optional: link to map */
if (!Event.getConfig().getHideLinkToMap()) {
add(new Label((String)EventGlobalizationUtil.globalize
("cms.contenttypes.ui.event.link_to_map").localize()));
add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.link_to_map").localize()));
ParameterModel mapLinkParam = new StringParameter(MAP_LINK);
//mapLinkParam
// .addParameterListener(new NotNullValidationListener());
@ -239,8 +226,7 @@ public class EventPropertyForm extends BasicPageForm
/* optional: costs */
if (!Event.getConfig().getHideCost()) {
add(new Label((String)EventGlobalizationUtil.globalize
("cms.contenttypes.ui.event.cost").localize()));
add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.cost").localize()));
ParameterModel costParam = new TrimmedStringParameter(COST);
TextField cost = new TextField(costParam);
cost.setSize(30);
@ -258,32 +244,34 @@ public class EventPropertyForm extends BasicPageForm
if (endDate != null) {
if (startDate == null || startDate.compareTo(endDate) > 0) {
throw new FormProcessException((String)EventGlobalizationUtil.globalize
("cms.contenttypes.ui.event.end_date_after_start_date").localize());
throw new FormProcessException((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.end_date_after_start_date").localize());
}
}
}
/** Form initialisation hook. Fills widgets with data. */
public void init(FormSectionEvent fse) {
// Do some initialization hook stuff
FormData data = fse.getFormData();
Event event
= (Event) super.initBasicWidgets(fse);
Event event = (Event) super.initBasicWidgets(fse);
// Start date should always be set
java.util.Date startDate = event.getStartDate();
if (startDate == null) {
// new Date is initialised to current time
startDate = new java.util.Date();
}
m_startDate.addYear(startDate);
// End date can be null
java.util.Date endDate = event.getEndDate();
if (endDate != null) {
m_endDate.addYear(endDate);
}
data.put(LEAD, event.getLead());
data.put(START_DATE, startDate);
data.put(START_TIME, event.getStartTime());
// End date can be null
data.put(END_DATE, event.getEndDate());
data.put(END_TIME, event.getEndTime());
if (!Event.getConfig().getHideDateDescription()) {
@ -306,9 +294,8 @@ public class EventPropertyForm extends BasicPageForm
/** Cancels streamlined editing. */
public void submitted(FormSectionEvent fse) {
if (m_step != null &&
getSaveCancelSection().getCancelButton()
.isSelected( fse.getPageState())) {
if (m_step != null
&& getSaveCancelSection().getCancelButton().isSelected(fse.getPageState())) {
m_step.cancelStreamlinedCreation(fse.getPageState());
}
}
@ -317,13 +304,11 @@ public class EventPropertyForm extends BasicPageForm
public void process(FormSectionEvent fse) {
FormData data = fse.getFormData();
Event event
= (Event) super.processBasicWidgets(fse);
Event event = (Event) super.processBasicWidgets(fse);
// save only if save button was pressed
if (event != null
&& getSaveCancelSection().getSaveButton()
.isSelected(fse.getPageState())) {
&& getSaveCancelSection().getSaveButton().isSelected(fse.getPageState())) {
event.setStartDate((java.util.Date) data.get(START_DATE));
event.setStartTime((java.util.Date) data.get(START_TIME));