|
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);
|