Hallo Svante, Thanks for Your answer! I had a lot of trouble today. I will try it on Monday! Have a nice weekend! Georg
2015-10-30 12:23 GMT+01:00 Svante Schubert <[email protected]>: > A small typo, as I have not reloaded my XML my addition was missing: > > <text:section text:display="true" text:name="myTest" > text:style-name="ac3c190"> > <text:p>This is a paragraph...</text:p> > <text:list text:style-name="l6a4c3d" xml:id="list73387982"> > <text:list-item> > <text:p text:style-name="ae1b664">this is the first item</text:p> > </text:list-item> > <text:list-item> > <text:p text:style-name="ae1b664">this is the second item</text:p> > </text:list-item> > <text:list-item> > <text:p text:style-name="P4">this is the third item More content!<text:span > text:style-name="Text"> More Span!</text:span> > </text:p> > </text:list-item> > </text:list> > </text:section> > > On Fri, Oct 30, 2015 at 12:22 PM, Svante Schubert < > [email protected] > > wrote: > > > Hi Georg, > > > > I never worked on or with the simple API, which was once donated by IBM > to > > the toolkit, but I took a quick look into your problem. > > As usual I have pasted your code example into one of the existing tests, > > in this case in the simple API list regression tests of package > > org.odftoolkit.simple.text.list > > > > The short answer, there is no high level (simple) API for format of list > > items aside of their numbering style. You need to add it to the simple > API > > or go back to the lower level ODFDOM API. To go lower you go back to the > > XML level, you receive on the simple API list item its XML representation > > via > > item.getOdfElement() > > > > and receive its paragraph children via > > NodeList nodeList = item.getOdfElement().getElementsByTagName("text:p"); > > > > during creation of the typed XML DOM tree their is still the high level > > ODFDOM paragraph class being used > > org.odftoolkit.odfdom.doc.text.OdfTextParagraph > > which you might want to use, but there should be other ways for instance > > to enhance Simple API.. > > > > What it is in general missing in the current ODF Toolkit version but was > > added by the open-xchange fork, are high level positions of user objects > > within the document. Allowing not only to append some styles or search > for > > some special content string, but point to a position to format. See an > > example of an ODF document with its representation as a list of changes > (in > > JSON) in my mail to the OASIS ODF working group - > > https://lists.oasis-open.org/archives/office-collab/201507/msg00003.html > > > > > > > > Your example in full within the test of : > > org.odftoolkit.simple.text.list.ListItemTest > > > > @Test > > public void testFormatTextContent() { > > try { > > TextDocument odtdoc = (TextDocument) > > TextDocument.loadDocument(ResourceUtilities > > .getTestResourceAsStream(SAMPLE_LIST_DOCUMENT)); > > > > Section s1 = odtdoc.appendSection("myTest"); > > Paragraph p2 = s1.addParagraph("This is a paragraph..."); > > > > List list = s1.addList(); > > list.setDecorator(new NumberDecorator(odtdoc)); > > ListItem item = list.addItem("this is the first item"); > > item = list.addItem("this is the second item"); > > item = list.addItem("this is the third item"); > > NodeList nodeList = item.getOdfElement().getElementsByTagName("text:p"); > > if(nodeList.getLength() > 0){ > > TextPElement textP = (TextPElement) nodeList.item(0); > > if(textP instanceof OdfTextParagraph){ > > String styleName = "P4"; > > String content = " More content!"; > > String spanStyleName = "Text"; > > String spanContent = " More Span!"; > > ((OdfTextParagraph) textP).addStyledContent(styleName, > > content).addStyledSpan( > > spanStyleName, spanContent); > > } > > } > > > > > > > odtdoc.save(ResourceUtilities.getTestOutputFolder().concat("myExampleList.odt")); > > > > } > > > > The new XML being generated: > > > > <text:section text:display="true" text:name="myTest" > > text:style-name="a9a60a2"> > > <text:p>This is a paragraph...</text:p> > > <text:list text:style-name="l4bd2d4" xml:id="list65104419"> > > <text:list-item> > > <text:p text:style-name="a7af3c1">this is the first item</text:p> > > </text:list-item> > > <text:list-item> > > <text:p text:style-name="a7af3c1">this is the second item</text:p> > > </text:list-item> > > <text:list-item> > > <text:p text:style-name="a7af3c1">this is the third item</text:p> > > </text:list-item> > > </text:list> > > </text:section> > > > > For the XML handling of ODF, I usually like to use JEdit application on > > desktop with the Archive extension allowing to open the content.xml > within > > the ODT file and to edit and save it back (strangely works not for MS > > Office created ODT) and the XML JEdit extension to indent the XML with > some > > key shortcut.. > > > > Hope it helps, > > Svante > > > > > > On Thu, Oct 29, 2015 at 11:07 AM, Georg Füchsle <[email protected] > > > > wrote: > > > >> Hallo, > >> > >> I create list Items by: > >> > >> Paragraph p2 = s1.addParagraph("This is a paragraph..."); > >> > >> List list = s1.addList(); > >> list.setDecorator(new NumberDecorator(target)); > >> ListItem item = list.addItem("this is the first item"); > >> item = list.addItem("this is the second item"); > >> item = list.addItem("this is the third item"); > >> > >> How can I format the content of a list item? I tried to retieve a > >> TextSelection of the list item but i did not succeed. > >> > >> Thanks in advance. > >> > >> Gio > >> > > > > >
