tdraier 2005/10/12 17:27:38 CEST
Modified files:
core/src/java/org/jahia/data/containers
JahiaContentContainerFacade.java
Log:
better fix for field ordering (which should work)
Revision Changes Path
1.11 +24 -4
jahia/core/src/java/org/jahia/data/containers/JahiaContentContainerFacade.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/containers/JahiaContentContainerFacade.java.diff?r1=1.10&r2=1.11&f=h
Index: JahiaContentContainerFacade.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/data/containers/JahiaContentContainerFacade.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- JahiaContentContainerFacade.java 12 Oct 2005 13:35:07 -0000 1.10
+++ JahiaContentContainerFacade.java 12 Oct 2005 15:27:38 -0000 1.11
@@ -49,6 +49,8 @@
// Hashtable of JahiaContentFieldFacade instances
[fieldID,JahiaContentFieldFacade obj]
private Hashtable fields;
+ private Vector orderedFields = null;
+
// Hashtable of JahiaContainer instances , key = ContentFieldEntryState
private Hashtable containers;
@@ -399,7 +401,13 @@
}
// set fields
- Enumeration enum = this.fields.elements();
+ Enumeration enum;
+ if (orderedFields == null) {
+ enum = this.fields.elements();
+ } else {
+ enum = orderedFields.elements();
+ }
+
JahiaContentFieldFacade contentFieldFacade = null;
while ( enum.hasMoreElements() ){
@@ -460,11 +468,17 @@
container.setLanguageCode(loadVersion.getFirstLocale(true).toString());
// set fields
- Enumeration enumeration = this.fields.elements();
+ Enumeration enumeration;
+ if (orderedFields == null) {
+ enumeration = this.fields.elements();
+ } else {
+ enumeration = orderedFields.elements();
+ }
JahiaContentFieldFacade contentFieldFacade = null;
while ( enumeration.hasMoreElements() ){
contentFieldFacade =
(JahiaContentFieldFacade)enumeration.nextElement();
JahiaField field = contentFieldFacade.getField(loadVersion,true);
+
// the active version doesn't exists, so we request the staging
// @Fixme : this behavior is quite strange. We're requesting
live content, not staging
// so I comment this
@@ -482,9 +496,15 @@
}
}
-// if ( !this.containerStructureChecked ){
+ if ( !this.containerStructureChecked ){
// this is the first time we perform a container structure check
container.fieldsStructureCheck(jParams);
+ Enumeration en = container.getFields();
+ orderedFields = new Vector();
+ while (en.hasMoreElements()) {
+ JahiaField jahiaField = (JahiaField) en.nextElement();
+ orderedFields.add(this.fields.get(new
Integer(jahiaField.getID())));
+ }
// we must ensure that all fields are loaded correctly
Enumeration fields = container.getFields();
JahiaField field = null;
@@ -506,7 +526,7 @@
jParams,locales,createMissingLanguages);
}
this.containerStructureChecked = true;
-// }
+ }
return container;
}