Ignore:
Timestamp:
11/16/11 13:53:09 (6 months ago)
Author:
jharrop
Message:

Start of support for conversion of HTML UL and OL.

  • Will now add a bulleted or numbered list definition to the NDP (though without regard to CSS definition). FIXME: in Importer, test for null NDP.

Supporting methods in NDP (add a numbering definition, unmarshall default numbering)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/docx4j/src/main/java/org/docx4j/openpackaging/parts/WordprocessingML/NumberingDefinitionsPart.java

    r1610 r1715  
    305305        } 
    306306         
     307        /** 
     308         * Add the specified definition, allocating it a new w:abstractNumId. 
     309         *  
     310         * Also create and add an associated ListNumberingDefinition, and return 
     311         * the w:numId of this associated ListNumberingDefinition (since that is 
     312         * what you are likely to use in the document).  
     313         *  
     314         * @param abstractNum 
     315         * @return 
     316         */ 
     317        public Numbering.Num addAbstractListNumberingDefinition(Numbering.AbstractNum abstractNum) { 
     318                 
     319                ////////////////////////////////////////////// 
     320                // Numbering.AbstractNum abstractNum 
     321                 
     322                // Generate a unique w:abstractNumId for it 
     323                int nextId = getAbstractListDefinitions().size();                
     324        do { 
     325                nextId++;                
     326        } while (getAbstractListDefinitions().containsKey( "" + nextId ));       
     327        abstractNum.setAbstractNumId( BigInteger.valueOf(nextId) ); 
     328         
     329        // Add it to our JAXB object 
     330        this.jaxbElement.getAbstractNum().add(abstractNum); 
     331         
     332        // Add it to our hashmap 
     333        AbstractListNumberingDefinition absNumDef = new AbstractListNumberingDefinition(abstractNum); 
     334        abstractListDefinitions.put(absNumDef.getID(), absNumDef); 
     335 
     336                ////////////////////////////////////////////// 
     337                // Numbering.Num num 
     338         
     339        // Now make an associated ListNumberingDefinition 
     340                //      <w:num w:numId="1"> 
     341                //        <w:abstractNumId w:val="1"/> 
     342                //      </w:num>"         
     343        Numbering.Num num = Context.wmlObjectFactory.createNumberingNum(); 
     344        Numbering.Num.AbstractNumId abstractNumId = Context.wmlObjectFactory.createNumberingNumAbstractNumId(); 
     345        abstractNumId.setVal(BigInteger.valueOf(nextId) ); 
     346        num.setAbstractNumId(abstractNumId); 
     347         
     348        nextId = getInstanceListDefinitions().size();            
     349        do { 
     350                nextId++;                
     351        } while (getInstanceListDefinitions().containsKey( "" + nextId ));       
     352        num.setNumId( BigInteger.valueOf(nextId) );   
     353         
     354        // Add it to our JAXB object 
     355        this.jaxbElement.getNum().add(num); 
     356         
     357        // Add it to our hashmap 
     358        ListNumberingDefinition listDef = new ListNumberingDefinition(num, abstractListDefinitions); 
     359        instanceListDefinitions.put(listDef.getListNumberId(), listDef); 
     360         
     361        //  
     362        return num; 
     363                 
     364        } 
     365         
     366    public Numbering unmarshalDefaultNumbering() throws JAXBException { 
     367                          
     368                java.io.InputStream is = null; 
     369                try { 
     370                        is = org.docx4j.utils.ResourceUtils.getResource( 
     371                                        "org/docx4j/openpackaging/parts/WordprocessingML/numbering.xml"); 
     372                } catch (IOException e) { 
     373                        // TODO Auto-generated catch block 
     374                        e.printStackTrace(); 
     375                }                
     376         
     377        return unmarshal( is );    // side-effect is to set jaxbElement          
     378    } 
    307379 
    308380} 
Note: See TracChangeset for help on using the changeset viewer.