Last part of globalization of content types selection box.
git-svn-id: https://svn.libreccm.org/ccm/trunk@2779 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
bcc3a9c9af
commit
4710d07c4e
|
|
@ -1 +1,2 @@
|
||||||
sciorganization.ui.simpleorganization_properties.title=Basic properties
|
sciorganization.ui.simpleorganization_properties.title=Basic properties
|
||||||
|
cms.contenttypes.simpleorganization.type_label=Organization
|
||||||
|
|
@ -1 +1,2 @@
|
||||||
sciorganization.ui.simpleorganization_properties.title=Basiseigenschaften
|
sciorganization.ui.simpleorganization_properties.title=Basiseigenschaften
|
||||||
|
cms.contenttypes.simpleorganization.type_label=Organisation
|
||||||
|
|
@ -13,3 +13,4 @@ cms.contenttypes.ui.siteproxy.link.editatoz=Edit
|
||||||
#URL:
|
#URL:
|
||||||
cms.contenttypes.ui.siteproxy.url=URL:
|
cms.contenttypes.ui.siteproxy.url=URL:
|
||||||
cms.contenttypes.ui.siteproxy.edit_form_link=Edit
|
cms.contenttypes.ui.siteproxy.edit_form_link=Edit
|
||||||
|
cms.contenttypes.siteproxy.type_label=Site Proxy
|
||||||
|
|
|
||||||
|
|
@ -13,3 +13,4 @@ cms.contenttypes.ui.siteproxy.link.editatoz=Bearbeiten
|
||||||
#URL:
|
#URL:
|
||||||
cms.contenttypes.ui.siteproxy.url=URL:
|
cms.contenttypes.ui.siteproxy.url=URL:
|
||||||
cms.contenttypes.ui.siteproxy.edit_form_link=Bearbeiten
|
cms.contenttypes.ui.siteproxy.edit_form_link=Bearbeiten
|
||||||
|
cms.contenttypes.siteproxy.type_label=Site Proxy
|
||||||
|
|
|
||||||
|
|
@ -13,3 +13,4 @@ cms.contenttypes.ui.siteproxy.link.editatoz=Edit
|
||||||
#URL:
|
#URL:
|
||||||
cms.contenttypes.ui.siteproxy.url=URL:
|
cms.contenttypes.ui.siteproxy.url=URL:
|
||||||
cms.contenttypes.ui.siteproxy.edit_form_link=Edit
|
cms.contenttypes.ui.siteproxy.edit_form_link=Edit
|
||||||
|
cms.contenttypes.siteproxy.type_label=Site Proxy
|
||||||
|
|
|
||||||
|
|
@ -11,3 +11,4 @@ xmlfeed.authoring.query_form_step.title=Edit Query Form
|
||||||
xmlfeed.authoring.query_form.description=The form that supplies the query fields.
|
xmlfeed.authoring.query_form.description=The form that supplies the query fields.
|
||||||
cms.contenttypes.ui.xmlfeed.xsl_file_type_error=File is not the correct type.
|
cms.contenttypes.ui.xmlfeed.xsl_file_type_error=File is not the correct type.
|
||||||
cms.contenttypes.ui.xmlfeed.xsl_file_validation_error=Cannot verify the file is valid, please try again.
|
cms.contenttypes.ui.xmlfeed.xsl_file_validation_error=Cannot verify the file is valid, please try again.
|
||||||
|
cms.contenttypes.xmlfeed.xmlfeed.type_label=XML Feed
|
||||||
|
|
|
||||||
|
|
@ -11,3 +11,4 @@ xmlfeed.authoring.query_form_step.title=Abfrageformular bearbeiten
|
||||||
xmlfeed.authoring.query_form.description=Das Formular, das die Eingabefelder f\u00fcr die Abfrage enth\u00e4lt.
|
xmlfeed.authoring.query_form.description=Das Formular, das die Eingabefelder f\u00fcr die Abfrage enth\u00e4lt.
|
||||||
cms.contenttypes.ui.xmlfeed.xsl_file_type_error=Der Dateityp ist falsch.
|
cms.contenttypes.ui.xmlfeed.xsl_file_type_error=Der Dateityp ist falsch.
|
||||||
cms.contenttypes.ui.xmlfeed.xsl_file_validation_error=Dateityp kann nicht best\u00e4tigt werden, bitte erneut probieren.
|
cms.contenttypes.ui.xmlfeed.xsl_file_validation_error=Dateityp kann nicht best\u00e4tigt werden, bitte erneut probieren.
|
||||||
|
cms.contenttypes.xmlfeed.xmlfeed.type_label=XML Feed
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,6 @@ import com.arsdigita.persistence.OID;
|
||||||
import com.arsdigita.persistence.SessionManager;
|
import com.arsdigita.persistence.SessionManager;
|
||||||
import com.arsdigita.util.UncheckedWrapperException;
|
import com.arsdigita.util.UncheckedWrapperException;
|
||||||
import com.arsdigita.web.Web;
|
import com.arsdigita.web.Web;
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
|
@ -232,10 +231,10 @@ public class ContentType extends ACSObject {
|
||||||
// Create the globalized label
|
// Create the globalized label
|
||||||
label = new GlobalizedMessage(labelKey, bundleName);
|
label = new GlobalizedMessage(labelKey, bundleName);
|
||||||
} else {
|
} else {
|
||||||
|
// No property file found, try to use the item's definition file
|
||||||
final InputStream defFile = Thread.currentThread().getContextClassLoader()
|
final InputStream defFile = Thread.currentThread().getContextClassLoader()
|
||||||
.getResourceAsStream(typeResourcePath);
|
.getResourceAsStream(typeResourcePath);
|
||||||
|
|
||||||
// No property file found, try to use the item's definition file
|
|
||||||
if (defFile == null) {
|
if (defFile == null) {
|
||||||
// Giving up!
|
// Giving up!
|
||||||
|
|
||||||
|
|
@ -246,21 +245,21 @@ public class ContentType extends ACSObject {
|
||||||
// found in a resource file.
|
// found in a resource file.
|
||||||
label = new GlobalizedMessage(getName());
|
label = new GlobalizedMessage(getName());
|
||||||
} else {
|
} else {
|
||||||
// item definition file found. use it's
|
// item definition file found. Use it.
|
||||||
|
|
||||||
// determine the bundle from attribute "descriptionBundle"
|
// determine the bundle from attribute "descriptionBundle"
|
||||||
// which should provide an item specific description (but
|
// which should provide an item specific description (but
|
||||||
// unfortunately due to lazy programmers not always does).
|
// unfortunately due to lazy programmers not always does).
|
||||||
// As a proper example:
|
// As a proper example:
|
||||||
// /WEB-INF/content-types/com.arsditita.cms.contenttypes.Event.xml
|
// /WEB-INF/content-types/com.arsditita.cms.contenttypes.Event.xml
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final SAXParserFactory parserFactory = SAXParserFactory.newInstance();
|
final SAXParserFactory parserFactory = SAXParserFactory.newInstance();
|
||||||
final SAXParser parser = parserFactory.newSAXParser();
|
final SAXParser parser = parserFactory.newSAXParser();
|
||||||
final BundleName bundleName = new BundleName();
|
final BundleName bundleName = new BundleName();
|
||||||
parser.parse(defFile, bundleName);
|
parser.parse(defFile, bundleName);
|
||||||
|
|
||||||
//String bundleName = "REPLACE ME"; // REPLACE ME!
|
|
||||||
if (bundleName.getName() == null) {
|
if (bundleName.getName() == null) {
|
||||||
|
// Fallback to the non-globalized identifier (name)
|
||||||
return new GlobalizedMessage(getName());
|
return new GlobalizedMessage(getName());
|
||||||
} else {
|
} else {
|
||||||
label = new GlobalizedMessage(labelKey, bundleName.getName());
|
label = new GlobalizedMessage(labelKey, bundleName.getName());
|
||||||
|
|
@ -279,25 +278,42 @@ public class ContentType extends ACSObject {
|
||||||
return label;
|
return label;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
private class BundleName extends DefaultHandler {
|
private class BundleName extends DefaultHandler {
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor, does nothing.
|
||||||
|
*/
|
||||||
public BundleName() {
|
public BundleName() {
|
||||||
//Nothing
|
//Nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param namespaceURI
|
||||||
|
* @param localName
|
||||||
|
* @param qName
|
||||||
|
* @param attributes
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void startElement(final String namespaceURI,
|
public void startElement(final String namespaceURI,
|
||||||
final String localName,
|
final String localName,
|
||||||
final String qName,
|
final String qName,
|
||||||
final Attributes attributes) {
|
final Attributes attributes) {
|
||||||
if ("ctd:authoring-step".equals(qName)) {
|
if ("ctd:authoring-step".equals(qName)) {
|
||||||
name = attributes.getValue("labelBundle");
|
name = attributes.getValue("descriptionBundle");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,9 +31,10 @@ import com.arsdigita.xml.Element;
|
||||||
* A class representing an option of a widget.
|
* A class representing an option of a widget.
|
||||||
*
|
*
|
||||||
* The Option consist of two parts:
|
* The Option consist of two parts:
|
||||||
* - a value
|
* - a value, used by the background task to process the option
|
||||||
* - a label (display component used as label (title) of the option.)
|
* - a display component, used to display the option to the user in the GUI,
|
||||||
*
|
* usually a Label (title), but may be e.g. an image as well.
|
||||||
|
|
||||||
* @author Rory Solomon
|
* @author Rory Solomon
|
||||||
* @author Michael Pih
|
* @author Michael Pih
|
||||||
*
|
*
|
||||||
|
|
@ -41,19 +42,29 @@ import com.arsdigita.xml.Element;
|
||||||
*/
|
*/
|
||||||
public class Option extends DescriptiveComponent {
|
public class Option extends DescriptiveComponent {
|
||||||
|
|
||||||
|
/** The value of the option, used by the background task to process the
|
||||||
|
* option.
|
||||||
|
* NOTE: The display component, the label, is provided by parent class! */
|
||||||
private String m_value;
|
private String m_value;
|
||||||
private OptionGroup m_group;
|
/** The display component for the user in the GUI. It's usually a Label,
|
||||||
|
* but may be e.g. an image as well. */
|
||||||
private Component m_component;
|
private Component m_component;
|
||||||
|
private OptionGroup m_group;
|
||||||
private boolean m_isSelectOption;
|
private boolean m_isSelectOption;
|
||||||
|
|
||||||
|
// ///////////////////////////////////////////////////////////////////////
|
||||||
|
// Constructor Section
|
||||||
|
//
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* (Too) simple Constructor which uses a String as value as well as display
|
* A (too) simple Constructor which uses a String as value as well as
|
||||||
* component.
|
* display component.
|
||||||
* @param label A String used as value as well as display component.
|
*
|
||||||
|
* @param value A String used as value as well as display component.
|
||||||
* @deprecated use Option(value,component) instead
|
* @deprecated use Option(value,component) instead
|
||||||
*/
|
*/
|
||||||
public Option(String label) {
|
public Option(String value) {
|
||||||
this(label, label);
|
this(value, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -66,8 +77,8 @@ public class Option extends DescriptiveComponent {
|
||||||
* @deprecated use Option(value,component) instead
|
* @deprecated use Option(value,component) instead
|
||||||
*/
|
*/
|
||||||
public Option(String value, String label) {
|
public Option(String value, String label) {
|
||||||
setLabel(label);
|
|
||||||
setValue(value);
|
setValue(value);
|
||||||
|
setLabel(label);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -75,60 +86,80 @@ public class Option extends DescriptiveComponent {
|
||||||
* usually a Label(GlobalizedMessage).
|
* usually a Label(GlobalizedMessage).
|
||||||
* This constructor should be used to create a fully globalized and
|
* This constructor should be used to create a fully globalized and
|
||||||
* localized user interface.
|
* localized user interface.
|
||||||
|
*
|
||||||
* @param value
|
* @param value
|
||||||
* @param label
|
* @param label
|
||||||
*/
|
*/
|
||||||
public Option(String value, Component label) {
|
public Option(String value, Component label) {
|
||||||
setComponent(label);
|
|
||||||
setValue(value);
|
setValue(value);
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public String getName() {
|
|
||||||
return m_group.getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If the component is a Label (which most of the time it is)
|
|
||||||
* then this returns the value of the label. This assumes
|
|
||||||
* that the Component is a label
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
* @exception ClassCastException is thrown if the component is not
|
|
||||||
* a label
|
|
||||||
*/
|
|
||||||
// public final String getLabel() {
|
|
||||||
// return ((Label)m_component).getLabel();
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This sets the component to the label consisting of the passed in
|
|
||||||
* string
|
|
||||||
*/
|
|
||||||
public final void setLabel(String label) {
|
|
||||||
setComponent(new Label(label));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @deprecated Use {@link #setComponent(Component component)} instead
|
|
||||||
*/
|
|
||||||
public final void setLabel(Label label) {
|
|
||||||
setComponent(label);
|
setComponent(label);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ///////////////////////////////////////////////////////////////////////
|
||||||
|
// Getter/Setter Section
|
||||||
|
//
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the value part of an option.
|
||||||
|
* @return the value part of this option.
|
||||||
|
*/
|
||||||
|
public final String getValue() {
|
||||||
|
return m_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets of modifies the value of on option.
|
||||||
|
* @param value new value part of the option
|
||||||
|
*/
|
||||||
|
public final void setValue(String value) {
|
||||||
|
m_value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the display part of the option.
|
||||||
|
* @return the display component for this option
|
||||||
|
*/
|
||||||
|
public final Component getComponent() {
|
||||||
|
return m_component;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets of modifies the display component of an option.
|
||||||
|
*
|
||||||
|
* @param component the display component for this option
|
||||||
|
*/
|
||||||
public final void setComponent(Component component) {
|
public final void setComponent(Component component) {
|
||||||
Assert.isUnlocked(this);
|
Assert.isUnlocked(this);
|
||||||
m_component = component;
|
m_component = component;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final Component getComponent() {
|
/**
|
||||||
return m_component;
|
* Sets of modifies the display component of an option providing a Label.
|
||||||
|
* The label is internally stored as a component.
|
||||||
|
*
|
||||||
|
* @param label
|
||||||
|
*/
|
||||||
|
public final void setLabel(Label label) {
|
||||||
|
setComponent(label);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This sets the display component using a String. It results in a badly
|
||||||
|
* globalized UI
|
||||||
|
*
|
||||||
|
* @param label String to use as the display component
|
||||||
|
* @deprecated Use {@link #setComponent(Component component)} instead
|
||||||
|
*/
|
||||||
|
public final void setLabel(String label) {
|
||||||
|
setComponent(new Label(label));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param group
|
||||||
|
*/
|
||||||
public final void setGroup(OptionGroup group) {
|
public final void setGroup(OptionGroup group) {
|
||||||
Assert.isUnlocked(this);
|
Assert.isUnlocked(this);
|
||||||
Assert.exists(group);
|
Assert.exists(group);
|
||||||
|
|
@ -136,17 +167,25 @@ public class Option extends DescriptiveComponent {
|
||||||
m_isSelectOption = BebopConstants.BEBOP_OPTION.equals(m_group.getOptionXMLElement());
|
m_isSelectOption = BebopConstants.BEBOP_OPTION.equals(m_group.getOptionXMLElement());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public final OptionGroup getGroup() {
|
public final OptionGroup getGroup() {
|
||||||
return m_group;
|
return m_group;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final String getValue() {
|
/**
|
||||||
return m_value;
|
* Retrieves the name (identifier) of the option group containing this
|
||||||
|
* option. Don't know the purpose of this.
|
||||||
|
*
|
||||||
|
* @return The name (identifier) of the option group this option belongs
|
||||||
|
* to
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return m_group.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void setValue(String value) {
|
|
||||||
m_value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the <tt>ONFOCUS</tt> attribute for the HTML tags that compose
|
* Sets the <tt>ONFOCUS</tt> attribute for the HTML tags that compose
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ import javax.servlet.http.HttpServletRequestWrapper;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A class representing any widget that contains a list options.
|
* A class representing any widget that contains a list of options.
|
||||||
*
|
*
|
||||||
* @author Karl Goldstein
|
* @author Karl Goldstein
|
||||||
* @author Uday Mathur
|
* @author Uday Mathur
|
||||||
|
|
@ -54,12 +54,15 @@ import org.apache.log4j.Logger;
|
||||||
public abstract class OptionGroup extends Widget implements BebopConstants {
|
public abstract class OptionGroup extends Widget implements BebopConstants {
|
||||||
|
|
||||||
private static final Logger LOGGER = Logger.getLogger(OptionGroup.class);
|
private static final Logger LOGGER = Logger.getLogger(OptionGroup.class);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The XML element to be used by individual options belonging to this group. This variable has
|
* The XML element to be used by individual options belonging to this group.
|
||||||
* to be initialized by every subclass of OptionGroup. LEGACY: An abstract method would be the
|
* This variable has to be initialized by every subclass of OptionGroup.
|
||||||
* better design, but changing it would break the API.
|
* LEGACY: An abstract method would be the better design, but changing it
|
||||||
|
* would break the API.
|
||||||
*/
|
*/
|
||||||
//protected String m_xmlElement;
|
//protected String m_xmlElement;
|
||||||
|
|
||||||
// this only needs to be an ArrayList for multiple selection option groups
|
// this only needs to be an ArrayList for multiple selection option groups
|
||||||
private List<String> m_selected;
|
private List<String> m_selected;
|
||||||
private List<Option> m_options;
|
private List<Option> m_options;
|
||||||
|
|
@ -76,27 +79,32 @@ public abstract class OptionGroup extends Widget implements BebopConstants {
|
||||||
*/
|
*/
|
||||||
private boolean excludeFirst;
|
private boolean excludeFirst;
|
||||||
public static final String OTHER_OPTION = "__other__";
|
public static final String OTHER_OPTION = "__other__";
|
||||||
// request-local copy of selected elements, options
|
// this is only used for single selection option groups
|
||||||
private RequestLocal m_requestOptions = new RequestLocal() {
|
|
||||||
|
|
||||||
|
private final static String TOO_MANY_OPTIONS_SELECTED
|
||||||
|
= "Only one option may be selected by default on this option group.";
|
||||||
|
|
||||||
|
|
||||||
|
/** request-local copy of selected elements, options */
|
||||||
|
private final RequestLocal m_requestOptions = new RequestLocal() {
|
||||||
@Override
|
@Override
|
||||||
public Object initialValue(final PageState state) {
|
public Object initialValue(final PageState state) {
|
||||||
return new ArrayList<Option>();
|
return new ArrayList<Option>();
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public final boolean isCompound() {
|
public final boolean isCompound() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// this is only used for single selection option groups
|
|
||||||
private final static String TOO_MANY_OPTIONS_SELECTED
|
|
||||||
= "Only one option may be selected by default on this option group.";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The ParameterModel for mutliple OptionGroups is always an array parameter
|
* The ParameterModel for multiple OptionGroups is always an array parameter
|
||||||
|
* @param model
|
||||||
*
|
*
|
||||||
* @param model
|
* @param model
|
||||||
*/
|
*/
|
||||||
|
|
@ -236,12 +244,18 @@ public abstract class OptionGroup extends Widget implements BebopConstants {
|
||||||
addOption(option, null, false);
|
addOption(option, null, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a new option.
|
||||||
|
*
|
||||||
|
* @param opt
|
||||||
|
* @param ps
|
||||||
|
*/
|
||||||
public void addOption(final Option option, final PageState state) {
|
public void addOption(final Option option, final PageState state) {
|
||||||
addOption(option, state, false);
|
addOption(option, state, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a new option.at the beginning of the list
|
* Adds a new option at the beginning of the list.
|
||||||
*
|
*
|
||||||
* @param option The {@link Option} to be added. Note: the argument is modified and associated
|
* @param option The {@link Option} to be added. Note: the argument is modified and associated
|
||||||
* with this OptionGroup, regardless of what its group was.
|
* with this OptionGroup, regardless of what its group was.
|
||||||
|
|
@ -259,8 +273,8 @@ public abstract class OptionGroup extends Widget implements BebopConstants {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a new option for the scope of the current request, or to the page as a whole if there is
|
* Adds a new option for the scope of the current request, or to the page
|
||||||
* no current request.
|
* as a whole if there is no current request.
|
||||||
*
|
*
|
||||||
* @param option The {@link Option} to be added. Note: the argument is modified and associated
|
* @param option The {@link Option} to be added. Note: the argument is modified and associated
|
||||||
* with this OptionGroup, regardless of what its group was.
|
* with this OptionGroup, regardless of what its group was.
|
||||||
|
|
@ -298,7 +312,11 @@ public abstract class OptionGroup extends Widget implements BebopConstants {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes the first option whose key is isEqual to the key that is passed in.
|
* Removes the first option whose key is isEqual to the key that is
|
||||||
|
* passed in.
|
||||||
|
* @param key
|
||||||
|
* @param state the current page state. if ps is null, adds option to
|
||||||
|
* the default option list.
|
||||||
*/
|
*/
|
||||||
public void removeOption(final String key, final PageState state) {
|
public void removeOption(final String key, final PageState state) {
|
||||||
// This is not an entirely efficient technique. A more
|
// This is not an entirely efficient technique. A more
|
||||||
|
|
@ -408,10 +426,11 @@ public abstract class OptionGroup extends Widget implements BebopConstants {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make an option selected by default. Updates the parameter model for the option group
|
* Make an option selected by default. Updates the parameter model for
|
||||||
* accordingly.
|
* the option group accordingly.
|
||||||
*
|
*
|
||||||
* @param value the value of the option to be added to the by-default-selected set.
|
* @param value the value of the option to be added to the
|
||||||
|
* by-default-selected set.
|
||||||
*/
|
*/
|
||||||
public void setOptionSelected(final String value) {
|
public void setOptionSelected(final String value) {
|
||||||
Assert.isUnlocked(this);
|
Assert.isUnlocked(this);
|
||||||
|
|
@ -447,12 +466,14 @@ public abstract class OptionGroup extends Widget implements BebopConstants {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is this a multiple (and not single) selection option group? Note that this should really be
|
* Whether this a multiple (and not single) selection option group.
|
||||||
* declared abstract, but we can't because it used to be in the direct subclass Select and
|
* Note that this should really be declared abstract, but we can't because
|
||||||
* making it abstract could break other subclasses that don't declare isMultiple. So we have a
|
* it used to be in the direct subclass Select and making it abstract could
|
||||||
|
* break other subclasses that don't declare isMultiple. So we have a
|
||||||
* trivial implementation instead.
|
* trivial implementation instead.
|
||||||
*
|
*
|
||||||
* @return true if this OptionGroup can have more than one selected option; false otherwise.
|
* @return true if this OptionGroup can have more than one selected option;
|
||||||
|
* false otherwise.
|
||||||
*/
|
*/
|
||||||
public boolean isMultiple() {
|
public boolean isMultiple() {
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -497,7 +518,7 @@ public abstract class OptionGroup extends Widget implements BebopConstants {
|
||||||
* <p>
|
* <p>
|
||||||
* <
|
* <
|
||||||
* pre><code><bebop:* name=... [onXXX=...]>
|
* pre><code><bebop:* name=... [onXXX=...]>
|
||||||
* <bebop:option name=... [selected]> option value </bebop:option%gt;
|
* <bebop:option name=... [selected]> option value </bebop:option%gt;
|
||||||
* ...
|
* ...
|
||||||
* </bebop:*select></code></pre>
|
* </bebop:*select></code></pre>
|
||||||
*/
|
*/
|
||||||
|
|
@ -506,8 +527,10 @@ public abstract class OptionGroup extends Widget implements BebopConstants {
|
||||||
final Element optionGroup = parent.newChildElement(getElementTag(), BEBOP_XML_NS);
|
final Element optionGroup = parent.newChildElement(getElementTag(), BEBOP_XML_NS);
|
||||||
optionGroup.addAttribute("name", getName());
|
optionGroup.addAttribute("name", getName());
|
||||||
optionGroup.addAttribute("class", getName().replace(".", " "));
|
optionGroup.addAttribute("class", getName().replace(".", " "));
|
||||||
|
// Localized title for this option group
|
||||||
if (getLabel() != null) {
|
if (getLabel() != null) {
|
||||||
optionGroup.addAttribute("label", (String) getLabel().localize(state.getRequest()));
|
optionGroup.addAttribute("label", (String)getLabel()
|
||||||
|
.localize(state.getRequest()));
|
||||||
}
|
}
|
||||||
if (isMultiple()) {
|
if (isMultiple()) {
|
||||||
optionGroup.addAttribute("multiple", "multiple");
|
optionGroup.addAttribute("multiple", "multiple");
|
||||||
|
|
|
||||||
|
|
@ -52,16 +52,22 @@ import com.arsdigita.xml.Element;
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* A widget may correspond to a standard HTML form element, or to a more specific element or set of
|
* A widget may correspond to a standard HTML form element, or to a more
|
||||||
* elements, such as a date widget that allows input of month, day and year (and possibly time as
|
* specific element or set of elements, such as a date widget that allows
|
||||||
* well).</p>
|
* input of month, day and year (and possibly time as well).</p>
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* This class and its subclasses provide methods to set all element attributes except for
|
* This class and its subclasses provide methods to set all element attributes
|
||||||
* <code>VALUE</code>, which is typically dependent on the request. At the time of a request, a
|
* except for <code>VALUE</code>, which is typically dependent on the request.
|
||||||
* widget object merges a dynamically specified value or set of values with its own set of
|
* At the time of a request, a widget object merges a dynamically specified
|
||||||
* persistent attributes to render the final HTML for the widget. Other dynamic attributes may be
|
* value or set of values with its own set of persistent attributes to render
|
||||||
* associated with the form component via a <code>WidgetPeer</code> associated with the widget.</p>
|
* the final HTML for the widget. Other dynamic attributes may be associated with
|
||||||
|
* the form component via a <code>WidgetPeer</code> associated with the widget.
|
||||||
|
* </p>
|
||||||
|
* <p>
|
||||||
|
* The parent class provides the Label (the localized title) for the widget as
|
||||||
|
* well as a (localized) hint as a kind of online manual for the user.
|
||||||
|
* </p>
|
||||||
*
|
*
|
||||||
* @author Karl Goldstein
|
* @author Karl Goldstein
|
||||||
* @author Uday Mathur
|
* @author Uday Mathur
|
||||||
|
|
@ -69,7 +75,7 @@ import com.arsdigita.xml.Element;
|
||||||
* @version $Id: Widget.java 1537 2007-03-23 15:33:34Z chrisgilbert23 $
|
* @version $Id: Widget.java 1537 2007-03-23 15:33:34Z chrisgilbert23 $
|
||||||
*/
|
*/
|
||||||
public abstract class Widget extends DescriptiveComponent
|
public abstract class Widget extends DescriptiveComponent
|
||||||
implements Cloneable, BebopConstants {
|
implements Cloneable, BebopConstants {
|
||||||
|
|
||||||
private static final Logger s_log = Logger.getLogger(Widget.class);
|
private static final Logger s_log = Logger.getLogger(Widget.class);
|
||||||
|
|
||||||
|
|
@ -78,11 +84,6 @@ public abstract class Widget extends DescriptiveComponent
|
||||||
private ParameterListener m_forwardParameter = null;
|
private ParameterListener m_forwardParameter = null;
|
||||||
private PrintListener m_printListener;
|
private PrintListener m_printListener;
|
||||||
private Form m_form;
|
private Form m_form;
|
||||||
/**
|
|
||||||
* The optional (localized) label (or title) of this widget.
|
|
||||||
*/
|
|
||||||
// Use parent's class' instead
|
|
||||||
// private GlobalizedMessage m_label;
|
|
||||||
|
|
||||||
private ValidationGuard m_guard = null;
|
private ValidationGuard m_guard = null;
|
||||||
|
|
||||||
|
|
@ -109,7 +110,8 @@ public abstract class Widget extends DescriptiveComponent
|
||||||
* Constructor, creates a new widget.
|
* Constructor, creates a new widget.
|
||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* Each new widget is associated with a ParameterModel describing the data object(s) submitted
|
* Each new widget is associated with a ParameterModel describing the
|
||||||
|
* data object(s) submitted
|
||||||
* from the widget.
|
* from the widget.
|
||||||
*
|
*
|
||||||
* @param model
|
* @param model
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,9 @@ import org.apache.log4j.Logger;
|
||||||
*/
|
*/
|
||||||
public abstract class ParameterModel implements Lockable {
|
public abstract class ParameterModel implements Lockable {
|
||||||
|
|
||||||
|
private static final Logger s_log = Logger
|
||||||
|
.getLogger(ParameterModel.class.getName());
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The name of this ParameterModel. The constructor will throw an
|
* The name of this ParameterModel. The constructor will throw an
|
||||||
* exception if the specified name is null
|
* exception if the specified name is null
|
||||||
|
|
@ -83,9 +86,6 @@ public abstract class ParameterModel implements Lockable {
|
||||||
|
|
||||||
private boolean m_passIn = true;
|
private boolean m_passIn = true;
|
||||||
|
|
||||||
private static final Logger s_log =
|
|
||||||
Logger.getLogger(ParameterModel.class.getName());
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct an unlocked ParameterModel
|
* Construct an unlocked ParameterModel
|
||||||
*/
|
*/
|
||||||
|
|
@ -98,8 +98,8 @@ public abstract class ParameterModel implements Lockable {
|
||||||
* Construct a new Parameter Model with the specified name
|
* Construct a new Parameter Model with the specified name
|
||||||
*
|
*
|
||||||
* @param name String used to identify this parameter. Name is used
|
* @param name String used to identify this parameter. Name is used
|
||||||
* as the name of the associated widget, and is the name of the
|
* as the name of the associated widget, and is the name of the
|
||||||
* variable in the request
|
* variable in the request.
|
||||||
*/
|
*/
|
||||||
protected ParameterModel(String name) {
|
protected ParameterModel(String name) {
|
||||||
this();
|
this();
|
||||||
|
|
@ -192,7 +192,7 @@ public abstract class ParameterModel implements Lockable {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the name of this ParmeterModel.
|
* Sets the name of this ParameterModel.
|
||||||
* Asserts that this ParameterModel is not locked.
|
* Asserts that this ParameterModel is not locked.
|
||||||
*
|
*
|
||||||
* @param name The name of this parameter model.
|
* @param name The name of this parameter model.
|
||||||
|
|
|
||||||
|
|
@ -37,8 +37,9 @@ public class DomainCollection extends DomainQuery {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
|
||||||
* @see com.arsdigita.persistence.DataCollection
|
* @see com.arsdigita.persistence.DataCollection
|
||||||
|
*
|
||||||
|
* @param dataCollection
|
||||||
**/
|
**/
|
||||||
public DomainCollection(DataCollection dataCollection) {
|
public DomainCollection(DataCollection dataCollection) {
|
||||||
super(dataCollection);
|
super(dataCollection);
|
||||||
|
|
@ -48,8 +49,9 @@ public class DomainCollection extends DomainQuery {
|
||||||
/**
|
/**
|
||||||
* Returns a <code>DomainObject</code> for the current position in
|
* Returns a <code>DomainObject</code> for the current position in
|
||||||
* the collection.
|
* the collection.
|
||||||
*
|
|
||||||
* @see DomainObject
|
* @see DomainObject
|
||||||
|
*
|
||||||
|
* @return
|
||||||
**/
|
**/
|
||||||
public DomainObject getDomainObject() {
|
public DomainObject getDomainObject() {
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,9 @@ public abstract class DomainQuery implements DataQuery {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
|
||||||
* @see com.arsdigita.persistence.DataQuery
|
* @see com.arsdigita.persistence.DataQuery
|
||||||
|
*
|
||||||
|
* @param dataQuery
|
||||||
**/
|
**/
|
||||||
public DomainQuery(DataQuery dataQuery) {
|
public DomainQuery(DataQuery dataQuery) {
|
||||||
m_dataQuery = dataQuery;
|
m_dataQuery = dataQuery;
|
||||||
|
|
@ -65,6 +66,7 @@ public abstract class DomainQuery implements DataQuery {
|
||||||
* @param propertyName A property name.
|
* @param propertyName A property name.
|
||||||
* @return True if this query fetches the given property.
|
* @return True if this query fetches the given property.
|
||||||
**/
|
**/
|
||||||
|
@Override
|
||||||
public boolean hasProperty(String propertyName) {
|
public boolean hasProperty(String propertyName) {
|
||||||
return m_dataQuery.hasProperty( propertyName );
|
return m_dataQuery.hasProperty( propertyName );
|
||||||
}
|
}
|
||||||
|
|
@ -78,7 +80,8 @@ public abstract class DomainQuery implements DataQuery {
|
||||||
* no objects in the collection
|
* no objects in the collection
|
||||||
*
|
*
|
||||||
* @see com.arsdigita.persistence.DataQuery#first()
|
* @see com.arsdigita.persistence.DataQuery#first()
|
||||||
**/
|
*/
|
||||||
|
@Override
|
||||||
public boolean first() {
|
public boolean first() {
|
||||||
return m_dataQuery.first();
|
return m_dataQuery.first();
|
||||||
}
|
}
|
||||||
|
|
@ -90,30 +93,31 @@ public abstract class DomainQuery implements DataQuery {
|
||||||
* if there are no more objects
|
* if there are no more objects
|
||||||
*
|
*
|
||||||
* @see com.arsdigita.persistence.DataQuery#next()
|
* @see com.arsdigita.persistence.DataQuery#next()
|
||||||
**/
|
*/
|
||||||
|
@Override
|
||||||
public boolean next() {
|
public boolean next() {
|
||||||
return m_dataQuery.next();
|
return m_dataQuery.next();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Moves to the previous object in the collection.
|
* Moves to the previous object in the collection.
|
||||||
|
* @see com.arsdigita.persistence.DataQuery#previous()
|
||||||
*
|
*
|
||||||
* @return true if the new current object is valid; false otherwise
|
* @return true if the new current object is valid; false otherwise
|
||||||
*
|
*/
|
||||||
* @see com.arsdigita.persistence.DataQuery#previous()
|
@Override
|
||||||
**/
|
|
||||||
public boolean previous() {
|
public boolean previous() {
|
||||||
return m_dataQuery.previous();
|
return m_dataQuery.previous();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Moves the cursor to the last object in the collection.
|
* Moves the cursor to the last object in the collection.
|
||||||
|
* @see com.arsdigita.persistence.DataQuery#last()
|
||||||
*
|
*
|
||||||
* @return true if the cursor is on a valid object; false if there
|
* @return true if the cursor is on a valid object; false if there
|
||||||
* are no objects in the collection
|
* are no objects in the collection
|
||||||
*
|
*/
|
||||||
* @see com.arsdigita.persistence.DataQuery#last()
|
@Override
|
||||||
**/
|
|
||||||
public boolean last() {
|
public boolean last() {
|
||||||
return m_dataQuery.last();
|
return m_dataQuery.last();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,9 @@
|
||||||
|
|
||||||
<ctd:authoring-step
|
<ctd:authoring-step
|
||||||
labelKey="publications.ui.publication_properties.title"
|
labelKey="publications.ui.publication_properties.title"
|
||||||
labelBundle="com.arsdigita.cms.contenttypes.ui.PublicationResources"
|
labelBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
|
||||||
descriptionKey="publications.ui.publication_properties.title.description"
|
descriptionKey="movie.authoring.basic_properties.description"
|
||||||
descriptionBundle="com.arsdigita.cms.contenttypes.ui.PublicationResources"
|
descriptionBundle="com.arsdigita.cms.contenttypes.SciPublicationDramaticArtsResources"
|
||||||
component="com.arsdigita.cms.contenttypes.ui.SciPublicationsMoviePropertiesStep"
|
component="com.arsdigita.cms.contenttypes.ui.SciPublicationsMoviePropertiesStep"
|
||||||
ordering="1"/>
|
ordering="1"/>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,3 +17,5 @@ publications.dramaticarts.ui.play.production_theater.none=No theatre assigned
|
||||||
publications.dramaticarts.ui.play.production_theater.remove=Remove
|
publications.dramaticarts.ui.play.production_theater.remove=Remove
|
||||||
publications.dramaticarts.ui.play.production_theater.remove.confirm=Are you sure to remove the assigned theatre?
|
publications.dramaticarts.ui.play.production_theater.remove.confirm=Are you sure to remove the assigned theatre?
|
||||||
publications.dramaticarts.ui.play.productiontheater=First production theathre
|
publications.dramaticarts.ui.play.productiontheater=First production theathre
|
||||||
|
cms.contenttypes.movie.type_label=Publication / Movie
|
||||||
|
cms.contenttypes.play.type_label=Publication / Play
|
||||||
|
|
|
||||||
|
|
@ -17,3 +17,5 @@ publications.dramaticarts.ui.play.production_theater.none=Kein Theater zugewiese
|
||||||
publications.dramaticarts.ui.play.production_theater.remove=Entfernen
|
publications.dramaticarts.ui.play.production_theater.remove=Entfernen
|
||||||
publications.dramaticarts.ui.play.production_theater.remove.confirm=Sind Sie sicher, dass Sie das zugewiesene Theater entfernen wollen?
|
publications.dramaticarts.ui.play.production_theater.remove.confirm=Sind Sie sicher, dass Sie das zugewiesene Theater entfernen wollen?
|
||||||
publications.dramaticarts.ui.play.productiontheater=Erstes Theater
|
publications.dramaticarts.ui.play.productiontheater=Erstes Theater
|
||||||
|
cms.contenttypes.movie.type_label=Publikation / Film
|
||||||
|
cms.contenttypes.play.type_label=Publication / Auff\u00fchrung
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
labelKey="publications.ui.journal_properties.title"
|
labelKey="publications.ui.journal_properties.title"
|
||||||
labelBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
|
labelBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
|
||||||
descriptionKey="publications.ui.journal.basic_properties.description"
|
descriptionKey="publications.ui.journal.basic_properties.description"
|
||||||
descriptionBundle="com.arsdigita.cms.contenttypes.PublicationResources"
|
descriptionBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
|
||||||
component="com.arsdigita.cms.contenttypes.ui.JournalPropertiesStep"
|
component="com.arsdigita.cms.contenttypes.ui.JournalPropertiesStep"
|
||||||
ordering="1"/>
|
ordering="1"/>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
labelKey="publications.ui.monograph_properties.title"
|
labelKey="publications.ui.monograph_properties.title"
|
||||||
labelBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
|
labelBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
|
||||||
descriptionKey="publications.ui.monograph.basic_properties.description"
|
descriptionKey="publications.ui.monograph.basic_properties.description"
|
||||||
descriptionBundle="com.arsdigita.cms.contenttpyes.PublicationsResources"
|
descriptionBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
|
||||||
component="com.arsdigita.cms.contenttypes.ui.MonographPropertiesStep"
|
component="com.arsdigita.cms.contenttypes.ui.MonographPropertiesStep"
|
||||||
ordering="1"/>
|
ordering="1"/>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,18 +10,19 @@
|
||||||
|
|
||||||
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.GenericPersonCreate">
|
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.GenericPersonCreate">
|
||||||
|
|
||||||
<ctd:authoring-step labelKey="cms.contenttypes.shared.basic_properties.title"
|
<ctd:authoring-step
|
||||||
labelBundle="com.arsdigita.cms.CMSResources"
|
labelKey="cms.contenttypes.shared.basic_properties.title"
|
||||||
descriptionKey="cms.contenttypes.shared.basic_properties.description"
|
labelBundle="com.arsdigita.cms.CMSResources"
|
||||||
descriptionBundle="com.arsdigita.cms.CMSResources"
|
descriptionKey="cms.contenttypes.sciauthor.basic_properties.description"
|
||||||
component="com.arsdigita.cms.contenttypes.ui.SciAuthorPropertiesStep"
|
descriptionBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
|
||||||
ordering="1"/>
|
component="com.arsdigita.cms.contenttypes.ui.SciAuthorPropertiesStep"
|
||||||
|
ordering="1"/>
|
||||||
|
|
||||||
<ctd:authoring-step
|
<ctd:authoring-step
|
||||||
labelKey="person.authoring.contact_properties.title"
|
labelKey="cms.contenttypes.sciauthor.authoring.contact_properties.title"
|
||||||
labelBundle="com.arsdigita.cms.contenttypes.ContenttypesResources"
|
labelBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
|
||||||
descriptionKey="person.authoring.contact_properties.description"
|
descriptionKey="cms.contenttypes.sciauthor.authoring.contact_properties.description"
|
||||||
descriptionBundle="com.arsdigita.cms.contenttypes.ContenttypesResources"
|
descriptionBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
|
||||||
component="com.arsdigita.cms.contenttypes.ui.GenericPersonContactPropertiesStep"
|
component="com.arsdigita.cms.contenttypes.ui.GenericPersonContactPropertiesStep"
|
||||||
ordering="2"/>
|
ordering="2"/>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -206,7 +206,7 @@ publications.ui.series.volumes.none=No volumes
|
||||||
publications.ui.series.volumes.remove=Remove volume
|
publications.ui.series.volumes.remove=Remove volume
|
||||||
publications.ui.series.volumes.remove.confirm=Really remove this volume?
|
publications.ui.series.volumes.remove.confirm=Really remove this volume?
|
||||||
publications.ui.series.volumes.volume_of_series=Volume of series
|
publications.ui.series.volumes.volume_of_series=Volume of series
|
||||||
sciauthor.ui.edit_basic_properties=Basic properties
|
cms.contenttypes.sciauthor.ui.edit_basic_properties=Basic properties
|
||||||
publications.ui.inproceedings.pages_to=Last page
|
publications.ui.inproceedings.pages_to=Last page
|
||||||
publications.ui.internetarticle.issn=ISSN
|
publications.ui.internetarticle.issn=ISSN
|
||||||
publications.ui.internetarticle.publication_date=Date of publication
|
publications.ui.internetarticle.publication_date=Date of publication
|
||||||
|
|
@ -417,21 +417,24 @@ publications.ui.publication.language=Language of publication
|
||||||
publications.ui.series.number=Volume of series
|
publications.ui.series.number=Volume of series
|
||||||
person.ui.publications.header=Publications with {0} as author
|
person.ui.publications.header=Publications with {0} as author
|
||||||
person.ui.publications.header.alias_of=(Alias of {0})
|
person.ui.publications.header.alias_of=(Alias of {0})
|
||||||
cms.contenttypes.articleincollectedvolume.type_label=Publication / Article in Collected Volume
|
cms.contenttypes.articleincollectedvolume.type_label=Publication - Article in Collected Volume
|
||||||
cms.contenttypes.articleinjournal.type_label=Publication / Article in Journal
|
cms.contenttypes.articleinjournal.type_label=Publication - Article in Journal
|
||||||
cms.contenttypes.collectedvolume.type_label=Publication / Collected Volume
|
cms.contenttypes.collectedvolume.type_label=Publication - Collected Volume
|
||||||
cms.contenttypes.Expertise.type_label=Publication / Expertise
|
cms.contenttypes.expertise.type_label=Publication - Expertise
|
||||||
cms.contenttypes.GreyLiterature.type_label=Publication / Grey Literature
|
cms.contenttypes.greyliterature.type_label=Publication - Grey Literature
|
||||||
cms.contenttypes.InProceedings.type_label=Publication / In Proceedings
|
cms.contenttypes.inproceedings.type_label=Publication - In Proceedings
|
||||||
cms.contenttypes.InternetArticle.type_label=Publication / Internet Article
|
cms.contenttypes.internetarticle.type_label=Publication - Internet Article
|
||||||
cms.contenttypes.Journal.type_label=Publication / Journal
|
cms.contenttypes.journal.type_label=Publication - Journal
|
||||||
cms.contenttypes.Monograph.type_label=Publication / Monograph
|
cms.contenttypes.monograph.type_label=Publication - Monograph
|
||||||
cms.contenttypes.Proceedings.type_label=Publication / Proceedings
|
cms.contenttypes.proceedings.type_label=Publication - Proceedings
|
||||||
cms.contenttypes.Publication.type_label=Publication
|
cms.contenttypes.publication.type_label=Publication
|
||||||
cms.contenttypes.PublicationWithPublisher.type_label=Publication with Publisher
|
cms.contenttypes.publicationwithpublisher.type_label=Publication with Publisher
|
||||||
cms.contenttypes.Publisher.type_label=Publisher
|
cms.contenttypes.publisher.type_label=Publisher
|
||||||
cms.contenttypes.Review.type_label=Publication / Review
|
cms.contenttypes.review.type_label=Publication - Review
|
||||||
cms.contenttypes.SciAuthor.type_label=Publication / Author
|
cms.contenttypes.sciauthor.type_label=Publication - Author
|
||||||
cms.contenttypes.Series.type_label=Publication / Series
|
cms.contenttypes.series.type_label=Publication - Series
|
||||||
cms.contenttypes.UnPublished.type_label=Publication / Unpublished
|
cms.contenttypes.unpublished.type_label=Publication - Unpublished
|
||||||
cms.contenttypes.WorkingPaper.type_label=Publication / Working Paper
|
cms.contenttypes.workingpaper.type_label=Publication - Working Paper-
|
||||||
|
cms.contenttypes.sciauthor.basic_properties.description=Input screen for an atuhor's basic properties as name, christian name, professional titel, etc
|
||||||
|
cms.contenttypes.sciauthor.authoring.contact_properties.description=Contact Properties
|
||||||
|
cms.contenttypes.sciauthor.authoring.contact_properties.title=Contact Properties
|
||||||
|
|
|
||||||
|
|
@ -205,7 +205,7 @@ publications.ui.series.volumes.none=Keine B\u00e4nde gefunden.
|
||||||
publications.ui.series.volumes.remove=Band entfernen.
|
publications.ui.series.volumes.remove=Band entfernen.
|
||||||
publications.ui.series.volumes.remove.confirm=Diesen Band wirklich entfernen?
|
publications.ui.series.volumes.remove.confirm=Diesen Band wirklich entfernen?
|
||||||
publications.ui.series.volumes.volume_of_series=Band der Serie
|
publications.ui.series.volumes.volume_of_series=Band der Serie
|
||||||
sciauthor.ui.edit_basic_properties=Basiseigenschaften bearbeiten
|
cms.contenttypes.sciauthor.ui.edit_basic_properties=Basiseigenschaften bearbeiten
|
||||||
publications.ui.inproceedings.pages_to=Letzte Seite
|
publications.ui.inproceedings.pages_to=Letzte Seite
|
||||||
publications.ui.internetarticle.issn=ISSN
|
publications.ui.internetarticle.issn=ISSN
|
||||||
publications.ui.internetarticle.publication_date=Publikationsdatum
|
publications.ui.internetarticle.publication_date=Publikationsdatum
|
||||||
|
|
@ -416,21 +416,24 @@ publications.ui.publication.language=Sprache der Publikation
|
||||||
publications.ui.series.number=Band der Reihe
|
publications.ui.series.number=Band der Reihe
|
||||||
person.ui.publications.header=Publikationen mit {0} als Autorin/Autor
|
person.ui.publications.header=Publikationen mit {0} als Autorin/Autor
|
||||||
person.ui.publications.header.alias_of=\ (Alias von {0})
|
person.ui.publications.header.alias_of=\ (Alias von {0})
|
||||||
cms.contenttypes.articleincollectedvolume.type_label=Publikation / Sammelbandbeitrag
|
cms.contenttypes.articleincollectedvolume.type_label=Publikation - Sammelbandbeitrag
|
||||||
cms.contenttypes.articleinjournal.type_label=Publikation / Zeitschriftenbeitrag
|
cms.contenttypes.articleinjournal.type_label=Publikation - Zeitschriftenbeitrag
|
||||||
cms.contenttypes.collectedvolume.type_label=Publication / Collected Volume
|
cms.contenttypes.collectedvolume.type_label=Publikation - Sammelband
|
||||||
cms.contenttypes.Expertise.type_label=Publikation / Gutachten
|
cms.contenttypes.expertise.type_label=Publikation - Gutachten
|
||||||
cms.contenttypes.GreyLiterature.type_label=Publikation / Graue Literatur
|
cms.contenttypes.greyliterature.type_label=Publikation - Graue Literatur
|
||||||
cms.contenttypes.InProceedings.type_label=Publikation / Beitrag in Tagungsband
|
cms.contenttypes.inproceedings.type_label=Publikation - Beitrag in Tagungsband
|
||||||
cms.contenttypes.InternetArticle.type_label=Publikation / Internet Artikel
|
cms.contenttypes.internetarticle.type_label=Publikation - Internet Artikel
|
||||||
cms.contenttypes.Journal.type_label=Publikation / Zeitschrift
|
cms.contenttypes.journal.type_label=Publikation - Zeitschrift
|
||||||
cms.contenttypes.Monograph.type_label=Publikation / Monographie
|
cms.contenttypes.monograph.type_label=Publikation - Monographie
|
||||||
cms.contenttypes.Proceedings.type_label=Publikation / Tagungsband
|
cms.contenttypes.proceedings.type_label=Publikation - Tagungsband
|
||||||
cms.contenttypes.Publication.type_label=Publikation
|
cms.contenttypes.publication.type_label=Publikation
|
||||||
cms.contenttypes.PublicationWithPublisher.type_label=Publication with Publisher
|
cms.contenttypes.publicationwithpublisher.type_label=Publikation with Publisher
|
||||||
cms.contenttypes.Publisher.type_label=Verlag
|
cms.contenttypes.publisher.type_label=Verlag
|
||||||
cms.contenttypes.Review.type_label=Publication / Rezension
|
cms.contenttypes.review.type_label=Publikation - Rezension
|
||||||
cms.contenttypes.SciAuthor.type_label=Publikation / AutorIn
|
cms.contenttypes.sciauthor.type_label=Publikation - AutorIn
|
||||||
cms.contenttypes.Series.type_label=Publikation / Serie
|
cms.contenttypes.series.type_label=Publikation - Serie
|
||||||
cms.contenttypes.UnPublished.type_label=Publikation / Unver\u00f6ffentlicht
|
cms.contenttypes.unpublished.type_label=Publikation - Unver\u00f6ffentlicht
|
||||||
cms.contenttypes.WorkingPaper.type_label=Publikation / Arbeitspapier
|
cms.contenttypes.workingpaper.type_label=Publikation - Arbeitspapier
|
||||||
|
cms.contenttypes.sciauthor.basic_properties.description=Input screen for an atuhor's basic properties as name, christian name, professional titel, etc
|
||||||
|
cms.contenttypes.sciauthor.authoring.contact_properties.description=Kontaktangaben
|
||||||
|
cms.contenttypes.sciauthor.authoring.contact_properties.title=Kontaktangaben
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ public class SciAuthorPropertiesStep extends SimpleEditStep {
|
||||||
editSheet = new SciAuthorPropertyForm(itemModel, this);
|
editSheet = new SciAuthorPropertyForm(itemModel, this);
|
||||||
add(EDIT_SHEET_NAME,
|
add(EDIT_SHEET_NAME,
|
||||||
PublicationGlobalizationUtil.globalize(
|
PublicationGlobalizationUtil.globalize(
|
||||||
"sciauthor.ui.edit_basic_properties"),
|
"cms.contenttypes.sciauthor.ui.edit_basic_properties"),
|
||||||
new WorkflowLockedComponentAccess(editSheet, itemModel),
|
new WorkflowLockedComponentAccess(editSheet, itemModel),
|
||||||
editSheet.getSaveCancelSection().getCancelButton());
|
editSheet.getSaveCancelSection().getCancelButton());
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.event.FormInitListener;
|
import com.arsdigita.bebop.event.FormInitListener;
|
||||||
import com.arsdigita.bebop.event.FormSectionEvent;
|
import com.arsdigita.bebop.event.FormSectionEvent;
|
||||||
import com.arsdigita.bebop.event.FormSubmissionListener;
|
import com.arsdigita.bebop.event.FormSubmissionListener;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
<ctd:content-types xmlns:ctd="http://xmlns.redhat.com/cms/content-types"
|
<ctd:content-types xmlns:ctd="http://xmlns.redhat.com/cms/content-types"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://xmlns.redhat.com/cms/content-types content-types.xsd">
|
xsi:schemaLocation="http://xmlns.redhat.com/cms/content-types content-types.xsd">
|
||||||
|
|
||||||
<ctd:content-type
|
<ctd:content-type
|
||||||
label="SciDepartment"
|
label="SciDepartment"
|
||||||
|
|
@ -14,22 +14,22 @@
|
||||||
|
|
||||||
<ctd:authoring-step
|
<ctd:authoring-step
|
||||||
labelKey="sciorganization.ui.department_properties.title"
|
labelKey="sciorganization.ui.department_properties.title"
|
||||||
labelBundle="com.arsdigita.cms.contenttypes.ui.SciDepartmentResources"
|
labelBundle="com.arsdigita.cms.contenttypes.SciDepartmentResources"
|
||||||
descriptionKey="sciorganization.ui.department_properties.title"
|
descriptionKey="sciorganization.ui.department_properties.title"
|
||||||
descriptionBundle="com.arsdigita.cms.contenttypes.ui.SciDepartmentResources"
|
descriptionBundle="com.arsdigita.cms.contenttypes.SciDepartmentResources"
|
||||||
component="com.arsdigita.cms.contenttypes.ui.SciDepartmentPropertiesStep"
|
component="com.arsdigita.cms.contenttypes.ui.SciDepartmentPropertiesStep"
|
||||||
ordering="1"/>
|
ordering="1"/>
|
||||||
|
|
||||||
<ctd:authoring-step
|
<ctd:authoring-step
|
||||||
labelKey="sciorganization.ui.department.members"
|
labelKey="sciorganization.ui.department.members"
|
||||||
labelBundle="com.arsdigita.cms.contenttypes.ui.SciDepartmentResources"
|
labelBundle="com.arsdigita.cms.contenttypes.SciDepartmentResources"
|
||||||
descriptionKey="sciorganization.ui.department.members.description"
|
descriptionKey="sciorganization.ui.department.members.description"
|
||||||
component="com.arsdigita.cms.contenttypes.ui.SciDepartmentMembersStep"
|
component="com.arsdigita.cms.contenttypes.ui.SciDepartmentMembersStep"
|
||||||
ordering="2"/>
|
ordering="2"/>
|
||||||
|
|
||||||
<ctd:authoring-step
|
<ctd:authoring-step
|
||||||
labelKey="sciorganization.ui.department_description.title"
|
labelKey="sciorganization.ui.department_description.title"
|
||||||
labelBundle="com.arsdigita.cms.contenttypes.ui.SciDepartmentResources"
|
labelBundle="com.arsdigita.cms.contenttypes.SciDepartmentResources"
|
||||||
descriptionKey="sciorganization.ui.department_description.title"
|
descriptionKey="sciorganization.ui.department_description.title"
|
||||||
component="com.arsdigita.cms.contenttypes.ui.SciDepartmentDescriptionStep"
|
component="com.arsdigita.cms.contenttypes.ui.SciDepartmentDescriptionStep"
|
||||||
ordering="3"/>
|
ordering="3"/>
|
||||||
|
|
|
||||||
|
|
@ -82,3 +82,4 @@ sciproject.ui.departments.title=Involved departments
|
||||||
sciproject.ui.departments.description=Add this project to the projects of a department
|
sciproject.ui.departments.description=Add this project to the projects of a department
|
||||||
scidepartment.ui.members.add=Add member
|
scidepartment.ui.members.add=Add member
|
||||||
scidepartment.ui.superdepartment.add=Add superior deparment
|
scidepartment.ui.superdepartment.add=Add superior deparment
|
||||||
|
cms.contenttypes.scidepartment.type_label=(Scientific) Departement
|
||||||
|
|
@ -85,3 +85,4 @@ sciproject.ui.departments.title=Beteiligte Abteilungen
|
||||||
sciproject.ui.departments.description=Dieses Projekt den Projektes einer Abteilung hinzuf\u00fcgen
|
sciproject.ui.departments.description=Dieses Projekt den Projektes einer Abteilung hinzuf\u00fcgen
|
||||||
scidepartment.ui.members.add=Mitglied hinzuf\u00fcgen
|
scidepartment.ui.members.add=Mitglied hinzuf\u00fcgen
|
||||||
scidepartment.ui.superdepartment.add=\u00dcbergeordnete Abteilung hinzuf\u00fcgen
|
scidepartment.ui.superdepartment.add=\u00dcbergeordnete Abteilung hinzuf\u00fcgen
|
||||||
|
cms.contenttypes.scidepartment.type_label=Abteilung
|
||||||
|
|
@ -33,7 +33,7 @@ public class SciDepartmentGlobalizationUtil {
|
||||||
|
|
||||||
/** Name of Java resource files to handle SciDepartment's globalisation. */
|
/** Name of Java resource files to handle SciDepartment's globalisation. */
|
||||||
public static final String BUNDLE_NAME =
|
public static final String BUNDLE_NAME =
|
||||||
"com.arsdigita.cms.contenttypes.ui.SciDepartmentResources";
|
"com.arsdigita.cms.contenttypes.SciDepartmentResources";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a globalized message using the appropriate bundle.
|
* Returns a globalized message using the appropriate bundle.
|
||||||
|
|
|
||||||
|
|
@ -14,22 +14,22 @@
|
||||||
|
|
||||||
<ctd:authoring-step
|
<ctd:authoring-step
|
||||||
labelKey="sciorganization.ui.institute_properties.title"
|
labelKey="sciorganization.ui.institute_properties.title"
|
||||||
labelBundle="com.arsdigita.cms.contenttypes.ui.SciInstituteResources"
|
labelBundle="com.arsdigita.cms.contenttypes.SciInstituteResources"
|
||||||
descriptionKey="sciorganization.ui.institute_properties.title"
|
descriptionKey="sciorganization.ui.institute_properties.title"
|
||||||
descriptionBundle="com.arsdigita.cms.contenttypes.ui.SciInstituteResources"
|
descriptionBundle="com.arsdigita.cms.contenttypes.SciInstituteResources"
|
||||||
component="com.arsdigita.cms.contenttypes.ui.SciInstitutePropertiesStep"
|
component="com.arsdigita.cms.contenttypes.ui.SciInstitutePropertiesStep"
|
||||||
ordering="1"/>
|
ordering="1"/>
|
||||||
|
|
||||||
<ctd:authoring-step
|
<ctd:authoring-step
|
||||||
labelKey="sciorganization.ui.institute.members"
|
labelKey="sciorganization.ui.institute.members"
|
||||||
labelBundle="com.arsdigita.cms.contenttypes.ui.SciInstituteResources"
|
labelBundle="com.arsdigita.cms.contenttypes.SciInstituteResources"
|
||||||
descriptionKey="sciorganization.ui.institute.members.description"
|
descriptionKey="sciorganization.ui.institute.members.description"
|
||||||
component="com.arsdigita.cms.contenttypes.ui.SciInstituteMembersStep"
|
component="com.arsdigita.cms.contenttypes.ui.SciInstituteMembersStep"
|
||||||
ordering="2"/>
|
ordering="2"/>
|
||||||
|
|
||||||
<ctd:authoring-step
|
<ctd:authoring-step
|
||||||
labelKey="sciorganization.ui.institute_description.title"
|
labelKey="sciorganization.ui.institute_description.title"
|
||||||
labelBundle="com.arsdigita.cms.contenttypes.ui.SciInstituteResources"
|
labelBundle="com.arsdigita.cms.contenttypes.SciInstituteResources"
|
||||||
descriptionKey="sciorganization.ui.institute_description.title"
|
descriptionKey="sciorganization.ui.institute_description.title"
|
||||||
component="com.arsdigita.cms.contenttypes.ui.SciInstituteDescriptionStep"
|
component="com.arsdigita.cms.contenttypes.ui.SciInstituteDescriptionStep"
|
||||||
ordering="3"/>
|
ordering="3"/>
|
||||||
|
|
|
||||||
|
|
@ -81,3 +81,5 @@ sciinstitute.ui.projects.title=Projects
|
||||||
sciinstitute.ui.projects.description=Manage the projects of this institute
|
sciinstitute.ui.projects.description=Manage the projects of this institute
|
||||||
sciproject.ui.institutes.title=Participating institutes
|
sciproject.ui.institutes.title=Participating institutes
|
||||||
sciproject.ui.institutes.description=Participating institutes
|
sciproject.ui.institutes.description=Participating institutes
|
||||||
|
cms.contenttypes.sciinstitute.type_label=Scientific Institute
|
||||||
|
cms.contenttypes.sciinstitute.type_description=Institute of scientific organizations, e.g. university
|
||||||
|
|
@ -80,4 +80,6 @@ scidepartment.ui.institutes.description=Diese Abteilung einem Institut hinzuf\u0
|
||||||
sciinstitute.ui.projects.title=Projekte
|
sciinstitute.ui.projects.title=Projekte
|
||||||
sciinstitute.ui.projects.description=Projekte dieses Instituts verwalten
|
sciinstitute.ui.projects.description=Projekte dieses Instituts verwalten
|
||||||
sciproject.ui.institutes.title=Beteiligte Institute
|
sciproject.ui.institutes.title=Beteiligte Institute
|
||||||
sciproject.ui.institutes.description=An dem Projekt beteiligte Institute verwalten
|
sciproject.ui.institutes.description=An dem Projekt beteiligte Institute verwa
|
||||||
|
cms.contenttypes.sciinstitute.type_label=Wissenschaftliches Institut
|
||||||
|
cms.contenttypes.sciinstitute.type_description=Institut einer wissenschaftlichen Organisation, z.B. Universit\u00e4t
|
||||||
|
|
@ -10,7 +10,7 @@ import com.arsdigita.globalization.GlobalizedMessage;
|
||||||
public class SciInstituteGlobalizationUtil {
|
public class SciInstituteGlobalizationUtil {
|
||||||
|
|
||||||
public static final String BUNDLE_NAME =
|
public static final String BUNDLE_NAME =
|
||||||
"com.arsdigita.cms.contenttypes.ui.SciInstituteResources";
|
"com.arsdigita.cms.contenttypes.SciInstituteResources";
|
||||||
|
|
||||||
public static GlobalizedMessage globalize(final String key) {
|
public static GlobalizedMessage globalize(final String key) {
|
||||||
return new GlobalizedMessage(key, BUNDLE_NAME);
|
return new GlobalizedMessage(key, BUNDLE_NAME);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
# To change this license header, choose License Headers in Project Properties.
|
||||||
|
# To change this template file, choose Tools | Templates
|
||||||
|
# and open the template in the editor.
|
||||||
|
|
||||||
|
cms.contenttypes.scimember.type_label=(Scientific) Member
|
||||||
|
cms.contenttypes.scimember.type_description=Base type for a member of an (scientific) organization
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
# To change this license header, choose License Headers in Project Properties.
|
||||||
|
# To change this template file, choose Tools | Templates
|
||||||
|
# and open the template in the editor.
|
||||||
|
|
||||||
|
cms.contenttypes.scimember.type_label=Mitglied (einer wiss. Org.)
|
||||||
|
cms.contenttypes.scimember.type_description=Basistyp f\u00fcr ein Mitglied einer (wissenschaftlichen) Organisation
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<ccm:application xmlns:ccm="http://ccm.redhat.com/ccm-project"
|
<ccm:application xmlns:ccm="http://ccm.redhat.com/ccm-project"
|
||||||
name="ccm-sci-types-project"
|
name="ccm-sci-types-project"
|
||||||
prettyName="Scientific CMS Project content type"
|
prettyName="Scientific CMS Project content type"
|
||||||
version = "6.6.8"
|
version = "6.6.9"
|
||||||
release="1"
|
release="1"
|
||||||
webapp="ROOT">
|
webapp="ROOT">
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
\echo 'ScientificCMS SciProject module upgrade 6.6.7 -> 6.6.8 (PostgreSQL)'
|
||||||
|
|
||||||
|
begin;
|
||||||
|
|
||||||
|
# Resource bundle has been relocated, may be updated in the content types
|
||||||
|
# authoring step(s) as well. Not urgent, because currently seldomly used
|
||||||
|
# (or not at all)
|
||||||
|
# \i ../default/upgrade/6.6.7-6.6.8/add_sponsor_fundingcode.sql
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
@ -103,3 +103,4 @@ sciproject.ui.sponsor_edit_assoc=Edit
|
||||||
sciproject.ui.sponsor.up=Up
|
sciproject.ui.sponsor.up=Up
|
||||||
sciproject.ui.sponsor.down=Down
|
sciproject.ui.sponsor.down=Down
|
||||||
sciproject.ui.sponsor.edit_assoc=Edit
|
sciproject.ui.sponsor.edit_assoc=Edit
|
||||||
|
cms.contenttypes.sciproject.type_label=Research Project
|
||||||
|
|
@ -104,3 +104,4 @@ sciproject.ui.sponsor_edit_assoc=Bearbeiten
|
||||||
sciproject.ui.sponsor.up=Hoch
|
sciproject.ui.sponsor.up=Hoch
|
||||||
sciproject.ui.sponsor.down=Runter
|
sciproject.ui.sponsor.down=Runter
|
||||||
sciproject.ui.sponsor.edit_assoc=Bearbeiten
|
sciproject.ui.sponsor.edit_assoc=Bearbeiten
|
||||||
|
cms.contenttypes.sciproject.type_label=Forschungsproject
|
||||||
|
|
@ -9,7 +9,7 @@ import com.arsdigita.globalization.GlobalizedMessage;
|
||||||
*/
|
*/
|
||||||
public class SciProjectGlobalizationUtil {
|
public class SciProjectGlobalizationUtil {
|
||||||
|
|
||||||
public static final String BUNDLE_NAME = "com.arsdigita.cms.contenttypes.ui.SciProjectResources";
|
public static final String BUNDLE_NAME = "com.arsdigita.cms.contenttypes.SciProjectResources";
|
||||||
|
|
||||||
public static GlobalizedMessage globalize(final String key) {
|
public static GlobalizedMessage globalize(final String key) {
|
||||||
return new GlobalizedMessage(key, BUNDLE_NAME);
|
return new GlobalizedMessage(key, BUNDLE_NAME);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue