Georg Füchsle created ODFTOOLKIT-417:
----------------------------------------

             Summary: Missing methods for set and get background-color, 
subscripted and superscripted for a paragraph
                 Key: ODFTOOLKIT-417
                 URL: https://issues.apache.org/jira/browse/ODFTOOLKIT-417
             Project: ODF Toolkit
          Issue Type: Improvement
          Components: simple api
    Affects Versions: 0.6.2-incubating
            Reporter: Georg Füchsle


in File:
http://svn.apache.org/viewvc/incubator/odf/trunk/simple/src/main/java/org/odftoolkit/simple/style/ParagraphProperties.java

are missing the methods:
{quote}
public void setBackgroundColor(Color bkColor);
public String getBackgroundColorAttribute();
{quote}

in the File:
http://svn.apache.org/viewvc/incubator/odf/trunk/simple/src/main/java/org/odftoolkit/simple/style/TextProperties.java

are missing the methods:
{quote}
public void setSubscripted(Integer fontsizePercent);
public void setSuperscripted(Integer fontsizePercent);
public Integer getSubscripted();
public Integer getSuperscripted();
{quote}



We suggest the following code:

simple/src/main/java/org/odftoolkit/simple/style/ParagraphProperties.java:
{quote}
    /**
     * sets backgroundColor
     * @param bkColor
     */
    public void setBackgroundColor(Color bkColor)
    \{
             mElement.setFoBackgroundColorAttribute(bkColor.toString());
    \}

    /**
     * 
     * gets backgroundColor
     * @return  bkColor as String
     */
    public String getBackgroundColorAttribute()
    \{
             return mElement.getFoBackgroundColorAttribute();
    \}
{quote}

simple/src/main/java/org/odftoolkit/simple/style/TextProperties.java
{quote}

    /**
     * sets textstyle subscripted
     * 
     *  @param fontsizePercent font size in per cent for subscripted text. if 
null default is 58 %
     */
    public void setSubscripted(Integer fontsizePercent)
    \{
        if (fontsizePercent != null)
        \{
                mElement.setStyleTextPositionAttribute("sub " + 
fontsizePercent.toString() + "%");
        \}
        else
        \{
                mElement.setStyleTextPositionAttribute("sub 58%");
        \}
    \}

    /**
     * sets textstyle superscripted
     * 
     *  @param fontsizePercent font size in per cent for superscripted text. if 
null default is 58 %
     */
    public void setSuperscripted(Integer fontsizePercent)
    \{
        if (fontsizePercent != null)
        \{
                mElement.setStyleTextPositionAttribute("super " + 
fontsizePercent.toString() + "%");
        \}
        else
        \{
            mElement.setStyleTextPositionAttribute("super 58%");
        \}
    \}

    /**
    * gets the per centage value of subscription or null
    * @return
    */
    public Integer getSubscripted()
    \{

        String posAtt = mElement.getStyleTextPositionAttribute();
        if (posAtt != null)
        \{
                if (posAtt.startsWith("sub"))
                \{
                    String value = posAtt.substring(4);
                    int i = value.indexOf('%');
                    if (i > 0)
                    \{
                        try
                        \{
                            value = value.substring(0, i);
                            return Integer.parseInt(value);
                        \}
                        catch (Exception e)
                        \{

                        \}
                    \}
                \}
            \}
            return null;
        \}

    /**
     * gets the per centage value of superscription or null
     * @return
     */
    public Integer getSuperscripted()
    \{

        String posAtt = mElement.getStyleTextPositionAttribute();
        if (posAtt != null)
        \{
            if (posAtt.startsWith("super"))
            \{
                String value = posAtt.substring(6);
                int i = value.indexOf('%');
                if (i > 0)
                \{
                    try
                    \{
                        value = value.substring(0, i);
                        return Integer.parseInt(value);
                    \}
                    catch (Exception e)
                    \{

                    \}
                \}
            \}
        \}

        return null;
    \}
{quote}


and the following JUnit-Tests:

src/test/java/org/odftoolkit/simple/style/ParagraphPropertiesTest.java
{quote}

    @Test
    public void testGetSetBackgroundColor()
    \{
        try
        \{
            TextDocument doc = TextDocument.newTextDocument();
            Paragraph paragraph1 = doc.addParagraph("paragraph1");

            ParagraphStyleHandler psh = paragraph1.getStyleHandler();
            ParagraphProperties paraProp = psh.getParagraphPropertiesForWrite();
            paraProp.setBackgroundColor(new Color("#FF0000"));

            psh = paragraph1.getStyleHandler();
            paraProp = psh.getParagraphPropertiesForWrite();

            Assert.assertEquals("#FF0000", 
paraProp.getBackgroundColorAttribute());

        \}
        catch (Exception e)
        \{
            LOGGER.log(Level.SEVERE, e.getMessage(), e);
            Assert.fail();
        \}

    \}
{quote}

and in:

src/test/java/org/odftoolkit/simple/style/TextPropertiesTest.java
{quote}

    @Test
    public void testSubscripted()
    \{
        try
        \{
            SpreadsheetDocument document = 
SpreadsheetDocument.newSpreadsheetDocument();
            Table table = document.getTableByName("Sheet1");
            Cell cell = table.getCellByPosition("A1");

            TextProperties textProperties = 
cell.getStyleHandler().getTextPropertiesForWrite();
            textProperties.setSubscripted(null);

            //validate
            Integer i = textProperties.getSubscripted();
            Assert.assertEquals(Integer.valueOf(58), i);

        \}
        catch (Exception e)
        \{
            LOGGER.log(Level.SEVERE, e.getMessage(), e);
            Assert.fail(e.getMessage());
        \}
    \}

    @Test
    public void testSuperscripted()
    \{
        try
        \{
            SpreadsheetDocument document = 
SpreadsheetDocument.newSpreadsheetDocument();
            Table table = document.getTableByName("Sheet1");
            Cell cell = table.getCellByPosition("A1");

            TextProperties textProperties = 
cell.getStyleHandler().getTextPropertiesForWrite();
            textProperties.setSuperscripted(Integer.valueOf(50));

            //validate
            Integer i = textProperties.getSuperscripted();
            Assert.assertEquals(Integer.valueOf(50), i);

        \}
        catch (Exception e)
        \{
            LOGGER.log(Level.SEVERE, e.getMessage(), e);
            Assert.fail(e.getMessage());
        \}
    \}


{quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to