From: <mb...@re...> - 2004-11-22 18:57:22
|
Author: mbooth Date: 2004-11-22 19:49:30 +0100 (Mon, 22 Nov 2004) New Revision: 120 Modified: ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/DomainNavigationModel.java ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/Initializer.java ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/cms/CMSNavigationModel.java ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/ui/category/AbstractList.java ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/ui/category/Siblings.java Log: Various fixes in navigation when displaying widgets for a different navigation application instance. Modified: ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/DomainNavigationModel.java =================================================================== --- ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/DomainNavigationModel.java 2004-11-22 18:48:25 UTC (rev 119) +++ ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/DomainNavigationModel.java 2004-11-22 18:49:30 UTC (rev 120) @@ -34,11 +34,17 @@ Logger.getLogger( DomainNavigationModel.class ); private String m_domainKey; + private NavigationModel m_model = null; public DomainNavigationModel( String domainKey ) { m_domainKey = domainKey; } + public DomainNavigationModel( String domainKey, NavigationModel model ) { + m_domainKey = domainKey; + m_model = model; + } + private Category getDomainRoot() { Domain domain = Domain.retrieve( m_domainKey ); Category root = domain.getModel(); @@ -52,15 +58,30 @@ } protected ACSObject loadObject() { - return null; + return ( null == m_model ) ? null : m_model.getObject(); } protected Category loadCategory() { - return getDomainRoot(); + return ( null == m_model ) ? null : m_model.getCategory(); } protected Category[] loadCategoryPath() { - return new Category[]{ getDomainRoot() }; + Category[] path = null; + if( null != m_model ) { + Category[] modelPath = m_model.getCategoryPath(); + + Category root = getRootCategory(); + + for( int i = 0; i < path.length; i++ ) { + if( modelPath[i].equals( root ) ) { + path = modelPath; + break; + } + } + } + + if( null == path ) return new Category[]{ getRootCategory() }; + return path; } protected Category loadRootCategory() { Modified: ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/Initializer.java =================================================================== --- ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/Initializer.java 2004-11-22 18:48:25 UTC (rev 119) +++ ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/Initializer.java 2004-11-22 18:49:30 UTC (rev 120) @@ -216,7 +216,7 @@ ancestors.addOrder(Category.DEFAULT_ANCESTORS); List ids = new ArrayList(); - StringBuffer path = new StringBuffer(""); + StringBuffer path = new StringBuffer(); boolean first = true; while (ancestors.next()) { Category anc = ancestors.getCategory(); Modified: ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/cms/CMSNavigationModel.java =================================================================== --- ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/cms/CMSNavigationModel.java 2004-11-22 18:48:25 UTC (rev 119) +++ ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/cms/CMSNavigationModel.java 2004-11-22 18:49:30 UTC (rev 120) @@ -85,6 +85,18 @@ cat = (Category) DomainObjectFactory.newInstance( obj ); } else { s_log.debug("we don't have any categories"); + categories.close(); + + assoc = (DataAssociation)DomainServiceInterfaceExposer + .get(bundle, "categories"); + categories = assoc.cursor(); + categories.addOrder("link.isDefault desc"); + if( categories.next() ) { + s_log.debug( "Got category from another tree" ); + DataObject obj = categories.getDataObject(); + categories.close(); + cat = (Category) DomainObjectFactory.newInstance( obj ); + } } } Modified: ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/ui/category/AbstractList.java =================================================================== --- ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/ui/category/AbstractList.java 2004-11-22 18:48:25 UTC (rev 119) +++ ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/ui/category/AbstractList.java 2004-11-22 18:49:30 UTC (rev 120) @@ -18,8 +18,6 @@ package com.arsdigita.london.navigation.ui.category; -import com.arsdigita.london.navigation.ui.CategoryComponent; - import com.arsdigita.categorization.Category; import com.arsdigita.categorization.CategoryCollection; import com.arsdigita.xml.Element; @@ -27,7 +25,10 @@ import com.arsdigita.london.navigation.Navigation; import com.arsdigita.london.navigation.NavigationConstants; import com.arsdigita.london.navigation.NavigationModel; +import com.arsdigita.london.navigation.ui.CategoryComponent; +import java.math.BigDecimal; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -55,7 +56,7 @@ if( s_log.isDebugEnabled() ) { String catStr = (null == cat) ? "null" : cat.getOID().toString(); - s_log.debug( "Got category: " + catStr ); + s_log.debug( getClass().getName() + " got category: " + catStr ); } @@ -83,4 +84,21 @@ return content; } + + protected Element generateCategoryXML(HttpServletRequest request, + HttpServletResponse response, + BigDecimal id, + String title, + String description, + String url) { + Element e = super.generateCategoryXML( request, response, id, title, + description, url ); + + Category cat = getModel().getCategory(); + if( null != cat && cat.getID().equals( id ) ) { + e.addAttribute( "isSelected", "true" ); + } + + return e; + } } Modified: ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/ui/category/Siblings.java =================================================================== --- ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/ui/category/Siblings.java 2004-11-22 18:48:25 UTC (rev 119) +++ ccm-ldn-navigation/trunk/src/com/arsdigita/london/navigation/ui/category/Siblings.java 2004-11-22 18:49:30 UTC (rev 120) @@ -53,23 +53,7 @@ return cat.getDefaultParentCategory(); } - - protected Element generateCategoryXML(HttpServletRequest request, - HttpServletResponse response, - BigDecimal id, - String title, - String description, - String url) { - Element element = super.generateCategoryXML(request, response, - id, title, description, url); - Category cat = getModel().getCategory(); - if (cat.getID().equals(id)) { - element.addAttribute("isSelected", "true"); - } - return element; - } - protected String locateCategory(Category cat) { if (!(Web.getContext().getApplication() instanceof Navigation)) { return super.locateCategory(cat); |