knguyen     2005/06/01 18:39:26 CEST

  Modified files:
    core/src/java/org/jahia/data/containers 
                                            
ContainerSorterByContainerDefinition.java 
  Log:
  - when sorting containers, ensure to return containers without the sorting 
field
  
  Revision  Changes    Path
  1.11      +38 -0     
jahia/core/src/java/org/jahia/data/containers/ContainerSorterByContainerDefinition.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/containers/ContainerSorterByContainerDefinition.java.diff?r1=1.10&r2=1.11&f=h
  
  
  
  Index: ContainerSorterByContainerDefinition.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/data/containers/ContainerSorterByContainerDefinition.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- ContainerSorterByContainerDefinition.java 27 May 2005 15:12:49 -0000      
1.10
  +++ ContainerSorterByContainerDefinition.java 1 Jun 2005 16:39:26 -0000       
1.11
  @@ -512,6 +512,9 @@
           buff.append(ContainerFilterBean.FIELD_WORKFLOW_STATE);
   
           String query = buff.toString();
  +        
System.err.println("ContainerSorterByContainerDefinition.getFieldValues - 
query:" + query);
  +
  +
           Connection dbConn = null;
           Statement stmt = null;
           ResultSet rs = null;
  @@ -529,11 +532,14 @@
               dbConn = 
org.jahia.services.database.ConnectionDispenser.getConnection();
               stmt = dbConn.createStatement();
               rs = stmt.executeQuery( buff.toString() );
  +            
System.err.println("ContainerSorterByContainerDefinition.getFieldValues " );
               while (rs.next())
               {
                   int ctnID = rs.getInt(1);
  +                System.err.print("� ctnID:"+ctnID);
                   int fieldID = rs.getInt(2);
                   String fieldValue = rs.getString(3);
  +                System.err.print(" fieldValue:"+fieldValue);
                   int workflowState = rs.getInt(4);
                   String languageCode = rs.getString(5);
   
  @@ -657,11 +663,27 @@
           }
           // retrieve sorted ids
           int size = datas.size();
  +        BitSet sortedBitSet = new BitSet();
           StrDataBean dataBean = null;
           for ( int i=0; i<size ; i++ ){
               dataBean = (StrDataBean)datas.get(i);
               results.add(new Integer(dataBean.ctnID));
  +            sortedBitSet.set(dataBean.ctnID);
  +        }
  +
  +        // missing container should be returned as well
  +        if ( bits != null ){
  +            BitSet diffBitSet = new BitSet();
  +            diffBitSet.or(bits);
  +            diffBitSet.andNot(sortedBitSet);
  +            int l = diffBitSet.size();
  +            for ( int i=0; i<l ; i++ ){
  +                if (diffBitSet.get(i)) {
  +                    results.add(new Integer(i));
  +                }
  +            }
           }
  +
           return results;
       }
   
  @@ -687,11 +709,27 @@
           }
           // retrieve sorted ids
           int size = datas.size();
  +        BitSet sortedBitSet = new BitSet();
           DataBean dataBean = null;
           for ( int i=0; i<size ; i++ ){
               dataBean = (DataBean)datas.get(i);
               results.add(new Integer(dataBean.ctnID));
  +            sortedBitSet.set(dataBean.ctnID);
  +        }
  +
  +        // missing container should be returned as well
  +        if ( bits != null ){
  +            BitSet diffBitSet = new BitSet();
  +            diffBitSet.or(bits);
  +            diffBitSet.andNot(sortedBitSet);
  +            int l = diffBitSet.size();
  +            for ( int i=0; i<l ; i++ ){
  +                if (diffBitSet.get(i)) {
  +                    results.add(new Integer(i));
  +                }
  +            }
           }
  +
           return results;
       }
   
  

Reply via email to