Author: ssmiweve
Date: 2008-02-14 14:03:49 +0100 (Thu, 14 Feb 2008)
New Revision: 6119

Modified:
   
branches/2.16/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java
   
branches/2.16/generic.sesam/velocity-directives/src/main/java/no/sesat/search/view/velocity/AbstractEnrichmentDirective.java
   
branches/2.16/view-config-spi/src/main/java/no/sesat/search/view/SearchTabFactory.java
   
branches/2.16/view-config-spi/src/main/java/no/sesat/search/view/config/SearchTab.java
   
branches/2.16/view-control-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationController.java
Log:
SEARCH-3654 - Generalized enrichment handling
re-implementation of the always-visible enrichment attribute


Modified: 
branches/2.16/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java
===================================================================
--- 
branches/2.16/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java  
    2008-02-14 12:06:42 UTC (rev 6118)
+++ 
branches/2.16/core-api/src/main/java/no/sesat/search/run/RunningQueryImpl.java  
    2008-02-14 13:03:49 UTC (rev 6119)
@@ -348,6 +348,9 @@
                                     
searchResult.addField(EnrichmentHint.NAME_KEY, name);
                                     
searchResult.addObjectField(EnrichmentHint.SCORE_KEY, score);
                                     
searchResult.addObjectField(EnrichmentHint.HINT_KEY, eHint);
+                                    for(Map.Entry<String,String> property : 
eHint.getProperties().entrySet()){
+                                        
searchResult.addObjectField(property.getKey(), property.getValue());
+                                    }
                                 }
                             }
                         }catch(ExecutionException ee){
@@ -433,16 +436,11 @@
 
         final Map<String,StringDataObject> parameters = 
datamodel.getParameters().getValues();
 
-        // TODO simplify with new pager architecture
-        final boolean firstPage = null == parameters.get("offset")
-                || "0".equals(parameters.get("offset").getString());
-
         // TODO 'collapse' is not a sesat standard. standardise or move out.
         final boolean collapse = null == parameters.get("collapse")
                 || "".equals(parameters.get("collapse").getString());
 
-        if (context.getSearchMode().isAnalysis() && 
(firstPage||eHint.isAlwaysvisible())
-                && collapse && eHint.getWeight() > 0){
+        if (context.getSearchMode().isAnalysis() && collapse && 
eHint.getWeight() > 0){
 
             int score = eHint.getBaseScore();
 

Modified: 
branches/2.16/generic.sesam/velocity-directives/src/main/java/no/sesat/search/view/velocity/AbstractEnrichmentDirective.java
===================================================================
--- 
branches/2.16/generic.sesam/velocity-directives/src/main/java/no/sesat/search/view/velocity/AbstractEnrichmentDirective.java
        2008-02-14 12:06:42 UTC (rev 6118)
+++ 
branches/2.16/generic.sesam/velocity-directives/src/main/java/no/sesat/search/view/velocity/AbstractEnrichmentDirective.java
        2008-02-14 13:03:49 UTC (rev 6119)
@@ -31,6 +31,7 @@
 import java.util.TreeSet;
 import java.util.WeakHashMap;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
+import no.sesat.search.datamodel.DataModel;
 import no.sesat.search.datamodel.search.SearchDataObject;
 import no.sesat.search.result.ResultList;
 import no.sesat.search.site.Site;
@@ -143,7 +144,7 @@
 
 
                 // enrichments
-                if (placementCorrect(tab, placement, i, e)){
+                if (placementCorrect(getDataModel(cxt),placement, i, e)){
 
                     if(3 == node.jjtGetNumChildren()){
                         writer.append(getArgument(cxt, node, 1));
@@ -171,6 +172,6 @@
         return false;
     }
 
-    protected abstract boolean placementCorrect(SearchTab tab, String 
placement, int i, ResultList e);
+    protected abstract boolean placementCorrect(DataModel datamodel, String 
placement, int i, ResultList e);
 
 }

Modified: 
branches/2.16/view-config-spi/src/main/java/no/sesat/search/view/SearchTabFactory.java
===================================================================
--- 
branches/2.16/view-config-spi/src/main/java/no/sesat/search/view/SearchTabFactory.java
      2008-02-14 12:06:42 UTC (rev 6118)
+++ 
branches/2.16/view-config-spi/src/main/java/no/sesat/search/view/SearchTabFactory.java
      2008-02-14 13:03:49 UTC (rev 6119)
@@ -336,7 +336,6 @@
                     final NodeList nodeList = e.getChildNodes();
                     for (int l = 0; l < nodeList.getLength(); l++) {
                         final Node propNode = nodeList.item(l);
-
                         if (propNode instanceof Element){
                             final Element propE = (Element)propNode;
                             properties.put(propE.getNodeName(), 
propE.getFirstChild().getNodeValue());
@@ -357,10 +356,24 @@
                     final int threshold = 
parseInt(e.getAttribute("threshold"), 0);
                     final float weight = parseFloat(e.getAttribute("weight"), 
0);
                     final String command = e.getAttribute("command");
-                    final boolean alwaysvisible = 
parseBoolean(e.getAttribute("always-visable"),false);
+                    final Map<String,String> properties = new 
HashMap<String,String>();
+                    final NodeList nodeList = e.getChildNodes();
+                    for (int l = 0; l < nodeList.getLength(); l++) {
+                        final Node propNode = nodeList.item(l);
+                        if (propNode instanceof Element){
+                            final Element propE = (Element)propNode;
+                            properties.put(propE.getNodeName(), 
propE.getFirstChild().getNodeValue());
+                        }
+                    }
 
-                    final SearchTab.EnrichmentHint enrichment
-                            = new SearchTab.EnrichmentHint(rule, baseScore, 
threshold, weight, command, alwaysvisible);
+                    final SearchTab.EnrichmentHint enrichment = new 
SearchTab.EnrichmentHint(
+                            rule, 
+                            baseScore, 
+                            threshold, 
+                            weight, 
+                            command, 
+                            properties);
+                    
                     enrichments.add(enrichment);
                 }
 
@@ -434,9 +447,6 @@
                         parseInt(tabE.getAttribute("ad-on-top"), inherit != 
null ? inherit.getAdOnTop() : -1),
                         Arrays.asList(css),
                         Arrays.asList(javascript),
-                        parseBoolean(tabE.getAttribute("absolute-ordering"), 
inherit != null
-                            ? inherit.isAbsoluteOrdering()
-                            : false),
                         parseBoolean(tabE.getAttribute("display-css"), true),
                         parseBoolean(tabE.getAttribute("execute-on-blank"), 
inherit != null
                         ? inherit.isExecuteOnBlank()

Modified: 
branches/2.16/view-config-spi/src/main/java/no/sesat/search/view/config/SearchTab.java
===================================================================
--- 
branches/2.16/view-config-spi/src/main/java/no/sesat/search/view/config/SearchTab.java
      2008-02-14 12:06:42 UTC (rev 6118)
+++ 
branches/2.16/view-config-spi/src/main/java/no/sesat/search/view/config/SearchTab.java
      2008-02-14 13:03:49 UTC (rev 6119)
@@ -59,7 +59,6 @@
     private final String parentKey;
     private final String rssResultName;
     private final boolean rssHidden;
-    private final boolean absoluteOrdering;
     private final boolean displayCss;
     private final boolean executeOnBlank;
     private final Collection<EnrichmentPlacementHint> placements = new 
ArrayList<EnrichmentPlacementHint>();
@@ -85,9 +84,6 @@
      * @param rssResultName
      * @param rssHidden
      * @param navConf
-     * @param enrichmentLimit
-     * @param enrichmentOnTop
-     * @param enrichmentOnTopScore
      * @param placements 
      * @param enrichments
      * @param adCommand
@@ -118,7 +114,6 @@
                 final int adOnTop,
                 final List<String> css,
                 final List<String> javascript,
-                final boolean absoluteOrdering,
                 final boolean displayCss,
                 final boolean executeOnBlank,
                 final Layout defaultLayout,
@@ -154,7 +149,6 @@
         this.rssResultName = rssResultName;
         this.css.addAll(css);
         this.javascript.addAll(javascript);
-        this.absoluteOrdering = absoluteOrdering;
         this.executeOnBlank = executeOnBlank;
         this.rssHidden = rssHidden;
         this.defaultLayout = defaultLayout;
@@ -272,15 +266,6 @@
     }
 
     /**
-     * Getter for property absoluteOrdering
-     * @return
-     * @deprecated Not JavaBean compatable. Use isAbsoluteOrdering() instead.
-     */
-    public boolean getAbsoluteOrdering() {
-        return absoluteOrdering;
-    }
-
-    /**
      * Getter for property executeOnFront
      * @return
      */
@@ -289,14 +274,6 @@
     }
 
     /**
-     * Getter for property absoluteOrdering
-     * @return
-     */
-    public boolean isAbsoluteOrdering() {
-        return absoluteOrdering;
-    }
-
-    /**
      * Getter for property displayCss
      * @return
      */
@@ -418,7 +395,7 @@
          * @param threshold
          * @param weight
          * @param command
-         * @param alwaysvisible
+         * @param properties 
          */
         public EnrichmentHint(
                 final String rule,
@@ -426,14 +403,14 @@
                 final int threshold,
                 final float weight,
                 final String command,
-                final boolean alwaysvisible){
+                final Map<String,String> properties){
 
             this.rule = rule;
             this.baseScore = baseScore;
             this.threshold = threshold;
             this .weight = weight;
             this.command = command;
-            this.alwaysvisible=alwaysvisible;
+            this.properties.putAll(properties);
         }
 
 
@@ -442,7 +419,7 @@
         private final int threshold;
         private final String command;
         private final float weight;
-        private final boolean alwaysvisible;
+        private final Map<String,String> properties = new 
HashMap<String,String>();
 
         /**
          * Getter for property rule.
@@ -491,16 +468,13 @@
             return rule + '[' + command + ']';
         }
 
-        /**
-         * Getter for property alwaysvisible.
-         *  alwaysvisible = means that there is no "firstPage" limitation if 
the
-         *  enrichments should be visible or not.
-         * @return Value of property alwaysvisible.
-         */
-        public boolean isAlwaysvisible(){
-               return this.alwaysvisible;
+        public Map<String,String> getProperties(){
+            return Collections.unmodifiableMap(properties);
         }
-
+        
+        public String getProperty(final String key){
+            return properties.get(key);
+        }
     }
     
     /** Immutable POJO holdng Enrichment Placement properties for a given 
placement on a given tab. **/

Modified: 
branches/2.16/view-control-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationController.java
===================================================================
--- 
branches/2.16/view-control-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationController.java
  2008-02-14 12:06:42 UTC (rev 6118)
+++ 
branches/2.16/view-control-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationController.java
  2008-02-14 13:03:49 UTC (rev 6119)
@@ -80,10 +80,15 @@
             final PagingHelper pager
                     = new PagingHelper(hitCount, config.getPageSize(), offset, 
config.getNumberOfPages());
 
+            // it is useful to have these fields in most the original search 
command and in the NavigationItem
             searchResult.addField(CURRENT_PAGE, 
Integer.toString(pager.getCurrentPage()));
+            item.addField(CURRENT_PAGE, searchResult.getField(CURRENT_PAGE));
             searchResult.addField(NUMBER_OF_PAGES, 
Integer.toString(pager.getNumberOfPages()));
+            item.addField(NUMBER_OF_PAGES, 
searchResult.getField(NUMBER_OF_PAGES));
             searchResult.addField(FIRST_VISIBLE_PAGE, 
Integer.toString(pager.getFirstVisiblePage()));
+            item.addField(FIRST_VISIBLE_PAGE, 
searchResult.getField(FIRST_VISIBLE_PAGE));
             searchResult.addField(LAST_VISIBLE_PAGE, 
Integer.toString(pager.getLastVisiblePage()));
+            item.addField(LAST_VISIBLE_PAGE, 
searchResult.getField(LAST_VISIBLE_PAGE));
 
             final TextMessages messages = 
TextMessages.valueOf(context.getSite());
 

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

Reply via email to