API/Samples/Java/CalcAddin

    From The Document Foundation Wiki
    < API‎ | Samples‎ | Java

    Create Calc Addin

    2008.01.03

    System Environment

    Netbeans 5.5.1, OpenOffice.org 2.3 and OpenOffice.org 2.3 SDK, LibreOffice API plugin for Netbeans For more installation details and instructions, please visit: OpenOffice NetBeans Integration This step-by-step illustration shows how to create the SDK example - CalcAddin by using LibreOffice API plugin in NetBeans.


    Create a Calc Addin project by using OpenOffice.org API plugin

    Select 'File'->'New Project' to bring up the following dialog, then select 'LibreOffice Calc Add-in' project type in 'OpenOffice.org' Categories, click 'Next' button to proceed to next step.

    File:CalcAddinFg1.png Figure 1, choose project type

    Set project details

    Set project name and Calc Add-in name as 'CalcAddin',assign this project to 'org.openoffice.sdk.example.spreadsheet' package, chose the project location where the source code are stored, then click 'Next' to proceed to next step. File:CalcAddinFg2.png Figure 2, Set project details

    Check 'Create backward compatible Cacl Add-In' option to create extra backward compatible Calc Addin(*.xcs file).

    Add functions and Parameters

    Adding two function for this AddIn.

    public int getMyFirstValue(
                          com.sun.star.beans.XPropertySet        xOptions)
    
    public int getMySecondValue(
                          com.sun.star.beans.XPropertySet        xOptions,
                          int                                    intDummy)


    GetMyFirstValue function configuration

    • Double click Function1 to expand function settings for the first function:

    File:CalcAddinFg3.png Figure 3, The first function Name and its type

    • Set the first Function name as 'getMyFirstValue”
    • Set return Type as 'int'
    • Set Category as “Add-In'
    • Double click parameter0 to configure parameter settings

    File:CalcAddinFg4.png Figure 4, The first function parameter

    • Set parameter name as 'xOptions', and set type as 'XpropertySet'

    Finaly, the first function will be like the following figure:

    File:CalcAddinFg5.png Figure 5, The first function setting

    Add the second function – getMySecondValue method

    • click 'Add function' button at top right of dialog

    File:CalcAddinFg6.png Figure 6, Add new function

    • setting function name as 'getMySecondValue'
    • click 'Add parameter' to add one more parameter for the second function

    File:CalcAddinFg7.png Figure 7, Add new parameter

    • set parameter0's name as ' xOptions', set it's type as 'XpropertySet'
    • set parameter1's name as ' intDummy', set it's type as 'int'

    File:CalcAddinFg8.png Figure 8, Configuration completed

    • Click Finish button to finish the wizards.

    Now, the Calc Add-In project has been created. From project browser, it will be like the following figure:

    File:CalcAddinFg9.png Figure 9, Project Browser

    Implement functions

    To implement two functions specified previously, open CalcAddinImpl.java file from project browser and find the function bodies.

    // org.openoffice.sdk.example.Spreadsheet.XCalcAddin:
        public int getMyFirstValue(com.sun.star.beans.XPropertySet xOptions)
        {
            // TODO: Exchange the default return implementation for "getMyFirstValue" !!!
            // NOTE: Default initialized polymorphic structs can cause problems
            // because of missing default initialization of primitive types of
            // some C++ compilers or different Any initialization in Java and C++
            // polymorphic structs.
            return 0;
        }
    
        public int getMySecondValue(com.sun.star.beans.XPropertySet xOptions, int intDummy)
        {
            // TODO: Exchange the default return implementation for "getMySecondValue" !!!
            // NOTE: Default initialized polymorphic structs can cause problems
            // because of missing default initialization of primitive types of
            // some C++ compilers or different Any initialization in Java and C++
            // polymorphic structs.
            return 0;
        }

    Figure 10. Original code

    Modify a few lines of these two functions:

    // org.openoffice.sdk.example.Spreadsheet.XCalcAddin:
        public int getMyFirstValue(com.sun.star.beans.XPropertySet xOptions)
        {
            // TODO: Exchange the default return implementation for "getMyFirstValue" !!!
            // NOTE: Default initialized polymorphic structs can cause problems
            // because of missing default initialization of primitive types of
            // some C++ compilers or different Any initialization in Java and C++
            // polymorphic structs.
            return (int) 1;
        }
    
        public int getMySecondValue(com.sun.star.beans.XPropertySet xOptions, int intDummy)
        {
            // TODO: Exchange the default return implementation for "getMySecondValue" !!!
            // NOTE: Default initialized polymorphic structs can cause problems
            // because of missing default initialization of primitive types of
            // some C++ compilers or different Any initialization in Java and C++
            // polymorphic structs.
            return ( (int) 2 + intDummy);
        }

    Figure 11, Completed implementation

    you may get error message on line 13 like 'cannot find symbol', ignore it. After the first build, the message will not show anymore.

    File:CalcAddinFg12.png Figure 12, Error message for XCalcAddin

    Deploy and test CalcAddin

    Deployement

    Save all changes and 'clear and build' the project, then the addin can be deployed via right-click the 'CalcAddin' in the project browser. File:CalcAddinFg13.png Figure 13, Deploy the Addin

    Extension manager dialog, the new addin is available to use now:
    File:CalcAddinFg14.png Figure 14, Extension manager

    In the function wizard (Ctrl+F2), these two function could be found in the 'Addin'
    File:CalcAddinFg15.png Figure 15, Function Wizard

    Testing

    Go to the example folder'/CalcAddin/test/' to open the 'CalcAddins.ods' file to test these two functions.
    File:CalcAddinFg16.png Figure 16, Test Addins

    Example project download

    File:CalcAddin.zip

    Apache Feather Logo.svg

    This work is licensed under the Apache License version 2.0