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 |
| Add the API Reference to your IDE |
| 2.3.4 | First Contact |
| Getting Started |
| Service Managers |
| Failed Connections |
| 2.4 | How to get Objects in OpenOffice.org |
| 2.5 | Working with Objects |
| 2.5.1 | Objects, Interfaces, and Services |
| Objects |
| Interfaces |
| Services |
| 2.5.2 | Using Services |
| Using Interfaces |
| Using Properties |
| 2.5.3 | Example: Working with a Spreadsheet Document |
| 2.5.4 | Common Types |
| Basic Types |
| Strings |
| Enum Types and Groups of Constants |
| 2.5.5 | Struct |
| 2.5.6 | Any |
| 2.5.7 | Sequence |
| 2.5.8 | 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 |
| Transparent Use of Office UNO Components |
| Handling Interfaces |
| Type Mappings |
| 3.4.2 | C++ Language Binding |
| Library Overview |
| System Abstraction Layer |
| File Access |
| Threadsafe Reference Counting |
| Threads and Thread Synchronization |
| Socket and Pipe |
| Strings |
| Establishing Interprocess Connections |
| Transparent Use of Office UNO Components |
| 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 |
| Using Automation Objects From UNO |
| Type Mappings |
| Automation Objects with UNO Interfaces |
| DCOM |
| The Bridge Services |
| Unsupported COM Features |
| 3.4.5 | CLI Language Binding |
| About the Language Binding |
| Terms |
| Requirements |
| The Language Binding DLLs |
| Type Mapping |
| Lifetime Management and Obtaining Interfaces |
| Writing Client Programs |
| 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 |
| Simple Types |
| Defining an Interface |
| Defining a Service |
| Defining a Sequence |
| Defining a Struct |
| Defining an Exception |
| Predefining Values |
| Using Comments |
| Singleton |
| Reserved Types |
| Published Entities |
| 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 |
| 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 a 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 | Background: UNO Registries |
| UNO Type Library |
| Component Registration |
| 4.9.2 | Command Line Registry Tools |
| Component Registration Tool |
| UNO Type Library Tools |
| 4.9.3 | Manual Component Installation |
| Manually Merging a Registry and Adding it to uno.ini or soffice.ini |
| 4.9.4 | Bootstrapping a Service Manager |
| 4.9.5 | 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 |
| 4.11 | Accessing Dialogs |
| 4.11.1 | Assigning Component Methods to Control Events |
| 4.11.2 | Using Dialogs in Components |
| Instantiate and display a dialog |
| Accept events created by dialog controls |
| 5 | Extensions |
| 5.1 | Extension Manager |
| 5.1.1 | Deployment Items |
| 5.1.2 | Installing Extensions for All or a Single User |
| 5.1.3 | Extension Manager in OpenOffice.org |
| 5.1.4 | unopkg |
| 5.1.5 | Location of installed Extensions |
| 5.2 | File Format |
| 5.3 | Extension Identifiers |
| 5.4 | Extension Versions |
| 5.5 | description.xml |
| 5.5.1 | Description of XML Elements |
| 5.5.2 | Example |
| 5.6 | Simple License |
| 5.6.1 | Determining the Locale of the License |
| 5.7 | Dependencies |
| 5.8 | System Integration |
| 5.9 | Online Update of Extensions |
| 5.9.1 | Running Online - Update |
| 5.9.2 | Concept |
| 5.9.3 | Example Scenario for Providing Updates |
| Using an Atom Feed |
| 5.9.4 | Migration of Update Information |
| 5.9.5 | Description of the Update Information |
| 5.9.6 | Description of Atom Feed |
| 5.9.7 | Examples |
| description.xml Containing Direct Reference to the Update Information |
| Using the Atom Feed |
| 5.10 | Options Dialog |
| 5.11 | Creating the GUI of the Options Page |
| 5.12 | Saving and Reading Data for the Options Page |
| 5.13 | Defining the Usage of Options Pages |
| 5.13.1 | The Options Dialog of the Extension Manager |
| 5.13.2 | Adding a Leaf to an Existing Node |
| 5.13.3 | Adding Several Leaves |
| 5.13.4 | Grouping of Leaves |
| 5.13.5 | Adding Nodes |
| 5.13.6 | Adding Several Nodes |
| 5.13.7 | Absolute Position of Leaves |
| 5.13.8 | Grouping of Nodes |
| 5.13.9 | Assigning Nodes to Modules |
| 5.13.10 | Defining a Module |
| 5.13.11 | Absolute Position of Nodes |
| 6 | Advanced UNO |
| 6.1 | Choosing an Implementation Language |
| 6.1.1 | Supported Programming Environments |
| Java |
| C++ |
| OpenOffice.org Basic |
| OLE Automation Bridge |
| Python |
| 6.1.2 | Use Cases |
| Java |
| C++ |
| OpenOffice.org Basic |
| OLE Automation |
| Python |
| 6.1.3 | Recommendation |
| 6.2 | Language Bindings |
| 6.2.1 | Implementing UNO Language Bindings |
| Overview of Language Bindings and Bridges |
| Implementation Options |
| 6.2.2 | UNO C++ bridges |
| Binary UNO Interfaces |
| C++ Proxy |
| Binary UNO Proxy |
| Additional Hints |
| 6.2.3 | UNO Reflection API |
| XTypeProvider Interface |
| Converter Service |
| CoreReflection Service |
| 6.2.4 | XInvocation Bridge |
| Scripting Existing UNO Objects |
| Implementing UNO objects |
| Example: Python Bridge PyUNO |
| 6.2.5 | Implementation Loader |
| Shared Library Loader |
| Bridges |
| 6.2.6 | Help with New Language Bindings |
| 6.3 | Differences Between UNO and Corba |
| 6.4 | UNO Design Patterns and Coding Styles |
| 6.4.1 | Double-Checked Locking |
| 7 | Office Development |
| 7.1 | OpenOffice.org Application Environment |
| 7.1.1 | Overview |
| Desktop Environment |
| Framework API |
| 7.1.2 | Using the Desktop |
| 7.1.3 | Using the Component Framework |
| Getting Frames, Controllers and Models from Each Other |
| Frames |
| Controllers |
| Models |
| Window Interfaces |
| 7.1.4 | Creating Frames Manually |
| 7.1.5 | Handling Documents |
| Loading Documents |
| Closing Documents |
| Storing Documents |
| Printing Documents |
| 7.1.6 | Using the Dispatch Framework |
| Command URL |
| Processing Chain |
| Dispatch Process |
| Dispatch Results |
| Dispatch Interception |
| 7.1.7 | Java Window Integration |
| The Window Handle |
| Using the Window Handle |
| More Remote Problems |
| 7.2 | Common Application Features |
| 7.2.1 | Clipboard |
| Using the Clipboard |
| OpenOffice.org Clipboard Data Formats |
| 7.2.2 | Internationalization |
| Introduction |
| Overview and Using the API |
| Implementing a New Locale |
| 7.2.3 | Linguistics |
| Services Overview |
| Using Spellchecker |
| Using Hyphenator |
| Using Thesaurus |
| Events |
| Implementing a Spell Checker |
| Implementing a Hyphenator |
| Implementing a Thesaurus |
| 7.2.4 | Integrating Import and Export Filters |
| Approaches |
| Document API Filter Development |
| XML Based Filter Development |
| 7.2.5 | Number Formats |
| Managing Number Formats |
| Applying Number Formats |
| 7.2.6 | Document Events |
| 7.2.7 | Path Organization |
| Path Settings |
| Path Variables |
| 7.2.8 | OpenOffice.org Single Sign-On API |
| Overview |
| Implementing the OpenOffice.org SSO API |
| 8 | Text Documents |
| 8.1 | Overview |
| 8.1.1 | Example: Fields in a Template |
| 8.1.2 | Example: Visible Cursor Position |
| 8.2 | Handling Text Document Files |
| 8.2.1 | Creating and Loading Text Documents |
| 8.2.2 | Saving Text Documents |
| Storing |
| Exporting |
| 8.2.3 | Printing Text Documents |
| Printer and Print Job Settings |
| Printing Multiple Pages on one Page |
| 8.3 | Working with Text Documents |
| 8.3.1 | Word Processing |
| Editing Text |
| Iterating over Text |
| Inserting a Paragraph where no Cursor can go |
| Sorting Text |
| Inserting Text Files |
| Auto Text |
| 8.3.2 | Formatting |
| 8.3.3 | Navigating |
| Cursors |
| Locating Text Contents |
| Search and Replace |
| 8.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 |
| 8.3.5 | Text Fields |
| 8.3.6 | Bookmarks |
| 8.3.7 | Indexes and Index Marks |
| Indexes |
| Index marks |
| 8.3.8 | Reference Marks |
| 8.3.9 | Footnotes and Endnotes |
| 8.3.10 | Shape Objects in Text |
| Base Frames vs. Drawing Shapes |
| Text Frames |
| Embedded Objects |
| Graphic Objects |
| Drawing Shapes |
| 8.3.11 | Redline |
| 8.3.12 | Ruby |
| 8.4 | Overall Document Features |
| 8.4.1 | Styles |
| Character Styles |
| Paragraph Styles |
| Frame Styles |
| Page Styles |
| Numbering Styles |
| 8.4.2 | Settings |
| General Document Information |
| Document Properties |
| Creating Default Settings |
| Creating Document Settings |
| 8.4.3 | Line Numbering and Outline Numbering |
| Paragraph and Outline Numbering |
| Line Numbering |
| Number Formats |
| 8.4.4 | Text Sections |
| 8.4.5 | Page Layout |
| 8.4.6 | Columns |
| 8.4.7 | Link targets |
| 8.5 | Text Document Controller |
| 8.5.1 | TextView |
| 8.5.2 | TextViewCursor |
| 9 | Spreadsheet Documents |
| 9.1 | Overview |
| 9.1.1 | Example: Adding a New Spreadsheet |
| 9.1.2 | Example: Editing Spreadsheet Cells |
| 9.2 | Handling Spreadsheet Document Files |
| 9.2.1 | Creating and Loading Spreadsheet Documents |
| 9.2.2 | Saving Spreadsheet Documents |
| Storing |
| Exporting |
| Filter Options |
| 9.2.3 | Printing Spreadsheet Documents |
| Printer and Print Job Settings |
| Page Breaks and Scaling for Printout |
| Print Areas |
| 9.3 | Working with Spreadsheet Documents |
| 9.3.1 | Document Structure |
| Spreadsheet Document |
| Spreadsheet Services - Overview |
| Spreadsheet |
| Cell Ranges |
| Cells |
| Cell Ranges and Cells Container |
| Columns and Rows |
| 9.3.2 | Formatting |
| Cell Formatting |
| Character and Paragraph Format |
| Indentation |
| Equally Formatted Cell Ranges |
| Table Auto Formats |
| Conditional Formats |
| 9.3.3 | Navigating |
| Cell Cursor |
| Referencing Ranges by Name |
| Named Ranges |
| Label Ranges |
| Querying for Cells with Specific Properties |
| Search and Replace |
| 9.3.4 | Sorting |
| Table Sort Descriptor |
| 9.3.5 | Database Operations |
| Filtering |
| Subtotals |
| Database Import |
| Database Ranges |
| 9.3.6 | Linking External Data |
| Sheet Links |
| Cell Area Links |
| DDE Links |
| 9.3.7 | DataPilot |
| DataPilot Tables |
| DataPilot Sources |
| 9.3.8 | Protecting Spreadsheets |
| 9.3.9 | Sheet Outline |
| 9.3.10 | Detective |
| 9.3.11 | Other Table Operations |
| Data Validation |
| Data Consolidation |
| Charts |
| Scenarios |
| 9.4 | Overall Document Features |
| 9.4.1 | Styles |
| Cell Styles |
| Page Styles |
| 9.4.2 | Function Handling |
| Calculating Function Results |
| Information about Functions |
| Recently Used Functions |
| 9.4.3 | Settings |
| 9.5 | Spreadsheet Document Controller |
| 9.5.1 | Spreadsheet View |
| 9.5.2 | View Panes |
| 9.5.3 | View Settings |
| 9.5.4 | Range Selection |
| 9.6 | Spreadsheet Add-Ins |
| 9.6.1 | Function Descriptions |
| 9.6.2 | Service Names |
| 9.6.3 | Compatibility Names |
| 9.6.4 | Custom Functions |
| 9.6.5 | Variable Results |
| 10 | Drawing Documents and Presentation Documents |
| 10.1 | Overview |
| 10.1.1 | Example: Creating a Simple Organizational Chart |
| 10.2 | Handling Drawing Document Files |
| 10.2.1 | Creating and Loading Drawing Documents |
| 10.2.2 | Saving Drawing Documents |
| Storing |
| Exporting |
| Filter Options |
| 10.2.3 | Printing Drawing Documents |
| Printer and Print Job Settings |
| Special Print Settings |
| 10.3 | Working with Drawing Documents |
| 10.3.1 | Drawing Document |
| Document Structure |
| Page Handling |
| Page Partitioning |
| 10.3.2 | Shapes |
| Bezier Shapes |
| Shape Operations |
| 10.3.3 | Inserting Files |
| 10.3.4 | Navigating |
| 10.4 | Handling Presentation Document Files |
| 10.4.1 | Creating and Loading Presentation Documents |
| 10.4.2 | Printing Presentation Documents |
| 10.5 | Working with Presentation Documents |
| 10.5.1 | Presentation Document |
| 10.5.2 | Presentation Settings |
| Custom Slide Show |
| Presentation Effects |
| Slide Transition |
| Animations and Interactions |
| 10.6 | Overall Document Features |
| 10.6.1 | Styles |
| Graphics Styles |
| Presentation Styles |
| 10.6.2 | Settings |
| 10.6.3 | Page Formatting |
| 10.7 | Drawing and Presentation Document Controller |
| 10.7.1 | Setting the Current Page, Using the Selection |
| 10.7.2 | Zooming |
| 10.7.3 | Other Drawing-Specific View Settings |
| 11 | Charts |
| 11.1 | Overview |
| 11.2 | Handling Chart Documents |
| 11.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 |
| 11.2.2 | Accessing Existing Chart Documents |
| 11.3 | Working with Charts |
| 11.3.1 | Document Structure |
| 11.3.2 | Data Access |
| 11.3.3 | Chart Document Parts |
| Common Parts of all Chart Types |
| Features of Special Chart Types |
| 11.4 | Chart Document Controller |
| 11.5 | Chart Add-Ins |
| 11.5.1 | Prerequisites |
| 11.5.2 | How Add-Ins work |
| 11.5.3 | How to Apply an Add-In to a Chart Document |
| 12 | OpenOffice.org Basic and Dialogs |
| 12.1 | First Steps with OpenOffice.org Basic |
| Step By Step Tutorial |
| A Simple Dialog |
| 12.2 | OpenOffice.org Basic IDE |
| 12.2.1 | Managing Basic and Dialog Libraries |
| OpenOffice.org Basic Macros Dialog |
| OpenOffice.org Basic Macro Organizer Dialog |
| 12.2.2 | Basic IDE Window |
| Basic Source Editor and Debugger |
| Dialog Editor |
| 12.2.3 | Assigning Macros to GUI Events |
| 12.2.4 | Dialog Localization |
| Technical Background |
| 12.3 | Features of OpenOffice.org Basic |
| 12.3.1 | Functional Range Overview |
| Screen I/O Functions |
| File I/O |
| Date and Time Functions |
| Numeric Functions |
| String Functions |
| Specific UNO Functions |
| 12.3.2 | Accessing the UNO API |
| StarDesktop |
| ThisComponent |
| 12.3.3 | Special Behavior of OpenOffice.org Basic |
| Threads |
| Rescheduling |
| 12.4 | Advanced Library Organization |
| 12.4.1 | General Structure |
| 12.4.2 | Accessing Libraries from Basic |
| Library Container Properties in Basic |
| Loading Libraries |
| Library Container API |
| 12.4.3 | Variable Scopes |
| 12.5 | Programming Dialogs and Dialog Controls |
| 12.5.1 | Dialog Handling |
| Showing a Dialog |
| Getting the Dialog Model |
| Dialog as Control Container |
| Dialog Properties |
| Common Properties |
| Multi-Page Dialogs |
| 12.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 |
| 12.6 | Creating Dialogs at Runtime |
| 12.7 | Library File Structure |
| 12.7.1 | Application Library Container |
| 12.7.2 | Document Library Container |
| 12.8 | Library Deployment |
| Package Structure |
| Path Settings |
| Additional Options |
| 13 | Database Access |
| 13.1 | Overview |
| 13.1.1 | Capabilities |
| Platform Independence |
| Functioning of the OpenOffice.org API Database Integration |
| Integration with OpenOffice.org API |
| 13.1.2 | Architecture |
| 13.1.3 | Example: Querying the Bibliography Database |
| 13.2 | Data Sources in OpenOffice.org API |
| 13.2.1 | DatabaseContext |
| 13.2.2 | DataSources |
| The DataSource Service |
| Queries |
| Forms and Reports |
| Document Links |
| Tables and Columns |
| 13.2.3 | Connections |
| Understanding Connections |
| Connecting Using the DriverManager and a Database URL |
| Connecting Through a Specific Driver |
| Driver Specifics |
| Connection Pooling |
| Piggyback Connections |
| 13.3 | Manipulating Data |
| 13.3.1 | The RowSet Service |
| Usage |
| Events and Other Notifications |
| Clones of the RowSet Service |
| 13.3.2 | Statements |
| Creating Statements |
| Inserting and Updating Data |
| Getting Data from a Table |
| 13.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 |
| 13.3.4 | ResultSetMetaData |
| 13.3.5 | Using Prepared Statements |
| When to Use a PreparedStatement Object |
| Creating a PreparedStatement Object |
| Supplying Values for PreparedStatement Parameters |
| 13.3.6 | PreparedStatement From DataSource Queries |
| 13.4 | Database Design |
| 13.4.1 | Retrieving Information about a Database |
| Retrieving General Information |
| Determining Feature Support |
| Database Limits |
| SQL Objects and their Attributes |
| 13.4.2 | Using DDL to Change the Database Design |
| 13.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 |
| 13.5 | Using DBMS Features |
| 13.5.1 | Transaction Handling |
| 13.5.2 | Stored Procedures |
| 13.6 | Writing Database Drivers |
| 13.6.1 | SDBC Driver |
| 13.6.2 | Driver Service |
| 13.6.3 | Connection Service |
| 13.6.4 | XDatabaseMetaData Interface |
| 13.6.5 | Statements |
| PreparedStatement |
| Result Set |
| 13.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 |
| 14 | Forms |
| 14.1 | Introduction |
| 14.2 | Models and Views |
| 14.2.1 | The Model-View Paradigm |
| 14.2.2 | Models and Views for Form Controls |
| 14.2.3 | Model-View Interaction |
| 14.2.4 | Form Layer Views |
| View Modes |
| Locating Controls |
| Focussing Controls |
| 14.3 | Form Elements in the Document Model |
| 14.3.1 | A Hierarchy of Models |
| FormComponent Service |
| FormComponents Service |
| Logical Forms |
| Forms Container |
| Form Control Models |
| 14.3.2 | Control Models and Shapes |
| Programmatic Creation of Controls |
| 14.4 | Form Components |
| 14.4.1 | Basics |
| Control Models |
| Forms |
| 14.4.2 | HTML Forms |
| 14.5 | Data Awareness |
| 14.5.1 | Forms |
| Forms as Row Sets |
| Loadable Forms |
| Sub Forms |
| Filtering and Sorting |
| Parameters |
| 14.5.2 | Data Aware Controls |
| Control Models as Bound Components |
| Committing Controls |
| 14.6 | External value suppliers |
| 14.6.1 | Value Bindings |
| Form Controls accepting Value Bindings |
| 14.6.2 | External List Sources |
| 14.7 | Validation |
| 14.7.1 | Validation in OpenOffice.org |
| 14.7.2 | Validations and Bindings |
| 14.8 | Scripting and Events |
| 14.9 | Common Tasks |
| 14.9.1 | Initializing Bound Controls |
| 14.9.2 | Automatic Key Generation |
| 14.9.3 | Data Validation |
| 14.9.4 | Programmatic Assignment of Scripts to Events |
| 15 | Universal Content Broker |
| 15.1 | Overview |
| 15.1.1 | Capabilities |
| 15.1.2 | Architecture |
| 15.2 | Services and Interfaces |
| 15.3 | Content Providers |
| 15.4 | Using the UCB API |
| 15.4.1 | Instantiating the UCB |
| 15.4.2 | Accessing a UCB Content |
| 15.4.3 | Executing Content Commands |
| 15.4.4 | Obtaining Content Properties |
| 15.4.5 | Setting Content Properties |
| 15.4.6 | Folders |
| Accessing the Children of a Folder |
| 15.4.7 | Documents |
| Reading a Document Content |
| Storing a Document Content |
| 15.4.8 | Managing Contents |
| Creating |
| Deleting |
| Copying, Moving and Linking |
| 15.5 | UCB Configuration |
| 15.5.1 | UCP Registration Information |
| 15.5.2 | Unconfigured UCBs |
| 15.5.3 | Preconfigured UCBs |
| 15.5.4 | Content Provider Proxies |
| 16 | Configuration Management |
| 16.1 | Overview |
| 16.1.1 | Capabilities |
| 16.1.2 | Architecture |
| 16.2 | Object Model |
| 16.3 | Configuration Data Sources |
| 16.3.1 | Connecting to a Data Source |
| 16.3.2 | Using a Data Source |
| 16.4 | Accessing Configuration Data |
| 16.4.1 | Reading Configuration Data |
| 16.4.2 | Updating Configuration Data |
| 16.5 | Customizing Configuration Data |
| 16.5.1 | Creating a Custom Configuration Schema |
| 16.5.2 | Preparing Custom Configuration Data |
| 16.5.3 | Installing Custom Configuration Data |
| 16.6 | Adding a Backend Data Store |
| 17 | JavaBean for office components |
| 17.1 | Introduction |
| 17.2 | Using the OOoBean |
| 17.3 | The OOoBean by Example |
| 17.4 | API Overview |
| 17.5 | Configuring the Office Bean |
| 17.5.1 | Default Configuration |
| 17.5.2 | Customized Configuration |
| 17.6 | Internal Architecture |
| 17.6.1 | The Internal Office Bean API |
| 17.6.2 | OfficeConnection Interface |
| 17.6.3 | OfficeWindow Interface |
| 17.6.4 | ContainerFactory Interface |
| 17.6.5 | LocalOfficeConnection and LocalOfficeWindow |
| 18 | Accessibility |
| 18.1 | Overview |
| 18.2 | Bridges |
| 18.3 | Accessibility Tree |
| 18.4 | Content Information |
| 18.5 | Listeners and Broadcasters |
| 18.6 | Implementing Accessible Objects |
| 18.6.1 | Implementation Rules |
| 18.6.2 | Services |
| 18.7 | Using the Accessibility API |
| 18.7.1 | A Simple Screen Reader |
| Features |
| Class Overview |
| Putting the Accessibility Interfaces to Work |
| 19 | Scripting Framework |
| 19.1 | Introduction |
| 19.1.1 | Structure of this Chapter |
| 19.1.2 | Who Should Read this Chapter |
| 19.2 | Using the Scripting Framework |
| 19.2.1 | Running macros |
| 19.2.2 | Editing, Creating and Managing Macros |
| The Organizer dialogs for BeanShell and JavaScript |
| BeanShell Editor |
| JavaScript Editor |
| Basic and Dialogs |
| Macro Recording |
| 19.3 | Writing Macros |
| 19.3.1 | The HelloWorld macro |
| 19.3.2 | Using the OpenOffice.org API from macros |
| 19.3.3 | Handling arguments passed to macros |
| 19.3.4 | Creating dialogs from macros |
| 19.3.5 | Compiling and Deploying Java macros |
| 19.4 | How the Scripting Framework works |
| 19.5 | Writing a LanguageScriptProvider UNO Component Using the Java Helper Classes |
| 19.5.1 | The ScriptProvider abstract base class |
| 19.5.2 | Implementing the XScript interface |
| 19.5.3 | Implementing the ScriptEditor interface |
| 19.5.4 | Building and registering your ScriptProvider |
| 19.6 | Writing a LanguageScriptProvider UNO Component from scratch |
| 19.6.1 | Scripting Framework URI Specification |
| 19.6.2 | Storage of Scripts |
| 19.6.3 | Implementation |
| 19.6.4 | Integration with Extension Manager |
| Overview of how ScriptingFramework integrates with the Extension Manager API |
| 20 | Graphical User Interfaces |
| 20.1 | Overview |
| 20.1.1 | Implementation Details |
| 20.1.2 | Basic Concepts |
| 20.2 | Exception Handling |
| 20.3 | Dialogs and Controls |
| 20.4 | Dialog Creation |
| 20.4.1 | Instantiation of a Dialog |
| 20.4.2 | Setting Dialog Properties |
| Multi-Page Dialogs |
| 20.4.3 | Adding Controls to a Dialog |
| 20.4.4 | Displaying Dialogs |
| 20.5 | Dialog Handling |
| 20.5.1 | Events |
| Mouse Listeners |
| Keyboard Listener |
| Focus Listener |
| Paint Listener |
| Control element-specific events |
| 20.5.2 | Dialog Controls |
| Common Properties |
| Font-specific Properties |
| Other common Properties |
| Property propagation between model and control |
| Common Workflow to add Controls |
| The Example Listings |
| Label Field |
| Command Button |
| Image Control |
| Check Box |
| Radio Button |
| Scroll Bar |
| List Box |
| Combo Box |
| Progress Bar |
| Horizontal /Vertical Line Control |
| Group Box |
| Text Field |
| Text Field Extensions |
| Formatted Field |
| Numeric Field |
| Currency Field |
| Date Field |
| Timefield |
| Pattern Field |
| Roadmap Control |
| File Control |
| File Picker |
| Message Box |
| 20.5.3 | The Toolkit Service |
| Dockable Windows |
| 20.5.4 | Creating Menus |
| Accessibility |
| Rendering |
| 20.6 | Summarizing Example to create a UNO Dialog |
| 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.1.6 | Identifier Naming Convention |
| 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 |