Difference between revisions of "Documentation/DevGuide/OpenOffice.org Developers Guide"

From Apache OpenOffice Wiki
Jump to: navigation, search
(45 intermediate revisions by 16 users not shown)
Line 1: Line 1:
{{Documentation/APIGuide/DevGuideTOC
+
{{Documentation/DevGuide/DevGuideTOC
 
|ShowPrevNext=block
 
|ShowPrevNext=block
 
|ShowPrevPage=none
 
|ShowPrevPage=none
|NextPage=Documentation/APIGuide/FirstSteps/First Steps
+
|NextPage=Documentation/DevGuide/FirstSteps/First Steps
}}
+
}}  
{{DISPLAYTITLE:OpenOffice.org 2.0 Developer's Guide}}
+
{{Documentation/DevGuideLanguages|Documentation/DevGuide/OpenOffice.org Developers Guide}}
 +
{{DISPLAYTITLE:Apache OpenOffice Developer's Guide}}
 
__NOTOC__
 
__NOTOC__
== What This Manual Covers ==  
+
[[Documentation/DevGuide/Contributing_to_the_Developers_Guide|Contributing to the Developer's Guide]]
 +
=== What This Manual Covers ===  
  
 
This manual describes how to write programs using the component technology UNO (Universal Network Objects) with {{PRODUCTNAME}}.
 
This manual describes how to write programs using the component technology UNO (Universal Network Objects) with {{PRODUCTNAME}}.
Line 12: Line 14:
 
Most examples provided are written in Java. As well as Java, the language binding for C++, the UNO access for {{PRODUCTNAME}} Basic and the OLE Automation bridge that uses {{PRODUCTNAME}} through Microsoft's component technology COM/DCOM is described.
 
Most examples provided are written in Java. As well as Java, the language binding for C++, the UNO access for {{PRODUCTNAME}} Basic and the OLE Automation bridge that uses {{PRODUCTNAME}} through Microsoft's component technology COM/DCOM is described.
  
== How This Book is Organized ==
+
=== How This Book is Organized ===
'''First Steps '''
+
 
 +
Every page of this book has a Table of Contents at the right side of the page. This TOC shows the content of the current part and navigation links to browse parts and pages of this book.
 +
([[Media:DevelopersGuide_OOo3.1.0.pdf|Developer's Guide -- All Chapters]])
 +
 
 +
[[Documentation/DevGuide/FirstSteps/First_Steps|'''First Steps''']]
 
:The First Steps chapter describes the setting up of a Java UNO development environment to achieve the solutions you need. At the end of this chapter, you will be equipped with the essentials required for the following chapters about the {{PRODUCTNAME}} applications.
 
:The First Steps chapter describes the setting up of a Java UNO development environment to achieve the solutions you need. At the end of this chapter, you will be equipped with the essentials required for the following chapters about the {{PRODUCTNAME}} applications.
  
''' Professional UNO Projects '''
+
[[Documentation/DevGuide/ProUNO/Professional_UNO|''' Professional UNO''']]
 
:This chapter introduces API and UNO concepts and explains the specifics of the programming languages and technologies that can be used with UNO. It will help you to write industrial strength UNO programs, use one of the languages besides Java or improve your understanding of the API reference.
 
:This chapter introduces API and UNO concepts and explains the specifics of the programming languages and technologies that can be used with UNO. It will help you to write industrial strength UNO programs, use one of the languages besides Java or improve your understanding of the API reference.
  
''' Writing UNO Components '''
+
[[Documentation/DevGuide/WritingUNO/Writing_UNO_Components|''' Writing UNO Components ''']]
: This chapter describes how to write UNO components. It also provides an insight into the UNOIDL (UNO Interface Definition Language) language and the inner workings of service manager. Before beginning this chapter, you should be familiar with the First Steps and Professional UNO chapters.
+
: This chapter describes how to write UNO components. It also provides an insight into the UNOIDL (UNO Interface Definition Language) language and the inner workings of the service manager. Before beginning this chapter, you should be familiar with the First Steps and Professional UNO chapters.
  
''' Advanced UNO '''
+
[[Documentation/DevGuide/Extensions/Extensions|''' Extensions ''']]
 +
: This chapter describes the various aspects of OpenOffice.org Extensions.  It explains the specifics of how Extensions can be developed, and provides an overview of the various things that you must do to develop your own Extension.
 +
 
 +
[[Documentation/DevGuide/AdvUNO/Advanced_UNO|''' Advanced UNO ''']]
 
:This chapter describes the technical basis of UNO, how the language bindings and bridges work, how the service manager goes about its tasks and what the core reflection actually does.
 
:This chapter describes the technical basis of UNO, how the language bindings and bridges work, how the service manager goes about its tasks and what the core reflection actually does.
  
''' Office Development '''
+
[[Documentation/DevGuide/OfficeDev/Office_Development|''' Office Development ''']]
 
:This chapter describes the application framework of the {{PRODUCTNAME}} application that includes how the {{PRODUCTNAME}} API deals with the {{PRODUCTNAME}} application and the features available across all parts of {{PRODUCTNAME}}.
 
:This chapter describes the application framework of the {{PRODUCTNAME}} application that includes how the {{PRODUCTNAME}} API deals with the {{PRODUCTNAME}} application and the features available across all parts of {{PRODUCTNAME}}.
  
''' Text Documents - Spreadsheet Documents - Drawings and Presentations – Chart '''
+
[[Documentation/DevGuide/Text/Text_Documents|'''Text Documents''']]
:These chapters describes how {{PRODUCTNAME}} revolves around documents. These chapters teach you what to do with these documents programmatically.
+
  
''' Basic and Dialogs '''
+
[[Documentation/DevGuide/Spreadsheets/Spreadsheet_Documents|'''Spreadsheet Documents''']]
 +
 
 +
[[Documentation/DevGuide/Drawings/Drawing_Documents_and_Presentation_Documents|'''Drawings and Presentations''']]
 +
 
 +
[[Documentation/DevGuide/Charts/Charts|'''Charts''']]
 +
 
 +
:These chapters describe how {{PRODUCTNAME}} revolves around documents. These chapters teach you what to do with these documents programmatically.
 +
 
 +
[[Documentation/DevGuide/Basic/OpenOffice.org_Basic|''' OpenOffice.org Basic ''']]
 
:This chapter provides the functionality to create and manage Basic macros and dialogs.
 
:This chapter provides the functionality to create and manage Basic macros and dialogs.
  
''' Database Access '''
+
[[Documentation/DevGuide/Database/Database_Access|''' Database Access ''']]
:This chapter describes how you can take advantage of this capability in your own projects {{PRODUCTNAME}} can connect to databases in a universal manner.
+
:This chapter describes how you can take advantage of this capability in your own projects. {{PRODUCTNAME}} can connect to databases in a universal manner.
  
''' Forms '''
+
[[Documentation/DevGuide/Forms/Forms|''' Forms ''']]
 
:This chapter describes how {{PRODUCTNAME}} documents contain form controls that are programmed using an event-driven programming model. The Forms chapter shows you how to enhance your documents with controls for data input.
 
:This chapter describes how {{PRODUCTNAME}} documents contain form controls that are programmed using an event-driven programming model. The Forms chapter shows you how to enhance your documents with controls for data input.
  
''' UCB '''
+
[[Documentation/DevGuide/UCB/Universal_Content_Broker|''' Universal Content Broker ''']]
 
:This chapter describes how the Universal Content Broker is the generic resource access service used by the entire office application. It handles not only files and directories, but hierarchic and non-hierarchic contents, in general.  
 
:This chapter describes how the Universal Content Broker is the generic resource access service used by the entire office application. It handles not only files and directories, but hierarchic and non-hierarchic contents, in general.  
  
''' {{PRODUCTNAME}} Configuration '''
+
[[Documentation/DevGuide/Config/Configuration_Management|''' Configuration Management ''']]
:This chapter describes how the {{PRODUCTNAME}} API offers access to the office configuration options that is found in the Tools Options dialog.
+
:This chapter describes how the {{PRODUCTNAME}} API offers access to the office configuration options that are found in the '''Tools > Options''' dialog.
 +
 
 +
[[Documentation/DevGuide/JavaBean/JavaBean_for_Office_Components|''' JavaBean for Office Components ''']]
 +
:This chapter describes how the OfficeBean JavaBean component allows the developer to integrate office functionality in Java applications.
 +
 
 +
[[Documentation/DevGuide/Accessibility/Accessibility|'''Accessibility''']]
 +
: This chapter explains the Accessibility API, and how you can work to bring your applications in line with accessibility requirements.
 +
 
 +
[[Documentation/DevGuide/Scripting/Scripting_Framework|'''Scripting Framework''']]
 +
: This chapter describes the user interface features of the Scripting Framework, and provides a guide on how to get started with writing Scripting Framework macros.
 +
 
 +
[[Documentation/DevGuide/GUI/Graphical_User_Interfaces|'''Graphical User Interfaces''']]
 +
: This chapter is for extension developers who want to add functionality to their {{PRODUCTNAME}} application and want to create a consistent user interface.  It explains how you can add your own GUI to your {{PRODUCTNAME}} applications.
 +
 
 +
[[Documentation/DevGuide/AppendixA/{{PRODUCTNAME}}_API-Design-Guidelines|'''Guidelines and Specifications''']]
 +
:The guidelines and specifications provide extra information about the {{PRODUCTNAME}} API.
 +
 
 +
=== Appendices ===
 +
 
 +
[[Documentation/DevGuide/AppendixB/IDL_Documentation_Guidelines|'''IDL Documentation Guidelines''']]
 +
:How IDL files are used to create correct online documentation for the OpenOffice.org API.
 +
 
 +
[[Documentation/DevGuide/AppendixC/Universal_Content_Providers|'''Universal Content Providers''']]
 +
:A listing of universal content providers.
  
''' OfficeBean '''
+
[[Documentation/DevGuide/AppendixD/UNOIDL_Syntax_Specification|'''UNOIDL Syntax Specification''']]
:This chapter describes how the OfficeBean Java Bean component allows the developer to integrate office functionality in Java applications.
+
:A listing of the language specification for UNOIDL in pseudo BNF notation (the IDL grammar).
  
== OpenOffice.org Version History ==
+
[[Documentation/DevGuide/Glossary/Glossary|'''Glossary''']]
OpenOffice.org exists in two versions [http://www.openoffice.org www.openoffice.org]
+
:Definition and explanation of {{PRODUCTNAME}} terms, concepts and abbreviations.
  
OpenOffice.org - an open source edition
+
=== OpenOffice.org Version History ===
 +
OpenOffice.org exists in two versions:
  
StarOffice and StarSuite - "branded" editions derived from OpenOffice.org
+
* OpenOffice.org - an open source edition [http://www.openoffice.org www.openoffice.org]
 +
* StarOffice and StarSuite - "branded" editions derived from OpenOffice.org
  
 
In 2000, Sun Microsystems released the source code of their current developer version of StarOffice on [http://www.openoffice.org www.openoffice.org], and made the ongoing development process public. Sun's development team, which developed StarOffice, continued its work on [http://www.openoffice.org www.openoffice.org], and developers from all over the world joined them to port, translate, repair bugs and discuss future plans. StarOffice 6.0 and OpenOffice.org 1.0, which were released in spring 2002, share the same code basis.
 
In 2000, Sun Microsystems released the source code of their current developer version of StarOffice on [http://www.openoffice.org www.openoffice.org], and made the ongoing development process public. Sun's development team, which developed StarOffice, continued its work on [http://www.openoffice.org www.openoffice.org], and developers from all over the world joined them to port, translate, repair bugs and discuss future plans. StarOffice 6.0 and OpenOffice.org 1.0, which were released in spring 2002, share the same code basis.
  
== Related documentation ==
+
=== Related documentation ===
  
 
The api and udk projects on [http://www.openoffice.org www.openoffice.org] have related documentation, examples and FAQs (frequently asked questions) on the {{PRODUCTNAME}} API. Most important are probably the references, you can find them at [http://api.openoffice.org api.openoffice.org] or [http://udk.openoffice.org udk.openoffice.org].
 
The api and udk projects on [http://www.openoffice.org www.openoffice.org] have related documentation, examples and FAQs (frequently asked questions) on the {{PRODUCTNAME}} API. Most important are probably the references, you can find them at [http://api.openoffice.org api.openoffice.org] or [http://udk.openoffice.org udk.openoffice.org].
Line 65: Line 106:
 
* The C++ Reference is about the C++ language binding.
 
* The C++ Reference is about the C++ language binding.
  
== Conventions ==
+
=== Conventions ===
 
This book uses the following formatting conventions:
 
This book uses the following formatting conventions:
 
* '''Bold''' refers to the keys on the keyboard or elements of a user interface, such as the OK button or File menu.
 
* '''Bold''' refers to the keys on the keyboard or elements of a user interface, such as the OK button or File menu.
Line 71: Line 112:
 
* <code>Courier New</code> is used in all Code Listings and for everything that is typed when programming.
 
* <code>Courier New</code> is used in all Code Listings and for everything that is typed when programming.
  
== Acknowledgments ==
+
=== Acknowledgments ===
 
A publication like this can never be the work of a single person – it is the result of tremendous team effort. Of course, the OpenOffice.org/StarOffice development team played the most important role by creating the API in the first place. The knowledge and experience of this team will be documented here. Furthermore, there were several devoted individuals who contributed to making this documentation reality.
 
A publication like this can never be the work of a single person – it is the result of tremendous team effort. Of course, the OpenOffice.org/StarOffice development team played the most important role by creating the API in the first place. The knowledge and experience of this team will be documented here. Furthermore, there were several devoted individuals who contributed to making this documentation reality.
  
Line 88: Line 129:
 
Jürgen Schmidt, Götz Wohlberg
 
Jürgen Schmidt, Götz Wohlberg
  
[[Category: Developer's Guide]]
+
[[Category: Documentation/Developer's Guide]]
 +
[[Category:Development]]
 
{{PDL1}}
 
{{PDL1}}

Revision as of 23:33, 2 January 2014

Contributing to the Developer's Guide

What This Manual Covers

This manual describes how to write programs using the component technology UNO (Universal Network Objects) with OpenOffice.org.

Most examples provided are written in Java. As well as Java, the language binding for C++, the UNO access for OpenOffice.org Basic and the OLE Automation bridge that uses OpenOffice.org through Microsoft's component technology COM/DCOM is described.

How This Book is Organized

Every page of this book has a Table of Contents at the right side of the page. This TOC shows the content of the current part and navigation links to browse parts and pages of this book. (Developer's Guide -- All Chapters)

First Steps

The First Steps chapter describes the setting up of a Java UNO development environment to achieve the solutions you need. At the end of this chapter, you will be equipped with the essentials required for the following chapters about the OpenOffice.org applications.

Professional UNO

This chapter introduces API and UNO concepts and explains the specifics of the programming languages and technologies that can be used with UNO. It will help you to write industrial strength UNO programs, use one of the languages besides Java or improve your understanding of the API reference.

Writing UNO Components

This chapter describes how to write UNO components. It also provides an insight into the UNOIDL (UNO Interface Definition Language) language and the inner workings of the service manager. Before beginning this chapter, you should be familiar with the First Steps and Professional UNO chapters.

Extensions

This chapter describes the various aspects of OpenOffice.org Extensions. It explains the specifics of how Extensions can be developed, and provides an overview of the various things that you must do to develop your own Extension.

Advanced UNO

This chapter describes the technical basis of UNO, how the language bindings and bridges work, how the service manager goes about its tasks and what the core reflection actually does.

Office Development

This chapter describes the application framework of the OpenOffice.org application that includes how the OpenOffice.org API deals with the OpenOffice.org application and the features available across all parts of OpenOffice.org.

Text Documents

Spreadsheet Documents

Drawings and Presentations

Charts

These chapters describe how OpenOffice.org revolves around documents. These chapters teach you what to do with these documents programmatically.

OpenOffice.org Basic

This chapter provides the functionality to create and manage Basic macros and dialogs.

Database Access

This chapter describes how you can take advantage of this capability in your own projects. OpenOffice.org can connect to databases in a universal manner.

Forms

This chapter describes how OpenOffice.org documents contain form controls that are programmed using an event-driven programming model. The Forms chapter shows you how to enhance your documents with controls for data input.

Universal Content Broker

This chapter describes how the Universal Content Broker is the generic resource access service used by the entire office application. It handles not only files and directories, but hierarchic and non-hierarchic contents, in general.

Configuration Management

This chapter describes how the OpenOffice.org API offers access to the office configuration options that are found in the Tools > Options dialog.

JavaBean for Office Components

This chapter describes how the OfficeBean JavaBean component allows the developer to integrate office functionality in Java applications.

Accessibility

This chapter explains the Accessibility API, and how you can work to bring your applications in line with accessibility requirements.

Scripting Framework

This chapter describes the user interface features of the Scripting Framework, and provides a guide on how to get started with writing Scripting Framework macros.

Graphical User Interfaces

This chapter is for extension developers who want to add functionality to their OpenOffice.org application and want to create a consistent user interface. It explains how you can add your own GUI to your OpenOffice.org applications.

Guidelines and Specifications

The guidelines and specifications provide extra information about the OpenOffice.org API.

Appendices

IDL Documentation Guidelines

How IDL files are used to create correct online documentation for the OpenOffice.org API.

Universal Content Providers

A listing of universal content providers.

UNOIDL Syntax Specification

A listing of the language specification for UNOIDL in pseudo BNF notation (the IDL grammar).

Glossary

Definition and explanation of OpenOffice.org terms, concepts and abbreviations.

OpenOffice.org Version History

OpenOffice.org exists in two versions:

  • OpenOffice.org - an open source edition www.openoffice.org
  • StarOffice and StarSuite - "branded" editions derived from OpenOffice.org

In 2000, Sun Microsystems released the source code of their current developer version of StarOffice on www.openoffice.org, and made the ongoing development process public. Sun's development team, which developed StarOffice, continued its work on www.openoffice.org, and developers from all over the world joined them to port, translate, repair bugs and discuss future plans. StarOffice 6.0 and OpenOffice.org 1.0, which were released in spring 2002, share the same code basis.

Related documentation

The api and udk projects on www.openoffice.org have related documentation, examples and FAQs (frequently asked questions) on the OpenOffice.org API. Most important are probably the references, you can find them at api.openoffice.org or udk.openoffice.org.

  • The API Reference covers the programmable features of OpenOffice.org.
  • The Java Reference describes the features of the Java UNO runtime environment.
  • The C++ Reference is about the C++ language binding.

Conventions

This book uses the following formatting conventions:

  • Bold refers to the keys on the keyboard or elements of a user interface, such as the OK button or File menu.
  • Italics are used for emphasis and to signify the first use of a term. Italics are also used for web sites, file and directory names and email addresses.
  • Courier New is used in all Code Listings and for everything that is typed when programming.

Acknowledgments

A publication like this can never be the work of a single person – it is the result of tremendous team effort. Of course, the OpenOffice.org/StarOffice development team played the most important role by creating the API in the first place. The knowledge and experience of this team will be documented here. Furthermore, there were several devoted individuals who contributed to making this documentation reality.

First of all, we would like to thank Ralf Kuhnert and Dietrich Schulten. Using their technical expertise and articulate mode of expression, they accomplished the challenging task of gathering the wealth of API knowledge from the minds of the developers and transforming it into an understandable document.

Many reviewers were involved in the creation of this documentation. Special thanks go to Michael Hönnig who was one of the few who reviewed almost every single word. His input also played a decisive role in how the documentation was structured. A big thank you also goes to Diane O'Brien for taking on the daunting task of reviewing the final draft and providing us with extensive feed back at such short notice.

When looking at the diagrams and graphics, it is clear that a creative person with the right touch for design and aesthetics was involved. Many thanks, therefore, are due Stella Schulze who redrew all of the diagrams and graphics from the originals supplied by various developers. We also thank Svante Schubert who converted the original XML file format into HTML pages and was most patient with us in spite of our demands and changes. Special thanks also to Jörg Heilig, who made this whole project possible.

Jürgen would like to thank Götz Wohlberg for all his help in getting the right people involved and making sure things ran smoothly.

Götz would like to thank Jürgen Schmidt for his never-ending energy to hold everything together and for pushing the contributors in the right direction. He can be considered as the heart of the opus because of his guidance and endurance throughout the entire project.

We would like to take this opportunity to thank all these people – and anyone else we forgot! – for their support.

Jürgen Schmidt, Götz Wohlberg

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages