API/Samples/Java/CalcAddin
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