Hi Nick,

meanwhile I've created a small test class that indicates the problem. I have a 
table between two paragraphs and I simply would like to re-sort those 
IBodyElements, so that the table is first - followed by two paragraphs.
When I simply try to resort the list or to replace it, I get an 
UnmodifiableCollection Exception.

Against TAG REL_3_8_BETA3:

package net.brutex.msd2docx;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.xwpf.usermodel.*;

public class Test {
        static String outputfile = "c:/temp/testdoc.docx";

        public static void main(String[] args) {
                try {
                        //Create an XWPFDoc and put a table between two
                        //paragraphs
                        XWPFDocument d = new XWPFDocument();
                        XWPFParagraph p1 = d.createParagraph();
                        XWPFRun r1= p1.createRun();
                        r1.setText("Paragraph 1, Run 1.");
                        XWPFTable t1 = d.createTable(4, 3);
                        t1.getRow(0).getCell(0).setText("Table 1");
                        XWPFParagraph p2 = d.createParagraph();
                        XWPFRun r2= p2.createRun();
                        r2.setText("Paragraph 2, Run 2.");
                        
                        //Howto move table t1 to another position, 
                        //i.e. above p1 ?
                        
                        //Just list the IBodyElement List
                        List<IBodyElement> list = d.getBodyElements();
                        int i=0;
                        for ( IBodyElement e : list ) {
                                System.out.println(i + ": " + 
e.getElementType().name());                               
                                i++;
                        }

                        d.write(new FileOutputStream(outputfile));
                        
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
}

Cheers
Brian





Von: Nick Burch [mailto:[email protected]] 
Gesendet: Montag, 27. Juni 2011 12:38

I think we should be maintaining a list with both paragraphs and tables in it 
though, with relative ordering preserved. On XWPFDocument there's
        List<IBodyElement> bodyElements
for example, which is built by doing a child walk and storing the entries in 
the order they occur

I'd look at extending that to suit your needs

Nick

Reply via email to