]> source.dussan.org Git - poi.git/commitdiff
sort PAPX and SEPX after loading
authorSergey Vladimirov <sergey@apache.org>
Sat, 9 Jul 2011 14:38:42 +0000 (14:38 +0000)
committerSergey Vladimirov <sergey@apache.org>
Sat, 9 Jul 2011 14:38:42 +0000 (14:38 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1144679 13f79535-47bb-0310-9956-ffa450edef68

src/scratchpad/src/org/apache/poi/hwpf/model/CHPBinTable.java
src/scratchpad/src/org/apache/poi/hwpf/model/PAPBinTable.java
src/scratchpad/src/org/apache/poi/hwpf/model/PropertyNode.java
src/scratchpad/src/org/apache/poi/hwpf/model/SectionTable.java
src/scratchpad/testcases/org/apache/poi/hwpf/converter/TestWordToHtmlConverter.java

index d616f5114012746b9b24b66bdc0134d4b489b08d..5d392bbf0c11233730a9e02840c13518e60f31fe 100644 (file)
@@ -21,7 +21,6 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.List;
 
 import org.apache.poi.hwpf.model.io.HWPFFileSystem;
@@ -38,19 +37,6 @@ import org.apache.poi.util.LittleEndian;
 public class CHPBinTable
 {
 
-    private static final class CHPXStartComparator implements Comparator<CHPX>
-    {
-        static CHPXStartComparator instance = new CHPXStartComparator();
-
-        public int compare( CHPX o1, CHPX o2 )
-        {
-            int thisVal = o1.getStart();
-            int anotherVal = o2.getStart();
-            return ( thisVal < anotherVal ? -1 : ( thisVal == anotherVal ? 0
-                    : 1 ) );
-        }
-    }
-
 /** List of character properties.*/
   protected ArrayList<CHPX> _textRuns = new ArrayList<CHPX>();
 
@@ -104,7 +90,7 @@ public class CHPBinTable
             _textRuns.add(chpx);
       }
     }
-        Collections.sort( _textRuns, CHPXStartComparator.instance );
+        Collections.sort( _textRuns, PropertyNode.StartComparator.instance );
     }
 
   public void adjustForDelete(int listIndex, int offset, int length)
index 129cbcc937c1a37adb3ff98660d418b01af1253f..502e9e6def396bef3f903f3d5ab18d977396483d 100644 (file)
@@ -20,6 +20,7 @@ package org.apache.poi.hwpf.model;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.ArrayList;
+import java.util.Collections;
 
 import org.apache.poi.hwpf.model.io.HWPFFileSystem;
 import org.apache.poi.hwpf.model.io.HWPFOutputStream;
@@ -88,6 +89,7 @@ public class PAPBinTable
            _paragraphs.add(papx);
       }
     }
+    Collections.sort( _paragraphs, PropertyNode.StartComparator.instance );
     _dataStream = dataStream;
   }
 
index 187e3db188dcc8173d9a9d943519e29501b00300..f0f6f4e92156d7db238452efc0b45a09258253cb 100644 (file)
@@ -18,6 +18,7 @@
 package org.apache.poi.hwpf.model;
 
 import java.util.Arrays;
+import java.util.Comparator;
 
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
@@ -33,6 +34,20 @@ import org.apache.poi.util.POILogger;
  */
 public abstract class PropertyNode<T extends PropertyNode<T>>  implements Comparable<T>, Cloneable
 {
+
+    static final class StartComparator implements Comparator<PropertyNode<?>>
+    {
+        static StartComparator instance = new StartComparator();
+
+        public int compare( PropertyNode<?> o1, PropertyNode<?> o2 )
+        {
+            int thisVal = o1.getStart();
+            int anotherVal = o2.getStart();
+            return ( thisVal < anotherVal ? -1 : ( thisVal == anotherVal ? 0
+                    : 1 ) );
+        }
+    }
+
   private final static POILogger _logger = POILogFactory.getLogger(PropertyNode.class);
   protected Object _buf;
   /** The start, in characters */
index f61efd5b37e253a3ca00d649a128e2e93660b75d..5f1f08a7f90e9c68d39e96d86ef65630a457d7fc 100644 (file)
@@ -19,6 +19,7 @@ package org.apache.poi.hwpf.model;
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 import org.apache.poi.hwpf.model.io.HWPFFileSystem;
@@ -105,6 +106,8 @@ public class SectionTable
                s.setEnd( CPtoFC(node.getEnd()) );
         }
     }
+
+    Collections.sort( _sections, PropertyNode.StartComparator.instance );
   }
 
   public void adjustForInsert(int listIndex, int length)
index 0cee3e7e2e87dba97583977e1c1177cfe3a31c8e..6c8661431505ccfbd2c1702d4e5ce2cf6d6a42ab 100644 (file)
@@ -124,6 +124,11 @@ public class TestWordToHtmlConverter extends TestCase
         assertTrue( result.contains( "<table>" ) );
     }
 
+    public void testO_kurs_doc() throws Exception
+    {
+        getHtmlText( "o_kurs.doc" );
+    }
+
     public void testPageref() throws Exception
     {
         String result = getHtmlText( "pageref.doc" );