Difference between revisions of "OpenOffice NetBeans Integration"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Create, deploy and debug)
Line 1: Line 1:
 
= Overview =
 
= Overview =
The intention of the StarOffice/OpenOffice.org NetBeans Integration is to simplify the development of office extensions. StarOffice/OpenOffice.org offers an API to program with or for the office and allows to automate tasks even remote or in process and allows to extend the office with completely new functionality. The NetBeans integration should simplify the access and usage of the API in new projects and should simplify the task of creating complete office extension packages (comparable to NetBeans plugin modules).
+
The OpenOffice.org API plugin for NetBeans simplifies the development of OpenOffice.org extensions. You can use the OpenOffice.org API can to program OpenOffice.org, and automate remote or in process tasks extend OpenOffice.org with completely new functionality. The OpenOffice.org API plugin for NetBeans simplifies accessing and using of the API in new projects and simplifies the task of creating complete OpenOffice.org extension packages (comparable to the NetBeans plugin modules).
  
 
= Features =
 
= Features =
Line 7: Line 7:
  
 
== Project Types ==
 
== Project Types ==
All project types create working code. Once the wizard is finsihed, a working
+
All project types create working code. Once the wizard is finished, a working
 
compilable project is created. It may not do anything, but it can be used
 
compilable project is created. It may not do anything, but it can be used
 
in OpenOffice.org from the beginning.
 
in OpenOffice.org from the beginning.
Line 13: Line 13:
 
*'''[[OpenOffice_Simple_UNO_Client_Application_Project_Type|OpenOffice.org Client Application Project Type]]'''
 
*'''[[OpenOffice_Simple_UNO_Client_Application_Project_Type|OpenOffice.org Client Application Project Type]]'''
 
This project type creates an adapted J2SE client application project with additional support of the  
 
This project type creates an adapted J2SE client application project with additional support of the  
simple UNO bootstrap feature. To enable this, some precompiled glue code is bundled with the client  
+
simple UNO bootstrap feature. To enable this, some pre-compiled glue code is bundled with the client  
application. Result is a portable jar file that bootstraps OpenOffice.org on any supported OS.
+
application. The result is a portable jar file that bootstraps OpenOffice.org on any supported OS.
  
 
*'''[[OpenOffice_Calc_Add-In_Project_Type|OpenOffice.org Calc Add-In Project Type]]'''
 
*'''[[OpenOffice_Calc_Add-In_Project_Type|OpenOffice.org Calc Add-In Project Type]]'''
 
This project type creates an adapted J2SE class library project with special support for a UNO  
 
This project type creates an adapted J2SE class library project with special support for a UNO  
component library and an office extension package. The wizard collects necessary information for new  
+
component library and an office extension package. The wizard collects the necessary information for new  
 
Calc built-in functions and abstracts from the underlying UNO technology.
 
Calc built-in functions and abstracts from the underlying UNO technology.
  
 
*'''[[General_UNO_Component_Project_Type|General UNO Component Project Type]]'''
 
*'''[[General_UNO_Component_Project_Type|General UNO Component Project Type]]'''
 
This project type creates an adapted J2SE class library project with special support for a
 
This project type creates an adapted J2SE class library project with special support for a
UNO component library and an office extension package. The wizard collects information about services  
+
UNO component library and an OpenOffice.org extension package. The wizard collects information about services  
 
and additional optional interfaces which should be implemented. Additional IDL types can also be
 
and additional optional interfaces which should be implemented. Additional IDL types can also be
defined. A complete code skeleton is generated, with already implemented component helper functions
+
defined. A complete code skeleton is generated, with the component helper functions and the default interface methods already implemented.
and default implemented interface methods.
+
  
 
*'''[[OpenOffice_Add-On_Project_Type|OpenOffice.org Add-On Project Type]]'''
 
*'''[[OpenOffice_Add-On_Project_Type|OpenOffice.org Add-On Project Type]]'''
 
This project type creates an adapted J2SE class library project with special support for a UNO  
 
This project type creates an adapted J2SE class library project with special support for a UNO  
component library and an office extension package. The wizard collects necessary information for an  
+
component library and an OpenOffice.org extension package. The wizard collects the necessary information for an  
office Add-On component and generates an Add-On specific code skeleton.
+
OpenOffice.org Add-On component and generates an Add-On specific code skeleton.
  
 
== File Types ==
 
== File Types ==
Line 43: Line 42:
  
 
*'''UNO idl file type'''
 
*'''UNO idl file type'''
For creating idl files, a file type wizard is available. First, the name location
+
You can use a file type wizard to create idl files. In the first step, you must select the name location
and UNO type (e.g. Service or Interface) must be selected. In a second step additional  
+
and UNO type (e.g. Service or Interface). You can add additional  
information can be added. So, when an interface is created, the second step asks about
+
information in the second step. When an interface is created, the second step asks about
 
the functions that the interface should contain. A complete working idl file is created.
 
the functions that the interface should contain. A complete working idl file is created.
  
Line 53: Line 52:
  
 
*'''Create OXT'''
 
*'''Create OXT'''
If not yet done, the compile action is executed. Together with other necessary files as configuration files, a manifest file, eventual images, the resulting jar is packed in an OXT file, located in the "dist" directory of the project.
+
If necessary, your code is compiled. The resulting jar file is packed into an OXT file, together with other necessary files such as configuration files, a manifest file, and images.  The OXT file is located in the "dist" directory of the project.
  
 
*'''Deploy OpenOffice.org Extension'''
 
*'''Deploy OpenOffice.org Extension'''
"Create OXT" is executed, if not yet done. The resulting OXT file is registered inside the user installation of OpenOffice.org.
+
If necessary, "Create OXT" is executed. The resulting OXT file is registered inside the user installation of OpenOffice.org.
  
 
*'''Debug Extension in Target OpenOffice.org'''
 
*'''Debug Extension in Target OpenOffice.org'''
"Create OXT" is executed, if not yet done. The resulting OXT file is registered in a temporary user installation of OpenOffie.org, which is located in the build directory of the project. (Cleaning of the project removes the user installaion again.) Then OpenOffice.org is started with this user installation and the action that triggers the registered extension must be done in OpenOffice.org.
+
If necessary, "Create OXT" is executed. The resulting OXT file is registered in a temporary user installation of OpenOffice.org, which is located in the build directory of the project. (Cleaning of the project removes the user installation again.) Then OpenOffice.org is started with this user installation and the action that triggers the registered extension must be done in OpenOffice.org.
 
Execution stops at any breakpoints added to the code of the extension and debugging can start from there.
 
Execution stops at any breakpoints added to the code of the extension and debugging can start from there.
  
 
== Miscellaneous ==
 
== Miscellaneous ==
 
*'''External Jars'''
 
*'''External Jars'''
Additional external jars that are used in an extension are automatically copied inside of the OXT file and added to the classpath of the extension. A registered extension in OpenOffice.org can still use the functionality provided there.
+
Additional external jars that are used in an extension are automatically copied into the OXT file and added to the extension's classpath. A registered extension in OpenOffice.org can still use the functionality provided there.
The jars can be added to the project as single jar or as part of a NetBeans library. Note that all the jars from a library will be added to the OXT file, indepent from their usage in the extension.
+
The jars can be added to the project as a single jar or as part of a NetBeans library. Note: All the jars from a library will be added to the OXT file, independent from their usage in the extension.
  
 
= Preview =
 
= Preview =
The current preview (version 0.8) supports four project types, one client application wizard, a Calc Add-In wizard, a wizard for general UNO components and an Add-On wizard. The Calc Add-In allows the definition of new Calc build-in functions for the spreadsheet application which can be directly used from the build-in functions wizard. The user doesn't need any knowledge of the underlying UNO technology and can define new functions on a higher level. The general UNO component wizard requires some more UNO base knowledge but simplifies the initial creation of a new component enormously. The Add-On wizard supports the definition of new top-level menus and toolbars and generates the appropriate code skeleton and the necessary config files. The generated project can be used as a starting point to extend it to a more coomplex Add-On.<br>
+
The current preview (version 0.8) supports four project types, one client application wizard, a Calc Add-In wizard, a wizard for general UNO components and an Add-On wizard. The Calc Add-In allows you to define new Calc built-in functions for the spreadsheet application which can be directly used from the built-in functions wizard. The user does not need any knowledge of the underlying UNO technology and can define new functions on a higher level. The general UNO component wizard requires some more UNO base knowledge but really simplifies the initial creation of a new component. The Add-On wizard supports the definition of new top-level menus and toolbars and generates the appropriate code skeleton and the necessary config files. The generated project can be used as a starting point to extend it to a more complex Add-On.
 +
 
 
Once you have installed the plugin manually you will be able to update to future releases easily by using the integrated '' '''Update Center''' '' in NetBeans. The plugin comes with its own '' '''OpenOffice.org Preview Updated Center''' '' where we will provide future previews.
 
Once you have installed the plugin manually you will be able to update to future releases easily by using the integrated '' '''Update Center''' '' in NetBeans. The plugin comes with its own '' '''OpenOffice.org Preview Updated Center''' '' where we will provide future previews.
  
 
== Requirements ==
 
== Requirements ==
The plugin ''[http://api.openoffice.org/Projects/NetBeansIntegration/org-openoffice-extensions.nbm org-openoffice-extensions.nbm]'' works only in combination with an installed StarOffice/OpenOffice.org installation and an appropriate StarOffice/OpenOffice.org Software Development Kit (SDK).  
+
The plugin ''[http://api.openoffice.org/Projects/NetBeansIntegration/org-openoffice-extensions.nbm org-openoffice-extensions.nbm]'' works only in combination with OpenOffice.org and an appropriate OpenOffice.org Software Development Kit (SDK).  
  
 
*'''[http://api.openoffice.org/Projects/NetBeansIntegration/org-openoffice-extensions.nbm org-openoffice-extensions.nbm]''' - the plugin module
 
*'''[http://api.openoffice.org/Projects/NetBeansIntegration/org-openoffice-extensions.nbm org-openoffice-extensions.nbm]''' - the plugin module
Line 78: Line 78:
 
*'''[http://download.openoffice.org/sdk.html OpenOffice.org Software Development Kit (SDK) 2.0.4]''' or a higher version
 
*'''[http://download.openoffice.org/sdk.html OpenOffice.org Software Development Kit (SDK) 2.0.4]''' or a higher version
  
For the Add-on wizard you require the latest version of the uno-skeletonmaker (comes with OpenOffice.org SDK 2.2.0) and you can download a precompiled binary from the file section of the [http://api.openoffice.org API] project ([http://api.openoffice.org/files/documents/22/3823/uno-skeletonmaker_linux_x86zip.zip Linux-x86], [http://api.openoffice.org/files/documents/22/3824/uno-skeletonmaker_solaris_sparc.zip Solaris-Sparc], [http://api.openoffice.org/files/documents/22/3825/uno-skeletonmaker_solaris_x86.zip Solaris-x86], [http://api.openoffice.org/files/documents/22/3826/uno-skeletonmaker_windows.zip Windows])
+
For the Add-on wizard you must have the latest version of the uno-skeletonmaker (comes with OpenOffice.org SDK 2.2.0) and you can download a pre-compiled binary from the file section of the [http://api.openoffice.org API] project ([http://api.openoffice.org/files/documents/22/3823/uno-skeletonmaker_linux_x86zip.zip Linux-x86], [http://api.openoffice.org/files/documents/22/3824/uno-skeletonmaker_solaris_sparc.zip Solaris-Sparc], [http://api.openoffice.org/files/documents/22/3825/uno-skeletonmaker_solaris_x86.zip Solaris-x86], [http://api.openoffice.org/files/documents/22/3826/uno-skeletonmaker_windows.zip Windows])
  
 
== Installation ==
 
== Installation ==
The current version of the NetBeans plugin is a first preview and has to be installed manually as a normal NetBeans plugin over the “Update Center” in NetBeans. The manual installation is only necessary the first time and then you can use the integrated ''OpenOffice.org Preview Update Center''. Simply choose
+
The current version of the NetBeans plugin is a first preview and must be installed manually as a normal NetBeans plugin in the “Update Center” in NetBeans. The manual installation is only necessary the first time and then you can use the integrated ''OpenOffice.org Preview Update Center''. Simply choose
 
*'' '''NetBeans -> Tools -> Update Center -> Install Manually Downloaded Modules (.nbm Files)''' ''
 
*'' '''NetBeans -> Tools -> Update Center -> Install Manually Downloaded Modules (.nbm Files)''' ''
 
select the downloaded module and follow the wizard to install it.
 
select the downloaded module and follow the wizard to install it.
  
 
=== Configuration ===
 
=== Configuration ===
Before you can use the new project types you have to configure the plugin because it needs an installed office and SDK installation.  
+
Before you can use the new project types you must configure the plugin because it needs an installed OpenOffice.org and OpenOffice.org SDK.  
  
The current version of the plugin ask during the installation for an office and SDK installation but you also configure or change both programs later. But note that if you change the office or SDK installation these changes are effective for new created projects only. This will be changed in the future and you will be asked if you want accept these changes for existing projects also.
+
The current version of the plugin asks during the installation for an OpenOffice.org and OpenOffice.org SDK installation. You also configure or change both programs later. Note: If you change the OpenOffice.org or OpenOffice.org SDK installation, these changes are effective for newly created projects only. This will be changed in the future, and you will be asked if you want accept these changes for existing projects.
  
 
For changing the office and SDK installation please choose
 
For changing the office and SDK installation please choose
 
*'' '''Tools -> Options -> Miscellaneous -> StarOffice/OpenOffice.org Extensions''' ''
 
*'' '''Tools -> Options -> Miscellaneous -> StarOffice/OpenOffice.org Extensions''' ''
and select a valid office and SDK installation.  
+
and select a valid OpenOffice.org and OpenOffice.org SDK installation.  
 
<br>[[Image:OpenOffice_Extensions_Plugin_Options.png|center]]<br>
 
<br>[[Image:OpenOffice_Extensions_Plugin_Options.png|center]]<br>
The configuration step installs automatically a new office library which can be used in other projects directly to support the office API. Including this library in own projects enables context sensitive help and code completion automatically.
+
The configuration step automatically installs a new OpenOffice.org library which can be used in other projects to support the OpenOffice.org API. Including this library in your own projects enables context sensitive help and code completion.
  
 
== Working with new Project Types ==
 
== Working with new Project Types ==
Line 113: Line 113:
 
== Known Problems and Missing Features ==
 
== Known Problems and Missing Features ==
  
* context sensitive help doesn't work on Linux (Solaris not yet tested), even the javadoc generated Java UNO runtime reference documentation doesn't work on Linux. Under Windows both work as expected.
+
* Context sensitive help does not work on Linux (Solaris not yet tested), even the javadoc generated Java UNO runtime reference documentation does not work on Linux. Under Windows both work as expected.
* the integrated update center module doesn't work on Unix systems (known bug [http://www.netbeans.org/issues/show_bug.cgi?id=72960&x=23&y=7 72960] in NetBeans which is fixed in NetBeans 6.0). Workaround is to install NetBeans locally where you have write access.
+
* The integrated update center module does not work on Unix systems (known bug [http://www.netbeans.org/issues/show_bug.cgi?id=72960&x=23&y=7 72960] in NetBeans which is fixed in NetBeans 6.0). Workaround is to install NetBeans locally where you have write access.
* the backward compatibility mode for Calc Add-Ins creates still an '''.oxt''' extension package. This of course makes no sense for older office versions because this file extension is introduced in OO.org 2.0.4 first. Please simply rename it to '''.uno.pkg'''
+
* The backward compatibility mode for Calc Add-Ins creates still an '''.oxt''' extension package. This of course makes no sense for older OpenOffice.org versions because this file extension was first introduced in OO.org 2.0.4. Please simply rename it to '''.uno.pkg'''
* projects are currently not platform independent. If you want to build a project on a different platfrom you have to adapt the '''&lt;projectname&gt;/nbproject/project-uno.properties''' file by hand.
+
* Projects are currently not platform independent. If you want to build a project on a different platform you must adapt the '''&lt;projectname&gt;/nbproject/project-uno.properties''' file by hand.
  
 
= Planned Features =
 
= Planned Features =
The focus is on creating new wizards for various tasks plus common basic functionality. The main programming language is Java but the support of C++ is also planned and depends on the C++ support in NetBeans which will be available at least for NetBeans 6.0. The planned feature list is not final and probably more specialized wizards for other service provider interfaces (SPI) are coming in the future.
+
The focus is on creating new wizards for various tasks plus common basic functionality. The main programming language is Java. Support for C++ is also planned and depends on the C++ support in NetBeans which will be available at least for NetBeans 6.0. The planned feature list is not final and more specialized wizards for other service provider interfaces (SPI) are coming in the future.
  
 
== New Project Types ==
 
== New Project Types ==
*'''[[OpenOffice_Scripting_Project_Type|OpenOffice.org Scripting Project Type]]'''<br>This new project type will create an adapted J2SE class library project with special support for office scripting. It should provide the possibility to import scripts from the office and open documents, edit, change and build these scripts, debug them and export them back (currently the support is planned for Java scripts only).
+
*'''[[OpenOffice_Scripting_Project_Type|OpenOffice.org Scripting Project Type]]'''<br>This new project type will create an adapted J2SE class library project with special support for OpenOffice.org scripting. It should provide you the possibility to import scripts from OpenOffice.org and open documents, edit, change and build these scripts, debug them and export them back (currently the support is planned for Java scripts only).
*'''[[OpenOffice_API_Library_Wrapper_Project_Type|OpenOffice.org API Library API Wrapper Project Type]]'''<br>This new project type should create a ''Library Wrapper Module'' to support simply usage of the office API in own projects. It bundles the necessary API jar files from the office in the library and in client applications. This of course is necessary to make use of the office API in clients running on machines where no office is installed and where the communication with the office is made over a remote socket connection.
+
*'''[[OpenOffice_API_Library_Wrapper_Project_Type|OpenOffice.org API Library API Wrapper Project Type]]'''<br>This new project type should create a ''Library Wrapper Module'' to support simple usage of the OpenOffice.org API in your own projects. It bundles the necessary API jar files from OpenOffice.org in the library and in client applications. This of course is necessary to make use of the OpenOffice.org API in clients running on machines where no OpenOffice.org is installed and where the communication with OpenOffice.org is made over a remote socket connection.
  
 
== Common Features ==
 
== Common Features ==
 
*'''UNOIDL Support'''<br>Means support of a new file type for UNOIDL files, including compiling, UNOIDL editor with syntax highlighting. A wizard for defining new UNOIDL types should be supported as well.  
 
*'''UNOIDL Support'''<br>Means support of a new file type for UNOIDL files, including compiling, UNOIDL editor with syntax highlighting. A wizard for defining new UNOIDL types should be supported as well.  
*'''Debug Support'''<br>Means debug support directly from NetBeans for new built and deployed extensions in the office process as well as the debugging of scripts in the office.
+
*'''Debug Support'''<br>Means debug support directly from NetBeans for new built and deployed extensions in the OpenOffice.org process as well as the debugging of scripts in OpenOffice.org.
*'''Support of office extension package'''<br>This have to be defined in detail but it should at least support the browsing of a '' '''.oxt''' '' file in the NetBeans file system similar to jar|zip files.  
+
*'''Support of OpenOffice.org extension package'''<br>This must be defined in detail but it should at least support the browsing of an '' '''.oxt''' '' file in the NetBeans file system similar to jar|zip files.  
*'''File type for xcu files'''<br>This have to be defined in detail but we can think of a special editor for office configuration files.
+
*'''File type for xcu files'''<br>This must be defined in detail but we can think of a special editor for OpenOffice .org configuration files.
  
 
= Quality Assurance =
 
= Quality Assurance =
Line 141: Line 141:
  
 
= Feedback =
 
= Feedback =
This is a preview only and the whole stuff is under development and needs to be improved. Feedback is welcome and highly appreciated and we would like to invite you to discuss it on [mailto:dev@api.openoffice.org dev@api.openoffice.org] (Note: you have to be subscribed on the mailing list).
+
This is a preview only. Everything is under development and needs to be improved. Feedback is welcome and highly appreciated and we would like to invite you to discuss it on [mailto:dev@api.openoffice.org dev@api.openoffice.org] (Note: you have to be subscribed on the mailing list).
  
 
You can also submit new [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&issue_type=FEATURE feature] or [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&issue_type=ENHANCEMENT enhancement] requests in the issue tracker in the category '''sdk''' and the subcomponent '''netbeans-integration'''
 
You can also submit new [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&issue_type=FEATURE feature] or [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&issue_type=ENHANCEMENT enhancement] requests in the issue tracker in the category '''sdk''' and the subcomponent '''netbeans-integration'''

Revision as of 08:08, 3 May 2007

Overview

The OpenOffice.org API plugin for NetBeans simplifies the development of OpenOffice.org extensions. You can use the OpenOffice.org API can to program OpenOffice.org, and automate remote or in process tasks extend OpenOffice.org with completely new functionality. The OpenOffice.org API plugin for NetBeans simplifies accessing and using of the API in new projects and simplifies the task of creating complete OpenOffice.org extension packages (comparable to the NetBeans plugin modules).

Features

All featues listed here are available in the current Preview. Download it here org-openoffice-extensions.nbm and try it out!

Project Types

All project types create working code. Once the wizard is finished, a working compilable project is created. It may not do anything, but it can be used in OpenOffice.org from the beginning.

This project type creates an adapted J2SE client application project with additional support of the simple UNO bootstrap feature. To enable this, some pre-compiled glue code is bundled with the client application. The result is a portable jar file that bootstraps OpenOffice.org on any supported OS.

This project type creates an adapted J2SE class library project with special support for a UNO component library and an office extension package. The wizard collects the necessary information for new Calc built-in functions and abstracts from the underlying UNO technology.

This project type creates an adapted J2SE class library project with special support for a UNO component library and an OpenOffice.org extension package. The wizard collects information about services and additional optional interfaces which should be implemented. Additional IDL types can also be defined. A complete code skeleton is generated, with the component helper functions and the default interface methods already implemented.

This project type creates an adapted J2SE class library project with special support for a UNO component library and an OpenOffice.org extension package. The wizard collects the necessary information for an OpenOffice.org Add-On component and generates an Add-On specific code skeleton.

File Types

  • xcu file type

Create an empty xcu file type. The files are recognized in NetBeans and syntax highlighting is supported.

  • xcs file type

Create an empty xcs file type. The files are recognized in NetBeans and syntax highlighting is supported.

  • UNO idl file type

You can use a file type wizard to create idl files. In the first step, you must select the name location and UNO type (e.g. Service or Interface). You can add additional information in the second step. When an interface is created, the second step asks about the functions that the interface should contain. A complete working idl file is created.

Create, deploy and debug

These are actions that are available in the context menu of an extension project in the "Project" view.

  • Create OXT

If necessary, your code is compiled. The resulting jar file is packed into an OXT file, together with other necessary files such as configuration files, a manifest file, and images. The OXT file is located in the "dist" directory of the project.

  • Deploy OpenOffice.org Extension

If necessary, "Create OXT" is executed. The resulting OXT file is registered inside the user installation of OpenOffice.org.

  • Debug Extension in Target OpenOffice.org

If necessary, "Create OXT" is executed. The resulting OXT file is registered in a temporary user installation of OpenOffice.org, which is located in the build directory of the project. (Cleaning of the project removes the user installation again.) Then OpenOffice.org is started with this user installation and the action that triggers the registered extension must be done in OpenOffice.org. Execution stops at any breakpoints added to the code of the extension and debugging can start from there.

Miscellaneous

  • External Jars

Additional external jars that are used in an extension are automatically copied into the OXT file and added to the extension's classpath. A registered extension in OpenOffice.org can still use the functionality provided there. The jars can be added to the project as a single jar or as part of a NetBeans library. Note: All the jars from a library will be added to the OXT file, independent from their usage in the extension.

Preview

The current preview (version 0.8) supports four project types, one client application wizard, a Calc Add-In wizard, a wizard for general UNO components and an Add-On wizard. The Calc Add-In allows you to define new Calc built-in functions for the spreadsheet application which can be directly used from the built-in functions wizard. The user does not need any knowledge of the underlying UNO technology and can define new functions on a higher level. The general UNO component wizard requires some more UNO base knowledge but really simplifies the initial creation of a new component. The Add-On wizard supports the definition of new top-level menus and toolbars and generates the appropriate code skeleton and the necessary config files. The generated project can be used as a starting point to extend it to a more complex Add-On.

Once you have installed the plugin manually you will be able to update to future releases easily by using the integrated Update Center in NetBeans. The plugin comes with its own OpenOffice.org Preview Updated Center where we will provide future previews.

Requirements

The plugin org-openoffice-extensions.nbm works only in combination with OpenOffice.org and an appropriate OpenOffice.org Software Development Kit (SDK).

For the Add-on wizard you must have the latest version of the uno-skeletonmaker (comes with OpenOffice.org SDK 2.2.0) and you can download a pre-compiled binary from the file section of the API project (Linux-x86, Solaris-Sparc, Solaris-x86, Windows)

Installation

The current version of the NetBeans plugin is a first preview and must be installed manually as a normal NetBeans plugin in the “Update Center” in NetBeans. The manual installation is only necessary the first time and then you can use the integrated OpenOffice.org Preview Update Center. Simply choose

  • NetBeans -> Tools -> Update Center -> Install Manually Downloaded Modules (.nbm Files)

select the downloaded module and follow the wizard to install it.

Configuration

Before you can use the new project types you must configure the plugin because it needs an installed OpenOffice.org and OpenOffice.org SDK.

The current version of the plugin asks during the installation for an OpenOffice.org and OpenOffice.org SDK installation. You also configure or change both programs later. Note: If you change the OpenOffice.org or OpenOffice.org SDK installation, these changes are effective for newly created projects only. This will be changed in the future, and you will be asked if you want accept these changes for existing projects.

For changing the office and SDK installation please choose

  • Tools -> Options -> Miscellaneous -> StarOffice/OpenOffice.org Extensions

and select a valid OpenOffice.org and OpenOffice.org SDK installation.


OpenOffice Extensions Plugin Options.png

The configuration step automatically installs a new OpenOffice.org library which can be used in other projects to support the OpenOffice.org API. Including this library in your own projects enables context sensitive help and code completion.

Working with new Project Types

The plugin integrates four new project types under the category StarOffice/OpenOffice.org:

  • StarOffice/OpenOffice.org Calc Add-On
  • StarOffice/OpenOffice.org Calc Add-Ins
  • StarOffice/OpenOffice.org Client Application
  • StarOffice/OpenOffice.org Component

The wizards will collect the necessary information to create the new projects and should follow the NetBeans philosophy. You can simply choose

  • File -> New Project -> StarOffice/OpenOffice.org -> <project_type>

For more details about the project types please take a look at

Known Problems and Missing Features

  • Context sensitive help does not work on Linux (Solaris not yet tested), even the javadoc generated Java UNO runtime reference documentation does not work on Linux. Under Windows both work as expected.
  • The integrated update center module does not work on Unix systems (known bug 72960 in NetBeans which is fixed in NetBeans 6.0). Workaround is to install NetBeans locally where you have write access.
  • The backward compatibility mode for Calc Add-Ins creates still an .oxt extension package. This of course makes no sense for older OpenOffice.org versions because this file extension was first introduced in OO.org 2.0.4. Please simply rename it to .uno.pkg
  • Projects are currently not platform independent. If you want to build a project on a different platform you must adapt the <projectname>/nbproject/project-uno.properties file by hand.

Planned Features

The focus is on creating new wizards for various tasks plus common basic functionality. The main programming language is Java. Support for C++ is also planned and depends on the C++ support in NetBeans which will be available at least for NetBeans 6.0. The planned feature list is not final and more specialized wizards for other service provider interfaces (SPI) are coming in the future.

New Project Types

  • OpenOffice.org Scripting Project Type
    This new project type will create an adapted J2SE class library project with special support for OpenOffice.org scripting. It should provide you the possibility to import scripts from OpenOffice.org and open documents, edit, change and build these scripts, debug them and export them back (currently the support is planned for Java scripts only).
  • OpenOffice.org API Library API Wrapper Project Type
    This new project type should create a Library Wrapper Module to support simple usage of the OpenOffice.org API in your own projects. It bundles the necessary API jar files from OpenOffice.org in the library and in client applications. This of course is necessary to make use of the OpenOffice.org API in clients running on machines where no OpenOffice.org is installed and where the communication with OpenOffice.org is made over a remote socket connection.

Common Features

  • UNOIDL Support
    Means support of a new file type for UNOIDL files, including compiling, UNOIDL editor with syntax highlighting. A wizard for defining new UNOIDL types should be supported as well.
  • Debug Support
    Means debug support directly from NetBeans for new built and deployed extensions in the OpenOffice.org process as well as the debugging of scripts in OpenOffice.org.
  • Support of OpenOffice.org extension package
    This must be defined in detail but it should at least support the browsing of an .oxt file in the NetBeans file system similar to jar|zip files.
  • File type for xcu files
    This must be defined in detail but we can think of a special editor for OpenOffice .org configuration files.

Quality Assurance

If you find bugs please submit a new issue in the category sdk and the subcomponent netbeans-integration

Things to be done

Feedback

This is a preview only. Everything is under development and needs to be improved. Feedback is welcome and highly appreciated and we would like to invite you to discuss it on dev@api.openoffice.org (Note: you have to be subscribed on the mailing list).

You can also submit new feature or enhancement requests in the issue tracker in the category sdk and the subcomponent netbeans-integration

Personal tools