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-94f89814c4dfmaster
parent
d63957b617
commit
6eaabaf7fa
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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,14 +59,17 @@ 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.
|
||||
* @param itemModel The ItemSelectionModel to use to obtain the
|
||||
* NewsItem to work on
|
||||
*/
|
||||
public NewsItemPropertyForm( ItemSelectionModel itemModel ) {
|
||||
this( itemModel, null );
|
||||
public NewsItemPropertyForm(ItemSelectionModel itemModel) {
|
||||
this(itemModel, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -75,13 +79,12 @@ public class NewsItemPropertyForm extends BasicPageForm
|
|||
* NewsItem to work on
|
||||
* @param step The NewsItemPropertiesStep which controls this form.
|
||||
*/
|
||||
public NewsItemPropertyForm( ItemSelectionModel itemModel, NewsItemPropertiesStep step ) {
|
||||
super( ID, itemModel );
|
||||
public NewsItemPropertyForm(ItemSelectionModel itemModel, NewsItemPropertiesStep step) {
|
||||
super(ID, itemModel);
|
||||
m_step = step;
|
||||
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. */
|
||||
|
|
@ -132,11 +130,12 @@ public class NewsItemPropertyForm extends BasicPageForm
|
|||
|
||||
// set a default item date, if none set
|
||||
java.util.Date newsDate = item.getNewsDate();
|
||||
if(newsDate == null) {
|
||||
if (newsDate == null) {
|
||||
// new Date is initialised to current time
|
||||
newsDate = new java.util.Date();
|
||||
}
|
||||
|
||||
m_newsDate.addYear(newsDate);
|
||||
data.put(NEWS_DATE, newsDate);
|
||||
data.put(LEAD, item.getLead());
|
||||
if (!NewsItem.getConfig().getHideHomepageField()) {
|
||||
|
|
@ -145,10 +144,9 @@ public class NewsItemPropertyForm extends BasicPageForm
|
|||
}
|
||||
|
||||
/** 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());
|
||||
}
|
||||
}
|
||||
|
|
@ -160,9 +158,8 @@ public class NewsItemPropertyForm extends BasicPageForm
|
|||
NewsItem item = (NewsItem) super.processBasicWidgets(fse);
|
||||
|
||||
// save only if save button was newsed
|
||||
if(item != null
|
||||
&& getSaveCancelSection().getSaveButton()
|
||||
.isSelected(fse.getPageState())) {
|
||||
if (item != null
|
||||
&& getSaveCancelSection().getSaveButton().isSelected(fse.getPageState())) {
|
||||
|
||||
item.setNewsDate((java.util.Date) data.get(NEWS_DATE));
|
||||
item.setLead((String) data.get(LEAD));
|
||||
|
|
|
|||
Loading…
Reference in New Issue