Author: sshafroi
Date: 2008-05-13 12:22:03 +0200 (Tue, 13 May 2008)
New Revision: 6603

Modified:
   
trunk/generic.sesam/view-config/src/main/java/no/sesat/search/view/navigation/TreeNavigationConfig.java
   
trunk/generic.sesam/view-control/src/main/java/no/sesat/search/view/navigation/TreeUrlGenerator.java
Log:
Check if we have objects of the correct type

Modified: 
trunk/generic.sesam/view-config/src/main/java/no/sesat/search/view/navigation/TreeNavigationConfig.java
===================================================================
--- 
trunk/generic.sesam/view-config/src/main/java/no/sesat/search/view/navigation/TreeNavigationConfig.java
     2008-05-13 10:10:03 UTC (rev 6602)
+++ 
trunk/generic.sesam/view-config/src/main/java/no/sesat/search/view/navigation/TreeNavigationConfig.java
     2008-05-13 10:22:03 UTC (rev 6603)
@@ -67,14 +67,18 @@
         fillBeanProperty(this, navigation, "value", 
AbstractDocumentFactory.ParseType.String, navElement, name);
         fillBeanProperty(this, navigation, "hideParameter", 
AbstractDocumentFactory.ParseType.Boolean, navElement, "false");
 
+        
         if (parent == null) {
             resetParameter = new HashSet<String>();
         } else {
-           // if(parent instanceof TreeNavigationConfig) {
+            if(parent instanceof TreeNavigationConfig) {
                 resetParameter = ((TreeNavigationConfig)parent).resetParameter;
-           // }
+            }
         }
-        resetParameter.add(getField());
+        
+        if(resetParameter!=null) {
+            resetParameter.add(getField());
+        }
     }
 
     /**
@@ -138,4 +142,4 @@
     public void setHideParameter(boolean hideParameter) {
         this.hideParameter = hideParameter;
     }
-}
\ No newline at end of file
+}

Modified: 
trunk/generic.sesam/view-control/src/main/java/no/sesat/search/view/navigation/TreeUrlGenerator.java
===================================================================
--- 
trunk/generic.sesam/view-control/src/main/java/no/sesat/search/view/navigation/TreeUrlGenerator.java
        2008-05-13 10:10:03 UTC (rev 6602)
+++ 
trunk/generic.sesam/view-control/src/main/java/no/sesat/search/view/navigation/TreeUrlGenerator.java
        2008-05-13 10:22:03 UTC (rev 6603)
@@ -20,6 +20,7 @@
 package no.sesat.search.view.navigation;
 
 import no.sesat.search.datamodel.DataModel;
+import no.sesat.search.datamodel.generic.StringDataObject;
 
 import java.util.Map;
 import java.util.Set;
@@ -32,6 +33,7 @@
 
     public TreeUrlGenerator(DataModel dataModel, NavigationConfig.Navigation 
navigation, NavigationState state) {
         super(dataModel, navigation, state);
+
     }
 
     public String getURL(String value, NavigationConfig.Nav nav){
@@ -50,21 +52,26 @@
         String url = getPrefix() + "?";
 
         Set <String> parameters = getUrlComponentNames(nav, 
extraParameters.keySet(), value);
+        //parameters.addAll(getCurrentParameters().keySet());
 
-        Set<String> remove = ((TreeNavigationConfig)nav).getResetParameter();
+        parameters.addAll(getNavigationState().getParameterNames(nav, false));
 
-        parameters.removeAll(remove);
-
-        for(String param: parameters) {
-            url += generateUrlParameter(param, getUrlComponentValue(nav,  
param,extraParameters));
-        }
-
-        TreeNavigationConfig n = (TreeNavigationConfig)nav;
-        while(n != null) {
-            if(!n.isHideParameter()) {
-                url += generateUrlParameter(n.getField(), n.getValue());
+        if (nav instanceof TreeNavigationConfig) {
+            Set<String> remove = 
((TreeNavigationConfig)nav).getResetParameter();
+            
+            parameters.removeAll(remove);
+            
+            for(String param: parameters) {
+                url += generateUrlParameter(param, getUrlComponentValue(nav, 
param, extraParameters));
             }
-            n = (TreeNavigationConfig)n.getParent();
+            
+            TreeNavigationConfig n = (TreeNavigationConfig)nav;
+            while(n != null) {
+                if(!n.isHideParameter()) {
+                    url += generateUrlParameter(n.getField(), n.getValue());
+                }
+                n = (TreeNavigationConfig)n.getParent();
+            }
         }
 
         return url;
@@ -83,4 +90,13 @@
         }
         return "";
     }
+
+    private Map<String, String> getCurrentParameters() {
+        Map<String, StringDataObject> param = 
getDataModel().getParameters().getValues();
+        Map<String, String> res = new HashMap<String, String>();
+        for(String name : param.keySet()) {
+            res.put(name, param.get(name).getString());
+        }
+        return res;
+    }
 }

_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits

Reply via email to