[ 
https://issues.apache.org/jira/browse/ODFTOOLKIT-344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13486787#comment-13486787
 ] 

Svante Schubert edited comment on ODFTOOLKIT-344 at 10/30/12 11:00 AM:
-----------------------------------------------------------------------

Incidentally I fixed this issue last week-end, going to push it back now (had 
in mind to do it next Monday on the Apache Conference lab)..

There is one line 
mAutomaticStyle = automatic_styles.getStyle(getStyleName(), getStyleFamily());

missing in the following method

        public StyleStyleElement getOrCreateUnqiueAutomaticStyle() {
                if ((mAutomaticStyle == null)
                                || (mAutomaticStyle.getStyleUserCount() > 1)) {
                        // we need a new automatic style
                        OdfOfficeAutomaticStyles automatic_styles = 
getAutomaticStyles();
                        if (automatic_styles != null) {
                                StyleNameRef sParentStyleName = null;
                                mAutomaticStyle = 
automatic_styles.getStyle(getStyleName(), getStyleFamily());                    
      
                                if (mAutomaticStyle == null) {

See the panultimate line above. Will move it into a fresh source, test and push 
it.

On part I have forgotten, I updated the getter as well:
        /**
         * Retrieve ODF AutomaticStyle
         * 
         * @return the <code>OdfStyle</code> element
         */
        public OdfStyle getAutomaticStyle() {
                if(mAutomaticStyle == null){
                        OdfOfficeAutomaticStyles automatic_styles = 
getAutomaticStyles();
                        mAutomaticStyle = 
automatic_styles.getStyle(getStyleName(), getStyleFamily());  
                }
                return mAutomaticStyle;
        }

PS: I added a regression test to the simple project (TextPropertiesText.java) 
to become aware of the null pointer exception. Could you please add the test of 
the styling semantic..

        /**
         * Test of addStyledContent method, of class OdfSpan.
         */
        @Test
        public void testChangeStyle() {
                TextDocument document;
                try {
                        document = TextDocument.newTextDocument();
                        TextNavigation navigation = new TextNavigation("Word 
I'm looking for", document);
                        if (navigation.hasNext()) {
                                TextSelection selection = (TextSelection) 
navigation.nextSelection();

                                Span span = Span.newSpan(selection);
                                DefaultStyleHandler style = 
span.getStyleHandler();
                                
style.getTextPropertiesForWrite().setFontColor(Color.GREEN);
                        }                                       
                } catch (Exception ex) {
                        
Logger.getLogger(TextPropertiesTest.class.getName()).log(Level.SEVERE, null, 
ex);
                        Assert.fail(ex.getMessage());                   
                }
        }


Best regards,
Svante
                
      was (Author: svanteschubert):
    Incidentally I fixed this issue last week-end, going to push it back now 
(had in mind to do it next Monday on the Apache Conference lab)..

There is one line 
mAutomaticStyle = automatic_styles.getStyle(getStyleName(), getStyleFamily());

missing in the following method

        public StyleStyleElement getOrCreateUnqiueAutomaticStyle() {
                if ((mAutomaticStyle == null)
                                || (mAutomaticStyle.getStyleUserCount() > 1)) {
                        // we need a new automatic style
                        OdfOfficeAutomaticStyles automatic_styles = 
getAutomaticStyles();
                        if (automatic_styles != null) {
                                StyleNameRef sParentStyleName = null;
                                mAutomaticStyle = 
automatic_styles.getStyle(getStyleName(), getStyleFamily());                    
      
                                if (mAutomaticStyle == null) {

See the panultimate line above. Will move it into a fresh source, test and push 
it.

PS: Perhaps you have an idea of a regresion test?

Best regards,
Svante
                  
> NullPointerException in 
> DefaultStyleHandler.getTextPropertiesForWrite().setFontColor()
> --------------------------------------------------------------------------------------
>
>                 Key: ODFTOOLKIT-344
>                 URL: https://issues.apache.org/jira/browse/ODFTOOLKIT-344
>             Project: ODF Toolkit
>          Issue Type: Bug
>          Components: simple api
>    Affects Versions: 0.7
>            Reporter: Marc Schreiber
>
> I'm trying to change to font color of a certain word in a Open Document 
> Textfile. I used the example for changing the style of a span from here: 
> http://incubator.apache.org/odftoolkit/simple/document/cookbook/Text%20Document.html#Span
> This is my code:
>         TextNavigation navigation = new TextNavigation("Word I'm looking 
> for", document);
>         if (navigation.hasNext()) {
>             TextSelection selection = (TextSelection) 
> navigation.nextSelection();
>             Span span = Span.newSpan(selection);
>             DefaultStyleHandler style = span.getStyleHandler();
>             style.getTextPropertiesForWrite().setFontColor(Color.GREEN);
>         }
> But the last line in the if block throws an NullPointerException. Here is the 
> stack trace:
> Exception in thread "main" java.lang.NullPointerException
>       at 
> org.odftoolkit.simple.style.DefaultStyleHandler.getWritableStyleElementByName(DefaultStyleHandler.java:528)
>       at 
> org.odftoolkit.simple.style.DefaultStyleHandler.getStyleElementForWrite(DefaultStyleHandler.java:598)
>       at 
> org.odftoolkit.simple.style.DefaultStyleHandler.getTextPropertiesForWrite(DefaultStyleHandler.java:214)
>       at 
> etl.squared.informationextraction.Annotator.annotate(Annotator.java:124)
>       at etl.squared.informationextraction.Annotator.main(Annotator.java:143)

--
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

Reply via email to