dpillot     2005/09/26 19:06:04 CEST

  Modified files:
    core/src/java/org/jahia/engines/importexport 
                                                 ManageContentPicker.java 
  Log:
  code cleaning
  
  Revision  Changes    Path
  1.19      +116 -8    
jahia/core/src/java/org/jahia/engines/importexport/ManageContentPicker.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/importexport/ManageContentPicker.java.diff?r1=1.18&r2=1.19&f=h
  
  
  
  Index: ManageContentPicker.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/importexport/ManageContentPicker.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- ManageContentPicker.java  26 Sep 2005 09:34:42 -0000      1.18
  +++ ManageContentPicker.java  26 Sep 2005 17:06:03 -0000      1.19
  @@ -3,6 +3,7 @@
   import org.jahia.content.ContainerDefinitionKey;
   import org.jahia.content.ContentObject;
   import org.jahia.content.ContentObjectKey;
  +import org.jahia.content.JahiaObject;
   import org.jahia.data.JahiaData;
   import org.jahia.data.containers.JahiaContainerDefinition;
   import org.jahia.data.search.JahiaContainerSearchHit;
  @@ -27,6 +28,7 @@
   import org.jahia.services.fields.ContentSmallTextField;
   import org.jahia.services.fields.ContentPageField;
   import org.jahia.services.usermanager.JahiaUser;
  +import org.jahia.services.metadata.MetadataService;
   import org.jahia.utils.JahiaTools;
   
   import java.util.*;
  @@ -37,9 +39,9 @@
    * Created by IntelliJ IDEA.
    * Date: ${Date} ${Time}
    * Copyright Codeva 2003
  - * @author Thomas Draier
  + * @author Thomas Draier, joe
    * @author ${User}
  - * @version $Id: ManageContentPicker.java,v 1.18 2005/09/26 09:34:42 tdraier 
Exp $
  + * @version $Id: ManageContentPicker.java,v 1.19 2005/09/26 17:06:03 dpillot 
Exp $
    */
   public class ManageContentPicker {
       private static org.apache.log4j.Logger logger =
  @@ -47,6 +49,10 @@
   
       private static ManageContentPicker instance = null;
       private static final String JSP = 
"/jsp/jahia/engines/importexport/contentpick.jsp";
  +    private static ImportExportService ie;
  +    //private static JahiaUser user;
  +    private static JahiaSearchService searchService;
  +    //private static MetadataService metaservice;
   
       /**
        * @return a single instance of the object
  @@ -55,6 +61,9 @@
       {
           if (instance == null) {
               instance = new ManageContentPicker();
  +            // ref the services
  +            ie=ServicesRegistry.getInstance().getImportExportService();
  +            searchService=ServicesRegistry .getInstance 
().getJahiaSearchService ();
               logger.debug("creating instance");
           }
           return instance;
  @@ -106,7 +115,7 @@
                   String copytype = op.substring(0, op.indexOf('_'));
                   String sourceId = op.substring(op.indexOf('_') +1);
   
  -                ImportExportService ie = 
ServicesRegistry.getInstance().getImportExportService();
  +                //ImportExportService ie = 
ServicesRegistry.getInstance().getImportExportService();
                   ContentObject source = 
ContentContainer.getContainer(Integer.parseInt(sourceId));
                   ie.copy(source, object, jParams, EntryLoadRequest.STAGED, 
"link".equals(copytype));
   
  @@ -119,7 +128,7 @@
       }
   
       private void doSearch(ContentObject object, ProcessingContext 
processingContext, HashMap engineMap) throws Exception {
  -        ImportExportService ie = 
ServicesRegistry.getInstance().getImportExportService();
  +        //ImportExportService ie = 
ServicesRegistry.getInstance().getImportExportService();
   
           engineMap.put ("sites", 
ServicesRegistry.getInstance().getJahiaSitesService().getSites());
   
  @@ -141,19 +150,19 @@
               } else {
                   languageCodes.add (processingContext.getLocale ().toString 
());
               }
  -            logger.debug(languageCodes);
  +            logger.debug("searching in what languages:"+languageCodes);
               engineMap.put ("searchLanguageCodes", languageCodes);
   
  +
               String theScreen = (String)engineMap.get("screen");
               JahiaSearchResult searchResults = 
(JahiaSearchResult)engineMap.get("searchResults");
   
               JahiaSearchResultBuilder resultBuilder =
                       new ContainerSearchResultBuilderImpl();
   
  +            // we run the search only if there is someting to query
               if (!searchString.equals("") ){
  -                searchResults = ServicesRegistry
  -                        .getInstance ().getJahiaSearchService ()
  -                        .search 
(Integer.parseInt(processingContext.getParameter("searchSite")),
  +                searchResults = searchService .search 
(processingContext.getSiteID(),
                                   searchString, processingContext, 
languageCodes, resultBuilder);
   
                   logger.debug("# of hits in raw 
searchresults:"+searchResults.getHitCount()+" "+searchResults);
  @@ -162,47 +171,67 @@
                   JahiaSearchResult myResults = new 
JahiaSearchResult(resultBuilder);
                   Map results = new HashMap();
   
  +                // destination object cdk & cdfn
                   ContainerDefinitionKey cdk = (ContainerDefinitionKey) 
((ContentContainerList)object).getDefinitionKey(null);
                   JahiaContainerDefinition thisJcd = 
(JahiaContainerDefinition) ContentObject.getInstance(cdk);
  +                logger.debug("destination cdk:"+cdk+" cdfn:"+thisJcd);
   
                   EntryLoadRequest lr = new 
EntryLoadRequest(EntryLoadRequest.ACTIVE_WORKFLOW_STATE,0,processingContext.getLocaleList());
   
  +                // big loop to test the compatibility of container type
                   for (Iterator iterator = searchResults.results().iterator(); 
iterator.hasNext();) {
                       JahiaSearchHit jahiaSearchHit = (JahiaSearchHit) 
iterator.next();
                       ContentObject current = 
ContentContainer.getContainer(Integer.parseInt(jahiaSearchHit.getId()));
                       int score = jahiaSearchHit.getScore();
                       while (current != null && current.hasActiveEntries()) {
                           if (current.getPickedObject() != null) {
  +                            // this object is already a copy, we ignore it
                               break;
                           }
  +
  +                        //check if container
                           if (current instanceof ContentContainer) {
                               ContainerDefinitionKey currentCdk = 
(ContainerDefinitionKey) ((ContentContainer)current).getDefinitionKey(null);
                               JahiaContainerDefinition currentJcd = 
(JahiaContainerDefinition) ContentObject.getInstance(currentCdk);
  +                            logger.debug("Hit-id:"+jahiaSearchHit.getId()+" 
[score:"+score+"] cdk:"+currentCdk+" cdfn:"+currentJcd);
  +
  +                            //is compatible
                               if (ie.isCompatible(thisJcd, currentJcd)) {
                                   String key = 
Integer.toString(current.getID());
  +                                logger.debug("found compatible?"+key);
                                   String t = key;
                                   List l = 
((ContentContainer)current).getChilds(null, lr, null);
                                   if (!l.isEmpty()) {
                                       t = 
((ContentField)l.iterator().next()).getValue(processingContext, lr);
  +                                    logger.debug("tkey="+t);
                                   }
                                   for (Iterator iterator1 = l.iterator(); 
iterator1.hasNext();) {
                                       ContentField contentField = 
(ContentField) iterator1.next();
                                       if (contentField instanceof 
ContentSmallTextField) {
                                           t = 
((ContentField)l.iterator().next()).getValue(processingContext, lr);
  +                                        logger.debug("smalltext:"+t);
                                           break;
                                       }
                                   }
  +
  +                                //looping list of childs to check page type?
                                   for (Iterator iterator1 = l.iterator(); 
iterator1.hasNext();) {
                                       ContentField contentField = 
(ContentField) iterator1.next();
                                       if (contentField instanceof 
ContentPageField) {
                                           t = 
((ContentPageField)l.iterator().next()).getContentPage(lr).getTitle(lr);
  +                                        logger.debug("page:"+t);
                                           break;
                                       }
                                   }
  +                                logger.debug("fields of 
searchhit"+jahiaSearchHit.getParsedObject().getFields());
  +
  +
   
                                   if (results.containsKey(key)) {
                                       JahiaContainerSearchHit hit = 
(JahiaContainerSearchHit) results.get(key);
                                       hit.setScore( score + hit.getScore() );
  +                                    logger.debug("improving score :"+key+" 
new score:"+hit.getScore());
  +                                    break;
                                   } else {
                                       JahiaContainerSearchHit hit = new 
JahiaContainerSearchHit(jahiaSearchHit.getParsedObject());
                                       hit.setId(key);
  @@ -221,13 +250,47 @@
                                       results.put(key, hit);
                                       break;
                                   }
  +                            } else {
  +                                logger.debug("no-compatible");
                               }
  +                            // end of compatible
                           }
                           current = current.getParent(null);
                           score /= 1.5;
                       }
                   }
   
  +                //test for metadatas values - joe
  +                for (Iterator iterator = results.values().iterator(); 
iterator.hasNext();) {
  +                    JahiaSearchHit hit = (JahiaSearchHit) iterator.next();
  +                    ParsedObject po=hit.getParsedObject();
  +                    Hashtable t=po.getFields();
  +                    //name of metadatas
  +                    for(Iterator it=t.keySet().iterator();it.hasNext();){
  +                        String name=(String) it.next();
  +                        String[] val=po.getValues(name);
  +                        String values="";
  +                        logger.debug("size:"+val.length);
  +                        for(int v=0;v <val.length;v++){
  +                            values +=val[v]+" ";
  +                        }
  +                        logger.debug(name+":"+values);
  +                    }
  +
  +                    //other loops
  +
  +                    ContentObject o = 
ContentContainer.getContainer(Integer.parseInt(hit.getId()));
  +                    ArrayList a=o.getMetadatas();
  +                    for(Iterator ia=a.iterator();ia.hasNext();){
  +                        JahiaObject jo=(JahiaObject) ia.next();
  +                        ContentField cf=(ContentField) jo;
  +                        
  +                        logger.debug("LOOPING 
"+cf.getDisplayName(processingContext)+":"+cf.getValue(processingContext));
  +                    }
  +
  +                }
  +
  +
                   for (Iterator iterator = new 
TreeSet(results.values()).iterator(); iterator.hasNext();) {
                       JahiaSearchHit jahiaSearchHit = (JahiaSearchHit) 
iterator.next();
                       myResults.addHit(jahiaSearchHit);
  @@ -238,11 +301,56 @@
           }
       }
   
  +
  +    //SOME TESTING method designed to be ajaxed
  +    /**
  +     *  to get a subset of results from ajax
  +     * @param offset from where the display start
  +     * @param rcount how much results are displayed
  +     * @return vector
  +     */
  +    public Vector getResults(int offset,int rcount){
  +        logger.debug("call to getResults");
  +        Vector v = new Vector();
  +        v.add("funny thing");
  +        return v;
  +    }
  +
  +    /**
  +     * to reorder the results displayed
  +     * @param offset from where the display start
  +     * @param rcount how much results are displayed
  +     * @param param  string key used to reorder
  +     * @return vector
  +     */
  +    public Vector reorderResults(int offset, int rcount, String param){
  +        logger.debug("call to reorderResults");
  +        Vector v = new Vector();
  +        v.add("funny thing");
  +        return v;
  +    }
  +
  +    private HashMap orderBy(String key,HashMap r){
  +        HashMap m=new HashMap();
  +        if(key.equalsIgnoreCase("score")){
  +          // by score
  +        } else if(key.equalsIgnoreCase("id")){
  +          //by id
  +        } else if(key.equalsIgnoreCase("")) {
  +            // by
  +        }
  +        /*
  +        JahiaSearchHit h;
  +        if()
  +        h.getId()
  +        */
  +        return m;
  +    }
   }
   /**
    * $Log: ManageContentPicker.java,v $
  - * Revision 1.18  2005/09/26 09:34:42  tdraier
  - * added content picker on virtual sites
  + * Revision 1.19  2005/09/26 17:06:03  dpillot
  + * code cleaning
    *
    * Revision 1.17  2005/09/16 10:43:07  dpillot
    * my 1st commit: just added trace on this
  

Reply via email to