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