CT NewsItem

Konfiguration für den Bereich der Jahresangaben hinzugefügt.

NewsItem 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@704 8810af33-2d31-482b-a856-94f89814c4df
master
quasi 2011-01-22 12:03:31 +00:00
parent d63957b617
commit 6eaabaf7fa
3 changed files with 67 additions and 37 deletions

View File

@ -21,18 +21,35 @@ package com.arsdigita.cms.contenttypes;
import com.arsdigita.runtime.AbstractConfig;
import com.arsdigita.util.parameter.Parameter;
import com.arsdigita.util.parameter.BooleanParameter;
import com.arsdigita.util.parameter.IntegerParameter;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class NewsItemConfig extends AbstractConfig {
private final Parameter m_hideHomepageField;
private final Parameter m_startYear;
private final Parameter m_endYearDelta;
public NewsItemConfig() {
m_hideHomepageField = new BooleanParameter(
"com.arsdigita.cms.contenttypes.newsitem.hide_homepage",
Parameter.REQUIRED,
new Boolean(false));
m_startYear = new IntegerParameter(
"com.arsdigita.cms.contenttypes.newsitem.start_year",
Parameter.REQUIRED,
new Integer(GregorianCalendar.getInstance().get(Calendar.YEAR) - 1));
m_endYearDelta = new IntegerParameter(
"com.arsdigita.cms.contenttypes.newsitem.end_year_delta",
Parameter.REQUIRED,
new Integer(3));
register(m_hideHomepageField);
register(m_startYear);
register(m_endYearDelta);
loadInfo();
}
@ -40,5 +57,11 @@ public class NewsItemConfig extends AbstractConfig {
public final boolean getHideHomepageField() {
return ((Boolean) get(m_hideHomepageField)).booleanValue();
}
public final int getStartYear() {
return ((Integer) get(m_startYear)).intValue();
}
public final int getEndYearDelta() {
return ((Integer) get(m_endYearDelta)).intValue();
}
}

View File

@ -2,3 +2,13 @@ com.arsdigita.cms.contenttypes.newsitem.hide_homepage.title=Hide Homepage Field
com.arsdigita.cms.contenttypes.newsitem.hide_homepage.purpose=The Homepage Field can be hidden in the admin GUI
com.arsdigita.cms.contenttypes.newsitem.hide_homepage.example=false
com.arsdigita.cms.contenttypes.newsitem.hide_homepage.format=[boolean]
com.arsdigita.cms.contenttypes.newsitem.start_year.title=Start Year
com.arsdigita.cms.contenttypes.newsitem.start_year.purpose=Start year for the year select box
com.arsdigita.cms.contenttypes.newsitem.start_year.example=2008
com.arsdigita.cms.contenttypes.newsitem.start_year.format=[integer]
com.arsdigita.cms.contenttypes.newsitem.end_year_delta.title=End Year
com.arsdigita.cms.contenttypes.newsitem.end_year_delta.purpose=End year delta for the year select box
com.arsdigita.cms.contenttypes.newsitem.end_year_delta.example=3
com.arsdigita.cms.contenttypes.newsitem.end_year_delta.format=[integer]

View File

@ -18,7 +18,6 @@
*/
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.event.FormInitListener;
@ -36,6 +35,9 @@ import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.NewsItem;
import com.arsdigita.cms.ui.authoring.BasicPageForm;
import com.arsdigita.cms.contenttypes.util.NewsItemGlobalizationUtil;
import java.util.Calendar;
import java.util.Calendar;
import java.util.GregorianCalendar;
/**
* Form to edit the basic properties of a <code>news item</code>. These are
@ -49,7 +51,6 @@ public class NewsItemPropertyForm extends BasicPageForm
implements FormProcessListener, FormInitListener, FormSubmissionListener {
private NewsItemPropertiesStep m_step;
/** lead parameter name */
public static final String LEAD = "lead";
/** Item date parameter name */
@ -58,6 +59,9 @@ public class NewsItemPropertyForm extends BasicPageForm
/** Name of this form */
public static final String ID = "news_item_edit";
private com.arsdigita.bebop.form.Date m_newsDate;
/**
* Creates a new form to edit the NewsItem object specified
* by the item selection model passed in.
@ -81,7 +85,6 @@ public class NewsItemPropertyForm extends BasicPageForm
addSubmissionListener(this);
}
/**
* Adds widgets to the form.
*/
@ -89,8 +92,7 @@ public class NewsItemPropertyForm extends BasicPageForm
super.addWidgets();
// summary (lead)
add(new Label((String)NewsItemGlobalizationUtil.globalize
("cms.contenttypes.ui.newsitem.lead").localize()));
add(new Label((String) NewsItemGlobalizationUtil.globalize("cms.contenttypes.ui.newsitem.lead").localize()));
ParameterModel leadParam = new StringParameter(LEAD);
//leadParam
// .addParameterListener(new NotNullValidationListener());
@ -103,26 +105,22 @@ public class NewsItemPropertyForm extends BasicPageForm
if (!NewsItem.getConfig().getHideHomepageField()) {
RadioGroup homepageWidget = new RadioGroup(IS_HOMEPAGE);
homepageWidget.addOption(new Option("true",
new Label( (String)NewsItemGlobalizationUtil.globalize
("cms.ui.yes").localize())));
new Label((String) NewsItemGlobalizationUtil.globalize("cms.ui.yes").localize())));
homepageWidget.addOption(new Option("false",
new Label( (String)NewsItemGlobalizationUtil.globalize
("cms.ui.no").localize())));
new Label((String) NewsItemGlobalizationUtil.globalize("cms.ui.no").localize())));
add(new Label( (String)NewsItemGlobalizationUtil.globalize
("cms.contenttypes.ui.newsitem.homepage").localize()));
add(new Label((String) NewsItemGlobalizationUtil.globalize("cms.contenttypes.ui.newsitem.homepage").localize()));
add(homepageWidget);
}
// publication date
add(new Label((String)NewsItemGlobalizationUtil.globalize
("cms.contenttypes.ui.newsitem.date").localize()));
add(new Label((String) NewsItemGlobalizationUtil.globalize("cms.contenttypes.ui.newsitem.date").localize()));
ParameterModel newsDateParam = new DateParameter(NEWS_DATE);
newsDateParam
.addParameterListener(new NotNullValidationListener());
com.arsdigita.bebop.form.Date newsDate
= new com.arsdigita.bebop.form.Date(newsDateParam );
add(newsDate);
newsDateParam.addParameterListener(new NotNullValidationListener());
m_newsDate = new com.arsdigita.bebop.form.Date(newsDateParam);
m_newsDate.setYearRange(NewsItem.getConfig().getStartYear(),
GregorianCalendar.getInstance().get(Calendar.YEAR) + NewsItem.getConfig().getEndYearDelta());
add(m_newsDate);
}
/** Form initialisation hook. Fills widgets with data. */
@ -137,6 +135,7 @@ public class NewsItemPropertyForm extends BasicPageForm
newsDate = new java.util.Date();
}
m_newsDate.addYear(newsDate);
data.put(NEWS_DATE, newsDate);
data.put(LEAD, item.getLead());
if (!NewsItem.getConfig().getHideHomepageField()) {
@ -146,9 +145,8 @@ public class NewsItemPropertyForm 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());
}
}
@ -161,8 +159,7 @@ public class NewsItemPropertyForm extends BasicPageForm
// save only if save button was newsed
if (item != null
&& getSaveCancelSection().getSaveButton()
.isSelected(fse.getPageState())) {
&& getSaveCancelSection().getSaveButton().isSelected(fse.getPageState())) {
item.setNewsDate((java.util.Date) data.get(NEWS_DATE));
item.setLead((String) data.get(LEAD));