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.runtime.AbstractConfig;
|
||||||
import com.arsdigita.util.parameter.Parameter;
|
import com.arsdigita.util.parameter.Parameter;
|
||||||
import com.arsdigita.util.parameter.BooleanParameter;
|
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 {
|
public class NewsItemConfig extends AbstractConfig {
|
||||||
|
|
||||||
private final Parameter m_hideHomepageField;
|
private final Parameter m_hideHomepageField;
|
||||||
|
private final Parameter m_startYear;
|
||||||
|
private final Parameter m_endYearDelta;
|
||||||
|
|
||||||
public NewsItemConfig() {
|
public NewsItemConfig() {
|
||||||
m_hideHomepageField = new BooleanParameter(
|
m_hideHomepageField = new BooleanParameter(
|
||||||
"com.arsdigita.cms.contenttypes.newsitem.hide_homepage",
|
"com.arsdigita.cms.contenttypes.newsitem.hide_homepage",
|
||||||
Parameter.REQUIRED,
|
Parameter.REQUIRED,
|
||||||
new Boolean(false));
|
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_hideHomepageField);
|
||||||
|
register(m_startYear);
|
||||||
|
register(m_endYearDelta);
|
||||||
|
|
||||||
loadInfo();
|
loadInfo();
|
||||||
}
|
}
|
||||||
|
|
@ -40,5 +57,11 @@ public class NewsItemConfig extends AbstractConfig {
|
||||||
public final boolean getHideHomepageField() {
|
public final boolean getHideHomepageField() {
|
||||||
return ((Boolean) get(m_hideHomepageField)).booleanValue();
|
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.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.example=false
|
||||||
com.arsdigita.cms.contenttypes.newsitem.hide_homepage.format=[boolean]
|
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;
|
package com.arsdigita.cms.contenttypes.ui;
|
||||||
|
|
||||||
|
|
||||||
import com.arsdigita.bebop.FormData;
|
import com.arsdigita.bebop.FormData;
|
||||||
import com.arsdigita.bebop.Label;
|
import com.arsdigita.bebop.Label;
|
||||||
import com.arsdigita.bebop.event.FormInitListener;
|
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.contenttypes.NewsItem;
|
||||||
import com.arsdigita.cms.ui.authoring.BasicPageForm;
|
import com.arsdigita.cms.ui.authoring.BasicPageForm;
|
||||||
import com.arsdigita.cms.contenttypes.util.NewsItemGlobalizationUtil;
|
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
|
* Form to edit the basic properties of a <code>news item</code>. These are
|
||||||
|
|
@ -46,10 +48,9 @@ import com.arsdigita.cms.contenttypes.util.NewsItemGlobalizationUtil;
|
||||||
* This form can be extended to create forms for NewsItem subclasses.
|
* This form can be extended to create forms for NewsItem subclasses.
|
||||||
**/
|
**/
|
||||||
public class NewsItemPropertyForm extends BasicPageForm
|
public class NewsItemPropertyForm extends BasicPageForm
|
||||||
implements FormProcessListener, FormInitListener, FormSubmissionListener {
|
implements FormProcessListener, FormInitListener, FormSubmissionListener {
|
||||||
|
|
||||||
private NewsItemPropertiesStep m_step;
|
private NewsItemPropertiesStep m_step;
|
||||||
|
|
||||||
/** lead parameter name */
|
/** lead parameter name */
|
||||||
public static final String LEAD = "lead";
|
public static final String LEAD = "lead";
|
||||||
/** Item date parameter name */
|
/** Item date parameter name */
|
||||||
|
|
@ -58,14 +59,17 @@ public class NewsItemPropertyForm extends BasicPageForm
|
||||||
/** Name of this form */
|
/** Name of this form */
|
||||||
public static final String ID = "news_item_edit";
|
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
|
* Creates a new form to edit the NewsItem object specified
|
||||||
* by the item selection model passed in.
|
* by the item selection model passed in.
|
||||||
* @param itemModel The ItemSelectionModel to use to obtain the
|
* @param itemModel The ItemSelectionModel to use to obtain the
|
||||||
* NewsItem to work on
|
* NewsItem to work on
|
||||||
*/
|
*/
|
||||||
public NewsItemPropertyForm( ItemSelectionModel itemModel ) {
|
public NewsItemPropertyForm(ItemSelectionModel itemModel) {
|
||||||
this( itemModel, null );
|
this(itemModel, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -75,13 +79,12 @@ public class NewsItemPropertyForm extends BasicPageForm
|
||||||
* NewsItem to work on
|
* NewsItem to work on
|
||||||
* @param step The NewsItemPropertiesStep which controls this form.
|
* @param step The NewsItemPropertiesStep which controls this form.
|
||||||
*/
|
*/
|
||||||
public NewsItemPropertyForm( ItemSelectionModel itemModel, NewsItemPropertiesStep step ) {
|
public NewsItemPropertyForm(ItemSelectionModel itemModel, NewsItemPropertiesStep step) {
|
||||||
super( ID, itemModel );
|
super(ID, itemModel);
|
||||||
m_step = step;
|
m_step = step;
|
||||||
addSubmissionListener(this);
|
addSubmissionListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds widgets to the form.
|
* Adds widgets to the form.
|
||||||
*/
|
*/
|
||||||
|
|
@ -89,8 +92,7 @@ public class NewsItemPropertyForm extends BasicPageForm
|
||||||
super.addWidgets();
|
super.addWidgets();
|
||||||
|
|
||||||
// summary (lead)
|
// summary (lead)
|
||||||
add(new Label((String)NewsItemGlobalizationUtil.globalize
|
add(new Label((String) NewsItemGlobalizationUtil.globalize("cms.contenttypes.ui.newsitem.lead").localize()));
|
||||||
("cms.contenttypes.ui.newsitem.lead").localize()));
|
|
||||||
ParameterModel leadParam = new StringParameter(LEAD);
|
ParameterModel leadParam = new StringParameter(LEAD);
|
||||||
//leadParam
|
//leadParam
|
||||||
// .addParameterListener(new NotNullValidationListener());
|
// .addParameterListener(new NotNullValidationListener());
|
||||||
|
|
@ -103,26 +105,22 @@ public class NewsItemPropertyForm extends BasicPageForm
|
||||||
if (!NewsItem.getConfig().getHideHomepageField()) {
|
if (!NewsItem.getConfig().getHideHomepageField()) {
|
||||||
RadioGroup homepageWidget = new RadioGroup(IS_HOMEPAGE);
|
RadioGroup homepageWidget = new RadioGroup(IS_HOMEPAGE);
|
||||||
homepageWidget.addOption(new Option("true",
|
homepageWidget.addOption(new Option("true",
|
||||||
new Label( (String)NewsItemGlobalizationUtil.globalize
|
new Label((String) NewsItemGlobalizationUtil.globalize("cms.ui.yes").localize())));
|
||||||
("cms.ui.yes").localize())));
|
|
||||||
homepageWidget.addOption(new Option("false",
|
homepageWidget.addOption(new Option("false",
|
||||||
new Label( (String)NewsItemGlobalizationUtil.globalize
|
new Label((String) NewsItemGlobalizationUtil.globalize("cms.ui.no").localize())));
|
||||||
("cms.ui.no").localize())));
|
|
||||||
|
|
||||||
add(new Label( (String)NewsItemGlobalizationUtil.globalize
|
add(new Label((String) NewsItemGlobalizationUtil.globalize("cms.contenttypes.ui.newsitem.homepage").localize()));
|
||||||
("cms.contenttypes.ui.newsitem.homepage").localize()));
|
|
||||||
add(homepageWidget);
|
add(homepageWidget);
|
||||||
}
|
}
|
||||||
|
|
||||||
// publication date
|
// publication date
|
||||||
add(new Label((String)NewsItemGlobalizationUtil.globalize
|
add(new Label((String) NewsItemGlobalizationUtil.globalize("cms.contenttypes.ui.newsitem.date").localize()));
|
||||||
("cms.contenttypes.ui.newsitem.date").localize()));
|
|
||||||
ParameterModel newsDateParam = new DateParameter(NEWS_DATE);
|
ParameterModel newsDateParam = new DateParameter(NEWS_DATE);
|
||||||
newsDateParam
|
newsDateParam.addParameterListener(new NotNullValidationListener());
|
||||||
.addParameterListener(new NotNullValidationListener());
|
m_newsDate = new com.arsdigita.bebop.form.Date(newsDateParam);
|
||||||
com.arsdigita.bebop.form.Date newsDate
|
m_newsDate.setYearRange(NewsItem.getConfig().getStartYear(),
|
||||||
= new com.arsdigita.bebop.form.Date(newsDateParam );
|
GregorianCalendar.getInstance().get(Calendar.YEAR) + NewsItem.getConfig().getEndYearDelta());
|
||||||
add(newsDate);
|
add(m_newsDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Form initialisation hook. Fills widgets with data. */
|
/** Form initialisation hook. Fills widgets with data. */
|
||||||
|
|
@ -132,23 +130,23 @@ public class NewsItemPropertyForm extends BasicPageForm
|
||||||
|
|
||||||
// set a default item date, if none set
|
// set a default item date, if none set
|
||||||
java.util.Date newsDate = item.getNewsDate();
|
java.util.Date newsDate = item.getNewsDate();
|
||||||
if(newsDate == null) {
|
if (newsDate == null) {
|
||||||
// new Date is initialised to current time
|
// new Date is initialised to current time
|
||||||
newsDate = new java.util.Date();
|
newsDate = new java.util.Date();
|
||||||
}
|
}
|
||||||
|
|
||||||
data.put(NEWS_DATE, newsDate);
|
m_newsDate.addYear(newsDate);
|
||||||
data.put(LEAD, item.getLead());
|
data.put(NEWS_DATE, newsDate);
|
||||||
|
data.put(LEAD, item.getLead());
|
||||||
if (!NewsItem.getConfig().getHideHomepageField()) {
|
if (!NewsItem.getConfig().getHideHomepageField()) {
|
||||||
data.put(IS_HOMEPAGE, item.isHomepage());
|
data.put(IS_HOMEPAGE, item.isHomepage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -160,9 +158,8 @@ public class NewsItemPropertyForm extends BasicPageForm
|
||||||
NewsItem item = (NewsItem) super.processBasicWidgets(fse);
|
NewsItem item = (NewsItem) super.processBasicWidgets(fse);
|
||||||
|
|
||||||
// save only if save button was newsed
|
// save only if save button was newsed
|
||||||
if(item != null
|
if (item != null
|
||||||
&& getSaveCancelSection().getSaveButton()
|
&& getSaveCancelSection().getSaveButton().isSelected(fse.getPageState())) {
|
||||||
.isSelected(fse.getPageState())) {
|
|
||||||
|
|
||||||
item.setNewsDate((java.util.Date) data.get(NEWS_DATE));
|
item.setNewsDate((java.util.Date) data.get(NEWS_DATE));
|
||||||
item.setLead((String) data.get(LEAD));
|
item.setLead((String) data.get(LEAD));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue