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;
@ -51,23 +50,19 @@ import java.util.GregorianCalendar;
* This form can be extended to create forms for Event subclasses.
**/
public class EventPropertyForm extends BasicPageForm
implements FormProcessListener, FormInitListener, FormSubmissionListener {
implements FormProcessListener, FormInitListener, FormSubmissionListener {
/** 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);
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 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.
@ -88,9 +87,10 @@ public class EventPropertyForm extends BasicPageForm
* @param itemModel The ItemSelectionModel to use to obtain the Event to
* work on
**/
public EventPropertyForm( ItemSelectionModel itemModel ) {
this(itemModel,null);
public EventPropertyForm(ItemSelectionModel itemModel) {
this(itemModel, null);
}
/**
* Creates a new form to edit the Event object specified by the item
* selection model passed in.
@ -99,8 +99,8 @@ public class EventPropertyForm extends BasicPageForm
* work on
* @param step The EventPropertiesStep which controls this form.
**/
public EventPropertyForm( ItemSelectionModel itemModel, EventPropertiesStep step ) {
super( ID, itemModel );
public EventPropertyForm(ItemSelectionModel itemModel, EventPropertiesStep step) {
super(ID, itemModel);
m_step = step;
addSubmissionListener(this);
}
@ -112,79 +112,69 @@ public class EventPropertyForm extends BasicPageForm
super.addWidgets();
/* Summary (lead) */
add(new Label((String)EventGlobalizationUtil.globalize
("cms.contenttypes.ui.event.lead").localize()));
ParameterModel leadParam = new StringParameter(LEAD);
add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.lead").localize()));
ParameterModel leadParam = new StringParameter(LEAD);
//leadParam
// .addParameterListener(new NotNullValidationListener());
TextArea lead = new TextArea(leadParam);
lead.setCols(50);
lead.setRows(5);
add(lead);
TextArea lead = new TextArea(leadParam);
lead.setCols(50);
lead.setRows(5);
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(),
GregorianCalendar.getInstance().get(Calendar.YEAR) + Event.getConfig().getEndYearDelta());
add(startDate);
m_startDate.setYearRange(Event.getConfig().getStartYear(),
GregorianCalendar.getInstance().get(Calendar.YEAR) + Event.getConfig().getEndYearDelta());
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(),
GregorianCalendar.getInstance().get(Calendar.YEAR) + Event.getConfig().getEndYearDelta());
add(endDate);
m_endDate = new com.arsdigita.bebop.form.Date(eventEndDateParam);
m_endDate.setYearRange(Event.getConfig().getStartYear(),
GregorianCalendar.getInstance().get(Calendar.YEAR) + Event.getConfig().getEndYearDelta());
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()));
ParameterModel eventDateParam = new StringParameter(EVENT_DATE);
//eventDateParam
// .addParameterListener(new NotNullValidationListener());
if(Event.getConfig().getUseHtmlDateDescription()) {
CMSDHTMLEditor eventDate = new CMSDHTMLEditor(eventDateParam);
eventDate.setCols(40);
eventDate.setRows(8);
add(eventDate);
}
else {
eventDateParam.addParameterListener( new StringInRangeValidationListener(0, 100) );
TextArea eventDate = new TextArea(eventDateParam);
eventDate.setCols(50);
eventDate.setRows(2);
add(eventDate);
}
}
if (!Event.getConfig().getHideDateDescription()) {
add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.date_description").localize()));
ParameterModel eventDateParam = new StringParameter(EVENT_DATE);
//eventDateParam
// .addParameterListener(new NotNullValidationListener());
if (Event.getConfig().getUseHtmlDateDescription()) {
CMSDHTMLEditor eventDate = new CMSDHTMLEditor(eventDateParam);
eventDate.setCols(40);
eventDate.setRows(8);
add(eventDate);
} else {
eventDateParam.addParameterListener(new StringInRangeValidationListener(0, 100));
TextArea eventDate = new TextArea(eventDateParam);
eventDate.setCols(50);
eventDate.setRows(2);
add(eventDate);
}
}
/* 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());
@ -195,58 +185,54 @@ 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()));
ParameterModel mainContributorParam =
new StringParameter(MAIN_CONTRIBUTOR);
//mainContributorParam
// .addParameterListener(new NotNullValidationListener());
CMSDHTMLEditor mainContributor = new CMSDHTMLEditor(mainContributorParam);
mainContributor.setCols(40);
mainContributor.setRows(10);
add(mainContributor);
}
if (!Event.getConfig().getHideMainContributor()) {
add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.main_contributor").localize()));
ParameterModel mainContributorParam =
new StringParameter(MAIN_CONTRIBUTOR);
//mainContributorParam
// .addParameterListener(new NotNullValidationListener());
CMSDHTMLEditor mainContributor = new CMSDHTMLEditor(mainContributorParam);
mainContributor.setCols(40);
mainContributor.setRows(10);
add(mainContributor);
}
/* optional: event type */
if(!Event.getConfig().getHideEventType()) {
add(new Label((String)EventGlobalizationUtil.globalize
("cms.contenttypes.ui.event.event_type").localize()));
ParameterModel eventTypeParam = new StringParameter(EVENT_TYPE);
//eventTypeParam
// .addParameterListener(new NotNullValidationListener());
TextField eventType = new TextField(eventTypeParam);
eventType.setSize(30);
eventType.setMaxLength(30);
add(eventType);
}
if (!Event.getConfig().getHideEventType()) {
add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.event_type").localize()));
ParameterModel eventTypeParam = new StringParameter(EVENT_TYPE);
//eventTypeParam
// .addParameterListener(new NotNullValidationListener());
TextField eventType = new TextField(eventTypeParam);
eventType.setSize(30);
eventType.setMaxLength(30);
add(eventType);
}
/* optional: link to map */
if(!Event.getConfig().getHideLinkToMap()) {
add(new Label((String)EventGlobalizationUtil.globalize
("cms.contenttypes.ui.event.link_to_map").localize()));
ParameterModel mapLinkParam = new StringParameter(MAP_LINK);
//mapLinkParam
// .addParameterListener(new NotNullValidationListener());
TextArea mapLink = new TextArea(mapLinkParam);
mapLink.setCols(40);
mapLink.setRows(2);
add(mapLink);
}
if (!Event.getConfig().getHideLinkToMap()) {
add(new Label((String) EventGlobalizationUtil.globalize("cms.contenttypes.ui.event.link_to_map").localize()));
ParameterModel mapLinkParam = new StringParameter(MAP_LINK);
//mapLinkParam
// .addParameterListener(new NotNullValidationListener());
TextArea mapLink = new TextArea(mapLinkParam);
mapLink.setCols(40);
mapLink.setRows(2);
add(mapLink);
}
/* optional: costs */
if(!Event.getConfig().getHideCost()) {
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);
cost.setMaxLength(30);
add(cost);
}
if (!Event.getConfig().getHideCost()) {
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);
cost.setMaxLength(30);
add(cost);
}
}
@ -258,57 +244,58 @@ 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);
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()) {
data.put(EVENT_DATE, event.getEventDate());
}
data.put(LOCATION, event.getLocation());
if(!Event.getConfig().getHideMainContributor()) {
data.put(MAIN_CONTRIBUTOR, event.getMainContributor());
}
if(!Event.getConfig().getHideEventType()) {
data.put(EVENT_TYPE, event.getEventType());
}
if(!Event.getConfig().getHideLinkToMap()) {
data.put(MAP_LINK, event.getMapLink());
}
if(!Event.getConfig().getHideCost()) {
data.put(COST, event.getCost());
}
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());
data.put(END_DATE, event.getEndDate());
data.put(END_TIME, event.getEndTime());
if (!Event.getConfig().getHideDateDescription()) {
data.put(EVENT_DATE, event.getEventDate());
}
data.put(LOCATION, event.getLocation());
if (!Event.getConfig().getHideMainContributor()) {
data.put(MAIN_CONTRIBUTOR, event.getMainContributor());
}
if (!Event.getConfig().getHideEventType()) {
data.put(EVENT_TYPE, event.getEventType());
}
if (!Event.getConfig().getHideLinkToMap()) {
data.put(MAP_LINK, event.getMapLink());
}
if (!Event.getConfig().getHideCost()) {
data.put(COST, event.getCost());
}
}
/** Cancels streamlined editing. */
public void submitted( FormSectionEvent fse ) {
if (m_step != null &&
getSaveCancelSection().getCancelButton()
.isSelected( fse.getPageState())) {
public void submitted(FormSectionEvent fse) {
if (m_step != null
&& getSaveCancelSection().getCancelButton().isSelected(fse.getPageState())) {
m_step.cancelStreamlinedCreation(fse.getPageState());
}
}
@ -317,37 +304,35 @@ 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));
event.setEndDate((java.util.Date) data.get(END_DATE));
event.setEndTime((java.util.Date) data.get(END_TIME));
//date_description
if(!Event.getConfig().getHideDateDescription()) {
event.setEventDate((String) data.get(EVENT_DATE));
}
//date_description
if (!Event.getConfig().getHideDateDescription()) {
event.setEventDate((String) data.get(EVENT_DATE));
}
if(!Event.getConfig().getHideMainContributor()) {
event.setMainContributor((String) data.get(MAIN_CONTRIBUTOR));
}
if(!Event.getConfig().getHideEventType()) {
event.setEventType((String) data.get(EVENT_TYPE));
}
if(!Event.getConfig().getHideLinkToMap()) {
event.setMapLink((String) data.get(MAP_LINK));
}
if (!Event.getConfig().getHideMainContributor()) {
event.setMainContributor((String) data.get(MAIN_CONTRIBUTOR));
}
if (!Event.getConfig().getHideEventType()) {
event.setEventType((String) data.get(EVENT_TYPE));
}
if (!Event.getConfig().getHideLinkToMap()) {
event.setMapLink((String) data.get(MAP_LINK));
}
event.setLocation((String) data.get(LOCATION));
event.setLead((String) data.get(LEAD));
if(!Event.getConfig().getHideCost()) {
event.setCost((String) data.get(COST));
}
if (!Event.getConfig().getHideCost()) {
event.setCost((String) data.get(COST));
}
event.save();
}
if (m_step != null) {