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

Reply via email to