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;
}