From 1b206fecef68a64c3fbb18070a5bb7700c40a81b Mon Sep 17 00:00:00 2001 From: jensp Date: Wed, 24 Feb 2016 17:48:43 +0000 Subject: [PATCH] CCM NG: - Further work on the admin UI - Refactored the GlobalizationHelper to use CDI for getting the current request. Also cleaned up the code. git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@3892 8810af33-2d31-482b-a856-94f89814c4df --- .../src/main/resources/log4j2.xml | 3 + .../java/com/arsdigita/bebop/form/Date.java | 49 +++-- .../com/arsdigita/bebop/form/OptionGroup.java | 127 +++++++------ .../java/com/arsdigita/bebop/form/Time.java | 64 +++++-- .../arsdigita/bebop/page/PageTransformer.java | 13 +- .../bebop/parameters/TimeParameter.java | 86 +++++---- .../globalization/GlobalizedMessage.java | 12 +- ...er.java => LegacyGlobalizationHelper.java} | 33 ++-- .../com/arsdigita/kernel/KernelConfig.java | 2 +- .../com/arsdigita/ui/admin/AdminServlet.java | 1 + .../arsdigita/ui/admin/AdminUiConstants.java | 172 +++++++++--------- .../ui/admin/usersgroupsroles/UserAdmin.java | 36 ++++ .../UsersGroupsRolesTab.java | 25 ++- .../ui/admin/usersgroupsroles/UsersTable.java | 159 ++++++++++++++++ .../libreccm/l10n/GlobalizationHelper.java | 151 +++++++++++++++ .../libreccm/themes/StaticThemesServlet.java | 123 +++++++++++++ .../resources/themes/test/ccm-core.html | 9 + .../resources/themes/test/ccm-core.txt | 9 + .../ui/admin/AdminResources.properties | 5 + .../ui/admin/AdminResources_de.properties | 5 + .../ui/admin/AdminResources_en.properties | 5 + .../ui/admin/AdminResources_fr.properties | 5 + 22 files changed, 847 insertions(+), 247 deletions(-) rename ccm-core/src/main/java/com/arsdigita/globalization/{GlobalizationHelper.java => LegacyGlobalizationHelper.java} (82%) create mode 100644 ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UserAdmin.java rename ccm-core/src/main/java/com/arsdigita/ui/admin/{ => usersgroupsroles}/UsersGroupsRolesTab.java (90%) create mode 100644 ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UsersTable.java create mode 100644 ccm-core/src/main/java/org/libreccm/l10n/GlobalizationHelper.java create mode 100644 ccm-core/src/main/java/org/libreccm/themes/StaticThemesServlet.java create mode 100644 ccm-core/src/main/resources/META-INF/resources/themes/test/ccm-core.html create mode 100644 ccm-core/src/main/resources/META-INF/resources/themes/test/ccm-core.txt diff --git a/ccm-bundle-devel-wildfly-web/src/main/resources/log4j2.xml b/ccm-bundle-devel-wildfly-web/src/main/resources/log4j2.xml index 3f6bc94a3..3ac04b858 100644 --- a/ccm-bundle-devel-wildfly-web/src/main/resources/log4j2.xml +++ b/ccm-bundle-devel-wildfly-web/src/main/resources/log4j2.xml @@ -12,6 +12,9 @@ + + diff --git a/ccm-core/src/main/java/com/arsdigita/bebop/form/Date.java b/ccm-core/src/main/java/com/arsdigita/bebop/form/Date.java index f12f74f75..f54a89ebf 100755 --- a/ccm-core/src/main/java/com/arsdigita/bebop/form/Date.java +++ b/ccm-core/src/main/java/com/arsdigita/bebop/form/Date.java @@ -30,15 +30,21 @@ import com.arsdigita.bebop.parameters.ParameterData; import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.Form; import com.arsdigita.bebop.FormData; -import com.arsdigita.bebop.parameters.*; +import com.arsdigita.bebop.parameters.DateTimeParameter; +import com.arsdigita.bebop.parameters.IncompleteDateParameter; +import com.arsdigita.bebop.parameters.NotNullValidationListener; + // This interface contains the XML element name of this class // in a constant which is used when generating XML import com.arsdigita.bebop.util.BebopConstants; -import com.arsdigita.globalization.GlobalizationHelper; import com.arsdigita.bebop.util.GlobalizationUtil; import com.arsdigita.xml.Element; + +import org.libreccm.cdi.utils.CdiUtil; +import org.libreccm.l10n.GlobalizationHelper; + import java.text.SimpleDateFormat; import java.util.Locale; @@ -203,7 +209,8 @@ public class Date extends Widget implements BebopConstants { public Date(ParameterModel model) { super(model); - if (!(model instanceof DateParameter || model instanceof DateTimeParameter)) { + if (!(model instanceof DateParameter + || model instanceof DateTimeParameter)) { throw new IllegalArgumentException( "The Date widget " + model.getName() + " must be backed by a DateParameter parmeter model"); @@ -254,9 +261,12 @@ public class Date extends Widget implements BebopConstants { // Create an empty year entry to unset a date, if either // a) skipYearAllowed is true // b) skipDayAllowed is true and skipMonthAllowed is true, to unset a date - if (((IncompleteDateParameter) this.getParameterModel()).isSkipYearAllowed() - || (((IncompleteDateParameter) this.getParameterModel()).isSkipDayAllowed() - && ((IncompleteDateParameter) this.getParameterModel()) + if (((IncompleteDateParameter) this.getParameterModel()) + .isSkipYearAllowed() + || (((IncompleteDateParameter) this.getParameterModel()) + .isSkipDayAllowed() + && ((IncompleteDateParameter) this + .getParameterModel()) .isSkipMonthAllowed())) { m_year.addOption(new Option("", "")); } @@ -266,7 +276,7 @@ public class Date extends Widget implements BebopConstants { m_year.addOption(new Option(String.valueOf(year))); } } else { - for(int year = m_year_end; year >= m_year_begin; year--) { + for (int year = m_year_end; year >= m_year_begin; year--) { m_year.addOption(new Option(String.valueOf(year))); } } @@ -305,8 +315,8 @@ public class Date extends Widget implements BebopConstants { } /** - * Sets the MAXLENGTH attribute for the INPUT tag used to render this form - * element. + * Sets the MAXLENGTH attribute for the INPUT tag used to + * render this form element. * * @param length */ @@ -344,7 +354,8 @@ public class Date extends Widget implements BebopConstants { Element date = parent.newChildElement(getElementTag(), BEBOP_XML_NS); date.addAttribute("name", getParameterModel().getName()); if (getLabel() != null) { - date.addAttribute("label", (String) getLabel().localize(ps.getRequest())); + date.addAttribute("label", (String) getLabel().localize(ps + .getRequest())); } exportAttributes(date); generateDescriptionXML(ps, date); @@ -360,7 +371,8 @@ public class Date extends Widget implements BebopConstants { public void generateLocalizedWidget(PageState ps, Element date) { Locale defaultLocale = Locale.getDefault(); - Locale locale = GlobalizationHelper.getNegotiatedLocale(); + Locale locale = CdiUtil.createCdiUtil().findBean( + GlobalizationHelper.class).getNegotiatedLocale(); // Get the current Pattern // XXX This is really, really, really, really, really, really bad @@ -418,9 +430,9 @@ public class Date extends Widget implements BebopConstants { } /** - * Sets the Form Object for this Widget. This method will throw an exception if the _form - * pointer is already set. To explicity change the _form pointer the developer must first call - * setForm(null) + * Sets the Form Object for this Widget. This method will throw an exception + * if the _form pointer is already set. To explicity change the _form + * pointer the developer must first call setForm(null) * * @param f the Form Object for this Widget. * @@ -458,7 +470,8 @@ public class Date extends Widget implements BebopConstants { private void populateMonthOptions() { - Locale locale = GlobalizationHelper.getNegotiatedLocale(); + Locale locale = CdiUtil.createCdiUtil().findBean( + GlobalizationHelper.class).getNegotiatedLocale(); if (m_locale == null || (locale != null && !m_locale.equals(locale))) { @@ -468,7 +481,8 @@ public class Date extends Widget implements BebopConstants { m_month.clearOptions(); if (this.getParameterModel() instanceof IncompleteDateParameter) { - if (((IncompleteDateParameter) this.getParameterModel()).isSkipMonthAllowed()) { + if (((IncompleteDateParameter) this.getParameterModel()) + .isSkipMonthAllowed()) { m_month.addOption(new Option("", "")); } } @@ -480,7 +494,8 @@ public class Date extends Widget implements BebopConstants { m_month.addOption(new Option(String.valueOf(i), months[i])); } } - m_locale = GlobalizationHelper.getNegotiatedLocale(); + m_locale = CdiUtil.createCdiUtil().findBean( + GlobalizationHelper.class).getNegotiatedLocale(); } } diff --git a/ccm-core/src/main/java/com/arsdigita/bebop/form/OptionGroup.java b/ccm-core/src/main/java/com/arsdigita/bebop/form/OptionGroup.java index e271f29d5..f330af602 100755 --- a/ccm-core/src/main/java/com/arsdigita/bebop/form/OptionGroup.java +++ b/ccm-core/src/main/java/com/arsdigita/bebop/form/OptionGroup.java @@ -26,9 +26,9 @@ import com.arsdigita.bebop.parameters.ParameterData; import com.arsdigita.bebop.parameters.ParameterModel; import com.arsdigita.bebop.parameters.ParameterModelWrapper; import com.arsdigita.bebop.util.BebopConstants; -import com.arsdigita.globalization.GlobalizationHelper; import com.arsdigita.util.Assert; import com.arsdigita.xml.Element; + import java.text.Collator; import java.util.Iterator; @@ -41,6 +41,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import org.apache.log4j.Logger; +import org.libreccm.cdi.utils.CdiUtil; +import org.libreccm.l10n.GlobalizationHelper; /** * A class representing any widget that contains a list of options. @@ -56,13 +58,12 @@ public abstract class OptionGroup extends Widget implements BebopConstants { 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 to be initialized by every subclass of OptionGroup. - * LEGACY: An abstract method would be the better design, but changing it + * The XML element to be used by individual options belonging to this group. + * This variable has to be initialized by every subclass of OptionGroup. + * LEGACY: An abstract method would be the better design, but changing it * would break the API. */ //protected String m_xmlElement; - // this only needs to be an ArrayList for multiple selection option groups private List m_selected; private List