tdraier     2005/10/06 16:27:22 CEST

  Modified files:
    core/src/java/org/jahia/engines/importexport 
                                                 ManageContentPicker.java 
  Log:
  added special page search
  
  Revision  Changes    Path
  1.30      +58 -38    
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.29&r2=1.30&f=h
  
  
  
  Index: ManageContentPicker.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/importexport/ManageContentPicker.java,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- ManageContentPicker.java  5 Oct 2005 08:36:08 -0000       1.29
  +++ ManageContentPicker.java  6 Oct 2005 14:27:22 -0000       1.30
  @@ -16,6 +16,7 @@
   import org.jahia.registries.ServicesRegistry;
   import org.jahia.services.containers.ContentContainer;
   import org.jahia.services.containers.ContentContainerList;
  +import org.jahia.services.containers.JahiaContainersService;
   import org.jahia.services.fields.ContentField;
   import org.jahia.services.fields.ContentPageField;
   import org.jahia.services.fields.ContentSmallTextField;
  @@ -36,7 +37,7 @@
    *
    * @author Thomas Draier, joe Pillot
    * @author ${User}
  - * @version $Id: ManageContentPicker.java,v 1.29 2005/10/05 08:36:08 dpillot 
Exp $
  + * @version $Id: ManageContentPicker.java,v 1.30 2005/10/06 14:27:22 tdraier 
Exp $
    */
   public class ManageContentPicker {
       private static org.apache.log4j.Logger logger =
  @@ -217,47 +218,62 @@
   
           // we search only if we have smtg to search
           if (!"".equals(searchString)) {
  +            JahiaSearchResultBuilder resultBuilder = new 
ContainerSearchResultBuilderImpl();
   
  -
  -            ArrayList languageCodes = new ArrayList();
  -            String[] languageCodesVal = 
processingContext.getParameterValues("searchlang");
  -            if (languageCodesVal != null) {
  -                if (!JahiaTools.inValues(Search_Engine.SEARCH_ALL_LANG, 
languageCodesVal)) {
  -                    for (int i = 0; i < languageCodesVal.length; i++) {
  -                        languageCodes.add(languageCodesVal[i]);
  +            if (searchString.startsWith("page:")) {
  +                int pageId = Integer.parseInt(searchString.substring(5));
  +                searchResults = new JahiaSearchResult(resultBuilder);
  +                ContentPage cp = 
ServicesRegistry.getInstance().getJahiaPageService().lookupContentPage(pageId, 
false);
  +                JahiaContainersService jahiaContainersService = 
ServicesRegistry.getInstance().getJahiaContainersService();
  +                List ids = 
jahiaContainersService.getContainerListIDsInPage(cp, EntryLoadRequest.STAGED);
  +                for (Iterator iterator = ids.iterator(); 
iterator.hasNext();) {
  +                    Integer listId = (Integer) iterator.next();
  +                    Vector v = 
jahiaContainersService.getctnidsInList(listId.intValue(), 
EntryLoadRequest.STAGED);
  +                    for (Iterator iterator1 = v.iterator(); 
iterator1.hasNext();) {
  +                        Integer ctnId = (Integer) iterator1.next();
  +                        JahiaSearchHit hit = new JahiaSearchHit(new 
ParsedObjectImpl(100,null));
  +                        hit.setId(ctnId.toString());
  +                        hit.setScore(100);
  +                        searchResults.addHit(hit);
                       }
                   }
               } else {
  -                languageCodes.add(processingContext.getLocale().toString());
  -            }
  -            logger.debug("searching in what languages:" + languageCodes);
  -            engineMap.put("searchLanguageCodes", languageCodes);
  -
  -            //String theScreen = (String)engineMap.get("screen");
  +                ArrayList languageCodes = new ArrayList();
  +                String[] languageCodesVal = 
processingContext.getParameterValues("searchlang");
  +                if (languageCodesVal != null) {
  +                    if (!JahiaTools.inValues(Search_Engine.SEARCH_ALL_LANG, 
languageCodesVal)) {
  +                        for (int i = 0; i < languageCodesVal.length; i++) {
  +                            languageCodes.add(languageCodesVal[i]);
  +                        }
  +                    }
  +                } else {
  +                    
languageCodes.add(processingContext.getLocale().toString());
  +                }
  +                logger.debug("searching in what languages:" + languageCodes);
  +                engineMap.put("searchLanguageCodes", languageCodes);
   
  +                //String theScreen = (String)engineMap.get("screen");
   
  -            JahiaSearchResultBuilder resultBuilder = new 
ContainerSearchResultBuilderImpl();
  -
  +                if (scope.equalsIgnoreCase("all")) {
  +                    //multidomain search
  +                    List handlers = new ArrayList(50);
  +
  +                    while (sites.hasMoreElements()) {
  +                        SearchHandler h = 
searchService.getSearchHandler(((JahiaSite) sites.nextElement()).getID());
  +                        handlers.add(h.getName());
  +                    }
  +                    String[] strings = (String[]) handlers.toArray(new 
String[handlers.size()]);
  +                    logger.debug(strings);
   
  -            if (scope.equalsIgnoreCase("all")) {
  -                //multidomain search
  -                List handlers = new ArrayList(50);
  -
  -                while (sites.hasMoreElements()) {
  -                    SearchHandler h = 
searchService.getSearchHandler(((JahiaSite) sites.nextElement()).getID());
  -                    handlers.add(h.getName());
  +                    //recreate enum
  +                    sites = siteService.getSites();
  +                    engineMap.put("sites", sites);
  +                    searchResults = searchService.search(strings, 
searchString, processingContext, languageCodes, resultBuilder);
  +                } else {
  +                    //just one domain search
  +                    searchResults = 
searchService.search(Integer.parseInt(processingContext.getParameter("searchSite")),
  +                            searchString, processingContext, languageCodes, 
resultBuilder);
                   }
  -                String[] strings = (String[]) handlers.toArray(new 
String[handlers.size()]);
  -                logger.debug(strings);
  -
  -                //recreate enum
  -                sites = siteService.getSites();
  -                engineMap.put("sites", sites);
  -                searchResults = searchService.search(strings, searchString, 
processingContext, languageCodes, resultBuilder);
  -            } else {
  -                //just one domain search
  -                searchResults = 
searchService.search(Integer.parseInt(processingContext.getParameter("searchSite")),
  -                        searchString, processingContext, languageCodes, 
resultBuilder);
               }
               logger.debug("# of hits in raw searchresults:" + 
searchResults.getHitCount() + " " + searchResults);
   
  @@ -270,14 +286,14 @@
               JahiaContainerDefinition thisJcd = (JahiaContainerDefinition) 
ContentObject.getInstance(cdk);
               logger.debug("destination cdk:" + cdk + " cdfn:" + thisJcd);
   
  -            EntryLoadRequest lr = new 
EntryLoadRequest(EntryLoadRequest.ACTIVE_WORKFLOW_STATE, 0, 
processingContext.getLocaleList());
  +            EntryLoadRequest lr = new 
EntryLoadRequest(EntryLoadRequest.STAGING_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()) {
  +                while (current != null) {
                       if (current.getPickedObject() != null) {
                           // this object is already a copy, we ignore it
                           break;
  @@ -321,8 +337,9 @@
                                       break;
                                   }
                               }
  -                            logger.debug("fields of searchhit" + 
jahiaSearchHit.getParsedObject().getFields());
  -
  +                            if (jahiaSearchHit.getParsedObject()!= null) {
  +                                logger.debug("fields of searchhit" + 
jahiaSearchHit.getParsedObject().getFields());
  +                            }
   
                               if (results.containsKey(key)) {
                                   JahiaContainerSearchHit hit = 
(JahiaContainerSearchHit) results.get(key);
  @@ -478,6 +495,9 @@
   }
   /**
    * $Log: ManageContentPicker.java,v $
  + * Revision 1.30  2005/10/06 14:27:22  tdraier
  + * added special page search
  + *
    * Revision 1.29  2005/10/05 08:36:08  dpillot
    * bug fix (npe on orderby)
    *
  

Reply via email to