incubator-odf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "DaLi Liu (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (ODFTOOLKIT-330) Improve the method TextSelection.replaceWith(String). new param types support
Date Wed, 12 Sep 2012 03:21:08 GMT

     [ https://issues.apache.org/jira/browse/ODFTOOLKIT-330?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

DaLi Liu updated ODFTOOLKIT-330:
--------------------------------

    Attachment: 330_TextDocumentSelection.patch

The implement of replacewith TextDocument, similar with FieldSelection.java
Javadoc and testcase included.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       /**
	 * Replace the Searched Content with a TextDocument with Styles.
	 * <p>
	 * Note: You need cache the TextNavigation.nextSelection item because after
	 * you replace currtenTextSelection with TextDocument,
	 * TextNavigation.nextSelection will search from the inserted Content, it
	 * will make you into a loop if the Search keyword also can be found in the
	 * new inserted Content.
	 * </p>
	 * The right way to use this replaceWithTextDocument(TextDocument
	 * textDocument) method should like this: <Code>
	 * <p>	search = new TextNavigation("SIMPLE", doc);    </p>
	 * <p>	TextSelection currtenTextSelection,nextTextSelection=null;</p>
	 * <p>		while (search.hasNext()) {</p>
	 * <p>			if(nextTextSelection!=null){</p>
	 * <p>				currtenTextSelection=nextTextSelection;</p>
	 * <p>			}else {</p>
	 * <p>			 	currtenTextSelection = (TextSelection) search.nextSelection();</p>
	 * <p>			}</p>
	 * <p>			nextTextSelection = (TextSelection) search.nextSelection();</p>
	 * <p>			if(currtenTextSelection!=null){</p>
	 * <p>				TextDocumentSelection nextParagraphSelection = new TextDocumentSelection(currtenTextSelection);</p>
	 * <p>				try {</p>
	 * <p>					nextParagraphSelection.replaceWithTextDocument(sourcedoc);</p>
	 * <p>				} catch (Exception e) {</p>
	 * <p>					e.printStackTrace();</p>
	 * <p>				}</p>
	 * <p>			}</p>
	 * <p>		}</p>
	 * <p>		if(nextTextSelection!=null){</p>
	 * <p>			TextDocumentSelection nextParagraphSelection = new TextDocumentSelection(nextTextSelection);</p>
	 * <p>			try {</p>
	 * <p>				nextParagraphSelection.replaceWithTextDocument(sourcedoc);</p>
	 * <p>			} catch (Exception e) {</p>
	 * <p>				e.printStackTrace();</p>
	 * <p>			}</p>
	 * <p>		}</p>
	 * </Code>
	 * 
	 * @param textDocument
	 *            the reference TextDocument to replace.
	 * @throws Exception
	 */
	public void replaceWithTextDocument(TextDocument textDocument) throws Exception 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Using: To use it please refer to TextDocumentSelectionTest.java
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
		search = new TextNavigation("SIMPLE", doc);
		TextSelection currtenTextSelection, nextTextSelection = null;
		while (search.hasNext()) {
			if (nextTextSelection != null) {
				currtenTextSelection = nextTextSelection;
			} else {
				currtenTextSelection = (TextSelection) search.nextSelection();
			}
			nextTextSelection = (TextSelection) search.nextSelection();
			if (currtenTextSelection != null) {
				TextDocumentSelection nextParagraphSelection = new TextDocumentSelection(currtenTextSelection);
				try {
					nextParagraphSelection.replaceWithTextDocument(sourcedoc);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}
		if (nextTextSelection != null) {
			TextDocumentSelection nextParagraphSelection = new TextDocumentSelection(nextTextSelection);
			try {
				nextParagraphSelection.replaceWithTextDocument(sourcedoc);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		
                
> Improve the method TextSelection.replaceWith(String). new param types support
> -----------------------------------------------------------------------------
>
>                 Key: ODFTOOLKIT-330
>                 URL: https://issues.apache.org/jira/browse/ODFTOOLKIT-330
>             Project: ODF Toolkit
>          Issue Type: Improvement
>          Components: simple api
>    Affects Versions: 0.8.6
>            Reporter: DaLi Liu
>             Fix For: 0.8.6, 0.8.7
>
>         Attachments: 330_ImageSelection.patch, 330_ParagraphSelection.patch, 330_TableSelection.patch,
330_TextDocumentSelection.patch
>
>   Original Estimate: 672h
>  Remaining Estimate: 672h
>
> With the clasees TextNavigation and TextSelection, user can generation a report base
on some templates very easily. The method TextSelection.replaceWith(String) provides an easy
way to replace
> locate and replace placeholders in a document by a concrete text. However that replacement
should not only be limited to simple text strings but also for more complex pieces of content.
> So proposal to add new replaceWith method in TextSelection.java
> 1. public void replaceWith(Table table)
> The text represented by the TextSelection object should be replaced by the table
> provided. If the TextSelection object does not contain a paragraph of its own, but rather
is part of a paragraph, then this paragraph should be split. that mean the exist paragraph
split to two new paragraphs,the table be insert between these two new paragraphs.
> 2.public void replaceWith(Image image)
> The text represented by the TextSelection object should be replaced by an image. The
image needs to replace the TextSelection exactly in-place, that means: if positioned within
the flow of a text paragraph, the replacement should be in that very position and not at the
beginning, or end of the enclosing paragraph.
> 3.public void replaceWith(Paragraph p)
> The text represented by the TextSelection object should be replaced by a paragraph. If
the replacement is within a paragraph, it may be required to split that paragraph.  that mean
the exist paragraph split to two new paragraphs,the Paragraph be insert between these two
new paragraphs.
> 4.public void replaceWith(TextDocument document)
> Alike the replacement of a table, it should be possible to replace the TextSelection
with the content of a complete documents. This may require that the paragraph where the replacement
takes place needs to be split into two paragraphs first.
> 5.public void replaceWith(Field field)
> The text represented by the TextSelection object should be replaced by the field provided.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message