Contents
| 1 | Reader's Guide |
| 1.1 | What This Manual Covers |
| 1.2 | How This Book is Organized |
| 1.3 | OpenOffice.org Version History |
| 1.4 | Related documentation |
| 1.5 | Conventions |
| 1.6 | Acknowledgments |
| 2 | First Steps |
| 2.1 | Programming with UNO |
| 2.2 | Fields of Application for UNO |
| 2.3 | Getting Started |
| 2.3.1 | Required Files |
| 2.3.2 | Installation Sets |
| 2.3.3 | Configuration |
| Enable Java in OpenOffice.org |
| Use Java UNO class files |
| Make the office listen |
| Add the API Reference to your IDE |
| 2.3.4 | First Connection |
| Getting Connected |
| Service Managers |
| Failed Connections |
| 2.4 | How to get Objects in OpenOffice.org |
| 2.5 | Working with Objects |
| 2.5.1 | Services |
| Using Interfaces |
| Using Properties |
| 2.5.2 | Example: Working with a Spreadsheet Document |
| 2.5.3 | Common Types |
| Simple Types |
| Strings |
| Enum Types and Groups of Constants |
| 2.5.4 | Struct |
| 2.5.5 | Any |
| 2.5.6 | Sequence |
| 2.5.7 | Element Access |
| Name Access |
| Index Access |
| Enumeration Access |
| 2.6 | How do I know Which Type I Have? |
| 2.7 | Example: Hello Text, Hello Table, Hello Shape |
| 2.7.1 | Common Mechanisms for Text, Tables and Drawings |
| 2.7.2 | Creating Text, Tables and Drawing Shapes |
| Text, Tables and Drawings in Writer |
| Text, Tables and Drawings in Calc |
| Drawings and Text in Draw |
| 3 | Professional UNO |
| 3.1 | Introduction |
| 3.2 | API Concepts |
| 3.2.1 | Data Types |
| Simple Types |
| The Any Type |
| Interfaces |
| Services |
| Structs |
| Predefined Values |
| Sequences |
| Modules |
| Exceptions |
| Singletons |
| 3.2.2 | Understanding the API Reference |
| Specification, Implementation and Instances |
| Object Composition |
| 3.3 | UNO Concepts |
| 3.3.1 | UNO Interprocess Connections |
| Starting OpenOffice.org in Listening Mode |
| Importing a UNO Object |
| Characteristics of the Interprocess Bridge |
| Opening a Connection |
| Creating the Bridge |
| Closing a Connection |
| Example: A Connection Aware Client |
| 3.3.2 | Service Manager and Component Context |
| Service Manager |
| Component Context |
| 3.3.3 | Using UNO Interfaces |
| 3.3.4 | Properties |
| 3.3.5 | Collections and Containers |
| 3.3.6 | Event Model |
| 3.3.7 | Exception Handling |
| User-Defined Exceptions |
| Runtime Exceptions |
| Good Exception Handling |
| 3.3.8 | Lifetime of UNO Objects |
| acquire() and release() |
| The XComponent Interface |
| Children of the XEventListener Interface |
| Weak Objects and References |
| Differences Between the Lifetime of C++ and Java Objects |
| 3.3.9 | Object Identity |
| 3.4 | UNO Language Bindings |
| 3.4.1 | Java Language Binding |
| Getting a Service Manager |
| Handling Interfaces |
| Type Mappings |
| 3.4.2 | UNO C++ Binding |
| Library Overview |
| System Abstraction Layer |
| File Access |
| Threadsafe Reference Counting |
| Threads and Thread Synchronization |
| Establishing Interprocess Connections |
| Type Mappings |
| Using Weak References |
| Exception Handling in C++ |
| 3.4.3 | OpenOffice.org Basic |
| Handling UNO Objects |
| Mapping of UNO and Basic Types |
| Case Sensitivity |
| Exception Handling |
| Listeners |
| 3.4.4 | Automation Bridge |
| Introduction |
| Requirements |
| A Quick Tour |
| The Service Manager Component |
| Using UNO from Automation |
| Type Mappings |
| Automation Objects with UNO Interfaces |
| DCOM |
| The Bridge Services |
| Unsupported COM Features |
| 4 | Writing UNO Components |
| 4.1 | Required Files |
| 4.2 | Using UNOIDL to Specify New Components |
| 4.2.1 | Writing the Specification |
| Preprocessing |
| Grouping Definitions in Modules |
| Fundamental Types |
| Defining an Interface |
| Defining a Service |
| Defining a Sequence |
| Defining a Struct |
| Defining an Exception |
| Predefining Values |
| Using Comments |
| Singleton |
| Reserved Types |
| 4.2.2 | Generating Source Code from UNOIDL Definitions |
| 4.3 | Component Architecture |
| 4.4 | Core Interfaces to Implement |
| 4.4.1 | XInterface |
| Requirements for queryInterface() |
| Reference Counting |
| 4.4.2 | XTypeProvider |
| Provided Types |
| ImplementationID |
| 4.4.3 | XServiceInfo |
| Implementation Name |
| Supported Service Names |
| 4.4.4 | XWeak |
| 4.4.5 | XComponent |
| Disposing of an XComponent |
| 4.4.6 | XInitialization |
| 4.4.7 | XMain |
| 4.4.8 | XAggregation |
| 4.4.9 | XUnoTunnel |
| 4.5 | Simple Component in Java |
| 4.5.1 | Class Definition with Helper Classes |
| XInterface, XTypeProvider and XWeak |
| XServiceInfo |
| 4.5.2 | Implementing your own Interfaces |
| 4.5.3 | Providing a Single Factory Using Helper Method |
| 4.5.4 | Write Registration Info Using Helper Method |
| 4.5.5 | Implementing without Helpers |
| XInterface |
| XTypeProvider |
| XComponent |
| 4.5.6 | Storing the Service Manager for Further Use |
| 4.5.7 | Create Instance with Arguments |
| 4.5.8 | Possible Structures for Java Components |
| One Implementation per Component File |
| Multiple Implementations per Component File |
| 4.5.9 | Running and Debugging Java Components |
| Registration |
| Debugging |
| The Java Environment in OpenOffice.org |
| Troubleshooting |
| 4.6 | C++ Component |
| 4.6.1 | Class Definition with Helper Template Classes |
| XInterface, XTypeProvider and XWeak |
| XServiceInfo |
| 4.6.2 | Implementing your own Interfaces |
| 4.6.3 | Providing a Single Factory Using a Helper Method |
| 4.6.4 | Write Registration Info Using Helper Method |
| 4.6.5 | Provide Implementation Environment |
| 4.6.6 | Implementing without Helpers |
| XInterface Implementation |
| XTypeProvider Implementation |
| Providing a Single Factory |
| Write Registration Info |
| 4.6.7 | Storing the Service Manager for Further Use |
| 4.6.8 | Create Instance with Arguments |
| 4.6.9 | Multiple Components in One Dynamic Link Library |
| 4.6.10 | Building and Testing C++ Components |
| Build Process |
| Test Registration and Use |
| 4.7 | Integrating Components into OpenOffice.org |
| 4.7.1 | Protocol Handler |
| Overview |
| Implementation |
| Configuration |
| Installation |
| 4.7.2 | Jobs |
| Overview |
| Execution Environment |
| Implementation |
| Initialization |
| Returning Results |
| Configuration |
| Installation |
| Using the vnd.sun.star.jobs: URL Schema |
| List of supported Events |
| 4.7.3 | Add-Ons |
| Overview |
| Guidelines |
| Configuration |
| Installation |
| 4.7.4 | Disable Commands |
| Configuration |
| Disabling Commands at Runtime |
| 4.7.5 | Intercepting Context Menus |
| Register and Remove an Interceptor |
| Writing an Interceptor |
| 4.8 | File Naming Conventions |
| 4.9 | Deployment Options for Components |
| 4.9.1 | UNO Package Installation |
| Package Structure |
| Path Settings |
| Additional Options |
| 4.9.2 | Background: UNO Registries |
| UNO Type Library |
| Component Registration |
| 4.9.3 | Command Line Registry Tools |
| Component Registration Tool |
| UNO Type Library Tools |
| 4.9.4 | Manual Component Installation |
| Manually Merging a Registry and Adding it to uno.ini or soffice.ini |
| Alternatives |
| 4.9.5 | Bootstrapping a Service Manager |
| 4.9.6 | Special Service Manager Configurations |
| Dynamically Modifying the Service Manager |
| Creating a ServiceManager from a Given Registry File |
| 4.10 | The UNO Executable |
| Standalone Use Case |
| Server Use Case |
| Using the uno Executable |
| 5 | Advanced UNO |
| 5.1 | Choosing an Implementation Language |
| 5.1.1 | Supported Programming Environments |
| Java |
| C++ |
| OpenOffice.org Basic |
| OLE Automation Bridge |
| Python |
| 5.1.2 | Use Cases |
| Java |
| C++ |
| OpenOffice.org Basic |
| OLE Automation |
| Python |
| 5.1.3 | Recommendation |
| 5.2 | Language Bindings |
| 5.2.1 | Implementing UNO Language Bindings |
| Overview of Language Bindings and Bridges |
| Implementation Options |
| 5.2.2 | UNO C++ bridges |
| Binary UNO Interfaces |
| C++ Proxy |
| Binary UNO Proxy |
| Additional Hints |
| 5.2.3 | UNO Reflection API |
| XTypeProvider Interface |
| Converter Service |
| CoreReflection Service |
| 5.2.4 | XInvocation Bridge |
| Scripting Existing UNO Objects |
| Implementing UNO objects |
| Example: Python Bridge PyUNO |
| 5.2.5 | Implementation Loader |
| Shared Library Loader |
| Bridges |
| 5.2.6 | Help with New Language Bindings |
| 5.3 | Differences Between UNO and Corba |
| 5.4 | UNO Design Patterns and Coding Styles |
| 5.4.1 | Double-Checked Locking |
| 6 | Office Development |
| 6.1 | OpenOffice.org Application Environment |
| 6.1.1 | Overview |
| Desktop Environment |
| Framework API |
| 6.1.2 | Using the Desktop |
| 6.1.3 | Using the Component Framework |
| Getting Frames, Controllers and Models from Each Other |
| Frames |
| Controllers |
| Models |
| Window Interfaces |
| 6.1.4 | Creating Frames Manually |
| 6.1.5 | Handling Documents |
| Loading Documents |
| Closing Documents |
| Storing Documents |
| Printing Documents |
| 6.1.6 | Using the Dispatch Framework |
| Command URL |
| Processing Chain |
| Dispatch Process |
| Dispatch Results |
| Dispatch Interception |
| 6.1.7 | Java Window Integration |
| The Window Handle |
| Using the Window Handle |
| More Remote Problems |
| 6.2 | Common Application Features |
| 6.2.1 | Clipboard |
| Using the Clipboard |
| OpenOffice.org Clipboard Data Formats |
| 6.2.2 | Internationalization |
| Introduction |
| Overview and Using the API |
| Implementing a New Locale |
| 6.2.3 | Linguistics |
| Services Overview |
| Using Spellchecker |
| Using Hyphenator |
| Using Thesaurus |
| Events |
| Implementing a Spell Checker |
| Implementing a Hyphenator |
| Implementing a Thesaurus |
| 6.2.4 | Integrating Import and Export Filters |
| Approaches |
| Document API Filter Development |
| XML Based Filter Development |
| 6.2.5 | Number Formats |
| Managing Number Formats |
| Applying Number Formats |
| 6.2.6 | Document Events |
| 6.2.7 | Path Organization |
| Path Settings |
| Path Variables |
| 6.2.8 | OpenOffice.org Single Sign-On API |
| Overview |
| Implementing the OpenOffice.org SSO API |
| 7 | Text Documents |
| 7.1 | Overview |
| 7.1.1 | Example: Fields in a Template |
| 7.1.2 | Example: Visible Cursor Position |
| 7.2 | Handling Text Document Files |
| 7.2.1 | Creating and Loading Text Documents |
| 7.2.2 | Saving Text Documents |
| Storing |
| Exporting |
| 7.2.3 | Printing Text Documents |
| Printer and Print Job Settings |
| Printing Multiple Pages on one Page |
| 7.3 | Working with Text Documents |
| 7.3.1 | Word Processing |
| Editing Text |
| Iterating over Text |
| Inserting a Paragraph where no Cursor can go |
| Sorting Text |
| Inserting Text Files |
| Auto Text |
| 7.3.2 | Formatting |
| 7.3.3 | Navigating |
| Cursors |
| Locating Text Contents |
| Search and Replace |
| 7.3.4 | Tables |
| Table Architecture |
| Named Table Cells in Rows, Columns and the Table Cursor |
| Indexed Cells and Cell Ranges |
| Table Naming, Sorting, Charting and Autoformatting |
| Text Table Properties |
| Inserting Tables |
| Accessing Existing Tables |
| 7.3.5 | Text Fields |
| 7.3.6 | Bookmarks |
| 7.3.7 | Indexes and Index Marks |
| Indexes |
| Index marks |
| 7.3.8 | Reference Marks |
| 7.3.9 | Footnotes and Endnotes |
| 7.3.10 | Shape Objects in Text |
| Base Frames vs. Drawing Shapes |
| Text Frames |
| Embedded Objects |
| Graphic Objects |
| Drawing Shapes |
| 7.3.11 | Redline |
| 7.3.12 | Ruby |
| 7.4 | Overall Document Features |
| 7.4.1 | Styles |
| Character Styles |
| Paragraph Styles |
| Frame Styles |
| Page Styles |
| Numbering Styles |
| 7.4.2 | Settings |
| General Document Information |
| Document Properties |
| Creating Default Settings |
| Creating Document Settings |
| 7.4.3 | Line Numbering and Outline Numbering |
| Paragraph and Outline Numbering |
| Line Numbering |
| Number Formats |
| 7.4.4 | Text Sections |
| 7.4.5 | Page Layout |
| 7.4.6 | Columns |
| 7.4.7 | Link targets |
| 7.5 | Text Document Controller |
| 7.5.1 | TextView |
| 7.5.2 | TextViewCursor |
| 8 | Spreadsheet Documents |
| 8.1 | Overview |
| 8.1.1 | Example: Adding a New Spreadsheet |
| 8.1.2 | Example: Editing Spreadsheet Cells |
| 8.2 | Handling Spreadsheet Document Files |
| 8.2.1 | Creating and Loading Spreadsheet Documents |
| 8.2.2 | Saving Spreadsheet Documents |
| Storing |
| Exporting |
| Filter Options |
| 8.2.3 | Printing Spreadsheet Documents |
| Printer and Print Job Settings |
| Page Breaks and Scaling for Printout |
| Print Areas |
| 8.3 | Working with Spreadsheet Documents |
| 8.3.1 | Document Structure |
| Spreadsheet Document |
| Spreadsheet Services - Overview |
| Spreadsheet |
| Cell Ranges |
| Cells |
| Cell Ranges and Cells Container |
| Columns and Rows |
| 8.3.2 | Formatting |
| Cell Formatting |
| Character and Paragraph Format |
| Indentation |
| Equally Formatted Cell Ranges |
| Table Auto Formats |
| Conditional Formats |
| 8.3.3 | Navigating |
| Cell Cursor |
| Referencing Ranges by Name |
| Named Ranges |
| Label Ranges |
| Querying for Cells with Specific Properties |
| Search and Replace |
| 8.3.4 | Sorting |
| Table Sort Descriptor |
| 8.3.5 | Database Operations |
| Filtering |
| Subtotals |
| Database Import |
| Database Ranges |
| 8.3.6 | Linking External Data |
| Sheet Links |
| Cell Area Links |
| DDE Links |
| 8.3.7 | DataPilot |
| DataPilot Tables |
| DataPilot Sources |
| 8.3.8 | Protecting Spreadsheets |
| 8.3.9 | Sheet Outline |
| 8.3.10 | Detective |
| 8.3.11 | Other Table Operations |
| Data Validation |
| Data Consolidation |
| Charts |
| Scenarios |
| 8.4 | Overall Document Features |
| 8.4.1 | Styles |
| Cell Styles |
| Page Styles |
| 8.4.2 | Function Handling |
| Calculating Function Results |
| Information about Functions |
| Recently Used Functions |
| 8.4.3 | Settings |
| 8.5 | Spreadsheet Document Controller |
| 8.5.1 | Spreadsheet View |
| 8.5.2 | View Panes |
| 8.5.3 | View Settings |
| 8.5.4 | Range Selection |
| 8.6 | Spreadsheet Add-Ins |
| 8.6.1 | Function Descriptions |
| 8.6.2 | Service Names |
| 8.6.3 | Compatibility Names |
| 8.6.4 | Custom Functions |
| 8.6.5 | Variable Results |
| 9 | Drawing Documents and Presentation Documents |
| 9.1 | Overview |
| 9.1.1 | Example: Creating a Simple Organizational Chart |
| 9.2 | Handling Drawing Document Files |
| 9.2.1 | Creating and Loading Drawing Documents |
| 9.2.2 | Saving Drawing Documents |
| Storing |
| Exporting |
| Filter Options |
| 9.2.3 | Printing Drawing Documents |
| Printer and Print Job Settings |
| Special Print Settings |
| 9.3 | Working with Drawing Documents |
| 9.3.1 | Drawing Document |
| Document Structure |
| Page Handling |
| Page Partitioning |
| 9.3.2 | Shapes |
| Bezier Shapes |
| Shape Operations |
| 9.3.3 | Inserting Files |
| 9.3.4 | Navigating |
| 9.4 | Handling Presentation Document Files |
| 9.4.1 | Creating and Loading Presentation Documents |
| 9.4.2 | Printing Presentation Documents |
| 9.5 | Working with Presentation Documents |
| 9.5.1 | Presentation Document |
| 9.5.2 | Presentation Settings |
| Custom Slide Show |
| Presentation Effects |
| Slide Transition |
| Animations and Interactions |
| 9.6 | Overall Document Features |
| 9.6.1 | Styles |
| Graphics Styles |
| Presentation Styles |
| 9.6.2 | Settings |
| 9.6.3 | Page Formatting |
| 9.7 | Drawing and Presentation Document Controller |
| 9.7.1 | Setting the Current Page, Using the Selection |
| 9.7.2 | Zooming |
| 9.7.3 | Other Drawing-Specific View Settings |
| 10 | Charts |
| 10.1 | Overview |
| 10.2 | Handling Chart Documents |
| 10.2.1 | Creating Charts |
| Creating and Adding a Chart to a Spreadsheet |
| Creating a Chart OLE Object in Draw and Impress |
| Setting the Chart Type |
| 10.2.2 | Accessing Existing Chart Documents |
| 10.3 | Working with Charts |
| 10.3.1 | Document Structure |
| 10.3.2 | Data Access |
| 10.3.3 | Chart Document Parts |
| Common Parts of all Chart Types |
| Features of Special Chart Types |
| 10.4 | Chart Document Controller |
| 10.5 | Chart Add-Ins |
| 10.5.1 | Prerequisites |
| 10.5.2 | How Add-Ins work |
| 10.5.3 | How to Apply an Add-In to a Chart Document |
| 11 | OpenOffice.org Basic and Dialogs |
| 11.1 | First Steps with OpenOffice.org Basic |
| Step By Step Tutorial |
| A Simple Dialog |
| 11.2 | OpenOffice.org Basic IDE |
| 11.2.1 | Managing Basic and Dialog Libraries |
| Macro Dialog |
| Macro Organizer Dialog |
| 11.2.2 | Basic IDE Window |
| Basic Source Editor and Debugger |
| Dialog Editor |
| 11.2.3 | Assigning Macros to GUI Events |
| 11.3 | Features of OpenOffice.org Basic |
| 11.3.1 | Functional Range Overview |
| Screen I/O Functions |
| File I/O |
| Date and Time Functions |
| Numeric Functions |
| String Functions |
| Specific UNO Functions |
| 11.3.2 | Accessing the UNO API |
| StarDesktop |
| ThisComponent |
| 11.3.3 | Special Behavior of OpenOffice.org Basic |
| Threads |
| Rescheduling |
| 11.4 | Advanced Library Organization |
| 11.4.1 | General Structure |
| 11.4.2 | Accessing Libraries from Basic |
| Library Container Properties in Basic |
| Loading Libraries |
| Library Container API |
| 11.4.3 | Variable Scopes |
| 11.5 | Programming Dialogs and Dialog Controls |
| 11.5.1 | Dialog Handling |
| Showing a Dialog |
| Getting the Dialog Model |
| Dialog as Control Container |
| Dialog Properties |
| Common Properties |
| Multi-Page Dialogs |
| 11.5.2 | Dialog Controls |
| Command Button |
| Image Control |
| Check Box |
| Option Button |
| Label Field |
| Text Field |
| List Box |
| Combo Box |
| Horizontal/Vertical Scroll Bar |
| Group Box |
| Progress Bar |
| Horizontal/Vertical Line |
| Date Field |
| Time Field |
| Numeric Field |
| Currency Field |
| Formatted Field |
| Pattern Field |
| File Control |
| 11.6 | Creating Dialogs at Runtime |
| 11.7 | Library File Structure |
| 11.7.1 | Application Library Container |
| 11.7.2 | Document Library Container |
| 11.8 | Library Deployment |
| Package Structure |
| Path Settings |
| Additional Options |
| 12 | Database Access |
| 12.1 | Overview |
| 12.1.1 | Capabilities |
| Platform Independence |
| Functioning of the OpenOffice.org API Database Integration |
| Integration with OpenOffice.org API |
| 12.1.2 | Architecture |
| 12.1.3 | Example: Querying the Bibliography Database |
| 12.2 | Data Sources in OpenOffice.org API |
| 12.2.1 | DatabaseContext |
| 12.2.2 | DataSources |
| The DataSource Service |
| Queries |
| Forms and Other Links |
| Tables and Columns |
| 12.2.3 | Connections |
| Understanding Connections |
| Connecting Using the DriverManager and a Database URL |
| Connecting Through a Specific Driver |
| Driver Specifics |
| Connection Pooling |
| Piggyback Connections |
| 12.3 | Manipulating Data |
| 12.3.1 | The RowSet Service |
| Usage |
| Events and Other Notifications |
| Clones of the RowSet Service |
| 12.3.2 | Statements |
| Creating Statements |
| Inserting and Updating Data |
| Getting Data from a Table |
| 12.3.3 | Result Sets |
| Retrieving Values from Result Sets |
| Moving the Result Set Cursor |
| Using the getXXX Methods |
| Scrollable Result Sets |
| Modifiable Result Sets |
| Update |
| Insert |
| Delete |
| Seeing Changes in Result Sets |
| 12.3.4 | ResultSetMetaData |
| 12.3.5 | Using Prepared Statements |
| When to Use a PreparedStatement Object |
| Creating a PreparedStatement Object |
| Supplying Values for PreparedStatement Parameters |
| 12.3.6 | PreparedStatement From DataSource Queries |
| 12.4 | Database Design |
| 12.4.1 | Retrieving Information about a Database |
| Retrieving General Information |
| Determining Feature Support |
| Database Limits |
| SQL Objects and their Attributes |
| 12.4.2 | Using DDL to Change the Database Design |
| 12.4.3 | Using SDBCX to Access the Database Design |
| The Extension Layer SDBCX |
| Catalog Service |
| Table Service |
| Column Service |
| Index Service |
| Key Service |
| View Service |
| Group Service |
| User Service |
| The Descriptor Pattern |
| Adding an Index |
| Creating a User |
| Adding a Group |
| 12.5 | Using DBMS Features |
| 12.5.1 | Transaction Handling |
| 12.5.2 | Stored Procedures |
| 12.6 | Writing Database Drivers |
| 12.6.1 | SDBC Driver |
| 12.6.2 | Driver Service |
| 12.6.3 | Connection Service |
| 12.6.4 | XDatabaseMetaData Interface |
| 12.6.5 | Statements |
| PreparedStatement |
| Result Set |
| 12.6.6 | Support Scalar Functions |
| Open Group CLI Numeric Functions |
| Open Group CLI String Functions |
| Open Group CLI Time and Date Functions |
| Open Group CLI System Functions |
| Open Group CLI Conversion Functions |
| Handling Unsupported Functionality |
| 13 | Forms |
| 13.1 | Introduction |
| 13.2 | Models and Views |
| 13.2.1 | The Model-View Paradigm |
| 13.2.2 | Models and Views for Form Controls |
| 13.2.3 | Model-View Interaction |
| 13.2.4 | Form Layer Views |
| View Modes |
| Locating Controls |
| Focussing Controls |
| 13.3 | Form Elements in the Document Model |
| 13.3.1 | A Hierarchy of Models |
| FormComponent Service |
| FormComponents Service |
| Logical Forms |
| Forms Container |
| Form Control Models |
| 13.3.2 | Control Models and Shapes |
| Programmatic Creation of Controls |
| 13.4 | Form Components |
| 13.4.1 | Basics |
| Control Models |
| Forms |
| 13.4.2 | HTML Forms |
| 13.5 | Data Awareness |
| 13.5.1 | Forms |
| Forms as Row Sets |
| Loadable Forms |
| Sub Forms |
| Filtering and Sorting |
| Parameters |
| 13.5.2 | Data Aware Controls |
| Control Models as Bound Components |
| Committing Controls |
| 13.6 | Common Tasks |
| 13.6.1 | Initializing Bound Controls |
| 13.6.2 | Automatic Key Generation |
| 13.6.3 | Data Validation |
| 14 | Universal Content Broker |
| 14.1 | Overview |
| 14.1.1 | Capabilities |
| 14.1.2 | Architecture |
| 14.2 | Services and Interfaces |
| 14.3 | Content Providers |
| 14.4 | Using the UCB API |
| 14.4.1 | Instantiating the UCB |
| 14.4.2 | Accessing a UCB Content |
| 14.4.3 | Executing Content Commands |
| 14.4.4 | Obtaining Content Properties |
| 14.4.5 | Setting Content Properties |
| 14.4.6 | Folders |
| Accessing the Children of a Folder |
| 14.4.7 | Documents |
| Reading a Document Content |
| Storing a Document Content |
| 14.4.8 | Managing Contents |
| Creating |
| Deleting |
| Copying, Moving and Linking |
| 14.4.9 | UCP Registration Information |
| 14.4.10 | Unconfigured UCBs |
| 14.4.11 | Preconfigured UCBs |
| 14.4.12 | Content Provider Proxies |
| 15 | Configuration Management |
| 15.1 | Overview |
| 15.1.1 | Capabilities |
| 15.1.2 | Architecture |
| 15.2 | Object Model |
| 15.3 | Configuration Data Sources |
| 15.3.1 | Connecting to a Data Source |
| 15.3.2 | Using a Data Source |
| 15.4 | Accessing Configuration Data |
| 15.4.1 | Reading Configuration Data |
| 15.4.2 | Updating Configuration Data |
| 15.5 | Customizing Configuration Data |
| 15.5.1 | Creating a Custom Configuration Schema |
| 15.5.2 | Preparing Custom Configuration Data |
| 15.5.3 | Installing Custom Configuration Data |
| 15.6 | Adding a Backend Data Store |
| 16 | Office Bean |
| 16.1 | Introduction |
| 16.2 | Overview of the OfficeBean API |
| 16.2.1 | OfficeConnection Interface |
| 16.2.2 | OfficeWindow Interface |
| 16.2.3 | ContainerFactory Interface |
| 16.3 | LocalOfficeConnection and LocalOfficeWindow |
| 16.4 | Configuring the OfficeBean |
| 16.4.1 | Default Configuration |
| 16.4.2 | Customized Configuration |
| 16.5 | Using the OfficeBean |
| 16.5.1 | SimpleBean Example |
| Using SimpleBean |
| SimpleBean Internals |
| 16.5.2 | OfficeWriterBean Example |
| 17 | Accessibility |
| 17.1 | Overview |
| 17.2 | Bridges |
| 17.3 | Accessibility Tree |
| 17.4 | Content Information |
| 17.5 | Listeners and Broadcasters |
| 17.6 | Implementing Accessible Objects |
| 17.6.1 | Implementation Rules |
| 17.6.2 | Services |
| 17.7 | Using the Accessibility API |
| 17.7.1 | A Simple Screen Reader |
| Features |
| Class Overview |
| Putting the Accessibility Interfaces to Work |
| Appendix A: OpenOffice.org API-Design-Guidelines |
| A.1 | General Design Rules |
| A.1.1 | Universality |
| A.1.2 | Orthogonality |
| A.1.3 | Inheritance |
| A.1.4 | Uniformity |
| A.1.5 | Correct English |
| A.2 | Definition of API Elements |
| A.2.1 | Attributes |
| A.2.2 | Methods |
| A.2.3 | Interfaces |
| A.2.4 | Properties |
| A.2.5 | Events |
| A.2.6 | Services |
| A.2.7 | Exceptions |
| A.2.8 | Enums |
| A.2.9 | Typedefs |
| A.2.10 | Structs |
| A.2.11 | Parameter |
| A.3 | Special Cases |
| A.4 | Abbreviations |
| A.5 | Source Files and Types |
| Appendix B: IDL Documentation Guidelines |
| B.1 | Introduction |
| B.1.1 | Process |
| B.1.2 | File Assembly |
| B.1.3 | Readable & Editable Structure |
| B.1.4 | Contents |
| B.2 | File structure |
| B.2.1 | General |
| B.2.2 | File-Header |
| B.2.3 | File-Footer |
| B.3 | Element Documentation |
| B.3.1 | General Element Documentation |
| B.3.2 | Example for a Major Element Documentation |
| B.3.3 | Example for a Minor Element Documentation |
| B.4 | Markups and Tags |
| B.4.1 | Special Markups |
| B.4.2 | Special Documentation Tags |
| B.4.3 | Useful XHTML Tags |
| Appendix C: Universal Content Providers |
| C.1 | The Hierarchy Content Provider |
| C.1.1 | Preface |
| C.1.2 | HCP Contents |
| C.1.3 | Creation of New HCP Content |
| C.1.4 | URL Scheme for HCP Contents |
| C.1.5 | Commands and Properties |
| C.2 | The File Content Provider |
| C.2.1 | Preface |
| C.2.2 | File Contents |
| C.2.3 | Creation of New File Contents |
| C.2.4 | URL Schemes for File Contents |
| C.2.5 | Commands and Properties |
| C.3 | The FTP Content Provider |
| C.3.1 | Preface |
| C.3.2 | FTP Contents |
| C.3.3 | Creation of New FTP Content |
| C.3.4 | URL Scheme for FTP Contents |
| C.3.5 | Commands and Properties |
| C.4 | The WebDAV Content Provider |
| C.4.1 | Preface |
| C.4.2 | DCP Contents |
| C.4.3 | Creation of New DCP Contents |
| C.4.4 | Authentication |
| C.4.5 | Property Handling |
| C.4.6 | URL Scheme for DCP Contents |
| C.4.7 | Commands and Properties |
| C.5 | The Package Content Provider |
| C.5.1 | Preface |
| C.5.2 | PCP Contents |
| C.5.3 | Creation of New PCP Contents |
| C.5.4 | URL Scheme for PCP Contents |
| C.5.5 | Commands and Properties |
| C.6 | The Help Content Provider |
| C.6.1 | Preface |
| C.6.2 | Help Content Provider Contents |
| C.6.3 | URL Scheme for Help Contents |
| C.6.4 | Properties and Commands |
| Appendix D: UNOIDL Syntax Specification |
| Glossary |