From 763b831ba3d182752eda0f72509e1b39cb618b2d Mon Sep 17 00:00:00 2001 From: pb Date: Tue, 1 May 2012 23:11:28 +0000 Subject: [PATCH] Verbessern Doku zu Struktur Installationsverzeichnis des Bundles. git-svn-id: https://svn.libreccm.org/ccm/trunk@1632 8810af33-2d31-482b-a856-94f89814c4df --- .../bundles/devel/cfg/integration.properties | 12 +- ccm-ldn-aplaws/bundles/devel/cfg/project.xml | 6 +- .../res/bundle/categories/placeholder.info | 2 +- .../res/bundle/navigation/placeholder.info | 4 + .../res/bundle/navigation/sci-templates.txt | 9 - .../bundles/devel/res/placeholder.info | 8 +- .../bundles/devel/templates/placeholder.info | 6 +- .../bundles/devel/themes/placeholder.info | 2 +- .../src/com/arsdigita/aplaws/Initializer.java | 23 +- .../src/com/arsdigita/aplaws/Loader.java | 20 +- ...ACSObjectCategoryPicker.java.nolongerInUse | 290 ----- ...ndexItemTerms.java.probably.nolongerInUse} | 4 +- .../aplaws/ui/AssignedItemTerms.java | 6 + .../ui/CategorySubtree.java.nolongerInUse | 51 - ...ryTermDetails.java.probably.nolongerInUse} | 4 +- .../ui/GenericOrgaUnitTabComponent.java | 96 ++ .../aplaws/ui/ItemCategoryPicker.java | 2 +- .../aplaws/ui/TermWidget.java.nolongerInUse | 336 ------ ccm-ldn-aplaws/web/WEB-INF/web.empty.xml | 6 - ccm-ldn-aplaws/web/WEB-INF/web.xml-aplaws | 621 ---------- .../ccm-navigation/navigation/sitemap.jsp | 6 +- .../res/bundle/categories/placeholder.info | 2 +- .../res/bundle/navigation/placeholder.info | 4 + .../bundles/custom/res/placeholder.info | 7 +- .../bundles/custom/templates/placeholder.info | 10 +- .../bundles/custom/themes/placeholder.info | 23 +- .../res/bundle/categories/placeholder.info | 2 +- .../res/bundle/navigation/placeholder.info | 4 + .../bundles/demo/res/placeholder.info | 7 +- .../bundles/demo/templates/placeholder.info | 10 +- ccm-sci-bundle/bundles/demo/themes/README | 13 - .../bundles/demo/themes/placeholder.info | 23 +- .../res/bundle/categories/placeholder.info | 2 +- .../res/bundle/navigation/placeholder.info | 4 + .../bundles/devel/res/placeholder.info | 7 +- .../bundles/devel/templates/placeholder.info | 10 +- ccm-sci-bundle/bundles/devel/themes/README | 13 - .../bundles/devel/themes/placeholder.info | 23 +- .../res/bundle/categories/placeholder.info | 3 + .../bundle/categories/sci-nav-domain-1.00.xml | 0 .../categories/sci-nav-hierarchy-1.00.xml | 0 .../bundle/categories/xample-nav-domain.xml | 151 +++ .../categories/xample-nav-hierarchy.xml | 1034 +++++++++++++++++ .../xample-nav-mapping-lgcl-anav.xml | 160 +++ .../xample-nav-mapping-lgcl-anav.xsl | 44 + .../res/bundle/navigation/placeholder.info | 4 + .../res/bundle/navigation/sci-templates.txt | 9 + .../bundles/extended/res/placeholder.info | 6 + .../extended/templates/placeholder.info | 16 + .../bundles/extended/themes/master/dummy | 1 + .../themes/placeholder.info} | 4 +- .../res/bundle/categories/placeholder.info | 2 +- .../res/bundle/navigation/placeholder.info | 4 + .../bundles/standard/res/placeholder.info | 7 +- .../standard/templates/placeholder.info | 10 +- ccm-sci-bundle/bundles/standard/themes/README | 13 - .../bundles/standard/themes/placeholder.info | 23 +- .../src/com/arsdigita/bundle/Loader.java | 2 +- .../bundle/WebAppPatternGenerator.java | 7 + .../bundle/ui/ItemCategoryPicker.java | 2 +- .../com/arsdigita/bundle/ui/SimplePage.java | 1 + 61 files changed, 1702 insertions(+), 1479 deletions(-) create mode 100644 ccm-ldn-aplaws/bundles/devel/res/bundle/navigation/placeholder.info delete mode 100755 ccm-ldn-aplaws/bundles/devel/res/bundle/navigation/sci-templates.txt delete mode 100755 ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/ACSObjectCategoryPicker.java.nolongerInUse rename ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/{AssignedIndexItemTerms.java => AssignedIndexItemTerms.java.probably.nolongerInUse} (94%) mode change 100755 => 100644 delete mode 100755 ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategorySubtree.java.nolongerInUse rename ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/{CategoryTermDetails.java => CategoryTermDetails.java.probably.nolongerInUse} (96%) mode change 100755 => 100644 create mode 100644 ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/GenericOrgaUnitTabComponent.java delete mode 100755 ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/TermWidget.java.nolongerInUse delete mode 100644 ccm-ldn-aplaws/web/WEB-INF/web.empty.xml delete mode 100755 ccm-ldn-aplaws/web/WEB-INF/web.xml-aplaws create mode 100644 ccm-sci-bundle/bundles/custom/res/bundle/navigation/placeholder.info create mode 100644 ccm-sci-bundle/bundles/demo/res/bundle/navigation/placeholder.info delete mode 100644 ccm-sci-bundle/bundles/demo/themes/README create mode 100644 ccm-sci-bundle/bundles/devel/res/bundle/navigation/placeholder.info delete mode 100644 ccm-sci-bundle/bundles/devel/themes/README create mode 100644 ccm-sci-bundle/bundles/extended/res/bundle/categories/placeholder.info rename {ccm-ldn-aplaws/bundles/devel => ccm-sci-bundle/bundles/extended}/res/bundle/categories/sci-nav-domain-1.00.xml (100%) rename {ccm-ldn-aplaws/bundles/devel => ccm-sci-bundle/bundles/extended}/res/bundle/categories/sci-nav-hierarchy-1.00.xml (100%) create mode 100644 ccm-sci-bundle/bundles/extended/res/bundle/categories/xample-nav-domain.xml create mode 100644 ccm-sci-bundle/bundles/extended/res/bundle/categories/xample-nav-hierarchy.xml create mode 100644 ccm-sci-bundle/bundles/extended/res/bundle/categories/xample-nav-mapping-lgcl-anav.xml create mode 100644 ccm-sci-bundle/bundles/extended/res/bundle/categories/xample-nav-mapping-lgcl-anav.xsl create mode 100644 ccm-sci-bundle/bundles/extended/res/bundle/navigation/placeholder.info create mode 100755 ccm-sci-bundle/bundles/extended/res/bundle/navigation/sci-templates.txt create mode 100644 ccm-sci-bundle/bundles/extended/res/placeholder.info create mode 100644 ccm-sci-bundle/bundles/extended/templates/placeholder.info create mode 100644 ccm-sci-bundle/bundles/extended/themes/master/dummy rename ccm-sci-bundle/bundles/{custom/themes/README => extended/themes/placeholder.info} (77%) create mode 100644 ccm-sci-bundle/bundles/standard/res/bundle/navigation/placeholder.info delete mode 100644 ccm-sci-bundle/bundles/standard/themes/README diff --git a/ccm-ldn-aplaws/bundles/devel/cfg/integration.properties b/ccm-ldn-aplaws/bundles/devel/cfg/integration.properties index 5c6e0e7cb..1a5be5651 100755 --- a/ccm-ldn-aplaws/bundles/devel/cfg/integration.properties +++ b/ccm-ldn-aplaws/bundles/devel/cfg/integration.properties @@ -1,4 +1,4 @@ -# Devel bundle integration.properties +# APLAWS+ devel bundle integration.properties # waf.bebop.base_page=com.arsdigita.aplaws.ui.SimplePage # @@ -14,7 +14,7 @@ waf.dispatcher.default_expiry=3600 ; waf.kernel.data_permission_check_enabled=false waf.kernel.primary_user_identifier=email -; if you activate screen_name, forum loader doesn't work. +; if you activate screen_name, forum loader does not work. ; waf.kernel.primary_user_identifier=screen_name waf.kernel.supported_languages=de,en waf.kernel.language_independent_items=true @@ -39,6 +39,9 @@ waf.xml.xsl_transformer=xalan waf.xml.activate_full_date_formatter=true # ccm-cms parameters +# In order to create several content-section uncomment the line below and +# list the desired content section names +#com.arsdigita.cms.loader.section_names=generic,openccm,homepages com.arsdigita.cms.category_authoring_add_form=com.arsdigita.aplaws.ui.ItemCategoryPicker @@ -70,6 +73,8 @@ com.arsdigita.cms.hide_udct_ui=true com.arsdigita.cms.use_section_categories=false com.arsdigita.cms.use_streamlined_creation=true +com.arsdigita.cms.image_browser.thumbnail_max_width=200 +com.arsdigita.cms.image_browser.thumbnail_max_height=150 # ccm-cms-types-event parameters com.arsdigita.cms.contenttypes.event.hide_cost=true @@ -106,11 +111,12 @@ com.arsdigita.navigation.category_menu_show_grand_children=false ; com.arsdigita.navigation.category_menu_show_nephews=false com.arsdigita.navigation.default_cat_root_path=/navigation/ com.arsdigita.navigation.default_template=/templates/ccm-navigation/navigation/nav-default.jsp +com.arsdigita.navigation.templates_file=bundle/navigation/templates.txt # ccm-ldn-search application com.arsdigita.london.search.show_sponsored_links=true -; Comment this out or increase the num_of_threads iv you really use remote search +; Comment this out or increase the num_of_threads if you really use remote search com.arsdigita.london.search.num_threads=0 diff --git a/ccm-ldn-aplaws/bundles/devel/cfg/project.xml b/ccm-ldn-aplaws/bundles/devel/cfg/project.xml index 5b1806cce..3ef78a650 100755 --- a/ccm-ldn-aplaws/bundles/devel/cfg/project.xml +++ b/ccm-ldn-aplaws/bundles/devel/cfg/project.xml @@ -39,9 +39,10 @@ - + - + @@ -109,7 +110,6 @@ - diff --git a/ccm-ldn-aplaws/bundles/devel/res/bundle/categories/placeholder.info b/ccm-ldn-aplaws/bundles/devel/res/bundle/categories/placeholder.info index 5ae76207c..d1a1d5cc5 100644 --- a/ccm-ldn-aplaws/bundles/devel/res/bundle/categories/placeholder.info +++ b/ccm-ldn-aplaws/bundles/devel/res/bundle/categories/placeholder.info @@ -1,3 +1,3 @@ -Subdirectory may optionally contain one or more local site specific +Subdirectory may optionally contain one or more local site specific import xml files for Terms domain categories. diff --git a/ccm-ldn-aplaws/bundles/devel/res/bundle/navigation/placeholder.info b/ccm-ldn-aplaws/bundles/devel/res/bundle/navigation/placeholder.info new file mode 100644 index 000000000..7e83095be --- /dev/null +++ b/ccm-ldn-aplaws/bundles/devel/res/bundle/navigation/placeholder.info @@ -0,0 +1,4 @@ +Subdirectory may optionally contain a local site specific +text files describing additional jsp templates for navigation. +The template jsp files are stored in templates/ccm-navigation/navigation + diff --git a/ccm-ldn-aplaws/bundles/devel/res/bundle/navigation/sci-templates.txt b/ccm-ldn-aplaws/bundles/devel/res/bundle/navigation/sci-templates.txt deleted file mode 100755 index 80d8612e5..000000000 --- a/ccm-ldn-aplaws/bundles/devel/res/bundle/navigation/sci-templates.txt +++ /dev/null @@ -1,9 +0,0 @@ -ScientificCMS Default Items Page,Sci Default Navigation Index Page ordering items in ascending order,/templates/ccm-ldn-navigation/navigation/sci-default.jsp -ScientificCMS Recent Items Page,Sci List of items ordered with most recent first,/templates/ccm-ldn-navigation/navigation/sci-recent.jsp -ScientificCMS A-Z Items,Sci List of items paginated as A-Z,/templates/ccm-ldn-navigation/navigation/sci-atoz.jsp -ScientificCMS Events Page,Sci Events Page ordering events in ??? order,/templates/ccm-ldn-navigation/navigation/sci-events.jsp -ScientificCMS Portal Page,Sci Portal Page for embedding a portal page as navigation leaves page,/templates/ccm-ldn-navigation/navigation/sci-portal.jsp -ScientificCMS Portal Welcome Page,Sci Portal page meant as site welcome page,/templates/ccm-ldn-navigation/navigation/sci-portal-welcome.jsp -ScientificCMS Navigation Welcome Page,Sci site welcome page created by navigation root term,/templates/ccm-ldn-navigation/navigation/sci-welcome.jsp -ScientificCMS Specializing Items List,Sci Specialising List item page,/templates/ccm-ldn-navigation/navigation/SpecializingList.jsp -ScientificCMS Publications List,Sci publications listing page,/templates/ccm-ldn-navigation/navigation/SciPublicationList.jsp diff --git a/ccm-ldn-aplaws/bundles/devel/res/placeholder.info b/ccm-ldn-aplaws/bundles/devel/res/placeholder.info index 5ae76207c..26e338973 100644 --- a/ccm-ldn-aplaws/bundles/devel/res/placeholder.info +++ b/ccm-ldn-aplaws/bundles/devel/res/placeholder.info @@ -1,3 +1,7 @@ -Subdirectory may optionally contain one or more local site specific -import xml files for Terms domain categories. +Directory will be available during installation by classloader. All +content has to be placed in a subdirectory, typically bundle. It can be +addressed as /bundle/[fileName|dirName] +EXAMPLE: +com.arsdigita.navigation.templates_file=bundle/navigation/templates.txt + diff --git a/ccm-ldn-aplaws/bundles/devel/templates/placeholder.info b/ccm-ldn-aplaws/bundles/devel/templates/placeholder.info index 25d83c34e..bcb53e566 100644 --- a/ccm-ldn-aplaws/bundles/devel/templates/placeholder.info +++ b/ccm-ldn-aplaws/bundles/devel/templates/placeholder.info @@ -1,3 +1,6 @@ +The installation program copies all sub-directories and files in this directory +into the applications webapps subdirectory templates. + Subdirectory may optionally contain navigation item templates for navigation index pages which either overwrite or ammend those templates which are default for ccm-ldn-aplaws and stored in @@ -9,4 +12,5 @@ to the default template files. In the later case a developer must provide a customised template.txt file replacing the default file /src/WEB-INF/navigation/templates.txt This file must be specified in parameter - com.arsdigita.navigation.templates_file \ No newline at end of file + com.arsdigita.navigation.templates_file +It usually stored in res/bundle/navigation \ No newline at end of file diff --git a/ccm-ldn-aplaws/bundles/devel/themes/placeholder.info b/ccm-ldn-aplaws/bundles/devel/themes/placeholder.info index dbae76348..a9783b63b 100644 --- a/ccm-ldn-aplaws/bundles/devel/themes/placeholder.info +++ b/ccm-ldn-aplaws/bundles/devel/themes/placeholder.info @@ -10,4 +10,4 @@ directory in its document (context) root. It is the responsibility of developer / system integrator to ensure all files are copied to the right location and the theme works with the modification. No -functionality or consistency check is perfordmed! \ No newline at end of file +functionality or consistency check is performed! \ No newline at end of file diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/Initializer.java b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/Initializer.java index 067b73eb6..f6d2a5d25 100755 --- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/Initializer.java +++ b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/Initializer.java @@ -19,14 +19,14 @@ package com.arsdigita.aplaws; import com.arsdigita.categorization.Categorization; -import com.arsdigita.london.terms.TermCategoryListener; import com.arsdigita.runtime.CompoundInitializer; -import com.arsdigita.runtime.ContextCloseEvent; -import com.arsdigita.runtime.DataInitEvent; import com.arsdigita.runtime.DomainInitEvent; +import com.arsdigita.templating.PatternStylesheetResolver; + +import com.arsdigita.london.terms.TermCategoryListener; + import org.apache.log4j.Logger; -import com.arsdigita.templating.PatternStylesheetResolver; /** * The APLAWS initializer. @@ -40,12 +40,7 @@ public class Initializer extends CompoundInitializer { /** - * An empty implementation of {@link Initializer#init(DataInitEvent)}. - */ - @Override - public void init(DataInitEvent evt) {} - - /** + * Package Implementation of {@link Initializer#init(DomainInitEvent)}. * * @param evt */ @@ -60,12 +55,4 @@ public class Initializer extends CompoundInitializer { new WebAppPatternGenerator() ); } - - - /** - * An empty implementation of {@link Initializer#close()}. - */ - @Override - public void close(ContextCloseEvent evt) {} - } diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/Loader.java b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/Loader.java index bbb077160..335705917 100755 --- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/Loader.java +++ b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/Loader.java @@ -276,21 +276,6 @@ public class Loader extends PackageLoader { registerDomain(customNavKey, '/'+customNavPath+'/', null); registerDomain(customNavKey, "/content/", customNavUseContext); - // Switch /portal/ to use 1 column layout for funky aplaws stuff. - // pboy: This will have no effect at all. A portal page created at - // url /portal/ (and beneath) will always use the homepage jsp's which - // are hardcoded to create a three column design and ignore any - // column configuration. All portal pages at other urls are not - // affect by this setting which touches only the one application (portal) - // at url /portal/. Portal pages at other urls use the corresponding - // configuration parameter for its initial value and number of columns - // may be modified at any time using configuration ui. - /* - Workspace portal = (Workspace)Application - .retrieveApplicationForPath("/portal/"); - portal.setDefaultLayout(PageLayout - .findLayoutByFormat(PageLayout.FORMAT_ONE_COLUMN)); - */ } public void registerServicesTemplate(String appURL) { @@ -330,9 +315,8 @@ public class Loader extends PackageLoader { String appURL, String context) { if (s_log.isDebugEnabled()) { - s_log.debug("Mapping domain " + domainKey + - " to app " + appURL + - " in context " + context); + s_log.debug("Mapping domain " + domainKey + " to app " + appURL + + " in context " + context); } /* Determine Domain and Application objects, both MUST exist! */ diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/ACSObjectCategoryPicker.java.nolongerInUse b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/ACSObjectCategoryPicker.java.nolongerInUse deleted file mode 100755 index 9b8485714..000000000 --- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/ACSObjectCategoryPicker.java.nolongerInUse +++ /dev/null @@ -1,290 +0,0 @@ -/* - * Copyright (C) 2001-2004 Red Hat Inc. All Rights Reserved. - * - * 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.aplaws.ui; - -import com.arsdigita.aplaws.Aplaws; -import com.arsdigita.bebop.SimpleContainer; -import com.arsdigita.bebop.PageState; -import com.arsdigita.bebop.parameters.StringParameter; -import com.arsdigita.bebop.parameters.BigDecimalParameter; -import com.arsdigita.bebop.event.ActionEvent; -import com.arsdigita.bebop.event.ActionListener; -// import com.arsdigita.bebop.form.Widget; -import com.arsdigita.persistence.SessionManager; -import com.arsdigita.persistence.DataCollection; -import com.arsdigita.domain.DomainCollection; -import com.arsdigita.domain.DomainObjectFactory; -import com.arsdigita.kernel.ACSObject; -import com.arsdigita.london.terms.Term; -import com.arsdigita.london.terms.Domain; -import com.arsdigita.categorization.ui.ACSObjectCategoryForm; -// unused imports -// import com.arsdigita.cms.ContentItem; -// import com.arsdigita.cms.CMS; -// import com.arsdigita.cms.ui.authoring.ItemCategoryForm; - -import java.util.Collection; -import java.util.List; -import java.util.LinkedList; -import java.util.Iterator; - -import org.apache.log4j.Logger; - - -// ///////////////////////////////////////////////////////////////////////////// -// Has to be refactored to extend -// com.arsdigita.london.terms.ui.ACSObjectCategoryPicker and to -// overwrite the method lgclSelected(Domain domain, ACSObject object) -// to add the lgl / ANav stuff -// (which is not included in the c.ad.ldn.terms.ui version) -// -// Then ItemCategoryPicker should use this aplaws version. -// ///////////////////////////////////////////////////////////////////////////// - -/** - * abstracted from original version of ItemCategoryPicker r1297 - * chris gilbert - */ -public abstract class ACSObjectCategoryPicker extends SimpleContainer { - - private static final Logger s_log = Logger.getLogger(ACSObjectCategoryPicker.class); - - private ACSObjectCategoryForm m_form; - private BigDecimalParameter m_root; - - public ACSObjectCategoryPicker(BigDecimalParameter root, - StringParameter mode) { - - m_form = getForm(root, mode); - m_root = root; - - add(m_form); - m_form.addCompletionListener(new ItemCategoryFormCompletion()); - } - - protected abstract ACSObjectCategoryForm getForm(BigDecimalParameter root, StringParameter mode); - - protected abstract ACSObject getObject(PageState state); - - - - - private class ItemCategoryFormCompletion implements ActionListener { - public void actionPerformed(ActionEvent ev) { - - PageState state = ev.getPageState(); - Domain domain = getDomain(state); - String domainKey = domain.getKey(); - - if (s_log.isDebugEnabled()) { - s_log.debug("Saving categories in: " + domainKey); - } - - ACSObject object = getObject(state); - - if ("LGCL".equals(domainKey)) { - lgclSelected(domain, object); - } - - else if ("LGDL".equals(domainKey)) { - lgdlSelected(domain, object); - } - - fireCompletionEvent(state); - } - - private void lgclSelected(Domain domain, ACSObject object) { - List lgclTerms = getCurrentCategories(domain, object); - - Domain gcl = Domain.retrieve("GCL"); - Collection gclTerms = getRelatedTerms(lgclTerms, gcl); - clearTerms(gcl, object); - assignTerms(gclTerms, object); - - // The assignment below is removed to satisfy requirement 4.1, - // use case 1 of the document "Metadata Improvements" version 1 - // by Camden, dated 23/01/05. - //Domain lgsl = Domain.retrieve("LGSL"); - //Collection lgslTerms = getRelatedTerms(lgclTerms, lgsl); - //clearTerms(lgsl, object); - //assignTerms(lgslTerms, object); - - // adding processing or mapping from LGCL to APLAWS-NAV too - boolean lgclOverrideAnav = Aplaws.getAplawsConfig().getOverrideAnavFromLGCLMappings().booleanValue(); - if (lgclOverrideAnav) { - Domain aplawsNav = Domain.retrieve("APLAWS-NAV"); - Collection aplawsNavTerms = getRelatedTerms(lgclTerms, aplawsNav); - clearTerms(aplawsNav, object); - assignTerms(aplawsNavTerms, object); - } - } - - // User has selected a term in the LGDL hierarchy, which includes - // terms from the LGSL. We're only interested in LGSL terms here. - private void lgdlSelected(Domain domain, ACSObject object) { - Domain lgsl = Domain.retrieve("LGSL"); - Domain gcl = Domain.retrieve("GCL"); - Domain lgcl = Domain.retrieve("LGCL"); - - // We have a mapping LGSL -> LGCL based on the reverse of a - // published mapping. We don't have a mapping LGSL -> GCL, so we - // do LGSL -> LGCL -> GCL instead. - - List lgslTerms = getCurrentCategories(lgsl, object); - Collection lgclTerms = getRelatedTerms(lgslTerms, lgcl); - - LinkedList lgclIDs = new LinkedList(); - Iterator i = lgclTerms.iterator(); - while (i.hasNext()) { - Term term = (Term) i.next(); - lgclIDs.add(term.getModel().getID()); - } - - Collection gclTerms = getRelatedTerms(lgclIDs, gcl); - - clearTerms(lgcl, object); - assignTerms(lgclTerms, object); - - clearTerms(gcl, object); - assignTerms(gclTerms, object); - } - } - - protected List getCurrentCategories(Domain domain, - ACSObject object) { - if (s_log.isDebugEnabled()) { - s_log.debug("Getting terms from " + domain + " to " + object); - } - DomainCollection terms = domain.getTerms(); - terms.addEqualsFilter("model.childObjects.id", object.getID()); - terms.addPath("model.id"); - - List current = new LinkedList(); - while (terms.next()) { - if (s_log.isDebugEnabled()) { - s_log.debug("Got term " + terms.get("model.id")); - } - current.add(terms.get("model.id")); - } - return current; - } - - // TODO move out of UI code - public static Collection getCurrentTerms(Domain domain, - ACSObject object) { - if (s_log.isDebugEnabled()) { - s_log.debug("Getting terms from " + domain + " to " + object); - } - Collection current = new LinkedList(); - DomainCollection terms = domain.getTerms(); - terms.addEqualsFilter("model.childObjects.id", object.getID()); - terms.addPath("model.id"); - while (terms.next()) { - if (s_log.isDebugEnabled()) { - s_log.debug("Got term " + terms.get("model.id")); - } - current.add(terms.getDomainObject()); - } - return current; - } - - // TODO move out of UI code - public static Collection getRelatedTerms(Collection src, - Domain domain) { - if (s_log.isDebugEnabled()) { - s_log.debug("Getting related terms to " + domain); - - } - if (src.isEmpty()) { - // this is a hack, it would be better not to use a completion event listener as - // this is called even when the form is cancelled... - return new LinkedList(); - } - DomainCollection terms = domain.getTerms(); - // these next two lines build the query - terms.addEqualsFilter("model.parents.link.relationType", "related"); - terms.addFilter("model.parents.id in :ids").set("ids", src); - - Collection related = new LinkedList(); - while (terms.next()) { - if (s_log.isDebugEnabled()) { - s_log.debug("Got term " + terms.getDomainObject()); - } - related.add(terms.getDomainObject()); - } - return related; - } - - protected void clearTerms(Domain domain, - ACSObject object) { - if (s_log.isDebugEnabled()) { - s_log.debug("Removing terms from " + domain + " to " + object); - } - Iterator terms = getCurrentTerms(domain, object).iterator(); - while (terms.hasNext()) { - Term term = (Term)terms.next(); - if (s_log.isDebugEnabled()) { - s_log.debug("Removing term " + term + " from " + object); - } - term.removeObject(object); - } - } - - - // TODO move out of UI code - public static void assignTerms(Collection terms, - ACSObject object) { - if (s_log.isDebugEnabled()) { - s_log.debug("Assigning terms to " + object); - } - Iterator i = terms.iterator(); - while (i.hasNext()) { - Term term = (Term)i.next(); - if (s_log.isDebugEnabled()) { - s_log.debug("Assigning term " + term + " to " + object); - } - term.addObject(object); - } - } - - protected Domain getDomain(PageState state) { - if (s_log.isDebugEnabled()) { - s_log.debug("Getting domain for " + state.getValue(m_root)); - } - - DataCollection domains = SessionManager.getSession() - .retrieve(Domain.BASE_DATA_OBJECT_TYPE); - domains.addEqualsFilter("model.id", - state.getValue(m_root)); - - if (domains.next()) { - Domain domain = (Domain)DomainObjectFactory - .newInstance(domains.getDataObject()); - if (s_log.isDebugEnabled()) { - s_log.debug("Got domain " + domain); - } - domains.close(); - return domain; - } - if (s_log.isDebugEnabled()) { - s_log.debug("No domain found"); - } - return null; - } -} diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedIndexItemTerms.java b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedIndexItemTerms.java.probably.nolongerInUse old mode 100755 new mode 100644 similarity index 94% rename from ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedIndexItemTerms.java rename to ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedIndexItemTerms.java.probably.nolongerInUse index 56e2985d2..4a50487b7 --- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedIndexItemTerms.java +++ b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedIndexItemTerms.java.probably.nolongerInUse @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -package com.arsdigita.aplaws.ui; +package com.arsdigita.bundle.ui; import com.arsdigita.bebop.PageState; import com.arsdigita.cms.CMS; @@ -24,7 +24,7 @@ import com.arsdigita.cms.ContentBundle; import com.arsdigita.cms.ContentItem; import com.arsdigita.cms.ContentPage; import com.arsdigita.kernel.ACSObject; -import com.arsdigita.navigation.Navigation; +import com.arsdigita.london.navigation.Navigation; import com.arsdigita.london.terms.ui.AbstractAssignedTerms; import org.apache.log4j.Logger; diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedItemTerms.java b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedItemTerms.java index 1718892d8..09168faea 100755 --- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedItemTerms.java +++ b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedItemTerms.java @@ -23,6 +23,12 @@ import com.arsdigita.cms.CMS; import com.arsdigita.kernel.ACSObject; import com.arsdigita.london.terms.ui.AbstractAssignedTerms; +/** + * + * Invoked by jsp + * (e.g. templates/ccm-cms/content-section/default/aplaws-item.jsp + * previously: packages/content-section/templates/default/aplaws-item.jsp) + */ public class AssignedItemTerms extends AbstractAssignedTerms { protected ACSObject getObject(PageState state) { diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategorySubtree.java.nolongerInUse b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategorySubtree.java.nolongerInUse deleted file mode 100755 index a632dfa22..000000000 --- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategorySubtree.java.nolongerInUse +++ /dev/null @@ -1,51 +0,0 @@ -package com.arsdigita.aplaws.ui; - -import java.math.BigDecimal; -// import java.util.Iterator; -// import java.util.Map; - -import org.apache.commons.lang.StringUtils; -import org.apache.log4j.Logger; - -import com.arsdigita.bebop.Page; -import com.arsdigita.bebop.PageState; -import com.arsdigita.bebop.SimpleComponent; -// import com.arsdigita.bebop.parameters.BigDecimalParameter; -// import com.arsdigita.bebop.parameters.IntegerParameter; -import com.arsdigita.bebop.parameters.StringParameter; -import com.arsdigita.categorization.Category; -import com.arsdigita.domain.DomainObjectFactory; -import com.arsdigita.persistence.OID; -import com.arsdigita.xml.Element; - -/** - * Generate part of the category tree. Used by Assign Category authoring step. - * - * @author Alan Pevec - * @deprecated use com.arsdigita.london.terms.ui.CategorySubtree instead. - */ -public class CategorySubtree extends SimpleComponent { - - StringParameter nodeIDparam = new StringParameter("nodeID"); - - private static Logger s_log = Logger.getLogger(CategorySubtree.class); - - public void register(Page p) { - super.register(p); - p.addGlobalStateParam(nodeIDparam); - - } - - public void generateXML(PageState state, Element p) { - - String node = (String)state.getValue(nodeIDparam); - s_log.debug("selected node = " + node); - String[] pathElements = StringUtils.split(node, "-"); - - Category root = (Category) DomainObjectFactory.newInstance(new OID( - Category.BASE_DATA_OBJECT_TYPE, new BigDecimal(pathElements[pathElements.length - 1]))); - s_log.debug("generating subtree for cat " + root.getID()); - TermWidget.generateSubtree(p, root); - } - -} diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategoryTermDetails.java b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategoryTermDetails.java.probably.nolongerInUse old mode 100755 new mode 100644 similarity index 96% rename from ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategoryTermDetails.java rename to ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategoryTermDetails.java.probably.nolongerInUse index 146e4c9e7..70bb784d1 --- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategoryTermDetails.java +++ b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategoryTermDetails.java.probably.nolongerInUse @@ -16,13 +16,13 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -package com.arsdigita.aplaws.ui; +package com.arsdigita.bundle.ui; import com.arsdigita.london.terms.Term; import com.arsdigita.london.terms.ui.AbstractTermDetails; import com.arsdigita.persistence.DataCollection; import com.arsdigita.persistence.SessionManager; -import com.arsdigita.navigation.Navigation; +import com.arsdigita.london.navigation.Navigation; import com.arsdigita.categorization.Category; import com.arsdigita.bebop.PageState; import com.arsdigita.domain.DomainObjectFactory; diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/GenericOrgaUnitTabComponent.java b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/GenericOrgaUnitTabComponent.java new file mode 100644 index 000000000..197d8b96c --- /dev/null +++ b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/GenericOrgaUnitTabComponent.java @@ -0,0 +1,96 @@ +package com.arsdigita.bundle.ui; + +import com.arsdigita.bebop.Page; +import com.arsdigita.bebop.PageState; +import com.arsdigita.cms.CMS; +import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit; +import com.arsdigita.cms.contenttypes.ui.GenericOrgaUnitTab; +import com.arsdigita.dispatcher.DispatcherHelper; +import com.arsdigita.domain.DomainObjectFactory; +import com.arsdigita.globalization.GlobalizationHelper; +import com.arsdigita.navigation.ui.AbstractComponent; +import com.arsdigita.persistence.OID; +import com.arsdigita.util.UncheckedWrapperException; +import com.arsdigita.xml.Element; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * A wrapper around {@link GenericOrgaUnitTab} which allows it to use the + * output of an implementation of {@link GenericOrgaUnitTab} independently from + * a {@link GenericOrganizationalUnit} item. This allows it to create an + * special JSP and the show a tab as a navigation point. + * + * @author Jens Pelzetter + * @version $Id: GenericOrgaUnitTabComponent.java 1430 2012-01-06 07:04:27Z jensp $ + */ +public class GenericOrgaUnitTabComponent extends AbstractComponent { + + private Page page; + private OID orgaunitOid; + private GenericOrgaUnitTab tab; + + public void setPage(final Page page) { + this.page = page; + } + + /** + * The OID of the orga unit to use. Use the OID of the master version (can + * be found in the overview tab in the content-center in the stable link) + * here + * @param oid + */ + public void setOrgaUnit(final String oid) { + this.orgaunitOid = OID.valueOf(oid); + } + + public void setOrgaUnitTab(final GenericOrgaUnitTab tab) { + this.tab = tab; + } + + public Element generateXML(final HttpServletRequest request, + final HttpServletResponse response) { + final PageState state; + try { + state = new PageState(page, request, response); + } catch (ServletException ex) { + throw new UncheckedWrapperException(ex); + } + + GenericOrganizationalUnit orgaunit = + (GenericOrganizationalUnit) DomainObjectFactory. + newInstance(orgaunitOid); + + if (!(orgaunit.getLanguage().equals(GlobalizationHelper. + getNegotiatedLocale().getLanguage()))) { + orgaunit = (GenericOrganizationalUnit) orgaunit.getContentBundle(). + getInstance(GlobalizationHelper.getNegotiatedLocale()); + } + + if ((DispatcherHelper.getDispatcherPrefix(request) == null) + || !DispatcherHelper.getDispatcherPrefix(request).equals("preview")) { + orgaunit = (GenericOrganizationalUnit) orgaunit.getLiveVersion(); + } + + final Element contentPanelElem = new Element("cms:contentPanel", + CMS.CMS_XML_NS); + final Element cmsItemElem = + contentPanelElem.newChildElement("cms:item", + CMS.CMS_XML_NS); + cmsItemElem.addAttribute("oid", orgaunitOid.toString()); + final Element objTypeElem = cmsItemElem.newChildElement("objectType"); + objTypeElem.setText(orgaunit.getClass().getName()); + + final Element tabsElem = + contentPanelElem.newChildElement("orgaUnitTabs");//new Element("orgaUnitTabs"); + final Element selectedTabElem = tabsElem.newChildElement("selectedTab"); + + if (orgaunit != null) { + tab.generateXml(orgaunit, selectedTabElem, state); + } + + //return tabsElem; + return contentPanelElem; + } +} diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/ItemCategoryPicker.java b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/ItemCategoryPicker.java index 8f2809ac4..e8d46c514 100755 --- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/ItemCategoryPicker.java +++ b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/ItemCategoryPicker.java @@ -26,7 +26,7 @@ import com.arsdigita.bebop.parameters.StringParameter; import com.arsdigita.categorization.ui.ACSObjectCategoryForm; import com.arsdigita.cms.CMS; import com.arsdigita.cms.ContentItem; -import com.arsdigita.cms.ui.authoring.*; +import com.arsdigita.cms.ui.authoring.ItemCategoryForm; import com.arsdigita.kernel.ACSObject; import com.arsdigita.london.terms.ui.ACSObjectCategoryPicker; import com.arsdigita.london.terms.ui.TermWidget; diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/TermWidget.java.nolongerInUse b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/TermWidget.java.nolongerInUse deleted file mode 100755 index f45e0d7ab..000000000 --- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/TermWidget.java.nolongerInUse +++ /dev/null @@ -1,336 +0,0 @@ -/* - * Copyright (C) 2004 Red Hat Inc. All Rights Reserved. - * - * 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.aplaws.ui; - -import java.math.BigDecimal; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import com.arsdigita.aplaws.Aplaws; -import com.arsdigita.bebop.PageState; -import com.arsdigita.bebop.form.Widget; -import com.arsdigita.bebop.parameters.ArrayParameter; -import com.arsdigita.bebop.parameters.BigDecimalParameter; -import com.arsdigita.bebop.parameters.StringParameter; -import com.arsdigita.categorization.Category; -import com.arsdigita.cms.CMS; -import com.arsdigita.cms.ContentItem; -import com.arsdigita.cms.ContentSection; -import com.arsdigita.domain.DomainCollection; -import com.arsdigita.domain.DomainObjectFactory; -import com.arsdigita.london.terms.Domain; -import com.arsdigita.london.terms.Term; -import com.arsdigita.london.terms.indexing.Indexer; -import com.arsdigita.london.terms.indexing.RankedTerm; -import com.arsdigita.persistence.DataCollection; -import com.arsdigita.persistence.SessionManager; -import com.arsdigita.xml.Element; -import com.arsdigita.xml.XML; - -/** - * A Widget for selecting Terms. Based heavily on CategoryWidget. - * - * @author mbooth@redhat.com - * - * Chris Gilbert - updated to identify each node uniquely (correct behaviour - * for polyhierarchical trees) - also, allow ajax update on all branches or - * just top level branch - * - * nb - widget applies to allocation of categories to any ACSObject hence - * xml prefix should be more generic eg bebop rather than cms. cms retained - * for compatibility with existing stylesheets - * - * @deprecated Use c.ad.london.terms.ui.TermWidget instead! - */ -public class TermWidget extends Widget { - private StringParameter m_mode; - private ACSObjectCategoryPicker m_picker; - - public TermWidget(StringParameter mode, ACSObjectCategoryPicker picker) { - super(new ArrayParameter(new BigDecimalParameter("category"))); - - m_mode = mode; - m_picker = picker; - - } - - - - protected String getType() { - return "category"; - } - - public boolean isCompound() { - return false; - } - - protected void generateWidget(PageState state, - Element parent) { - Domain domain = m_picker.getDomain(state); - - Element widget = parent.newChildElement("cms:categoryWidget", - CMS.CMS_XML_NS); - exportAttributes(widget); - - widget.addAttribute("mode", (String)state.getValue(m_mode)); - widget.addAttribute("name", getName()); - - Set ids = new HashSet(); - - BigDecimal[] values = (BigDecimal[])getValue(state); - if (values != null) { - for (int i = 0 ; i < values.length ; i++) { - ids.add(values[i]); - } - } - - // only root terms at first, the rest is loaded on-demand via AJAX - DomainCollection terms = domain.getRootTerms(); - terms.addPath("model.parents.link.sortKey"); - terms.addPath("model.parents.id"); - terms.addPath("domain.key"); - - // Pull out everything related to the category, otherwise - // another query per row is executed when doing term.getModel(); - terms.addPath("model.objectType"); - terms.addPath("model.displayName"); - terms.addPath("model.defaultDomainClass"); - terms.addPath("model.name"); - terms.addPath("model.description"); - terms.addPath("model.url"); - terms.addPath("model.isEnabled"); - terms.addPath("model.isAbstract"); - terms.addPath("model.defaultAncestors"); - - List roots = new LinkedList(); - while (terms.next()) { - Term term = (Term) terms.getDomainObject(); - roots.add(new TermSortKeyPair - (term,(BigDecimal)terms.get("model.parents.link.sortKey"))); - } - - Element el = generateCategory(widget, domain.getModel(), ids, null); - - /** - * Used by kea based keyphrase extraction facility. - * (Added r1885) - * - * @Author: terry_permeance - */ - Indexer indexer = Indexer.retrieve(domain); - if (indexer != null) { - ContentItem item = CMS.getContext().getContentItem(); - List autoTerms = indexer.index(item, 16); - Element autoCategories = widget.newChildElement("cms:autoCategories", CMS.CMS_XML_NS); - for (Iterator i = autoTerms.iterator(); i.hasNext(); ) { - RankedTerm nextRankedTerm = i.next(); - Category cat = nextRankedTerm.getTerm().getModel(); - if (!ids.contains(cat.getID())) { - String fullname = cat.getQualifiedName(" > ", false); - if (fullname != null) { - Element catEl = autoCategories.newChildElement("cms:category", CMS.CMS_XML_NS); - catEl.addAttribute("id", XML.format(cat.getID())); - catEl.addAttribute("name", cat.getName()); - catEl.addAttribute("description", cat.getDescription()); - catEl.addAttribute("isAbstract", cat.isAbstract() ? "1" : "0"); - catEl.addAttribute("isEnabled", cat.isEnabled() ? "1" : "0"); - catEl.addAttribute("sortKey", nextRankedTerm.getRanking().toString()); - catEl.addAttribute("fullname", fullname); - } - } - } - } - - if (Aplaws.getAplawsConfig().ajaxExpandAllBranches()) { - // add attribute to the parent node, so that in stylesheet - // we can look for any ancestor with this attribute (can't - // add attribute to categoryWidget element as that is not - // visible when subbranches are transformed) - el.addAttribute("expand", "all" ); - } - - for (Iterator i=roots.iterator(); i.hasNext(); ) { - TermSortKeyPair pair = (TermSortKeyPair) i.next(); - Term term = pair.getTerm(); - BigDecimal sortKey = pair.getSortKey(); - - generateRootTerm(el, term, ids, sortKey); - } - } - - public static Element generateCategory(Element parent, - Category cat, - Set selected, - BigDecimal sortKey) { - Element el = parent.newChildElement("cms:category", CMS.CMS_XML_NS); - - el.addAttribute("id", XML.format(cat.getID())); - el.addAttribute("name", cat.getName()); - el.addAttribute("description", cat.getDescription()); - el.addAttribute("isSelected", selected.contains(cat.getID()) ? "1" : "0"); - el.addAttribute("isAbstract", cat.isAbstract() ? "1" : "0"); - el.addAttribute("isEnabled", cat.isEnabled() ? "1" : "0"); - if (sortKey != null) { - el.addAttribute("sortKey", sortKey.toString()); - } - // sort order attribute added to every node so that we can - // correctly transform xml fragments returned by ajax - el.addAttribute("order", ContentSection.getConfig().getCategoryTreeOrder()); - - StringBuffer path = new StringBuffer(parent.getAttribute("fullname")); - if (path.length() > 0) path.append(" > "); - path.append(cat.getName()); - el.addAttribute("fullname", path.toString()); - - // need to uniquely identify each node in polyhierarchical trees - // so that expand/contract is applied to the correct node by - // javascript getElementByID function - StringBuffer nodeID = new StringBuffer(parent.getAttribute("node-id")); - if (nodeID.length() > 0) nodeID.append("-"); - nodeID.append(cat.getID()); - el.addAttribute("node-id", nodeID.toString()); - - return el; - } - - public static Element generateTerm(Element parent, - Term term, - Set selected, - BigDecimal sortKey) { - Category cat = term.getModel(); - Element el = generateCategory(parent, cat, selected, sortKey); - - el.addAttribute("pid", term.getUniqueID().toString()); - el.addAttribute("domain", term.getDomain().getKey()); - return el; - } - - private static void generateRootTerm(Element parent, - Term term, - Set selected, - BigDecimal sortKey) { - Element el = generateTerm(parent, term, selected, sortKey); - el.addAttribute("root","1"); - } - - public static void generateSubtree(Element parent, Category root) { - DataCollection terms = SessionManager.getSession().retrieve( - Term.BASE_DATA_OBJECT_TYPE); - terms.addEqualsFilter("model.roTransParents.id", root.getID()); - terms.addEqualsFilter("model.parents.link.relationType", "child"); - - Map children = new HashMap(); - while (terms.next()) { - Term term = (Term) DomainObjectFactory.newInstance(terms - .getDataObject()); - BigDecimal parentID = (BigDecimal) terms.get("model.parents.id"); - - List childList = (List) children.get(parentID); - if (childList == null) { - childList = new LinkedList(); - children.put(parentID, childList); - } - - childList.add(new TermSortKeyPair(term, (BigDecimal) terms - .get("model.parents.link.sortKey"))); - } - - // XXX for isSelected - Set ids = new HashSet(); - - Element el = generateCategory(parent, root, ids, null); - el.addAttribute("fullname", root.getName()); - el.addAttribute("node-id", root.getID().toString()); - el.addAttribute("order", ContentSection.getConfig().getCategoryTreeOrder()); - if (Aplaws.getAplawsConfig().ajaxExpandAllBranches()) { - // recognisable attribute has to be in the XML for each snippet that is transformed, - // hence add it to the parent - el.addAttribute("expand", "all" ); - } - - List roots = (List) children.get(root.getID()); - if (null != roots) { - Iterator i = roots.iterator(); - while (i.hasNext()) { - TermSortKeyPair pair = (TermSortKeyPair) i.next(); - Term term = pair.getTerm(); - BigDecimal sortKey = pair.getSortKey(); - - generateTermWithChildren(el, term, ids, sortKey, children); - } - } - } - - private static void generateTermWithChildren(Element parent, - Term term, - Set selected, - BigDecimal sortKey, - Map children) { - Category cat = term.getModel(); - Element el = generateCategory(parent, cat, selected, sortKey); - - el.addAttribute("pid", term.getUniqueID().toString()); - el.addAttribute("domain", term.getDomain().getKey()); - - List c = (List) children.get(cat.getID()); - if (c != null) { - Iterator i = c.iterator(); - while (i.hasNext()) { - TermSortKeyPair pair = (TermSortKeyPair) i.next(); - Term child = pair.getTerm(); - BigDecimal childSortKey = pair.getSortKey(); - - // either generate next level down, or get all levels below current - - if (Aplaws.getAplawsConfig().ajaxExpandAllBranches()) { - generateTerm(el, child, selected, childSortKey); - - } else { - generateTermWithChildren(el, child, selected, childSortKey, - children); - } - - - - } - } - } - - private static class TermSortKeyPair { - private Term m_term; - private BigDecimal m_sortKey; - - public TermSortKeyPair(Term term, BigDecimal sortKey) { - m_term = term; - m_sortKey = sortKey; - } - public Term getTerm() { - return m_term; - } - public BigDecimal getSortKey() { - return m_sortKey; - } - } -} diff --git a/ccm-ldn-aplaws/web/WEB-INF/web.empty.xml b/ccm-ldn-aplaws/web/WEB-INF/web.empty.xml deleted file mode 100644 index 86a3470b0..000000000 --- a/ccm-ldn-aplaws/web/WEB-INF/web.empty.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - diff --git a/ccm-ldn-aplaws/web/WEB-INF/web.xml-aplaws b/ccm-ldn-aplaws/web/WEB-INF/web.xml-aplaws deleted file mode 100755 index 721c3f6d2..000000000 --- a/ccm-ldn-aplaws/web/WEB-INF/web.xml-aplaws +++ /dev/null @@ -1,621 +0,0 @@ - - - - CCM - Content and Collaboration Management - - - - log4j-conf-file - WEB-INF/conf/log4j.properties - - - - - - - - shortcuts - com.arsdigita.shortcuts.ShortcutFilter - - - - subsite - com.arsdigita.subsite.SubsiteFilter - - - - - - - subsite - /* - - - - shortcuts - /* - - - - - com.arsdigita.web.CCMApplicationContextListener - - - - - - reg - com.arsdigita.web.ContextRegistrationServlet - - uri - / - - 1 - - - - legacy-dispatcher - com.arsdigita.sitenode.SiteNodeDispatcher - 3 - - - - ccm-dispatcher - com.arsdigita.web.DispatcherServlet - - fallback-servlet - legacy-dispatcher - - 2 - - - - legacy-adapter - com.arsdigita.web.LegacyAdapterServlet - - - - cache-manager - com.arsdigita.caching.CacheServlet - - - - db-test - com.arsdigita.web.monitoring.DBTestServlet - - - - versioning-log - com.arsdigita.versioning.VersioningServlet - - - - login - com.arsdigita.ui.login.LoginServlet - - - - webadmin - com.arsdigita.ui.admin.AdminServlet - - - - webadmin-sitemap - com.arsdigita.ui.sitemap.SiteMapServlet - - - - webadmin-permissions - com.arsdigita.ui.permissions.PermissionsServlet - - - - webdevsupport - com.arsdigita.webdevsupport.WebDevSupportServlet - - - - oid-redirect - com.arsdigita.web.OIDRedirectServlet - - - - resource-resolver - com.arsdigita.web.ResourceServlet - - - - - - content-center - com.arsdigita.cms.WorkspaceServlet - - - - content-section - com.arsdigita.cms.ContentSectionServlet - - - - cms-service - com.arsdigita.cms.ServiceServlet - - - - content-type-xsl - com.arsdigita.cms.dispatcher.ContentTypeXSLServlet - - - - content-item-xsl - com.arsdigita.cms.dispatcher.ContentItemXSLServlet - - - - template-xsl - com.arsdigita.cms.dispatcher.TemplateXSLServlet - - - - TextOnlyServlet - Text Only Servlet - - com.arsdigita.web.InternalPrefixerServlet - - - prefix - /text - - - - - PrintFriendlyServlet - Printer Friendly Output Servlet - - com.arsdigita.web.InternalPrefixerServlet - - - prefix - /print - - - - - - - - atoz-files - com.arsdigita.web.ApplicationFileServlet - - template-path - /templates/ccm-ldn-atoz - - - - - - - forum-main - com.arsdigita.forum.ForumServlet - - - - - portalworkspace-files - com.arsdigita.web.ApplicationFileServlet - - template-path - /templates/ccm-portalworkspace - - - - - navigation-files - com.arsdigita.web.ApplicationFileServlet - - template-path - /templates/ccm-navigation - - - file-resolver - com.arsdigita.navigation.NavigationFileResolver - - - - - portlet-type-xsl - com.arsdigita.dispatcher.PortletTypeXSLServlet - - - - - rssfeed-files - com.arsdigita.web.ApplicationFileServlet - - template-path - /templates/ccm-rssfeed - - - file-resolver - com.arsdigita.rssfeed.RSSFileResolver - - - - - - - search-files - com.arsdigita.web.ApplicationFileServlet - - template-path - /templates/ccm-ldn-search - - - - - AxisServlet - Apache-Axis Servlet - - org.apache.axis.transport.http.AxisServlet - - - - - - - shortcuts-files - com.arsdigita.web.ApplicationFileServlet - - template-path - /templates/ccm-shortcuts - - - - - - subsite-files - com.arsdigita.web.ApplicationFileServlet - - template-path - /templates/ccm-subsite - - - - - - - terms-files - com.arsdigita.web.ApplicationFileServlet - - template-path - /templates/ccm-ldn-terms - - - - - - - theme-files - com.arsdigita.web.ApplicationFileServlet - - template-path - /templates/ccm-themedirector - - - - - ThemeDownload - com.arsdigita.themedirector.dispatcher.ThemeDownloadServlet - - - - ThemePreviewServlet - Servlet to allow admins to preview look/feel - - com.arsdigita.themedirector.dispatcher.InternalThemePrefixerServlet - - - prefix - /theme - - - - - - - - - atoz-files - /ccm-ldn-atoz/files/* - - - - - - forum-main - /forum-main/main/* - - - - - portlet-type-xsl - /themes/servlet/portlet-type/* - - - - portalworkspace-files - /ccm-portalworkspace/files/* - - - - navigation-files - /ccm-navigation/files/* - - - - - rssfeed-files - /ccm-rssfeed/files/* - - - - - - search-files - /ccm-ldn-search/files/* - - - - AxisServlet - /services/* - - - - - - shortcuts-files - /ccm-shortcuts/files/* - - - - - subsite-files - /ccm-subsite/files/* - - - - - - terms-files - /ccm-ldn-terms/files/* - - - - - - theme-files - /theme-files/* - - - - ThemeDownload - /theme-files/download/* - - - - ThemePreviewServlet - /theme/* - - - - - - - - reg - /themes/null/reg/* - - - - ccm-dispatcher - /ccm/* - - - - legacy-adapter - /templates/servlet/legacy-adapter/* - - - - cache-manager - /expireCache/* - - - - db-test - /dbtest - - - - versioning-log - /versioning/* - - - - login - /login/* - - - - webadmin - /admin/* - - - - webadmin-sitemap - /admin-sitemap/* - - - - webadmin-permissions - /admin-permissions/* - - - - webdevsupport - /webdevsupport/* - - - - oid-redirect - /redirect/* - - - - resource-resolver - /resource/* - - - - - - content-center - /templates/servlet/content-center/* - - - - content-section - /templates/servlet/content-section/* - - - - cms-service - /templates/servlet/cms-service/* - - - - content-item-xsl - /templates/servlet/content-item/* - - - - content-type-xsl - /themes/servlet/content-type/* - - - - template-xsl - /themes/servlet/template/* - - - - TextOnlyServlet - /text/* - - - - PrintFriendlyServlet - /print/* - - - - - - com.arsdigita.dispatcher.AccessDeniedException - /error/access-denied.jsp - - - - com.arsdigita.dispatcher.ObjectNotFoundException - /error/object-not-found.jsp - - - - com.arsdigita.kernel.permissions.PermissionException - /error/permission-denied.jsp - - - - com.arsdigita.persistence.DbNotAvailableException - /error/db-not-available.jsp - - - - com.arsdigita.db.DbNotAvailableException - /error/db-not-available.jsp - - - - java.lang.Exception - /error/general.jsp - - - - java.lang.Error - /error/general.jsp - - - - - - /WEB-INF/bebop-show.tld - /WEB-INF/bebop-show.tld - - - - /WEB-INF/bebop-define.tld - /WEB-INF/bebop-define.tld - - - diff --git a/ccm-ldn-aplaws/web/templates/ccm-navigation/navigation/sitemap.jsp b/ccm-ldn-aplaws/web/templates/ccm-navigation/navigation/sitemap.jsp index 4151f1d10..e019b2341 100755 --- a/ccm-ldn-aplaws/web/templates/ccm-navigation/navigation/sitemap.jsp +++ b/ccm-ldn-aplaws/web/templates/ccm-navigation/navigation/sitemap.jsp @@ -1,7 +1,7 @@ + xmlns:define="/WEB-INF/bebop-define.tld" + xmlns:show="/WEB-INF/bebop-show.tld" + version="1.2"> diff --git a/ccm-sci-bundle/bundles/custom/res/bundle/categories/placeholder.info b/ccm-sci-bundle/bundles/custom/res/bundle/categories/placeholder.info index 5ae76207c..d1a1d5cc5 100644 --- a/ccm-sci-bundle/bundles/custom/res/bundle/categories/placeholder.info +++ b/ccm-sci-bundle/bundles/custom/res/bundle/categories/placeholder.info @@ -1,3 +1,3 @@ -Subdirectory may optionally contain one or more local site specific +Subdirectory may optionally contain one or more local site specific import xml files for Terms domain categories. diff --git a/ccm-sci-bundle/bundles/custom/res/bundle/navigation/placeholder.info b/ccm-sci-bundle/bundles/custom/res/bundle/navigation/placeholder.info new file mode 100644 index 000000000..7e83095be --- /dev/null +++ b/ccm-sci-bundle/bundles/custom/res/bundle/navigation/placeholder.info @@ -0,0 +1,4 @@ +Subdirectory may optionally contain a local site specific +text files describing additional jsp templates for navigation. +The template jsp files are stored in templates/ccm-navigation/navigation + diff --git a/ccm-sci-bundle/bundles/custom/res/placeholder.info b/ccm-sci-bundle/bundles/custom/res/placeholder.info index 5ae76207c..de33385f9 100644 --- a/ccm-sci-bundle/bundles/custom/res/placeholder.info +++ b/ccm-sci-bundle/bundles/custom/res/placeholder.info @@ -1,3 +1,6 @@ -Subdirectory may optionally contain one or more local site specific -import xml files for Terms domain categories. +Directory will be available during installation by classloader. All +content has to be placed in a subdirectory, typically bundle. It can be +addressed as /bundle/[fileName|dirName] +EXAMPLE: +com.arsdigita.navigation.templates_file=bundle/navigation/templates.txt diff --git a/ccm-sci-bundle/bundles/custom/templates/placeholder.info b/ccm-sci-bundle/bundles/custom/templates/placeholder.info index c78cf06e6..165928284 100644 --- a/ccm-sci-bundle/bundles/custom/templates/placeholder.info +++ b/ccm-sci-bundle/bundles/custom/templates/placeholder.info @@ -1,4 +1,7 @@ -Subdirectory