sort PAPX and SEPX after loading
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1144679 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
2857dc155c
commit
c2d4b6babe
@ -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)
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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 */
|
||||
|
@ -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)
|
||||
|
@ -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" );
|
||||
|
Loading…
Reference in New Issue
Block a user