From 6cf2047f76224ce78693c17fc21b84257d5f2a08 Mon Sep 17 00:00:00 2001 From: pb Date: Fri, 21 Feb 2014 10:52:26 +0000 Subject: [PATCH] Enhanced globalization support, added some documentation, improved formatting. git-svn-id: https://svn.libreccm.org/ccm/trunk@2537 8810af33-2d31-482b-a856-94f89814c4df --- .../arsdigita/london/terms/Initializer.java | 17 +- .../com/arsdigita/london/terms/Loader.java | 2 +- .../london/terms/TermsAppManager.java | 8 +- .../london/terms/TermsResources.properties | 28 +++ .../london/terms/TermsResources_de.properties | 28 +++ .../terms/ui/TermGlobalizationUtil.java | 23 --- .../london/terms/ui/TermResources.properties | 22 --- .../terms/ui/TermResources_de.properties | 22 --- .../london/terms/ui/admin/DomainEditForm.java | 26 +-- .../terms/ui/admin/DomainMappingAddForm.java | 10 +- .../terms/ui/admin/DomainMappingTable.java | 21 ++- .../london/terms/ui/admin/DomainTable.java | 36 ++-- .../terms/util/TermsGlobalizationUtil.java | 57 ++++++ .../com/arsdigita/navigation/Initializer.java | 178 +++--------------- .../NavigationGlobalizationUtil.java | 21 ++- 15 files changed, 229 insertions(+), 270 deletions(-) create mode 100644 ccm-ldn-terms/src/com/arsdigita/london/terms/TermsResources.properties create mode 100644 ccm-ldn-terms/src/com/arsdigita/london/terms/TermsResources_de.properties delete mode 100644 ccm-ldn-terms/src/com/arsdigita/london/terms/ui/TermGlobalizationUtil.java delete mode 100644 ccm-ldn-terms/src/com/arsdigita/london/terms/ui/TermResources.properties delete mode 100644 ccm-ldn-terms/src/com/arsdigita/london/terms/ui/TermResources_de.properties create mode 100644 ccm-ldn-terms/src/com/arsdigita/london/terms/util/TermsGlobalizationUtil.java diff --git a/ccm-ldn-terms/src/com/arsdigita/london/terms/Initializer.java b/ccm-ldn-terms/src/com/arsdigita/london/terms/Initializer.java index 0d46cfac2..bbe6e4494 100755 --- a/ccm-ldn-terms/src/com/arsdigita/london/terms/Initializer.java +++ b/ccm-ldn-terms/src/com/arsdigita/london/terms/Initializer.java @@ -41,8 +41,17 @@ import com.arsdigita.runtime.RuntimeConfig; import com.arsdigita.ui.admin.ApplicationManagers; import com.arsdigita.xml.XML; +/** + * Initializer for ccm-ldn-terms. + * Executes recursivly at each system startup. + * + * @version $Id: Initializer.java 2070 2014-02-21 08:47:41Z pboy $ + */ public class Initializer extends CompoundInitializer { + /** + * Constructor + */ public Initializer() { final String url = RuntimeConfig.getConfig().getJDBCURL(); final int database = DbHelper.getDatabaseFromURL(url); @@ -53,6 +62,11 @@ public class Initializer extends CompoundInitializer { new NameFilter(DbHelper.getDatabaseSuffix(database), "pdl")))); } + /** + * Initializes domain-coupling machinery, usually consisting of + * registering object instantiators and observers. + * + */ @Override public void init(DomainInitEvent e) { @@ -90,7 +104,8 @@ public class Initializer extends CompoundInitializer { } }); - DomainObjectFactory.registerInstantiator(Indexer.BASE_DATA_OBJECT_TYPE, new DomainObjectInstantiator() { + DomainObjectFactory.registerInstantiator + (Indexer.BASE_DATA_OBJECT_TYPE, new DomainObjectInstantiator() { public DomainObject doNewInstance(DataObject dataObject) { return new DomainUseContext(dataObject); } diff --git a/ccm-ldn-terms/src/com/arsdigita/london/terms/Loader.java b/ccm-ldn-terms/src/com/arsdigita/london/terms/Loader.java index e2007c396..3bedc445b 100755 --- a/ccm-ldn-terms/src/com/arsdigita/london/terms/Loader.java +++ b/ccm-ldn-terms/src/com/arsdigita/london/terms/Loader.java @@ -46,7 +46,7 @@ public class Loader extends PackageLoader { */ public static void setupApplication() { - // NOTE: The title "Navigation" is used to retrieve the application's + // NOTE: The title "Terms" is used to retrieve the application's // name to determine the location of xsl files (by url-izing it). So // DON'T modify it without synchronizing web directory tree accordingly! ApplicationType type = diff --git a/ccm-ldn-terms/src/com/arsdigita/london/terms/TermsAppManager.java b/ccm-ldn-terms/src/com/arsdigita/london/terms/TermsAppManager.java index 74a362649..f5f117d09 100644 --- a/ccm-ldn-terms/src/com/arsdigita/london/terms/TermsAppManager.java +++ b/ccm-ldn-terms/src/com/arsdigita/london/terms/TermsAppManager.java @@ -22,7 +22,7 @@ import com.arsdigita.bebop.BoxPanel; import com.arsdigita.bebop.Label; import com.arsdigita.bebop.Page; import com.arsdigita.bebop.SegmentedPanel; -import com.arsdigita.london.terms.ui.TermGlobalizationUtil; +import com.arsdigita.london.terms.util.TermsGlobalizationUtil; import com.arsdigita.london.terms.ui.admin.DomainEditForm; import com.arsdigita.london.terms.ui.admin.DomainMappingAddForm; import com.arsdigita.london.terms.ui.admin.DomainMappingTable; @@ -72,9 +72,11 @@ public class TermsAppManager extends AbstractSingletonApplicationManager container.add(domains); final SegmentedPanel panel = new SegmentedPanel(); - panel.addSegment(new Label(TermGlobalizationUtil.globalize("term.domain.ui.basic_properties")), + panel.addSegment(new Label(TermsGlobalizationUtil.globalize( + "terms.ui.basic_properties")), editForm); - panel.addSegment(new Label(TermGlobalizationUtil.globalize("term.domain.ui.mappings")), + panel.addSegment(new Label(TermsGlobalizationUtil.globalize( + "terms.ui.mappings")), mappingPanel); // container.add(editForm); diff --git a/ccm-ldn-terms/src/com/arsdigita/london/terms/TermsResources.properties b/ccm-ldn-terms/src/com/arsdigita/london/terms/TermsResources.properties new file mode 100644 index 000000000..43dbf9cc4 --- /dev/null +++ b/ccm-ldn-terms/src/com/arsdigita/london/terms/TermsResources.properties @@ -0,0 +1,28 @@ +# To change this template, choose Tools | Templates +# and open the template in the editor. + +terms.domain.ui.key_label=Key +terms.domain.ui.title_label=Title +terms.domain.ui.url_label=URL +terms.domain.ui.version_label=Version +terms.domain.ui.action_edit=Edit +terms.domain.ui.action_delete=Delete +terms.domain.ui.delete.confirm=Are you sure to delete this domain? +terms.domain.ui.description_label=Description +terms.domain.ui.no_domains=No domains found, +terms.domain.ui.no_mappings=No mappings found. +terms.domain.mapping.ui.delete_confirm=Are you sure to remove this mapping? +terms.domain.mapping.ui.delete=Remove +terms.domain.mapping.ui.app.select_one=Select an application to map the domain to. +terms.domain.mapping.ui.application=Application +terms.domain.ui.released_label=Released +terms.domain.mapping.ui.context=Context +terms.ui.mappings=Mappings +terms.ui.basic_properties=Basic Properties +terms.domain.mapping.ui.remove=Remove +terms.domain.ui.key_hint=The short unique key for the domain, stable across versions +terms.domain.ui.title_hint=The short title of the domain +terms.domain.ui.url_hint=The unique URL defining the current version of the domain. +terms.domain.ui.description_hint=The long description of the domain +terms.domain.ui.version_hint=The current version number, eg 1.00 +terms.domain.ui.released_hint=The release date of the current version diff --git a/ccm-ldn-terms/src/com/arsdigita/london/terms/TermsResources_de.properties b/ccm-ldn-terms/src/com/arsdigita/london/terms/TermsResources_de.properties new file mode 100644 index 000000000..64837c0cb --- /dev/null +++ b/ccm-ldn-terms/src/com/arsdigita/london/terms/TermsResources_de.properties @@ -0,0 +1,28 @@ +# To change this template, choose Tools | Templates +# and open the template in the editor. + +terms.domain.ui.key_label=Domain-ID +terms.domain.ui.title_label=Titel +terms.domain.ui.url_label=URL +terms.domain.ui.version_label=Version +terms.domain.ui.action_edit=Bearbeiten +terms.domain.ui.action_delete=L\u00f6schen +terms.domain.ui.delete.confirm=Sind sie sicher, dass Sie diese Domain l\u00f6schen wollen? +terms.domain.ui.description_label=Beschreibung +terms.domain.ui.no_domains=Keine Domains gefunden. +terms.domain.ui.no_mappings=Keine Mappings gefunden. +terms.domain.mapping.ui.delete_confirm=Sind Sie sicher, dass Sie dieses Mapping entfernen wollen? +terms.domain.mapping.ui.delete=Entfernen +terms.domain.mapping.ui.app.select_one=W\u00e4hlen Sie die Applikation, auf die das Kategoriensystem gemappt werden soll. +terms.domain.mapping.ui.application=Applikation +terms.domain.ui.released_label=Freigegeben +terms.domain.mapping.ui.context=Kontext +terms.ui.mappings=Mappings +terms.ui.basic_properties=Basiseigenschaften +terms.domain.mapping.ui.remove=Entfernen +terms.domain.ui.key_hint=Ein eindeutiger Kurzname f\u00fcr die Domain, unver\u00e4ndert \u00fcber alle Versionen. +terms.domain.ui.title_hint=Ein (kurzer) Titel zur Bezeichnung der Domain +terms.domain.ui.url_hint=Eine eindeutige URL, die die aktuelle Version definiert. +terms.domain.ui.description_hint=Eine ausf\u00fchrlichere Beschreibung der Domain +terms.domain.ui.version_hint=Die aktuelle Version, z.B. 1.00 +terms.domain.ui.released_hint=Das Ver\u00f6ffentlichungsdatum der aktuellen Version. diff --git a/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/TermGlobalizationUtil.java b/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/TermGlobalizationUtil.java deleted file mode 100644 index 8263afa3f..000000000 --- a/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/TermGlobalizationUtil.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.arsdigita.london.terms.ui; - -import com.arsdigita.globalization.GlobalizedMessage; - -/** - * - * @author Jens Pelzetter - * @version $Id$ - */ -public class TermGlobalizationUtil { - - public static final String BUNDLE_NAME = "com.arsdigita.london.terms.ui.TermResources"; - - public static GlobalizedMessage globalize(final String key) { - return new GlobalizedMessage(key, BUNDLE_NAME); - } - - public static GlobalizedMessage globalize(final String key, - final Object[] args) { - return new GlobalizedMessage(key, BUNDLE_NAME, args); - } - -} diff --git a/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/TermResources.properties b/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/TermResources.properties deleted file mode 100644 index f4c362aea..000000000 --- a/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/TermResources.properties +++ /dev/null @@ -1,22 +0,0 @@ -# To change this template, choose Tools | Templates -# and open the template in the editor. - -term.domain.ui.key.label=Key -term.domain.ui.title.label=Title -term.domain.ui.url.label=URL -term.domain.ui.version.label=Version -term.domain.ui.released=Released -term.domain.ui.edit=Edit -term.domain.ui.delete=Delete -term.domain.ui.delete.confirm=Are you sure to delete this domain? -term.domain.ui.description.label=Description -term.domain.ui.no_domains=No domains found, -term.domain.ui.no_mappings=No mappings found. -term.domain.mapping.ui.delete.confirm=Are you sure to remove this mapping? -term.domain.mapping.ui.delete=Remove -term.domain.mapping.ui.app.select_one=Select an application to map the domain to. -term.domain.mapping.ui.application=Application -term.domain.ui.released.label=Released -term.domain.mapping.ui.context=Context -term.domain.ui.mappings=Mappings -term.domain.ui.basic_properties=Basic Properties diff --git a/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/TermResources_de.properties b/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/TermResources_de.properties deleted file mode 100644 index ddb26a265..000000000 --- a/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/TermResources_de.properties +++ /dev/null @@ -1,22 +0,0 @@ -# To change this template, choose Tools | Templates -# and open the template in the editor. - -term.domain.ui.key.label=Domain-ID -term.domain.ui.title.label=Titel -term.domain.ui.url.label=URL -term.domain.ui.version.label=Version -term.domain.ui.released=Freigegeben -term.domain.ui.edit=Bearbeiten -term.domain.ui.delete=L\u00f6schen -term.domain.ui.delete.confirm=Sind sie sicher, dass Sie diese Domain l\u00f6schen wollen? -term.domain.ui.description.label=Beschreibung -term.domain.ui.no_domains=Keine Domains gefunden. -term.domain.ui.no_mappings=Keine Mappings gefunden. -term.domain.mapping.ui.delete.confirm=Sind Sie sicher, dass Sie dieses Mapping entfernen wollen? -term.domain.mapping.ui.delete=L\u00f6schen -term.domain.mapping.ui.app.select_one=W\u00e4hlen Sie die Applikation, auf die das Kategoriensystem gemappt werden soll. -term.domain.mapping.ui.application=Applikation -term.domain.ui.released.label=Freigegeben -term.domain.mapping.ui.context=Kontext -term.domain.ui.mappings=Mappings -term.domain.ui.basic_properties=Basiseigenschaften diff --git a/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/admin/DomainEditForm.java b/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/admin/DomainEditForm.java index 8a0281262..31099a46d 100644 --- a/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/admin/DomainEditForm.java +++ b/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/admin/DomainEditForm.java @@ -36,7 +36,7 @@ import com.arsdigita.bebop.form.TextField; import com.arsdigita.bebop.parameters.NotNullValidationListener; import com.arsdigita.bebop.parameters.StringInRangeValidationListener; import com.arsdigita.london.terms.Domain; -import com.arsdigita.london.terms.ui.TermGlobalizationUtil; +import com.arsdigita.london.terms.util.TermsGlobalizationUtil; import com.arsdigita.london.util.ui.parameters.DomainObjectParameter; import com.arsdigita.london.util.ui.parameters.URLParameter; import com.arsdigita.util.UncheckedWrapperException; @@ -69,7 +69,7 @@ public class DomainEditForm extends Form { key.setSize(20); key.addValidationListener(new NotNullValidationListener()); key.addValidationListener(new StringInRangeValidationListener(1, 20)); - key.setHint("The short unique key for the domain, stable across versions"); + key.setHint(TermsGlobalizationUtil.globalize("terms.domain.ui.key_hint")); try { key.addPrintListener(new PrintListener() { @Override @@ -84,45 +84,45 @@ public class DomainEditForm extends Form { } catch (TooManyListenersException ex) { throw new UncheckedWrapperException(ex); } - add(new Label(TermGlobalizationUtil.globalize("term.domain.ui.key.label"))); + add(new Label(TermsGlobalizationUtil.globalize("terms.domain.ui.key_label"))); add(key); title = new TextField("domainTitle"); title.setSize(50); title.addValidationListener(new NotNullValidationListener()); title.addValidationListener(new StringInRangeValidationListener(1, 300)); - title.setHint("The short title of the domain"); - add(new Label(TermGlobalizationUtil.globalize("term.domain.ui.title.label"))); + title.setHint(TermsGlobalizationUtil.globalize("terms.domain.ui.title_hint")); + add(new Label(TermsGlobalizationUtil.globalize("terms.domain.ui.title_label"))); add(title); url = new TextField(new URLParameter("domainUrl")); url.setSize(50); url.addValidationListener(new NotNullValidationListener()); url.addValidationListener(new StringInRangeValidationListener(1, 255)); - url.setHint("The unique URL defining the current version of the domain"); - add(new Label(TermGlobalizationUtil.globalize("term.domain.ui.url.label"))); + url.setHint(TermsGlobalizationUtil.globalize("terms.domain.ui.url_hint")); + add(new Label(TermsGlobalizationUtil.globalize("terms.domain.ui.url_label"))); add(url); description = new TextArea("domainDesc"); description.setCols(50); description.setRows(5); description.addValidationListener(new StringInRangeValidationListener(0, 4000)); - description.setHint("The long description of the domain"); - add(new Label(TermGlobalizationUtil.globalize("term.domain.ui.description.label"))); + description.setHint(TermsGlobalizationUtil.globalize("terms.domain.ui.description_hint")); + add(new Label(TermsGlobalizationUtil.globalize("terms.domain.ui.description_label"))); add(description); version = new TextField("domainVersion"); version.setSize(20); version.addValidationListener(new NotNullValidationListener()); version.addValidationListener(new StringInRangeValidationListener(1, 20)); - version.setHint("The current version number, eg 1.00"); - add(new Label(TermGlobalizationUtil.globalize("term.domain.ui.version.label"))); + version.setHint(TermsGlobalizationUtil.globalize("terms.domain.ui.version_hint")); + add(new Label(TermsGlobalizationUtil.globalize("terms.domain.ui.version_label"))); add(version); released = new Date("domainReleased"); released.addValidationListener(new NotNullValidationListener()); - released.setHint("The release date of the current version"); - add(new Label(TermGlobalizationUtil.globalize("term.domain.ui.released.label"))); + released.setHint(TermsGlobalizationUtil.globalize("terms.domain.ui.released_hint")); + add(new Label(TermsGlobalizationUtil.globalize("terms.domain.ui.released_label"))); add(released); saveCancel = new SaveCancelSection(); diff --git a/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/admin/DomainMappingAddForm.java b/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/admin/DomainMappingAddForm.java index a78ee1611..88546ba4a 100644 --- a/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/admin/DomainMappingAddForm.java +++ b/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/admin/DomainMappingAddForm.java @@ -37,7 +37,7 @@ import com.arsdigita.bebop.form.TextField; import com.arsdigita.bebop.parameters.NotNullValidationListener; import com.arsdigita.bebop.parameters.StringInRangeValidationListener; import com.arsdigita.london.terms.Domain; -import com.arsdigita.london.terms.ui.TermGlobalizationUtil; +import com.arsdigita.london.terms.util.TermsGlobalizationUtil; import com.arsdigita.london.util.ui.parameters.DomainObjectParameter; import com.arsdigita.util.UncheckedWrapperException; import com.arsdigita.web.Application; @@ -76,8 +76,8 @@ public class DomainMappingAddForm extends Form { final ApplicationCollection applications = Application. retrieveAllApplications(); applications.addOrder(Application.PRIMARY_URL); - target.addOption(new Option(null, new Label(TermGlobalizationUtil.globalize( - "term.domain.mapping.ui.app.select_one")))); + target.addOption(new Option(null, new Label(TermsGlobalizationUtil.globalize( + "terms.domain.mapping.ui.app.select_one")))); while (applications.next()) { final Application app = applications.getApplication(); target.addOption(new Option(app.getOID().toString(), @@ -90,7 +90,7 @@ public class DomainMappingAddForm extends Form { } catch (TooManyListenersException ex) { throw new UncheckedWrapperException(ex); } - add(new Label(TermGlobalizationUtil.globalize("term.domain.mapping.ui.application"))); + add(new Label(TermsGlobalizationUtil.globalize("terms.domain.mapping.ui.application"))); add(application); context = new TextField("domainMappingContext"); @@ -113,7 +113,7 @@ public class DomainMappingAddForm extends Form { //For some purposes it is neccessary to map a domain with a null context //context.addValidationListener(new NotNullValidationListener()); //context.addValidationListener(new StringInRangeValidationListener(1, 100)); - add(new Label(TermGlobalizationUtil.globalize("term.domain.mapping.ui.context"))); + add(new Label(TermsGlobalizationUtil.globalize("terms.domain.mapping.ui.context"))); add(context); saveCancel = new SaveCancelSection(); diff --git a/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/admin/DomainMappingTable.java b/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/admin/DomainMappingTable.java index 665ea45da..c504245a4 100644 --- a/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/admin/DomainMappingTable.java +++ b/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/admin/DomainMappingTable.java @@ -36,7 +36,7 @@ import com.arsdigita.domain.DomainObjectFactory; import com.arsdigita.domain.DomainService; import com.arsdigita.globalization.GlobalizedMessage; import com.arsdigita.london.terms.Domain; -import com.arsdigita.london.terms.ui.TermGlobalizationUtil; +import com.arsdigita.london.terms.util.TermsGlobalizationUtil; import com.arsdigita.london.util.ui.parameters.DomainObjectParameter; import com.arsdigita.persistence.DataObject; import com.arsdigita.persistence.OID; @@ -58,16 +58,21 @@ public class DomainMappingTable extends Table implements TableActionListener { this.selected = selected; - setEmptyView(new Label(TermGlobalizationUtil.globalize("term.domain.ui.no_mappings"))); + setEmptyView(new Label(TermsGlobalizationUtil.globalize( + "terms.domain.ui.no_mappings"))); final TableColumnModel columnModel = getColumnModel(); columnModel.add(new TableColumn( - 0, TermGlobalizationUtil.globalize("term.domain.mapping.ui.application"))); + 0, + TermsGlobalizationUtil.globalize("terms.domain.mapping.ui.application"))); columnModel.add(new TableColumn( - 1, TermGlobalizationUtil.globalize("term.domain.mapping.ui.context"))); + 1, + TermsGlobalizationUtil.globalize("terms.domain.mapping.ui.context"))); columnModel.add(new TableColumn( - 2, TermGlobalizationUtil.globalize("term.domain.mapping.ui.remove"), TABLE_COL_DEL)); + 2, + TermsGlobalizationUtil.globalize("terms.domain.mapping.ui.remove"), + TABLE_COL_DEL)); setModelBuilder(new DomainMappingTableModelBuilder()); @@ -134,7 +139,7 @@ public class DomainMappingTable extends Table implements TableActionListener { case 1: return get(useContexts.getDomainObject(), "useContext"); case 2: - return TermGlobalizationUtil.globalize("term.domain.mapping.ui.delete"); + return TermsGlobalizationUtil.globalize("terms.domain.mapping.ui.delete"); default: return null; } @@ -158,8 +163,8 @@ public class DomainMappingTable extends Table implements TableActionListener { final int row, final int column) { final ControlLink link = new ControlLink(new Label((GlobalizedMessage) value)); - link.setConfirmation(TermGlobalizationUtil.globalize( - "term.domain.mapping.ui.delete.confirm")); + link.setConfirmation(TermsGlobalizationUtil.globalize( + "terms.domain.mapping.ui.delete_confirm")); return link; } diff --git a/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/admin/DomainTable.java b/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/admin/DomainTable.java index 10cb3fb96..258edb2bd 100644 --- a/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/admin/DomainTable.java +++ b/ccm-ldn-terms/src/com/arsdigita/london/terms/ui/admin/DomainTable.java @@ -34,7 +34,7 @@ import com.arsdigita.domain.DomainCollection; import com.arsdigita.domain.DomainObjectFactory; import com.arsdigita.globalization.GlobalizedMessage; import com.arsdigita.london.terms.Domain; -import com.arsdigita.london.terms.ui.TermGlobalizationUtil; +import com.arsdigita.london.terms.util.TermsGlobalizationUtil; import com.arsdigita.london.util.ui.parameters.DomainObjectParameter; import com.arsdigita.persistence.OID; import com.arsdigita.persistence.SessionManager; @@ -56,33 +56,39 @@ public class DomainTable extends Table implements TableActionListener { this.selected = selected; - setEmptyView(new Label(TermGlobalizationUtil.globalize("term.domain.ui.no_domains"))); + setEmptyView(new Label(TermsGlobalizationUtil.globalize( + "terms.domain.ui.no_domains"))); final TableColumnModel columnModel = getColumnModel(); columnModel.add(new TableColumn( - 0, TermGlobalizationUtil.globalize("term.domain.ui.key.label"))); + 0, + TermsGlobalizationUtil.globalize("terms.domain.ui.key_label"))); columnModel.add(new TableColumn( - 1, TermGlobalizationUtil.globalize("term.domain.ui.title.label"))); + 1, + TermsGlobalizationUtil.globalize("terms.domain.ui.title_label"))); columnModel.add(new TableColumn( - 2, TermGlobalizationUtil.globalize("term.domain.ui.url.label"))); + 2, + TermsGlobalizationUtil.globalize("terms.domain.ui.url_label"))); columnModel.add(new TableColumn( - 3, TermGlobalizationUtil.globalize("term.domain.ui.version.label"))); + 3, + TermsGlobalizationUtil.globalize("terms.domain.ui.version_label"))); columnModel.add(new TableColumn( - 4, TermGlobalizationUtil.globalize("term.domain.ui.released"))); + 4, + TermsGlobalizationUtil.globalize("terms.domain.ui.released_label"))); columnModel.add(new TableColumn( 5, - TermGlobalizationUtil.globalize("term.domain.ui.edit"), + TermsGlobalizationUtil.globalize("terms.domain.ui.action_edit"), TABLE_COL_EDIT)); columnModel.add(new TableColumn( 6, - TermGlobalizationUtil.globalize("term.domain.ui.delete"), + TermsGlobalizationUtil.globalize("terms.domain.ui.action_delete"), TABLE_COL_DEL)); setModelBuilder(new DomainTableModelBuilder()); @@ -94,7 +100,8 @@ public class DomainTable extends Table implements TableActionListener { } - private class DomainTableModelBuilder extends LockableImpl implements TableModelBuilder { + private class DomainTableModelBuilder extends LockableImpl + implements TableModelBuilder { @Override public TableModel makeModel(final Table table, final PageState state) { @@ -142,9 +149,11 @@ public class DomainTable extends Table implements TableActionListener { case 4: return domain.getReleased().toString(); case 5: - return TermGlobalizationUtil.globalize("term.domain.ui.edit"); + return TermsGlobalizationUtil.globalize( + "terms.domain.ui.action_edit"); case 6: - return TermGlobalizationUtil.globalize("term.domain.ui.delete"); + return TermsGlobalizationUtil.globalize( + "terms.domain.ui.action_delete"); default: return null; } @@ -184,7 +193,8 @@ public class DomainTable extends Table implements TableActionListener { final int row, final int column) { final ControlLink link = new ControlLink(new Label((GlobalizedMessage) value)); - link.setConfirmation(TermGlobalizationUtil.globalize("term.domain.ui.delete.confirm")); + link.setConfirmation(TermsGlobalizationUtil.globalize( + "terms.domain.ui.delete.confirm")); return link; } diff --git a/ccm-ldn-terms/src/com/arsdigita/london/terms/util/TermsGlobalizationUtil.java b/ccm-ldn-terms/src/com/arsdigita/london/terms/util/TermsGlobalizationUtil.java new file mode 100644 index 000000000..32f929354 --- /dev/null +++ b/ccm-ldn-terms/src/com/arsdigita/london/terms/util/TermsGlobalizationUtil.java @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2013 Jens Pelzetter + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +package com.arsdigita.london.terms.util; + +import com.arsdigita.globalization.GlobalizedMessage; + +/** + * Compilation of methods to simplify the handling of globalizing keys. + * Basically it adds the name of package's resource bundle files to the + * globalize methods and forwards to GlobalizedMessage, shortening the + * method invocation in the various application classes. + * + * @author Jens Pelzetter + * @version $Id$ + */ +public class TermsGlobalizationUtil { + + /** Name of Java resource files to handle CMS's globalisation. */ + public static final String BUNDLE_NAME = + "com.arsdigita.london.terms.TermsResources"; + + /** + * Returns a globalized message using the package specific bundle, + * provided by BUNDLE_NAME. + */ + public static GlobalizedMessage globalize(final String key) { + return new GlobalizedMessage(key, BUNDLE_NAME); + } + + /** + * Returns a globalized message object, using the package specific bundle, + * as specified by BUNDLE_NAME. Also takes in an Object[] of arguments to + * interpolate into the retrieved message using the MessageFormat class. + */ + public static GlobalizedMessage globalize(final String key, + final Object[] args) { + return new GlobalizedMessage(key, BUNDLE_NAME, args); + } + +} diff --git a/ccm-navigation/src/com/arsdigita/navigation/Initializer.java b/ccm-navigation/src/com/arsdigita/navigation/Initializer.java index 22edb74cb..1edd28e75 100755 --- a/ccm-navigation/src/com/arsdigita/navigation/Initializer.java +++ b/ccm-navigation/src/com/arsdigita/navigation/Initializer.java @@ -18,26 +18,26 @@ package com.arsdigita.navigation; import com.arsdigita.categorization.Category; -import com.arsdigita.categorization.CategoryCollection; +//import com.arsdigita.categorization.CategoryCollection; import com.arsdigita.db.DbHelper; import com.arsdigita.cms.ContentSection; -import com.arsdigita.cms.TemplateContext; +//import com.arsdigita.cms.TemplateContext; import com.arsdigita.domain.DomainObject; -import com.arsdigita.domain.DomainObjectFactory; +//import com.arsdigita.domain.DomainObjectFactory; import com.arsdigita.domain.DomainObjectInstantiator; -import com.arsdigita.kernel.NoValidURLException; +//import com.arsdigita.kernel.NoValidURLException; import com.arsdigita.kernel.URLService; -import com.arsdigita.kernel.URLFinder; +//import com.arsdigita.kernel.URLFinder; import com.arsdigita.kernel.ACSObjectInstantiator; -import com.arsdigita.persistence.DataCollection; +//import com.arsdigita.persistence.DataCollection; import com.arsdigita.persistence.DataObject; -import com.arsdigita.persistence.Filter; -import com.arsdigita.persistence.SessionManager; -import com.arsdigita.persistence.OID; +//import com.arsdigita.persistence.Filter; +//import com.arsdigita.persistence.SessionManager; +//import com.arsdigita.persistence.OID; import com.arsdigita.persistence.pdl.ManifestSource; import com.arsdigita.persistence.pdl.NameFilter; @@ -46,12 +46,12 @@ import com.arsdigita.runtime.RuntimeConfig; import com.arsdigita.runtime.PDLInitializer; import com.arsdigita.runtime.DomainInitEvent; -import com.arsdigita.web.Application; -import com.arsdigita.web.ParameterMap; -import com.arsdigita.web.URL; -import com.arsdigita.web.Web; +//import com.arsdigita.web.Application; +//import com.arsdigita.web.ParameterMap; +//import com.arsdigita.web.URL; +//import com.arsdigita.web.Web; -import com.arsdigita.util.Assert; +//import com.arsdigita.util.Assert; import com.arsdigita.kernel.ResourceTypeConfig; import com.arsdigita.kernel.ResourceType; @@ -65,11 +65,11 @@ import com.arsdigita.navigation.portlet.ItemListPortlet; import com.arsdigita.navigation.ui.portlet.ObjectListPortletEditor; import com.arsdigita.navigation.ui.portlet.ItemListPortletEditor; -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; +//import java.math.BigDecimal; +//import java.util.ArrayList; +//import java.util.Iterator; +//import java.util.LinkedList; +//import java.util.List; import org.apache.log4j.Logger; @@ -213,145 +213,9 @@ public class Initializer extends CompoundInitializer { }; - URLService.registerFinder(Category.BASE_DATA_OBJECT_TYPE, new NavigationUrlFinder()); + URLService.registerFinder(Category.BASE_DATA_OBJECT_TYPE, + new NavigationUrlFinder()); -// URLService.registerFinder(Category.BASE_DATA_OBJECT_TYPE, -// new URLFinder() { -// -// public String find(OID oid, String context) -// throws NoValidURLException { -// return find(oid); -// } -// -// public String find(OID oid) -// throws NoValidURLException { -// -// if (s_log.isInfoEnabled()) { -// s_log.info("Locating " + oid); -// } -// -// Category cat = (Category) DomainObjectFactory.newInstance(oid); -// CategoryCollection ancestors = cat.getDefaultAscendants(); -// // XXX bz 118313 -// ancestors.clearOrder(); -// ancestors.addOrder(Category.DEFAULT_ANCESTORS); -// -// List ids = new ArrayList(); -// List paths = new LinkedList(); -// boolean first = true; -// while (ancestors.next()) { -// Category anc = ancestors.getCategory(); -// if (s_log.isDebugEnabled()) { -// s_log.debug("Process parent " + anc); -// } -// ids.add(anc.getID()); -// if (first) { -// first = false; -// paths.add(""); -// continue; -// } -// if (paths != null) { -// String url = anc.getURL(); -// if (url != null && !"".equals(url)) { -// s_log.debug("Appending '" + url + "' for anc"); -// paths.add(url); -// } else { -// if (s_log.isInfoEnabled()) { -// s_log.info("Cat " + anc + " has no url "); -// } -// paths = null; -// } -// } else { -// s_log.debug("Path is null"); -// } -// } -// -// if (s_log.isDebugEnabled() && null != paths) { -// StringBuffer buf = new StringBuffer(); -// Iterator idsit = ids.iterator(); -// Iterator pathsit = paths.iterator(); -// while (idsit.hasNext()) { -// buf.append(idsit.next().toString()).append(' '); -// buf.append(pathsit.next().toString()).append('/'); -// } -// s_log.debug("Full path is " + buf.toString()); -// } -// -// TemplateContext tContext = -// Navigation.getContext().getTemplateContext(); -// String useContext = null == tContext ? null : tContext.getContext(); -// if (s_log.isDebugEnabled()) { -// s_log.debug("Use Context: " + useContext); -// } -// -// DataCollection apps = SessionManager.getSession().retrieve(Application.BASE_DATA_OBJECT_TYPE); -// apps.addEqualsFilter("objectType", Navigation.BASE_DATA_OBJECT_TYPE); -// apps.addEqualsFilter("rootUseContext.useContext", useContext); -// Filter f = apps.addFilter("rootUseContext.rootCategory in :ids"); -// f.set("ids", ids); -// -// apps.addPath("rootUseContext.rootCategory.id"); -// -// String appURL = null; -// BigDecimal rootCatID = null; -// -// if (!apps.next()) { -// appURL = Navigation.getConfig().getDefaultCategoryRootPath(); -// // We can only use named paths if the category is mapped -// // to a navigation app instance in the current -// // use context -// paths = null; -// if (s_log.isDebugEnabled()) { -// s_log.debug("Using default nav path " + appURL); -// } -// } else { -// Application app = (Application) DomainObjectFactory.newInstance(apps.getDataObject()); -// //appURL = app.getPrimaryURL(); -// appURL = String.format("%s/", app.getPath()); -// rootCatID = (BigDecimal) apps.get("rootUseContext.rootCategory.id"); -// apps.close(); -// } -// -// if (s_log.isInfoEnabled()) { -// s_log.info("Application path is " + appURL); -// } -// -// Assert.isTrue(appURL.startsWith("/"), "url starts with '/'"); -// Assert.isTrue(appURL.endsWith("/"), "url ends with '/'"); -// -// ParameterMap map = new ParameterMap(); -// String path; -// if (paths == null) { -// map.setParameter("categoryID", cat.getID()); -// path = "category.jsp"; -// } else { -// if (s_log.isDebugEnabled()) { -// s_log.debug("Generating path from category " + rootCatID); -// } -// StringBuffer buf = new StringBuffer(); -// Iterator pathsit = paths.iterator(); -// Iterator idsit = ids.iterator(); -// boolean gotRoot = false; -// while (pathsit.hasNext()) { -// String frag = (String) pathsit.next(); -// BigDecimal id = (BigDecimal) idsit.next(); -// if (gotRoot) { -// buf.append(frag).append('/'); -// } else if (id.equals(rootCatID)) { -// gotRoot = true; -// } -// } -// path = buf.toString(); -// } -// -// String url = URL.there(Web.getRequest(), appURL + path, map).toString(); -// if (s_log.isInfoEnabled()) { -// s_log.info("Final url is " + url); -// } -// return url; -// } -// -// }); //Register the ApplicationManager implementation for this application ApplicationManagers.register(new NavigationAppManager()); diff --git a/ccm-navigation/src/com/arsdigita/navigation/NavigationGlobalizationUtil.java b/ccm-navigation/src/com/arsdigita/navigation/NavigationGlobalizationUtil.java index 94a0aa851..0bfdee004 100644 --- a/ccm-navigation/src/com/arsdigita/navigation/NavigationGlobalizationUtil.java +++ b/ccm-navigation/src/com/arsdigita/navigation/NavigationGlobalizationUtil.java @@ -16,24 +16,41 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ + package com.arsdigita.navigation; import com.arsdigita.globalization.GlobalizedMessage; /** + * Compilation of methods to simplify the handling of globalizing keys. + * Basically it adds the name of package's resource bundle files to the + * globalize methods and forwards to GlobalizedMessage, shortening the + * method invocation in the various application classes. * * @author Jens Pelzetter * @version $Id$ */ public class NavigationGlobalizationUtil { - private static final String BUNDLE_NAME = "com.arsdigita.navigation.NavigationResources"; + /** Name of Java resource files to handle CMS's globalisation. */ + private static final String BUNDLE_NAME = + "com.arsdigita.navigation.NavigationResources"; + /** + * Returns a globalized message using the package specific bundle, + * provided by BUNDLE_NAME. + */ public static GlobalizedMessage globalize(final String key) { return new GlobalizedMessage(key, BUNDLE_NAME); } - public static GlobalizedMessage globalize(final String key, final Object[] args) { + /** + * Returns a globalized message object, using the package specific bundle, + * as specified by BUNDLE_NAME. Also takes in an Object[] of arguments to + * interpolate into the retrieved message using the MessageFormat class. + */ + public static GlobalizedMessage globalize(final String key, + final Object[] args) { return new GlobalizedMessage(key, BUNDLE_NAME, args); }