Author: sshafroi
Date: 2008-05-28 14:01:21 +0200 (Wed, 28 May 2008)
New Revision: 6645
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/TreeNavigationController.java
trunk/generic.sesam/view-control/src/main/java/no/sesat/search/view/navigation/TreeUrlGenerator.java
Log:
added check on jnp.disableDiscovery property to avoid looking up a user service
backend. On my computer I don't have this service and the getBasicUserService
is called twice for each search and this takes 2x5sec to timeout.
There might be smarter ways of solving this, feel free to comment.
And then to use this, set the CATALINA_OPTS=-Djnp.disableDiscovery=true
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-28 11:59:02 UTC (rev 6644)
+++
trunk/generic.sesam/view-config/src/main/java/no/sesat/search/view/navigation/TreeNavigationConfig.java
2008-05-28 12:01:21 UTC (rev 6645)
@@ -30,7 +30,7 @@
*
* Usage:
* <navigation
url-generator="no.sesat.search.view.navigation.TreeUrlGenerator"
prefix="/search/">
- * <tree id="geonav" hide-parameter="True" name="Hele norge">
+ * <tree id="geonav" hide-parameter="True" name="Hele norge"
parameters-to-keep="sort">
* <tree field="countryregion" name="Nord-Norge">
* <tree field="county" name="Finnmark"/>
* <tree field="county" name="Nordland"/>
@@ -49,7 +49,8 @@
private String name;
private String value;
private boolean hideParameter;
- private Set resetParameter;
+ private Set<String> resetParameter;
+ private String parametersToKeep;
/**
*
@@ -66,8 +67,8 @@
fillBeanProperty(this, navigation, "name",
AbstractDocumentFactory.ParseType.String, navElement, null);
fillBeanProperty(this, navigation, "value",
AbstractDocumentFactory.ParseType.String, navElement, name);
fillBeanProperty(this, navigation, "hideParameter",
AbstractDocumentFactory.ParseType.Boolean, navElement, "false");
+ fillBeanProperty(this, navigation, "parametersToKeep",
AbstractDocumentFactory.ParseType.String, navElement, null);
-
if (parent == null) {
resetParameter = new HashSet<String>();
} else {
@@ -75,7 +76,7 @@
resetParameter = ((TreeNavigationConfig)parent).resetParameter;
}
}
-
+
if(resetParameter!=null) {
resetParameter.add(getField());
}
@@ -119,7 +120,7 @@
*
* @return Set of parameter names that should be reset when generating url
*/
- public Set getResetParameter() {
+ public Set<String> getResetParameter() {
return resetParameter;
}
@@ -142,4 +143,29 @@
public void setHideParameter(boolean hideParameter) {
this.hideParameter = hideParameter;
}
+
+ /**
+ * Return the parameters that we want to keep, this could be parameters
from some navigators that we
+ * run in parallel.
+ *
+ * @return String of parameters that we want to keep. The string is comma
separated.
+ */
+ public String getParametersToKeep() {
+ if (parametersToKeep == null) {
+ if (getParent() instanceof TreeNavigationConfig) {
+ return
((TreeNavigationConfig)getParent()).getParametersToKeep();
+ }
+ }
+ return parametersToKeep;
+ }
+
+ /**
+ * Set the parameters that we want to keep. The list is represented with a
comma separated string. Parameters
+ * that we want to keep could be parameters from other navigators like a
sort navigator.
+ *
+ * @param parametersToKeep
+ */
+ public void setParametersToKeep(String parametersToKeep) {
+ this.parametersToKeep = parametersToKeep;
+ }
}
Modified:
trunk/generic.sesam/view-control/src/main/java/no/sesat/search/view/navigation/TreeNavigationController.java
===================================================================
---
trunk/generic.sesam/view-control/src/main/java/no/sesat/search/view/navigation/TreeNavigationController.java
2008-05-28 11:59:02 UTC (rev 6644)
+++
trunk/generic.sesam/view-control/src/main/java/no/sesat/search/view/navigation/TreeNavigationController.java
2008-05-28 12:01:21 UTC (rev 6645)
@@ -28,8 +28,7 @@
import org.apache.log4j.Logger;
public class TreeNavigationController implements NavigationController {
- private static final Logger LOG =
Logger.getLogger(TreeNavigationController.class);
- private final TreeNavigationConfig nav;
+ private final TreeNavigationConfig conf;
/**
* Factor class for the TreeNavigationController
@@ -41,7 +40,7 @@
}
private TreeNavigationController(final TreeNavigationConfig nav) {
- this.nav = nav;
+ this.conf = nav;
}
/**
@@ -53,18 +52,19 @@
* views.xml.
*/
public NavigationItem getNavigationItems(final Context context) {
+ if (conf.getParent() instanceof TreeNavigationConfig) {
+ return null;
+ }
- final DataModel dataModel = context.getDataModel();
-
final NavigationItem item = new BasicNavigationItem();
- final String url = context.getUrlGenerator().getURL(null, nav);
+ final String url = context.getUrlGenerator().getURL(null, conf);
- final BasicNavigationItem i = new BasicNavigationItem(nav.getName(),
url, -1);
+ final BasicNavigationItem i = new BasicNavigationItem(conf.getName(),
url, -1);
i.setSelected(true);
item.addResult(i);
- getNavigationItemsHelper(context, i, nav.getChildNavs(), 1);
+ getNavigationItemsHelper(context, i, conf.getChildNavs(), 1);
return item;
}
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-28 11:59:02 UTC (rev 6644)
+++
trunk/generic.sesam/view-control/src/main/java/no/sesat/search/view/navigation/TreeUrlGenerator.java
2008-05-28 12:01:21 UTC (rev 6645)
@@ -22,6 +22,7 @@
import no.sesat.search.datamodel.DataModel;
import no.sesat.search.datamodel.generic.StringDataObject;
+import java.util.Arrays;
import java.util.Map;
import java.util.Set;
import java.util.HashMap;
@@ -52,20 +53,21 @@
String url = getPrefix() + "?";
Set <String> parameters = getUrlComponentNames(nav,
extraParameters.keySet(), value);
- //parameters.addAll(getCurrentParameters().keySet());
parameters.addAll(getNavigationState().getParameterNames(nav, false));
if (nav instanceof TreeNavigationConfig) {
+ TreeNavigationConfig n = (TreeNavigationConfig)nav;
+ parameters.addAll(Arrays.asList(n.getParametersToKeep().split(" *,
*")));
+
Set<String> remove =
((TreeNavigationConfig)nav).getResetParameter();
-
+
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());
@@ -86,17 +88,8 @@
*/
public static String generateUrlParameter(final String name, final String
value) {
if (null != value && value.length() > 0) {
- return enc(name) + "=" + enc(value) + "&";
+ return enc(name) + "=" + value + "&";
}
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