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; package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.FormData; import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.FormProcessException; import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.Label; import com.arsdigita.bebop.Label;
@ -55,19 +54,15 @@ public class EventPropertyForm extends BasicPageForm
/** Name of this form */ /** Name of this form */
public static final String ID = "event_edit"; public static final String ID = "event_edit";
private final static org.apache.log4j.Logger s_log = private final static org.apache.log4j.Logger s_log =
org.apache.log4j.Logger.getLogger(EventPropertyForm.class); org.apache.log4j.Logger.getLogger(EventPropertyForm.class);
private EventPropertiesStep m_step; private EventPropertiesStep m_step;
/** event date parameter name */ /** event date parameter name */
public static final String START_DATE = "startDate"; public static final String START_DATE = "startDate";
public static final String END_DATE = "endDate"; public static final String END_DATE = "endDate";
public static final String START_TIME = "startTime"; public static final String START_TIME = "startTime";
public static final String END_TIME = "endTime"; public static final String END_TIME = "endTime";
public static final String EVENT_DATE = "eventDate"; public static final String EVENT_DATE = "eventDate";
/** location parameter name */ /** location parameter name */
public static final String LOCATION = "location"; public static final String LOCATION = "location";
/** lead parameter name */ /** lead parameter name */
@ -81,6 +76,10 @@ public class EventPropertyForm extends BasicPageForm
/** cost parameter name */ /** cost parameter name */
public static final String COST = "cost"; 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 * Creates a new form to edit the Event object specified by the item
* selection model passed in. * selection model passed in.
@ -88,9 +87,10 @@ public class EventPropertyForm extends BasicPageForm
* @param itemModel The ItemSelectionModel to use to obtain the Event to * @param itemModel The ItemSelectionModel to use to obtain the Event to
* work on * work on
**/ **/
public EventPropertyForm( ItemSelectionModel itemModel ) { public EventPropertyForm(ItemSelectionModel itemModel) {
this(itemModel,null); this(itemModel, null);
} }
/** /**
* Creates a new form to edit the Event object specified by the item * Creates a new form to edit the Event object specified by the item
* selection model passed in. * selection model passed in.
@ -99,8 +99,8 @@ public class EventPropertyForm extends BasicPageForm
* work on * work on
* @param step The EventPropertiesStep which controls this form. * @param step The EventPropertiesStep which controls this form.
**/ **/
public EventPropertyForm( ItemSelectionModel itemModel, EventPropertiesStep step ) { public EventPropertyForm(ItemSelectionModel itemModel, EventPropertiesStep step) {
super( ID, itemModel ); super(ID, itemModel);
m_step = step; m_step = step;
addSubmissionListener(this); addSubmissionListener(this);
} }
@ -112,8 +112,7 @@ public class EventPropertyForm extends BasicPageForm
super.addWidgets(); super.addWidgets();
/* Summary (lead) */ /* Summary (lead) */
add(new Label((String)EventGlobalizationUtil.globalize add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.lead").localize()));
("cms.contenttypes.ui.event.lead").localize()));
ParameterModel leadParam = new StringParameter(LEAD); ParameterModel leadParam = new StringParameter(LEAD);
//leadParam //leadParam
// .addParameterListener(new NotNullValidationListener()); // .addParameterListener(new NotNullValidationListener());
@ -123,57 +122,49 @@ public class EventPropertyForm extends BasicPageForm
add(lead); add(lead);
/* Start date and time */ /* Start date and time */
ParameterModel eventStartDateParam = new DateParameter(START_DATE); ParameterModel eventStartDateParam = new DateParameter(START_DATE);
add(new Label((String)EventGlobalizationUtil.globalize add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.start_date").localize()));
("cms.contenttypes.ui.event.start_date").localize()));
eventStartDateParam.addParameterListener(new NotNullValidationListener()); eventStartDateParam.addParameterListener(new NotNullValidationListener());
// Use bebop date instead of java.util.date // Use bebop date instead of java.util.date
com.arsdigita.bebop.form.Date startDate m_startDate = new com.arsdigita.bebop.form.Date(eventStartDateParam);
= new com.arsdigita.bebop.form.Date(eventStartDateParam);
// Set the upper und lower boundary of the year select box // 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()); GregorianCalendar.getInstance().get(Calendar.YEAR) + Event.getConfig().getEndYearDelta());
add(startDate); add(m_startDate);
ParameterModel eventStartTimeParam = new TimeParameter(START_TIME); ParameterModel eventStartTimeParam = new TimeParameter(START_TIME);
add(new Label((String)EventGlobalizationUtil.globalize add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.start_time").localize()));
("cms.contenttypes.ui.event.start_time").localize()));
eventStartTimeParam.addParameterListener(new NotNullValidationListener()); eventStartTimeParam.addParameterListener(new NotNullValidationListener());
Time startTime = new Time(eventStartTimeParam); Time startTime = new Time(eventStartTimeParam);
add(startTime); add(startTime);
/* End date and time */ /* End date and time */
ParameterModel eventEndDateParam = new DateParameter(END_DATE); ParameterModel eventEndDateParam = new DateParameter(END_DATE);
add(new Label((String)EventGlobalizationUtil.globalize add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.end_date").localize()));
("cms.contenttypes.ui.event.end_date").localize()));
// Use bebop date instead of java.util.date // Use bebop date instead of java.util.date
com.arsdigita.bebop.form.Date endDate m_endDate = new com.arsdigita.bebop.form.Date(eventEndDateParam);
= new com.arsdigita.bebop.form.Date(eventEndDateParam); m_endDate.setYearRange(Event.getConfig().getStartYear(),
endDate.setYearRange(Event.getConfig().getStartYear(),
GregorianCalendar.getInstance().get(Calendar.YEAR) + Event.getConfig().getEndYearDelta()); GregorianCalendar.getInstance().get(Calendar.YEAR) + Event.getConfig().getEndYearDelta());
add(endDate); add(m_endDate);
ParameterModel eventEndTimeParam = new TimeParameter(END_TIME); ParameterModel eventEndTimeParam = new TimeParameter(END_TIME);
add(new Label((String)EventGlobalizationUtil.globalize add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.end_time").localize()));
("cms.contenttypes.ui.event.end_time").localize()));
Time endTime = new Time(eventEndTimeParam); Time endTime = new Time(eventEndTimeParam);
add(endTime); add(endTime);
/* optional additional / literal date description */ /* optional additional / literal date description */
if(!Event.getConfig().getHideDateDescription()) { if (!Event.getConfig().getHideDateDescription()) {
add(new Label((String)EventGlobalizationUtil.globalize add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.date_description").localize()));
("cms.contenttypes.ui.event.date_description").localize()));
ParameterModel eventDateParam = new StringParameter(EVENT_DATE); ParameterModel eventDateParam = new StringParameter(EVENT_DATE);
//eventDateParam //eventDateParam
// .addParameterListener(new NotNullValidationListener()); // .addParameterListener(new NotNullValidationListener());
if(Event.getConfig().getUseHtmlDateDescription()) { if (Event.getConfig().getUseHtmlDateDescription()) {
CMSDHTMLEditor eventDate = new CMSDHTMLEditor(eventDateParam); CMSDHTMLEditor eventDate = new CMSDHTMLEditor(eventDateParam);
eventDate.setCols(40); eventDate.setCols(40);
eventDate.setRows(8); eventDate.setRows(8);
add(eventDate); add(eventDate);
} } else {
else { eventDateParam.addParameterListener(new StringInRangeValidationListener(0, 100));
eventDateParam.addParameterListener( new StringInRangeValidationListener(0, 100) );
TextArea eventDate = new TextArea(eventDateParam); TextArea eventDate = new TextArea(eventDateParam);
eventDate.setCols(50); eventDate.setCols(50);
eventDate.setRows(2); eventDate.setRows(2);
@ -183,8 +174,7 @@ public class EventPropertyForm extends BasicPageForm
/* extensive description of location */ /* extensive description of location */
add(new Label((String)EventGlobalizationUtil.globalize add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.location").localize()));
("cms.contenttypes.ui.event.location").localize()));
ParameterModel locationParam = new StringParameter(LOCATION); ParameterModel locationParam = new StringParameter(LOCATION);
//locationParam //locationParam
// .addParameterListener(new NotNullValidationListener()); // .addParameterListener(new NotNullValidationListener());
@ -195,9 +185,8 @@ public class EventPropertyForm extends BasicPageForm
/* optional: main contributor */ /* optional: main contributor */
if(!Event.getConfig().getHideMainContributor()) { if (!Event.getConfig().getHideMainContributor()) {
add(new Label((String)EventGlobalizationUtil.globalize add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.main_contributor").localize()));
("cms.contenttypes.ui.event.main_contributor").localize()));
ParameterModel mainContributorParam = ParameterModel mainContributorParam =
new StringParameter(MAIN_CONTRIBUTOR); new StringParameter(MAIN_CONTRIBUTOR);
//mainContributorParam //mainContributorParam
@ -210,9 +199,8 @@ public class EventPropertyForm extends BasicPageForm
/* optional: event type */ /* optional: event type */
if(!Event.getConfig().getHideEventType()) { if (!Event.getConfig().getHideEventType()) {
add(new Label((String)EventGlobalizationUtil.globalize add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.event_type").localize()));
("cms.contenttypes.ui.event.event_type").localize()));
ParameterModel eventTypeParam = new StringParameter(EVENT_TYPE); ParameterModel eventTypeParam = new StringParameter(EVENT_TYPE);
//eventTypeParam //eventTypeParam
// .addParameterListener(new NotNullValidationListener()); // .addParameterListener(new NotNullValidationListener());
@ -224,9 +212,8 @@ public class EventPropertyForm extends BasicPageForm
/* optional: link to map */ /* optional: link to map */
if(!Event.getConfig().getHideLinkToMap()) { if (!Event.getConfig().getHideLinkToMap()) {
add(new Label((String)EventGlobalizationUtil.globalize add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.link_to_map").localize()));
("cms.contenttypes.ui.event.link_to_map").localize()));
ParameterModel mapLinkParam = new StringParameter(MAP_LINK); ParameterModel mapLinkParam = new StringParameter(MAP_LINK);
//mapLinkParam //mapLinkParam
// .addParameterListener(new NotNullValidationListener()); // .addParameterListener(new NotNullValidationListener());
@ -238,9 +225,8 @@ public class EventPropertyForm extends BasicPageForm
/* optional: costs */ /* optional: costs */
if(!Event.getConfig().getHideCost()) { if (!Event.getConfig().getHideCost()) {
add(new Label((String)EventGlobalizationUtil.globalize add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.cost").localize()));
("cms.contenttypes.ui.event.cost").localize()));
ParameterModel costParam = new TrimmedStringParameter(COST); ParameterModel costParam = new TrimmedStringParameter(COST);
TextField cost = new TextField(costParam); TextField cost = new TextField(costParam);
cost.setSize(30); cost.setSize(30);
@ -258,57 +244,58 @@ public class EventPropertyForm extends BasicPageForm
if (endDate != null) { if (endDate != null) {
if (startDate == null || startDate.compareTo(endDate) > 0) { if (startDate == null || startDate.compareTo(endDate) > 0) {
throw new FormProcessException((String)EventGlobalizationUtil.globalize throw new FormProcessException((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.end_date_after_start_date").localize());
("cms.contenttypes.ui.event.end_date_after_start_date").localize());
} }
} }
} }
/** Form initialisation hook. Fills widgets with data. */ /** Form initialisation hook. Fills widgets with data. */
public void init(FormSectionEvent fse) { public void init(FormSectionEvent fse) {
// Do some initialization hook stuff // Do some initialization hook stuff
FormData data = fse.getFormData(); FormData data = fse.getFormData();
Event event Event event = (Event) super.initBasicWidgets(fse);
= (Event) super.initBasicWidgets(fse);
// Start date should always be set
java.util.Date startDate = event.getStartDate(); java.util.Date startDate = event.getStartDate();
if (startDate == null) { if (startDate == null) {
// new Date is initialised to current time // new Date is initialised to current time
startDate = new java.util.Date(); 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(LEAD, event.getLead());
data.put(START_DATE, startDate); data.put(START_DATE, startDate);
data.put(START_TIME, event.getStartTime()); data.put(START_TIME, event.getStartTime());
// End date can be null
data.put(END_DATE, event.getEndDate()); data.put(END_DATE, event.getEndDate());
data.put(END_TIME, event.getEndTime()); data.put(END_TIME, event.getEndTime());
if(!Event.getConfig().getHideDateDescription()) { if (!Event.getConfig().getHideDateDescription()) {
data.put(EVENT_DATE, event.getEventDate()); data.put(EVENT_DATE, event.getEventDate());
} }
data.put(LOCATION, event.getLocation()); data.put(LOCATION, event.getLocation());
if(!Event.getConfig().getHideMainContributor()) { if (!Event.getConfig().getHideMainContributor()) {
data.put(MAIN_CONTRIBUTOR, event.getMainContributor()); data.put(MAIN_CONTRIBUTOR, event.getMainContributor());
} }
if(!Event.getConfig().getHideEventType()) { if (!Event.getConfig().getHideEventType()) {
data.put(EVENT_TYPE, event.getEventType()); data.put(EVENT_TYPE, event.getEventType());
} }
if(!Event.getConfig().getHideLinkToMap()) { if (!Event.getConfig().getHideLinkToMap()) {
data.put(MAP_LINK, event.getMapLink()); data.put(MAP_LINK, event.getMapLink());
} }
if(!Event.getConfig().getHideCost()) { if (!Event.getConfig().getHideCost()) {
data.put(COST, event.getCost()); data.put(COST, event.getCost());
} }
} }
/** Cancels streamlined editing. */ /** Cancels streamlined editing. */
public void submitted( FormSectionEvent fse ) { public void submitted(FormSectionEvent fse) {
if (m_step != null && if (m_step != null
getSaveCancelSection().getCancelButton() && getSaveCancelSection().getCancelButton().isSelected(fse.getPageState())) {
.isSelected( fse.getPageState())) {
m_step.cancelStreamlinedCreation(fse.getPageState()); m_step.cancelStreamlinedCreation(fse.getPageState());
} }
} }
@ -317,35 +304,33 @@ public class EventPropertyForm extends BasicPageForm
public void process(FormSectionEvent fse) { public void process(FormSectionEvent fse) {
FormData data = fse.getFormData(); FormData data = fse.getFormData();
Event event Event event = (Event) super.processBasicWidgets(fse);
= (Event) super.processBasicWidgets(fse);
// save only if save button was pressed // save only if save button was pressed
if (event != null if (event != null
&& getSaveCancelSection().getSaveButton() && getSaveCancelSection().getSaveButton().isSelected(fse.getPageState())) {
.isSelected(fse.getPageState())) {
event.setStartDate((java.util.Date) data.get(START_DATE)); event.setStartDate((java.util.Date) data.get(START_DATE));
event.setStartTime((java.util.Date) data.get(START_TIME)); event.setStartTime((java.util.Date) data.get(START_TIME));
event.setEndDate((java.util.Date) data.get(END_DATE)); event.setEndDate((java.util.Date) data.get(END_DATE));
event.setEndTime((java.util.Date) data.get(END_TIME)); event.setEndTime((java.util.Date) data.get(END_TIME));
//date_description //date_description
if(!Event.getConfig().getHideDateDescription()) { if (!Event.getConfig().getHideDateDescription()) {
event.setEventDate((String) data.get(EVENT_DATE)); event.setEventDate((String) data.get(EVENT_DATE));
} }
if(!Event.getConfig().getHideMainContributor()) { if (!Event.getConfig().getHideMainContributor()) {
event.setMainContributor((String) data.get(MAIN_CONTRIBUTOR)); event.setMainContributor((String) data.get(MAIN_CONTRIBUTOR));
} }
if(!Event.getConfig().getHideEventType()) { if (!Event.getConfig().getHideEventType()) {
event.setEventType((String) data.get(EVENT_TYPE)); event.setEventType((String) data.get(EVENT_TYPE));
} }
if(!Event.getConfig().getHideLinkToMap()) { if (!Event.getConfig().getHideLinkToMap()) {
event.setMapLink((String) data.get(MAP_LINK)); event.setMapLink((String) data.get(MAP_LINK));
} }
event.setLocation((String) data.get(LOCATION)); event.setLocation((String) data.get(LOCATION));
event.setLead((String) data.get(LEAD)); event.setLead((String) data.get(LEAD));
if(!Event.getConfig().getHideCost()) { if (!Event.getConfig().getHideCost()) {
event.setCost((String) data.get(COST)); event.setCost((String) data.get(COST));
} }
event.save(); event.save();