Replaced Label widget by setLabel / setHint for CT Event, some reformatting and documentation added.
git-svn-id: https://svn.libreccm.org/ccm/trunk@2735 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
740f9b208a
commit
7cdf763aff
|
|
@ -20,7 +20,7 @@
|
||||||
package com.arsdigita.cms.contenttypes;
|
package com.arsdigita.cms.contenttypes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loader executes nonrecurring once at install time and loads the e-Form
|
* Loader executes nonrecurring once at install time and loads the Address
|
||||||
* contenttype package persistently into database.
|
* contenttype package persistently into database.
|
||||||
*
|
*
|
||||||
* It uses the base class to create the database schema and the required
|
* It uses the base class to create the database schema and the required
|
||||||
|
|
@ -34,7 +34,7 @@ package com.arsdigita.cms.contenttypes;
|
||||||
public class AddressLoader extends AbstractContentTypeLoader {
|
public class AddressLoader extends AbstractContentTypeLoader {
|
||||||
|
|
||||||
/** Defines the xml file containing the Address content type property
|
/** Defines the xml file containing the Address content type property
|
||||||
* definitions. */
|
* definitions. */
|
||||||
private static final String[] TYPES = {
|
private static final String[] TYPES = {
|
||||||
"/WEB-INF/content-types/com/arsdigita/cms/contenttypes/Address.xml"
|
"/WEB-INF/content-types/com/arsdigita/cms/contenttypes/Address.xml"
|
||||||
};
|
};
|
||||||
|
|
@ -48,6 +48,7 @@ public class AddressLoader extends AbstractContentTypeLoader {
|
||||||
*
|
*
|
||||||
* @return String Atring Array of fully qualified file names
|
* @return String Atring Array of fully qualified file names
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public String[] getTypes() {
|
public String[] getTypes() {
|
||||||
return TYPES;
|
return TYPES;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,3 +22,5 @@ cms.contenttypes.ui.event.cost=Cost:
|
||||||
cms.contenttypes.ui.event.there_are_no_events=There are no events.
|
cms.contenttypes.ui.event.there_are_no_events=There are no events.
|
||||||
cms.contenttypes.event.type_label=Event
|
cms.contenttypes.event.type_label=Event
|
||||||
cms.contenttypes.event_type_not_registered=Type not registered
|
cms.contenttypes.event_type_not_registered=Type not registered
|
||||||
|
cms.contenttypes.ui.event.lead_hint=A short description of the focus of the event and its main topic. Should be no longer than 2-3 sentences. The lead text will be displayed in the detail view of the event as well as in listings of events.
|
||||||
|
cms.contenttypes.ui.event.end_date_hint=Optionally enter an end date. It is displayed on the detail view as well as in listings of other short references.
|
||||||
|
|
|
||||||
|
|
@ -23,3 +23,5 @@ cms.contenttypes.ui.event.cost=Kosten:
|
||||||
cms.contenttypes.ui.event.there_are_no_events=Es sind keine Veranstaltungen vorhanden.
|
cms.contenttypes.ui.event.there_are_no_events=Es sind keine Veranstaltungen vorhanden.
|
||||||
cms.contenttypes.event.type_label=Veranstaltung
|
cms.contenttypes.event.type_label=Veranstaltung
|
||||||
cms.contenttypes.event_type_not_registered=Typ nicht registriert
|
cms.contenttypes.event_type_not_registered=Typ nicht registriert
|
||||||
|
cms.contenttypes.ui.event.lead_hint=Kurze Beschreibung der Veranstaltung und ihres zentralen Themas. Die L\u00e4nge sollte maximal 2-3 S\u00e4tze betragen. Die Zusammenfassung wird sowohl in der Vollansicht der Veranstaltung als auch in allen Teilsichten und Listen angezeigt.
|
||||||
|
cms.contenttypes.ui.event.end_date_hint=Ein optionales Enddatum; es wird sowohl in der Vollansicht als auch in allen Listen und sonstigen Referencen angezeigt.
|
||||||
|
|
|
||||||
|
|
@ -23,3 +23,5 @@ cms.contenttypes.ui.event.link_to_map=Link to Map
|
||||||
cms.contenttypes.ui.event.cost=Cost:
|
cms.contenttypes.ui.event.cost=Cost:
|
||||||
cms.contenttypes.ui.event.there_are_no_events=Il n'y a aucun \u00e9venement
|
cms.contenttypes.ui.event.there_are_no_events=Il n'y a aucun \u00e9venement
|
||||||
cms.contenttypes.event.type_label=Event
|
cms.contenttypes.event.type_label=Event
|
||||||
|
cms.contenttypes.ui.event.lead_hint=A short description of the focus of the event and its main topic. Should be no longer than 2-3 sentences. The lead text will be displayed in the detail view of the event as well as in listings of events.
|
||||||
|
cms.contenttypes.ui.event.end_date_hint=Optionally enter an end date. It is displayed on the detail view as well as in listings of other short references.
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,6 @@ import com.arsdigita.globalization.GlobalizationHelper;
|
||||||
import com.arsdigita.toolbox.ui.DomainObjectPropertySheet;
|
import com.arsdigita.toolbox.ui.DomainObjectPropertySheet;
|
||||||
|
|
||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Authoring step to view/edit the simple attributes of the Event content type (and
|
* Authoring step to view/edit the simple attributes of the Event content type (and
|
||||||
|
|
@ -141,7 +139,7 @@ public class EventPropertiesStep extends SimpleEditStep {
|
||||||
return sheet;
|
return sheet;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Private class which implements an AttributeFormatter interface for
|
* Private class which implements an AttributeFormatter interface for
|
||||||
* date values.
|
* date values.
|
||||||
* Its format(...) class returns a string representation for either a
|
* Its format(...) class returns a string representation for either a
|
||||||
|
|
|
||||||
|
|
@ -117,69 +117,93 @@ public class EventPropertyForm extends BasicPageForm
|
||||||
super.addWidgets();
|
super.addWidgets();
|
||||||
|
|
||||||
/* Summary (lead) */
|
/* Summary (lead) */
|
||||||
add(new Label(EventGlobalizationUtil
|
// add(new Label(EventGlobalizationUtil
|
||||||
.globalize("cms.contenttypes.ui.event.lead")) );
|
// .globalize("cms.contenttypes.ui.event.lead")) );
|
||||||
ParameterModel leadParam = new StringParameter(LEAD);
|
ParameterModel leadParam = new StringParameter(LEAD);
|
||||||
if(Event.getConfig().isLeadTextOptional()) {
|
if(Event.getConfig().isLeadTextOptional()) {
|
||||||
leadParam.addParameterListener(new NotNullValidationListener());
|
leadParam.addParameterListener(new NotNullValidationListener());
|
||||||
}
|
}
|
||||||
TextArea lead = new TextArea(leadParam);
|
TextArea lead = new TextArea(leadParam);
|
||||||
|
lead.setLabel(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.lead"));
|
||||||
lead.setCols(50);
|
lead.setCols(50);
|
||||||
lead.setRows(5);
|
lead.setRows(5);
|
||||||
add(lead);
|
add(lead);
|
||||||
|
|
||||||
/* Start date and time */
|
/* Start date and time */
|
||||||
|
// add(new Label(EventGlobalizationUtil
|
||||||
|
// .globalize("cms.contenttypes.ui.event.start_date")) );
|
||||||
ParameterModel eventStartDateParam = new DateParameter(START_DATE);
|
ParameterModel eventStartDateParam = new DateParameter(START_DATE);
|
||||||
add(new Label(EventGlobalizationUtil
|
|
||||||
.globalize("cms.contenttypes.ui.event.start_date")) );
|
|
||||||
eventStartDateParam.addParameterListener(new NotNullValidationListener());
|
eventStartDateParam.addParameterListener(new NotNullValidationListener());
|
||||||
// Use bebop date instead of java.util.date
|
// Use bebop date instead of java.util.date
|
||||||
m_startDate = new com.arsdigita.bebop.form.Date(eventStartDateParam);
|
m_startDate = new com.arsdigita.bebop.form.Date(eventStartDateParam);
|
||||||
|
m_startDate.setLabel(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.start_date"));
|
||||||
// Set the upper und lower boundary of the year select box
|
// Set the upper und lower boundary of the year select box
|
||||||
m_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(m_startDate);
|
add(m_startDate);
|
||||||
|
|
||||||
|
// add(new Label(EventGlobalizationUtil
|
||||||
|
// .globalize("cms.contenttypes.ui.event.start_time")) );
|
||||||
ParameterModel eventStartTimeParam = new TimeParameter(START_TIME);
|
ParameterModel eventStartTimeParam = new TimeParameter(START_TIME);
|
||||||
add(new Label(EventGlobalizationUtil
|
|
||||||
.globalize("cms.contenttypes.ui.event.start_time")) );
|
|
||||||
if(Event.getConfig().isStartTimeOptional()) {
|
if(Event.getConfig().isStartTimeOptional()) {
|
||||||
eventStartTimeParam.addParameterListener(new NotNullValidationListener());
|
eventStartTimeParam.addParameterListener(new NotNullValidationListener());
|
||||||
}
|
}
|
||||||
Time startTime = new Time(eventStartTimeParam);
|
Time startTime = new Time(eventStartTimeParam);
|
||||||
|
startTime.setLabel(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.start_time"));
|
||||||
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(EventGlobalizationUtil
|
// add(new Label(EventGlobalizationUtil
|
||||||
.globalize("cms.contenttypes.ui.event.end_date")));
|
// .globalize("cms.contenttypes.ui.event.end_date")));
|
||||||
// Use bebop date instead of java.util.date
|
// Use bebop date instead of java.util.date
|
||||||
m_endDate = new com.arsdigita.bebop.form.Date(eventEndDateParam);
|
m_endDate = new com.arsdigita.bebop.form.Date(eventEndDateParam);
|
||||||
|
m_endDate.setLabel(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.end_date"));
|
||||||
|
m_endDate.setHint(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.end_date_hint"));
|
||||||
m_endDate.setYearRange(Event.getConfig().getStartYear(),
|
m_endDate.setYearRange(Event.getConfig().getStartYear(),
|
||||||
GregorianCalendar.getInstance().get(Calendar.YEAR) + Event.getConfig().getEndYearDelta());
|
GregorianCalendar.getInstance().get(Calendar.YEAR) + Event.getConfig().getEndYearDelta());
|
||||||
add(m_endDate);
|
add(m_endDate);
|
||||||
|
|
||||||
ParameterModel eventEndTimeParam = new TimeParameter(END_TIME);
|
ParameterModel eventEndTimeParam = new TimeParameter(END_TIME);
|
||||||
add(new Label(EventGlobalizationUtil
|
// add(new Label(EventGlobalizationUtil
|
||||||
.globalize("cms.contenttypes.ui.event.end_time")));
|
// .globalize("cms.contenttypes.ui.event.end_time")));
|
||||||
Time endTime = new Time(eventEndTimeParam);
|
Time endTime = new Time(eventEndTimeParam);
|
||||||
|
endTime.setLabel(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.end_time"));
|
||||||
|
endTime.setHint(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.end_time_hint"));
|
||||||
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(EventGlobalizationUtil
|
//add(new Label(EventGlobalizationUtil
|
||||||
.globalize("cms.contenttypes.ui.event.date_description")));
|
// .globalize("cms.contenttypes.ui.event.date_description")));
|
||||||
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.setLabel(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.date_description"));
|
||||||
|
eventDate.setHint(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.date_description_hint"));
|
||||||
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.setLabel(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.date_description"));
|
||||||
|
eventDate.setHint(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.date_description_hint"));
|
||||||
eventDate.setCols(50);
|
eventDate.setCols(50);
|
||||||
eventDate.setRows(2);
|
eventDate.setRows(2);
|
||||||
add(eventDate);
|
add(eventDate);
|
||||||
|
|
@ -188,12 +212,16 @@ public class EventPropertyForm extends BasicPageForm
|
||||||
|
|
||||||
|
|
||||||
/* extensive description of location */
|
/* extensive description of location */
|
||||||
add(new Label(EventGlobalizationUtil
|
// add(new Label(EventGlobalizationUtil
|
||||||
.globalize("cms.contenttypes.ui.event.location")));
|
// .globalize("cms.contenttypes.ui.event.location")));
|
||||||
ParameterModel locationParam = new StringParameter(LOCATION);
|
ParameterModel locationParam = new StringParameter(LOCATION);
|
||||||
//locationParam
|
//locationParam
|
||||||
// .addParameterListener(new NotNullValidationListener());
|
// .addParameterListener(new NotNullValidationListener());
|
||||||
CMSDHTMLEditor location = new CMSDHTMLEditor(locationParam);
|
CMSDHTMLEditor location = new CMSDHTMLEditor(locationParam);
|
||||||
|
location.setLabel(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.location"));
|
||||||
|
location.setHint(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.location_hint"));
|
||||||
location.setCols(40);
|
location.setCols(40);
|
||||||
location.setRows(8);
|
location.setRows(8);
|
||||||
add(location);
|
add(location);
|
||||||
|
|
@ -201,13 +229,17 @@ public class EventPropertyForm extends BasicPageForm
|
||||||
|
|
||||||
/* optional: main contributor */
|
/* optional: main contributor */
|
||||||
if (!Event.getConfig().getHideMainContributor()) {
|
if (!Event.getConfig().getHideMainContributor()) {
|
||||||
add(new Label(EventGlobalizationUtil
|
// add(new Label(EventGlobalizationUtil
|
||||||
.globalize("cms.contenttypes.ui.event.main_contributor")));
|
// .globalize("cms.contenttypes.ui.event.main_contributor")));
|
||||||
ParameterModel mainContributorParam =
|
ParameterModel mainContributorParam =
|
||||||
new StringParameter(MAIN_CONTRIBUTOR);
|
new StringParameter(MAIN_CONTRIBUTOR);
|
||||||
//mainContributorParam
|
//mainContributorParam.addParameterListener(
|
||||||
// .addParameterListener(new NotNullValidationListener());
|
// new NotNullValidationListener());
|
||||||
CMSDHTMLEditor mainContributor = new CMSDHTMLEditor(mainContributorParam);
|
CMSDHTMLEditor mainContributor = new CMSDHTMLEditor(mainContributorParam);
|
||||||
|
mainContributor.setLabel(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.main_contributor"));
|
||||||
|
mainContributor.setHint(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.main_contributor_hint"));
|
||||||
mainContributor.setCols(40);
|
mainContributor.setCols(40);
|
||||||
mainContributor.setRows(10);
|
mainContributor.setRows(10);
|
||||||
add(mainContributor);
|
add(mainContributor);
|
||||||
|
|
@ -216,12 +248,16 @@ public class EventPropertyForm extends BasicPageForm
|
||||||
|
|
||||||
/* optional: event type */
|
/* optional: event type */
|
||||||
if (!Event.getConfig().getHideEventType()) {
|
if (!Event.getConfig().getHideEventType()) {
|
||||||
add(new Label(EventGlobalizationUtil
|
// add(new Label(EventGlobalizationUtil
|
||||||
.globalize("cms.contenttypes.ui.event.event_type")));
|
// .globalize("cms.contenttypes.ui.event.event_type")));
|
||||||
ParameterModel eventTypeParam = new StringParameter(EVENT_TYPE);
|
ParameterModel eventTypeParam = new StringParameter(EVENT_TYPE);
|
||||||
//eventTypeParam
|
//eventTypeParam
|
||||||
// .addParameterListener(new NotNullValidationListener());
|
// .addParameterListener(new NotNullValidationListener());
|
||||||
TextField eventType = new TextField(eventTypeParam);
|
TextField eventType = new TextField(eventTypeParam);
|
||||||
|
eventType.setLabel(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.event_type"));
|
||||||
|
eventType.setHint(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.event_type_hint"));
|
||||||
eventType.setSize(30);
|
eventType.setSize(30);
|
||||||
eventType.setMaxLength(30);
|
eventType.setMaxLength(30);
|
||||||
add(eventType);
|
add(eventType);
|
||||||
|
|
@ -230,12 +266,16 @@ public class EventPropertyForm extends BasicPageForm
|
||||||
|
|
||||||
/* optional: link to map */
|
/* optional: link to map */
|
||||||
if (!Event.getConfig().getHideLinkToMap()) {
|
if (!Event.getConfig().getHideLinkToMap()) {
|
||||||
add(new Label(EventGlobalizationUtil
|
// add(new Label(EventGlobalizationUtil
|
||||||
.globalize("cms.contenttypes.ui.event.link_to_map")));
|
// .globalize("cms.contenttypes.ui.event.link_to_map")));
|
||||||
ParameterModel mapLinkParam = new StringParameter(MAP_LINK);
|
ParameterModel mapLinkParam = new StringParameter(MAP_LINK);
|
||||||
//mapLinkParam
|
//mapLinkParam
|
||||||
// .addParameterListener(new NotNullValidationListener());
|
// .addParameterListener(new NotNullValidationListener());
|
||||||
TextArea mapLink = new TextArea(mapLinkParam);
|
TextArea mapLink = new TextArea(mapLinkParam);
|
||||||
|
mapLink.setLabel(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.link_to_map"));
|
||||||
|
mapLink.setHint(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.link_to_map_hint"));
|
||||||
mapLink.setCols(40);
|
mapLink.setCols(40);
|
||||||
mapLink.setRows(2);
|
mapLink.setRows(2);
|
||||||
add(mapLink);
|
add(mapLink);
|
||||||
|
|
@ -244,10 +284,14 @@ public class EventPropertyForm extends BasicPageForm
|
||||||
|
|
||||||
/* optional: costs */
|
/* optional: costs */
|
||||||
if (!Event.getConfig().getHideCost()) {
|
if (!Event.getConfig().getHideCost()) {
|
||||||
add(new Label(EventGlobalizationUtil
|
// add(new Label(EventGlobalizationUtil
|
||||||
.globalize("cms.contenttypes.ui.event.cost")));
|
// .globalize("cms.contenttypes.ui.event.cost")));
|
||||||
ParameterModel costParam = new TrimmedStringParameter(COST);
|
ParameterModel costParam = new TrimmedStringParameter(COST);
|
||||||
TextField cost = new TextField(costParam);
|
TextField cost = new TextField(costParam);
|
||||||
|
cost.setLabel(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.cost"));
|
||||||
|
cost.setHint(EventGlobalizationUtil.globalize(
|
||||||
|
"cms.contenttypes.ui.event.cost_hint"));
|
||||||
cost.setSize(30);
|
cost.setSize(30);
|
||||||
cost.setMaxLength(30);
|
cost.setMaxLength(30);
|
||||||
add(cost);
|
add(cost);
|
||||||
|
|
@ -327,7 +371,11 @@ public class EventPropertyForm extends BasicPageForm
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Cancels streamlined editing. */
|
/**
|
||||||
|
* Cancels streamlined editing.
|
||||||
|
* @param fse
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
public void submitted(FormSectionEvent fse) {
|
public void submitted(FormSectionEvent fse) {
|
||||||
if (m_step != null
|
if (m_step != null
|
||||||
&& getSaveCancelSection().getCancelButton().isSelected(fse.getPageState())) {
|
&& getSaveCancelSection().getCancelButton().isSelected(fse.getPageState())) {
|
||||||
|
|
|
||||||
|
|
@ -45,11 +45,10 @@ import java.util.StringTokenizer;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>A Content Type defines the characteristics of a content
|
* <p>A Content Type defines the characteristics of a content item. Content
|
||||||
* item. Content management resources are registered to a content
|
* management resources are registered to a content type, including
|
||||||
* type, including the {@link com.arsdigita.cms.AuthoringKit
|
* the {@link com.arsdigita.cms.AuthoringKit Authoring Kit}, and
|
||||||
* Authoring Kit}, and {@link com.arsdigita.cms.Template
|
* {@link com.arsdigita.cms.Template templates}.</p>
|
||||||
* templates}.</p>
|
|
||||||
*
|
*
|
||||||
* <p>Each content type is associated with a {@link
|
* <p>Each content type is associated with a {@link
|
||||||
* com.arsdigita.domain.DomainObject domain object} and a {@link
|
* com.arsdigita.domain.DomainObject domain object} and a {@link
|
||||||
|
|
@ -362,7 +361,7 @@ public class ContentType extends ACSObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create an authoring kit to this content type. To save this authoring
|
* Create an authoring kit to this content type. To save this authoring
|
||||||
* kit, you need to call <code>save()</code> method on the
|
* kit, you need to call <code>save()</code> method on the
|
||||||
* returned AuthoringKit.
|
* returned AuthoringKit.
|
||||||
*
|
*
|
||||||
|
|
@ -424,7 +423,8 @@ public class ContentType extends ACSObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add an ancestor to the list of descendants, if not already in the list
|
* Add an ancestor to the list of descendants, if not already in the list.
|
||||||
|
*
|
||||||
* @param newAncestor ID of the ancestor to add
|
* @param newAncestor ID of the ancestor to add
|
||||||
*/
|
*/
|
||||||
public void addAncestor(BigDecimal newAncestor) {
|
public void addAncestor(BigDecimal newAncestor) {
|
||||||
|
|
@ -449,7 +449,8 @@ public class ContentType extends ACSObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove an ancestor id from the list of descendants
|
* Remove an ancestor id from the list of descendants.
|
||||||
|
*
|
||||||
* @param ancestor ID to be removed
|
* @param ancestor ID to be removed
|
||||||
*/
|
*/
|
||||||
public void delAncestor(BigDecimal ancestor) {
|
public void delAncestor(BigDecimal ancestor) {
|
||||||
|
|
@ -464,8 +465,8 @@ public class ContentType extends ACSObject {
|
||||||
// Delete the additional slash
|
// Delete the additional slash
|
||||||
ancestors.replace("//", "/");
|
ancestors.replace("//", "/");
|
||||||
|
|
||||||
// If the list only contains a single slash,
|
// If the list only contains a single slash, we have just removed
|
||||||
// we have just removed the last list entry, so the list is empty
|
// the last list entry, so the list is empty
|
||||||
if (ancestors.equals("/")) {
|
if (ancestors.equals("/")) {
|
||||||
ancestors = "";
|
ancestors = "";
|
||||||
}
|
}
|
||||||
|
|
@ -476,7 +477,8 @@ public class ContentType extends ACSObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the list of ancestors
|
* Get the list of ancestors.
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public String getAncestors() {
|
public String getAncestors() {
|
||||||
|
|
@ -484,7 +486,8 @@ public class ContentType extends ACSObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a descendant to the list of descendants, if not already in list
|
* Add a descendant to the list of descendants, if not already in list.
|
||||||
|
*
|
||||||
* @param newDescendant ID of the descendant to add
|
* @param newDescendant ID of the descendant to add
|
||||||
*/
|
*/
|
||||||
public void addDescendants(BigDecimal newDescendant) {
|
public void addDescendants(BigDecimal newDescendant) {
|
||||||
|
|
@ -645,6 +648,11 @@ public class ContentType extends ACSObject {
|
||||||
return new ContentTypeCollection(dc);
|
return new ContentTypeCollection(dc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param ct
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public static ContentTypeCollection getDescendantsOf(ContentType ct) {
|
public static ContentTypeCollection getDescendantsOf(ContentType ct) {
|
||||||
ContentTypeCollection ctc = ContentType.getRegisteredContentTypes();
|
ContentTypeCollection ctc = ContentType.getRegisteredContentTypes();
|
||||||
|
|
||||||
|
|
@ -674,9 +682,9 @@ public class ContentType extends ACSObject {
|
||||||
private static List s_xsl = new ArrayList();
|
private static List s_xsl = new ArrayList();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Registers an XSL file against a content type.
|
||||||
* NB this interface is liable to change.
|
* NB this interface is liable to change.
|
||||||
*
|
*
|
||||||
* Registers an XSL file against a content type.
|
|
||||||
* @param type the content type
|
* @param type the content type
|
||||||
* @param path the path relative to the server root
|
* @param path the path relative to the server root
|
||||||
*/
|
*/
|
||||||
|
|
@ -685,9 +693,9 @@ public class ContentType extends ACSObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Unregisters an XSL file against a content type.
|
||||||
* NB this interface is liable to change.
|
* NB this interface is liable to change.
|
||||||
*
|
*
|
||||||
* Unregisters an XSL file against a content type.
|
|
||||||
* @param type the content type
|
* @param type the content type
|
||||||
* @param path the path relative to the server root
|
* @param path the path relative to the server root
|
||||||
*/
|
*/
|
||||||
|
|
@ -698,24 +706,31 @@ public class ContentType extends ACSObject {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets an iterator of java.net.URL objects for
|
* Gets an iterator of java.net.URL objects for
|
||||||
* all registered XSL files
|
* all registered XSL files.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
public static Iterator getXSLFileURLs() {
|
public static Iterator getXSLFileURLs() {
|
||||||
return new EntryIterator(s_xsl.iterator());
|
return new EntryIterator(s_xsl.iterator());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
private static class EntryIterator implements Iterator {
|
private static class EntryIterator implements Iterator {
|
||||||
|
|
||||||
private Iterator m_inner;
|
private final Iterator m_inner;
|
||||||
|
|
||||||
public EntryIterator(Iterator inner) {
|
public EntryIterator(Iterator inner) {
|
||||||
m_inner = inner;
|
m_inner = inner;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean hasNext() {
|
public boolean hasNext() {
|
||||||
return m_inner.hasNext();
|
return m_inner.hasNext();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Object next() {
|
public Object next() {
|
||||||
XSLEntry entry = (XSLEntry) m_inner.next();
|
XSLEntry entry = (XSLEntry) m_inner.next();
|
||||||
String path = entry.getPath();
|
String path = entry.getPath();
|
||||||
|
|
@ -730,15 +745,19 @@ public class ContentType extends ACSObject {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void remove() {
|
public void remove() {
|
||||||
m_inner.remove();
|
m_inner.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
private static class XSLEntry {
|
private static class XSLEntry {
|
||||||
|
|
||||||
private ContentType m_type;
|
private final ContentType m_type;
|
||||||
private String m_path;
|
private final String m_path;
|
||||||
|
|
||||||
public XSLEntry(ContentType type,
|
public XSLEntry(ContentType type,
|
||||||
String path) {
|
String path) {
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,10 @@ import org.apache.log4j.Logger;
|
||||||
**/
|
**/
|
||||||
public abstract class AbstractContentTypeLoader extends PackageLoader {
|
public abstract class AbstractContentTypeLoader extends PackageLoader {
|
||||||
|
|
||||||
/** Logger instance for debugging */
|
/** Internal logger instance to faciliate debugging. Enable logging output
|
||||||
|
* by editing /WEB-INF/conf/log4j.properties int hte runtime environment
|
||||||
|
* and set com.arsdigita.cms.contenttypes.AbstractContentTypeLoader=DEBUG
|
||||||
|
* by uncommenting or adding the line. */
|
||||||
private static final Logger s_log = Logger.getLogger(
|
private static final Logger s_log = Logger.getLogger(
|
||||||
AbstractContentTypeLoader.class);
|
AbstractContentTypeLoader.class);
|
||||||
|
|
||||||
|
|
@ -74,9 +77,11 @@ public abstract class AbstractContentTypeLoader extends PackageLoader {
|
||||||
*
|
*
|
||||||
* @param ctx
|
* @param ctx
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public void run(final ScriptContext ctx) {
|
public void run(final ScriptContext ctx) {
|
||||||
new KernelExcursion() {
|
new KernelExcursion() {
|
||||||
|
|
||||||
|
@Override
|
||||||
protected void excurse() {
|
protected void excurse() {
|
||||||
setEffectiveParty(Kernel.getSystemParty());
|
setEffectiveParty(Kernel.getSystemParty());
|
||||||
|
|
||||||
|
|
@ -93,8 +98,8 @@ public abstract class AbstractContentTypeLoader extends PackageLoader {
|
||||||
private void createTypes(ScriptContext ctx) {
|
private void createTypes(ScriptContext ctx) {
|
||||||
XMLContentTypeHandler handler = new XMLContentTypeHandler();
|
XMLContentTypeHandler handler = new XMLContentTypeHandler();
|
||||||
String[] contentTypes = getTypes();
|
String[] contentTypes = getTypes();
|
||||||
for (int i = 0; i < contentTypes.length; i++) {
|
for (String contentType : contentTypes) {
|
||||||
XML.parseResource(contentTypes[i], handler);
|
XML.parseResource(contentType, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
List types = handler.getContentTypes();
|
List types = handler.getContentTypes();
|
||||||
|
|
@ -110,8 +115,7 @@ public abstract class AbstractContentTypeLoader extends PackageLoader {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
LifecycleDefinitionCollection ldc =
|
LifecycleDefinitionCollection ldc = section.getLifecycleDefinitions();
|
||||||
section.getLifecycleDefinitions();
|
|
||||||
LifecycleDefinition ld = null;
|
LifecycleDefinition ld = null;
|
||||||
if (ldc.next()) {
|
if (ldc.next()) {
|
||||||
ld = ldc.getLifecycleDefinition();
|
ld = ldc.getLifecycleDefinition();
|
||||||
|
|
@ -130,6 +134,13 @@ public abstract class AbstractContentTypeLoader extends PackageLoader {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param section
|
||||||
|
* @param type
|
||||||
|
* @param ld
|
||||||
|
* @param wf
|
||||||
|
*/
|
||||||
protected void prepareSection(final ContentSection section,
|
protected void prepareSection(final ContentSection section,
|
||||||
final ContentType type,
|
final ContentType type,
|
||||||
final LifecycleDefinition ld,
|
final LifecycleDefinition ld,
|
||||||
|
|
@ -152,7 +163,7 @@ public abstract class AbstractContentTypeLoader extends PackageLoader {
|
||||||
*/
|
*/
|
||||||
protected abstract String[] getTypes();
|
protected abstract String[] getTypes();
|
||||||
|
|
||||||
/*
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private boolean isLoadableInto(ContentSection section) {
|
private boolean isLoadableInto(ContentSection section) {
|
||||||
|
|
@ -185,17 +196,27 @@ public abstract class AbstractContentTypeLoader extends PackageLoader {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This provides an easy way to subtypes to register default
|
* This provides an easy way to subtypes to register default templates
|
||||||
* templates during the loading. When this is used, it should
|
* during the loading. When this is used, it should be called by the
|
||||||
* be called by the loader class by overriding prepareSection
|
* loader class by overriding prepareSection.
|
||||||
|
*
|
||||||
|
* @param name
|
||||||
|
* @param label
|
||||||
|
* @param templateIs
|
||||||
|
* @param section
|
||||||
|
* @param type
|
||||||
|
* @param ld
|
||||||
|
* @param wf
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
protected Template setDefaultTemplate(final String name,
|
protected Template setDefaultTemplate(final String name,
|
||||||
final String label,
|
final String label,
|
||||||
final InputStream templateIs,
|
final InputStream templateIs,
|
||||||
final ContentSection section,
|
final ContentSection section,
|
||||||
final ContentType type,
|
final ContentType type,
|
||||||
final LifecycleDefinition ld,
|
final LifecycleDefinition ld,
|
||||||
final WorkflowTemplate wf) {
|
final WorkflowTemplate wf) {
|
||||||
|
|
||||||
final Template template = new Template();
|
final Template template = new Template();
|
||||||
template.setName(name);
|
template.setName(name);
|
||||||
template.setLabel(label);
|
template.setLabel(label);
|
||||||
|
|
|
||||||
|
|
@ -49,9 +49,9 @@ import java.math.BigDecimal;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A form which displays a select box of all content types available under the
|
* A form element which displays a select box of all content types available
|
||||||
* given content section, and forwards to the item creation UI when the user
|
* under the given content section, and forwards to the item creation UI when
|
||||||
* selects a content type to instantiate.
|
* the user selects a content type to instantiate.
|
||||||
*
|
*
|
||||||
* @author Stanislav Freidin (sfreidin@arsdigtia.com)
|
* @author Stanislav Freidin (sfreidin@arsdigtia.com)
|
||||||
* @version $Revision: #12 $ $DateTime: 2004/08/17 23:15:09 $
|
* @version $Revision: #12 $ $DateTime: 2004/08/17 23:15:09 $
|
||||||
|
|
|
||||||
|
|
@ -43,15 +43,15 @@ import com.arsdigita.xml.Element;
|
||||||
*/
|
*/
|
||||||
public class Label extends DescriptiveComponent implements Cloneable {
|
public class Label extends DescriptiveComponent implements Cloneable {
|
||||||
|
|
||||||
private static final String NO_LABEL = "";
|
|
||||||
public static final String BOLD = "b";
|
public static final String BOLD = "b";
|
||||||
public static final String ITALIC = "i";
|
public static final String ITALIC = "i";
|
||||||
|
|
||||||
// the default label
|
// the default label
|
||||||
private GlobalizedMessage m_label;
|
private GlobalizedMessage m_label;
|
||||||
// a requestlocal set of labels (to avoid printlisteners)
|
// a requestlocal set of labels (to avoid printlisteners)
|
||||||
private RequestLocal m_requestLabel = new RequestLocal();
|
private final RequestLocal m_requestLabel = new RequestLocal();
|
||||||
private String m_fontWeight;
|
private String m_fontWeight;
|
||||||
|
|
||||||
/** The setting for output escaping affects how markup in the
|
/** The setting for output escaping affects how markup in the
|
||||||
* <code>content</code> is handled.
|
* <code>content</code> is handled.
|
||||||
* <UL><LI>If output escaping is in effect (true), <b>example</b>
|
* <UL><LI>If output escaping is in effect (true), <b>example</b>
|
||||||
|
|
@ -59,21 +59,25 @@ public class Label extends DescriptiveComponent implements Cloneable {
|
||||||
* <LI>If output escaping is disabled, <b>example</b> appears as the
|
* <LI>If output escaping is disabled, <b>example</b> appears as the
|
||||||
* String "example" in bold (i.e. retaining the markup.</LI></UL>
|
* String "example" in bold (i.e. retaining the markup.</LI></UL>
|
||||||
* Default is false. */
|
* Default is false. */
|
||||||
private boolean m_escaping = false; // default for a primitive
|
private boolean m_escaping = false; // default for a primitive anyway
|
||||||
private PrintListener m_printListener;
|
private PrintListener m_printListener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor creates a new <code>Label</code> with empty text.
|
* Constructor creates a new <code>Label</code> with empty text.
|
||||||
*/
|
*/
|
||||||
public Label() {
|
public Label() {
|
||||||
this(NO_LABEL);
|
// A kind of fallback (or a hack) here. Parameter label is taken as
|
||||||
|
// a key for some (unknown) Resource bundle. Because GlobalizedMessage
|
||||||
|
// will not find a corrresponding message it will display the key
|
||||||
|
// itself, 'faking' a globalized message.
|
||||||
|
m_label = new GlobalizedMessage(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new <code>Label</code> with the specified (fixed) text.
|
* Creates a new <code>Label</code> with the specified (fixed) text.
|
||||||
*
|
*
|
||||||
* @param label the text to display
|
* @param label the text to display
|
||||||
* @deprecated refactor to use Label(GlobalizedMessage label) instad
|
* @deprecated refactor to use Label(GlobalizedMessage label) instead
|
||||||
*/
|
*/
|
||||||
public Label(String label) {
|
public Label(String label) {
|
||||||
this(label, true);
|
this(label, true);
|
||||||
|
|
@ -81,15 +85,14 @@ public class Label extends DescriptiveComponent implements Cloneable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new <code>Label</code> with the specified text and
|
* Creates a new <code>Label</code> with the specified text and
|
||||||
* output escaping turned on if
|
* output escaping turned on if <code>escaping</code> is <code>true</code>.
|
||||||
* <code>escaping</code> is
|
|
||||||
* <code>true</code>.
|
|
||||||
*
|
*
|
||||||
* The setting for output escaping affects how markup in the
|
* The setting for output escaping affects how markup in the
|
||||||
* <code>label</code> is handled. For example: <UL><LI>If output escaping is
|
* <code>label</code> is handled. For example:
|
||||||
* in effect, <b>text</b> will appear literally.</LI> <LI>If output
|
* <UL><LI>If output escaping is in effect, <b>text</b> will appear
|
||||||
* escaping is disabled, <b>text</b> appears as the word "text" in
|
* literally.</LI>
|
||||||
* bold.</LI></UL>
|
* <LI>If output escaping is disabled, <b>text</b> appears as the
|
||||||
|
* word "text" in bold.</LI></UL>
|
||||||
*
|
*
|
||||||
* @param label the text to display
|
* @param label the text to display
|
||||||
* @param escaping <code>true</code> if output escaping will be in effect;
|
* @param escaping <code>true</code> if output escaping will be in effect;
|
||||||
|
|
@ -127,8 +130,7 @@ public class Label extends DescriptiveComponent implements Cloneable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p> Creates a new label with the specified text as GlobalizedMessage
|
* <p> Creates a new label with the specified text as GlobalizedMessage
|
||||||
* and output escaping turned on if
|
* and output escaping turned on if <code>escaping</code> is
|
||||||
* <code>escaping</code> is
|
|
||||||
* <code>true</code>. </p>
|
* <code>true</code>. </p>
|
||||||
*
|
*
|
||||||
* @param label the text to display as GlobalizedMessage
|
* @param label the text to display as GlobalizedMessage
|
||||||
|
|
@ -166,15 +168,18 @@ public class Label extends DescriptiveComponent implements Cloneable {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* .
|
* Provides the Label as Text, localized for the current request.
|
||||||
|
*
|
||||||
* Although it is not recommended, this method may be overridden to
|
* Although it is not recommended, this method may be overridden to
|
||||||
* dynamically generate the text of the label. Overriding code may need the
|
* dynamically generate the text of the label. Overriding code may need
|
||||||
* page state. <p>If possible, derived classes should override
|
* the page state.
|
||||||
* {@link #getLabel()} instead, which is called from this method. As long as
|
* <p>
|
||||||
* we don't have a static method to obtain ApplicationContext, this is a way
|
* If possible, derived classes should override {@link #getLabel()} instead,
|
||||||
* to get the RequestContext (that is, to determine the locale). When
|
* which is called from this method. As long as we don't have a static
|
||||||
* ApplicationContext gets available, that will become the suggested way for
|
* method to obtain ApplicationContext, this is a way to get the
|
||||||
* overriding code to get context.
|
* RequestContext (to determine the locale). When ApplicationContext gets
|
||||||
|
* available, that will become the suggested way for overriding code to get
|
||||||
|
* context.
|
||||||
*
|
*
|
||||||
* @param state the current page state
|
* @param state the current page state
|
||||||
* @return the string produced for this label
|
* @return the string produced for this label
|
||||||
|
|
@ -183,16 +188,16 @@ public class Label extends DescriptiveComponent implements Cloneable {
|
||||||
return (String) getGlobalizedMessage(state).localize(state.getRequest());
|
return (String) getGlobalizedMessage(state).localize(state.getRequest());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* .
|
// * .
|
||||||
*
|
// *
|
||||||
* This method may be overridden to dynamically generate the default text of
|
// * This method may be overridden to dynamically generate the default text of
|
||||||
* the label.
|
// * the label.
|
||||||
*
|
// *
|
||||||
* @return the string produced for this label.
|
// * @return the string produced for this label.
|
||||||
*
|
// *
|
||||||
* @deprecated Use {@link #getGlobalizedMessage()}
|
// * @deprecated Use {@link #getGlobalizedMessage()}
|
||||||
*/
|
// */
|
||||||
// Conflicts with Super's getLabel message of type GlobalizedMessage. But isn't
|
// Conflicts with Super's getLabel message of type GlobalizedMessage. But isn't
|
||||||
// needed anyway. Should deleted as soon as the refactoring of Label is
|
// needed anyway. Should deleted as soon as the refactoring of Label is
|
||||||
// completed (i.e. any string Label ironed out).
|
// completed (i.e. any string Label ironed out).
|
||||||
|
|
@ -256,8 +261,10 @@ public class Label extends DescriptiveComponent implements Cloneable {
|
||||||
if (label == null || label.length() == 0) {
|
if (label == null || label.length() == 0) {
|
||||||
label = " ";
|
label = " ";
|
||||||
}
|
}
|
||||||
// Seems to be quite useless. label is taken as a key for some (unknown)
|
// A kind of fallback (or a hack) here. Parameter label is taken as
|
||||||
// Resource bundle.
|
// a key for some (unknown) Resource bundle. Because GlobalizedMessage
|
||||||
|
// will not find a corrresponding message it will display the key
|
||||||
|
// itself, 'faking' a globalized message.
|
||||||
setLabel(new GlobalizedMessage(label), state);
|
setLabel(new GlobalizedMessage(label), state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -319,9 +326,8 @@ public class Label extends DescriptiveComponent implements Cloneable {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a print listener. Only one print listener can be set for a label,
|
* Adds a print listener. Only one print listener can be set for a label,
|
||||||
* since the
|
* since the <code>PrintListener</code> is expected to modify the target
|
||||||
* <code>PrintListener</code> is expected to modify the target of the
|
* of the <code>PrintEvent</code>.
|
||||||
* <code>PrintEvent</code>.
|
|
||||||
*
|
*
|
||||||
* @param listener the print listener
|
* @param listener the print listener
|
||||||
* @throws IllegalArgumentException if <code>listener</code> is null.
|
* @throws IllegalArgumentException if <code>listener</code> is null.
|
||||||
|
|
@ -341,8 +347,8 @@ public class Label extends DescriptiveComponent implements Cloneable {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes a previously added print listener. If
|
* Removes a previously added print listener. If <code>listener</code> is
|
||||||
* <code>listener</code> is not the listener that was added with {@link #addPrintListener
|
* not the listener that was added with {@link #addPrintListener
|
||||||
* addPrintListener}, an IllegalArgumentException will be thrown.
|
* addPrintListener}, an IllegalArgumentException will be thrown.
|
||||||
*
|
*
|
||||||
* @param listener the listener that was added with
|
* @param listener the listener that was added with
|
||||||
|
|
@ -408,10 +414,10 @@ public class Label extends DescriptiveComponent implements Cloneable {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This may break with normal JDOM. We may need to have a node
|
* This may break with normal JDOM. We may need to have a node for
|
||||||
* for the case where there is no weight. The problem comes in that
|
* the case where there is no weight. The problem comes in that
|
||||||
* setText *may* kill the other content in the node. It will kill the
|
* setText *may* kill the other content in the node. It will kill
|
||||||
* other text, so it may be a good idea anyways.
|
* the other text, so it may be a good idea anyways.
|
||||||
*/
|
*/
|
||||||
label.setText(target.getLabel(state));
|
label.setText(target.getLabel(state));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue