Enhanced globalization support, added some documentation, improved formatting.
git-svn-id: https://svn.libreccm.org/ccm/trunk@2537 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
5e1445a792
commit
6cf2047f76
|
|
@ -41,8 +41,17 @@ import com.arsdigita.runtime.RuntimeConfig;
|
||||||
import com.arsdigita.ui.admin.ApplicationManagers;
|
import com.arsdigita.ui.admin.ApplicationManagers;
|
||||||
import com.arsdigita.xml.XML;
|
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 {
|
public class Initializer extends CompoundInitializer {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
public Initializer() {
|
public Initializer() {
|
||||||
final String url = RuntimeConfig.getConfig().getJDBCURL();
|
final String url = RuntimeConfig.getConfig().getJDBCURL();
|
||||||
final int database = DbHelper.getDatabaseFromURL(url);
|
final int database = DbHelper.getDatabaseFromURL(url);
|
||||||
|
|
@ -53,6 +62,11 @@ public class Initializer extends CompoundInitializer {
|
||||||
new NameFilter(DbHelper.getDatabaseSuffix(database), "pdl"))));
|
new NameFilter(DbHelper.getDatabaseSuffix(database), "pdl"))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializes domain-coupling machinery, usually consisting of
|
||||||
|
* registering object instantiators and observers.
|
||||||
|
*
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void init(DomainInitEvent e) {
|
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) {
|
public DomainObject doNewInstance(DataObject dataObject) {
|
||||||
return new DomainUseContext(dataObject);
|
return new DomainUseContext(dataObject);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ public class Loader extends PackageLoader {
|
||||||
*/
|
*/
|
||||||
public static void setupApplication() {
|
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
|
// name to determine the location of xsl files (by url-izing it). So
|
||||||
// DON'T modify it without synchronizing web directory tree accordingly!
|
// DON'T modify it without synchronizing web directory tree accordingly!
|
||||||
ApplicationType type =
|
ApplicationType type =
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import com.arsdigita.bebop.BoxPanel;
|
||||||
import com.arsdigita.bebop.Label;
|
import com.arsdigita.bebop.Label;
|
||||||
import com.arsdigita.bebop.Page;
|
import com.arsdigita.bebop.Page;
|
||||||
import com.arsdigita.bebop.SegmentedPanel;
|
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.DomainEditForm;
|
||||||
import com.arsdigita.london.terms.ui.admin.DomainMappingAddForm;
|
import com.arsdigita.london.terms.ui.admin.DomainMappingAddForm;
|
||||||
import com.arsdigita.london.terms.ui.admin.DomainMappingTable;
|
import com.arsdigita.london.terms.ui.admin.DomainMappingTable;
|
||||||
|
|
@ -72,9 +72,11 @@ public class TermsAppManager extends AbstractSingletonApplicationManager<Terms>
|
||||||
container.add(domains);
|
container.add(domains);
|
||||||
|
|
||||||
final SegmentedPanel panel = new SegmentedPanel();
|
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);
|
editForm);
|
||||||
panel.addSegment(new Label(TermGlobalizationUtil.globalize("term.domain.ui.mappings")),
|
panel.addSegment(new Label(TermsGlobalizationUtil.globalize(
|
||||||
|
"terms.ui.mappings")),
|
||||||
mappingPanel);
|
mappingPanel);
|
||||||
|
|
||||||
// container.add(editForm);
|
// container.add(editForm);
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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.
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
package com.arsdigita.london.terms.ui;
|
|
||||||
|
|
||||||
import com.arsdigita.globalization.GlobalizedMessage;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Jens Pelzetter <jens@jp-digital.de>
|
|
||||||
* @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);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -36,7 +36,7 @@ import com.arsdigita.bebop.form.TextField;
|
||||||
import com.arsdigita.bebop.parameters.NotNullValidationListener;
|
import com.arsdigita.bebop.parameters.NotNullValidationListener;
|
||||||
import com.arsdigita.bebop.parameters.StringInRangeValidationListener;
|
import com.arsdigita.bebop.parameters.StringInRangeValidationListener;
|
||||||
import com.arsdigita.london.terms.Domain;
|
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.DomainObjectParameter;
|
||||||
import com.arsdigita.london.util.ui.parameters.URLParameter;
|
import com.arsdigita.london.util.ui.parameters.URLParameter;
|
||||||
import com.arsdigita.util.UncheckedWrapperException;
|
import com.arsdigita.util.UncheckedWrapperException;
|
||||||
|
|
@ -69,7 +69,7 @@ public class DomainEditForm extends Form {
|
||||||
key.setSize(20);
|
key.setSize(20);
|
||||||
key.addValidationListener(new NotNullValidationListener());
|
key.addValidationListener(new NotNullValidationListener());
|
||||||
key.addValidationListener(new StringInRangeValidationListener(1, 20));
|
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 {
|
try {
|
||||||
key.addPrintListener(new PrintListener() {
|
key.addPrintListener(new PrintListener() {
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -84,45 +84,45 @@ public class DomainEditForm extends Form {
|
||||||
} catch (TooManyListenersException ex) {
|
} catch (TooManyListenersException ex) {
|
||||||
throw new UncheckedWrapperException(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);
|
add(key);
|
||||||
|
|
||||||
title = new TextField("domainTitle");
|
title = new TextField("domainTitle");
|
||||||
title.setSize(50);
|
title.setSize(50);
|
||||||
title.addValidationListener(new NotNullValidationListener());
|
title.addValidationListener(new NotNullValidationListener());
|
||||||
title.addValidationListener(new StringInRangeValidationListener(1, 300));
|
title.addValidationListener(new StringInRangeValidationListener(1, 300));
|
||||||
title.setHint("The short title of the domain");
|
title.setHint(TermsGlobalizationUtil.globalize("terms.domain.ui.title_hint"));
|
||||||
add(new Label(TermGlobalizationUtil.globalize("term.domain.ui.title.label")));
|
add(new Label(TermsGlobalizationUtil.globalize("terms.domain.ui.title_label")));
|
||||||
add(title);
|
add(title);
|
||||||
|
|
||||||
url = new TextField(new URLParameter("domainUrl"));
|
url = new TextField(new URLParameter("domainUrl"));
|
||||||
url.setSize(50);
|
url.setSize(50);
|
||||||
url.addValidationListener(new NotNullValidationListener());
|
url.addValidationListener(new NotNullValidationListener());
|
||||||
url.addValidationListener(new StringInRangeValidationListener(1, 255));
|
url.addValidationListener(new StringInRangeValidationListener(1, 255));
|
||||||
url.setHint("The unique URL defining the current version of the domain");
|
url.setHint(TermsGlobalizationUtil.globalize("terms.domain.ui.url_hint"));
|
||||||
add(new Label(TermGlobalizationUtil.globalize("term.domain.ui.url.label")));
|
add(new Label(TermsGlobalizationUtil.globalize("terms.domain.ui.url_label")));
|
||||||
add(url);
|
add(url);
|
||||||
|
|
||||||
description = new TextArea("domainDesc");
|
description = new TextArea("domainDesc");
|
||||||
description.setCols(50);
|
description.setCols(50);
|
||||||
description.setRows(5);
|
description.setRows(5);
|
||||||
description.addValidationListener(new StringInRangeValidationListener(0, 4000));
|
description.addValidationListener(new StringInRangeValidationListener(0, 4000));
|
||||||
description.setHint("The long description of the domain");
|
description.setHint(TermsGlobalizationUtil.globalize("terms.domain.ui.description_hint"));
|
||||||
add(new Label(TermGlobalizationUtil.globalize("term.domain.ui.description.label")));
|
add(new Label(TermsGlobalizationUtil.globalize("terms.domain.ui.description_label")));
|
||||||
add(description);
|
add(description);
|
||||||
|
|
||||||
version = new TextField("domainVersion");
|
version = new TextField("domainVersion");
|
||||||
version.setSize(20);
|
version.setSize(20);
|
||||||
version.addValidationListener(new NotNullValidationListener());
|
version.addValidationListener(new NotNullValidationListener());
|
||||||
version.addValidationListener(new StringInRangeValidationListener(1, 20));
|
version.addValidationListener(new StringInRangeValidationListener(1, 20));
|
||||||
version.setHint("The current version number, eg 1.00");
|
version.setHint(TermsGlobalizationUtil.globalize("terms.domain.ui.version_hint"));
|
||||||
add(new Label(TermGlobalizationUtil.globalize("term.domain.ui.version.label")));
|
add(new Label(TermsGlobalizationUtil.globalize("terms.domain.ui.version_label")));
|
||||||
add(version);
|
add(version);
|
||||||
|
|
||||||
released = new Date("domainReleased");
|
released = new Date("domainReleased");
|
||||||
released.addValidationListener(new NotNullValidationListener());
|
released.addValidationListener(new NotNullValidationListener());
|
||||||
released.setHint("The release date of the current version");
|
released.setHint(TermsGlobalizationUtil.globalize("terms.domain.ui.released_hint"));
|
||||||
add(new Label(TermGlobalizationUtil.globalize("term.domain.ui.released.label")));
|
add(new Label(TermsGlobalizationUtil.globalize("terms.domain.ui.released_label")));
|
||||||
add(released);
|
add(released);
|
||||||
|
|
||||||
saveCancel = new SaveCancelSection();
|
saveCancel = new SaveCancelSection();
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ import com.arsdigita.bebop.form.TextField;
|
||||||
import com.arsdigita.bebop.parameters.NotNullValidationListener;
|
import com.arsdigita.bebop.parameters.NotNullValidationListener;
|
||||||
import com.arsdigita.bebop.parameters.StringInRangeValidationListener;
|
import com.arsdigita.bebop.parameters.StringInRangeValidationListener;
|
||||||
import com.arsdigita.london.terms.Domain;
|
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.DomainObjectParameter;
|
||||||
import com.arsdigita.util.UncheckedWrapperException;
|
import com.arsdigita.util.UncheckedWrapperException;
|
||||||
import com.arsdigita.web.Application;
|
import com.arsdigita.web.Application;
|
||||||
|
|
@ -76,8 +76,8 @@ public class DomainMappingAddForm extends Form {
|
||||||
final ApplicationCollection applications = Application.
|
final ApplicationCollection applications = Application.
|
||||||
retrieveAllApplications();
|
retrieveAllApplications();
|
||||||
applications.addOrder(Application.PRIMARY_URL);
|
applications.addOrder(Application.PRIMARY_URL);
|
||||||
target.addOption(new Option(null, new Label(TermGlobalizationUtil.globalize(
|
target.addOption(new Option(null, new Label(TermsGlobalizationUtil.globalize(
|
||||||
"term.domain.mapping.ui.app.select_one"))));
|
"terms.domain.mapping.ui.app.select_one"))));
|
||||||
while (applications.next()) {
|
while (applications.next()) {
|
||||||
final Application app = applications.getApplication();
|
final Application app = applications.getApplication();
|
||||||
target.addOption(new Option(app.getOID().toString(),
|
target.addOption(new Option(app.getOID().toString(),
|
||||||
|
|
@ -90,7 +90,7 @@ public class DomainMappingAddForm extends Form {
|
||||||
} catch (TooManyListenersException ex) {
|
} catch (TooManyListenersException ex) {
|
||||||
throw new UncheckedWrapperException(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);
|
add(application);
|
||||||
|
|
||||||
context = new TextField("domainMappingContext");
|
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
|
//For some purposes it is neccessary to map a domain with a null context
|
||||||
//context.addValidationListener(new NotNullValidationListener());
|
//context.addValidationListener(new NotNullValidationListener());
|
||||||
//context.addValidationListener(new StringInRangeValidationListener(1, 100));
|
//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);
|
add(context);
|
||||||
|
|
||||||
saveCancel = new SaveCancelSection();
|
saveCancel = new SaveCancelSection();
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ import com.arsdigita.domain.DomainObjectFactory;
|
||||||
import com.arsdigita.domain.DomainService;
|
import com.arsdigita.domain.DomainService;
|
||||||
import com.arsdigita.globalization.GlobalizedMessage;
|
import com.arsdigita.globalization.GlobalizedMessage;
|
||||||
import com.arsdigita.london.terms.Domain;
|
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.DomainObjectParameter;
|
||||||
import com.arsdigita.persistence.DataObject;
|
import com.arsdigita.persistence.DataObject;
|
||||||
import com.arsdigita.persistence.OID;
|
import com.arsdigita.persistence.OID;
|
||||||
|
|
@ -58,16 +58,21 @@ public class DomainMappingTable extends Table implements TableActionListener {
|
||||||
|
|
||||||
this.selected = selected;
|
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();
|
final TableColumnModel columnModel = getColumnModel();
|
||||||
|
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
0, TermGlobalizationUtil.globalize("term.domain.mapping.ui.application")));
|
0,
|
||||||
|
TermsGlobalizationUtil.globalize("terms.domain.mapping.ui.application")));
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
1, TermGlobalizationUtil.globalize("term.domain.mapping.ui.context")));
|
1,
|
||||||
|
TermsGlobalizationUtil.globalize("terms.domain.mapping.ui.context")));
|
||||||
columnModel.add(new TableColumn(
|
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());
|
setModelBuilder(new DomainMappingTableModelBuilder());
|
||||||
|
|
||||||
|
|
@ -134,7 +139,7 @@ public class DomainMappingTable extends Table implements TableActionListener {
|
||||||
case 1:
|
case 1:
|
||||||
return get(useContexts.getDomainObject(), "useContext");
|
return get(useContexts.getDomainObject(), "useContext");
|
||||||
case 2:
|
case 2:
|
||||||
return TermGlobalizationUtil.globalize("term.domain.mapping.ui.delete");
|
return TermsGlobalizationUtil.globalize("terms.domain.mapping.ui.delete");
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
@ -158,8 +163,8 @@ public class DomainMappingTable extends Table implements TableActionListener {
|
||||||
final int row,
|
final int row,
|
||||||
final int column) {
|
final int column) {
|
||||||
final ControlLink link = new ControlLink(new Label((GlobalizedMessage) value));
|
final ControlLink link = new ControlLink(new Label((GlobalizedMessage) value));
|
||||||
link.setConfirmation(TermGlobalizationUtil.globalize(
|
link.setConfirmation(TermsGlobalizationUtil.globalize(
|
||||||
"term.domain.mapping.ui.delete.confirm"));
|
"terms.domain.mapping.ui.delete_confirm"));
|
||||||
return link;
|
return link;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ import com.arsdigita.domain.DomainCollection;
|
||||||
import com.arsdigita.domain.DomainObjectFactory;
|
import com.arsdigita.domain.DomainObjectFactory;
|
||||||
import com.arsdigita.globalization.GlobalizedMessage;
|
import com.arsdigita.globalization.GlobalizedMessage;
|
||||||
import com.arsdigita.london.terms.Domain;
|
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.DomainObjectParameter;
|
||||||
import com.arsdigita.persistence.OID;
|
import com.arsdigita.persistence.OID;
|
||||||
import com.arsdigita.persistence.SessionManager;
|
import com.arsdigita.persistence.SessionManager;
|
||||||
|
|
@ -56,33 +56,39 @@ public class DomainTable extends Table implements TableActionListener {
|
||||||
|
|
||||||
this.selected = selected;
|
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();
|
final TableColumnModel columnModel = getColumnModel();
|
||||||
|
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
0, TermGlobalizationUtil.globalize("term.domain.ui.key.label")));
|
0,
|
||||||
|
TermsGlobalizationUtil.globalize("terms.domain.ui.key_label")));
|
||||||
|
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
1, TermGlobalizationUtil.globalize("term.domain.ui.title.label")));
|
1,
|
||||||
|
TermsGlobalizationUtil.globalize("terms.domain.ui.title_label")));
|
||||||
|
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
2, TermGlobalizationUtil.globalize("term.domain.ui.url.label")));
|
2,
|
||||||
|
TermsGlobalizationUtil.globalize("terms.domain.ui.url_label")));
|
||||||
|
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
3, TermGlobalizationUtil.globalize("term.domain.ui.version.label")));
|
3,
|
||||||
|
TermsGlobalizationUtil.globalize("terms.domain.ui.version_label")));
|
||||||
|
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
4, TermGlobalizationUtil.globalize("term.domain.ui.released")));
|
4,
|
||||||
|
TermsGlobalizationUtil.globalize("terms.domain.ui.released_label")));
|
||||||
|
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
5,
|
5,
|
||||||
TermGlobalizationUtil.globalize("term.domain.ui.edit"),
|
TermsGlobalizationUtil.globalize("terms.domain.ui.action_edit"),
|
||||||
TABLE_COL_EDIT));
|
TABLE_COL_EDIT));
|
||||||
|
|
||||||
columnModel.add(new TableColumn(
|
columnModel.add(new TableColumn(
|
||||||
6,
|
6,
|
||||||
TermGlobalizationUtil.globalize("term.domain.ui.delete"),
|
TermsGlobalizationUtil.globalize("terms.domain.ui.action_delete"),
|
||||||
TABLE_COL_DEL));
|
TABLE_COL_DEL));
|
||||||
|
|
||||||
setModelBuilder(new DomainTableModelBuilder());
|
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
|
@Override
|
||||||
public TableModel makeModel(final Table table, final PageState state) {
|
public TableModel makeModel(final Table table, final PageState state) {
|
||||||
|
|
@ -142,9 +149,11 @@ public class DomainTable extends Table implements TableActionListener {
|
||||||
case 4:
|
case 4:
|
||||||
return domain.getReleased().toString();
|
return domain.getReleased().toString();
|
||||||
case 5:
|
case 5:
|
||||||
return TermGlobalizationUtil.globalize("term.domain.ui.edit");
|
return TermsGlobalizationUtil.globalize(
|
||||||
|
"terms.domain.ui.action_edit");
|
||||||
case 6:
|
case 6:
|
||||||
return TermGlobalizationUtil.globalize("term.domain.ui.delete");
|
return TermsGlobalizationUtil.globalize(
|
||||||
|
"terms.domain.ui.action_delete");
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
@ -184,7 +193,8 @@ public class DomainTable extends Table implements TableActionListener {
|
||||||
final int row,
|
final int row,
|
||||||
final int column) {
|
final int column) {
|
||||||
final ControlLink link = new ControlLink(new Label((GlobalizedMessage) value));
|
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;
|
return link;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 <jens@jp-digital.de>
|
||||||
|
* @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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -18,26 +18,26 @@
|
||||||
package com.arsdigita.navigation;
|
package com.arsdigita.navigation;
|
||||||
|
|
||||||
import com.arsdigita.categorization.Category;
|
import com.arsdigita.categorization.Category;
|
||||||
import com.arsdigita.categorization.CategoryCollection;
|
//import com.arsdigita.categorization.CategoryCollection;
|
||||||
import com.arsdigita.db.DbHelper;
|
import com.arsdigita.db.DbHelper;
|
||||||
|
|
||||||
import com.arsdigita.cms.ContentSection;
|
import com.arsdigita.cms.ContentSection;
|
||||||
import com.arsdigita.cms.TemplateContext;
|
//import com.arsdigita.cms.TemplateContext;
|
||||||
|
|
||||||
import com.arsdigita.domain.DomainObject;
|
import com.arsdigita.domain.DomainObject;
|
||||||
import com.arsdigita.domain.DomainObjectFactory;
|
//import com.arsdigita.domain.DomainObjectFactory;
|
||||||
import com.arsdigita.domain.DomainObjectInstantiator;
|
import com.arsdigita.domain.DomainObjectInstantiator;
|
||||||
|
|
||||||
import com.arsdigita.kernel.NoValidURLException;
|
//import com.arsdigita.kernel.NoValidURLException;
|
||||||
import com.arsdigita.kernel.URLService;
|
import com.arsdigita.kernel.URLService;
|
||||||
import com.arsdigita.kernel.URLFinder;
|
//import com.arsdigita.kernel.URLFinder;
|
||||||
import com.arsdigita.kernel.ACSObjectInstantiator;
|
import com.arsdigita.kernel.ACSObjectInstantiator;
|
||||||
|
|
||||||
import com.arsdigita.persistence.DataCollection;
|
//import com.arsdigita.persistence.DataCollection;
|
||||||
import com.arsdigita.persistence.DataObject;
|
import com.arsdigita.persistence.DataObject;
|
||||||
import com.arsdigita.persistence.Filter;
|
//import com.arsdigita.persistence.Filter;
|
||||||
import com.arsdigita.persistence.SessionManager;
|
//import com.arsdigita.persistence.SessionManager;
|
||||||
import com.arsdigita.persistence.OID;
|
//import com.arsdigita.persistence.OID;
|
||||||
import com.arsdigita.persistence.pdl.ManifestSource;
|
import com.arsdigita.persistence.pdl.ManifestSource;
|
||||||
import com.arsdigita.persistence.pdl.NameFilter;
|
import com.arsdigita.persistence.pdl.NameFilter;
|
||||||
|
|
||||||
|
|
@ -46,12 +46,12 @@ import com.arsdigita.runtime.RuntimeConfig;
|
||||||
import com.arsdigita.runtime.PDLInitializer;
|
import com.arsdigita.runtime.PDLInitializer;
|
||||||
import com.arsdigita.runtime.DomainInitEvent;
|
import com.arsdigita.runtime.DomainInitEvent;
|
||||||
|
|
||||||
import com.arsdigita.web.Application;
|
//import com.arsdigita.web.Application;
|
||||||
import com.arsdigita.web.ParameterMap;
|
//import com.arsdigita.web.ParameterMap;
|
||||||
import com.arsdigita.web.URL;
|
//import com.arsdigita.web.URL;
|
||||||
import com.arsdigita.web.Web;
|
//import com.arsdigita.web.Web;
|
||||||
|
|
||||||
import com.arsdigita.util.Assert;
|
//import com.arsdigita.util.Assert;
|
||||||
|
|
||||||
import com.arsdigita.kernel.ResourceTypeConfig;
|
import com.arsdigita.kernel.ResourceTypeConfig;
|
||||||
import com.arsdigita.kernel.ResourceType;
|
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.ObjectListPortletEditor;
|
||||||
import com.arsdigita.navigation.ui.portlet.ItemListPortletEditor;
|
import com.arsdigita.navigation.ui.portlet.ItemListPortletEditor;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
//import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
//import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
//import java.util.Iterator;
|
||||||
import java.util.LinkedList;
|
//import java.util.LinkedList;
|
||||||
import java.util.List;
|
//import java.util.List;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
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
|
//Register the ApplicationManager implementation for this application
|
||||||
ApplicationManagers.register(new NavigationAppManager());
|
ApplicationManagers.register(new NavigationAppManager());
|
||||||
|
|
|
||||||
|
|
@ -16,24 +16,41 @@
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.arsdigita.navigation;
|
package com.arsdigita.navigation;
|
||||||
|
|
||||||
import com.arsdigita.globalization.GlobalizedMessage;
|
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 <jens@jp-digital.de>
|
* @author Jens Pelzetter <jens@jp-digital.de>
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public class NavigationGlobalizationUtil {
|
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) {
|
public static GlobalizedMessage globalize(final String key) {
|
||||||
return new GlobalizedMessage(key, BUNDLE_NAME);
|
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);
|
return new GlobalizedMessage(key, BUNDLE_NAME, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue