OpenOffice.org as a platform for developers

Similar documents
OpenOffice.org. Extensions Infrastructure. What it is What it can What is planned

OpenOffice.org Programmability at a glance. Jürgen Schmidt OpenOffice.org Sun Microsystems, Inc.

IT6503 WEB PROGRAMMING. Unit-I

Distributed Multitiered Application

ArcGIS for Developers: An Introduction. Moey Min Ken

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

Nuxeo Roadmap. From Memphis to Chicago Nuxeo Team

Designing a Distributed System

NetBeans IDE Field Guide

25. DECUS Symposium THE Application Development Environment for OpenVMS

ODF API - ODFDOM. Svante Schubert Software Engineer Sun Microsystems, Hamburg

J2EE Interview Questions

Line Spacing and Double Spacing...24 Finding and Replacing Text...24 Inserting or Linking Graphics...25 Wrapping Text Around Graphics...

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

SAP Automation (BC-FES-AIT)

Writing Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p.

OpenOffice.org & ODF Accessibility

Introduction To Web Architecture

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

Exchanger XML Editor - Transformations

How to build Scientific Gateways with Vine Toolkit and Liferay/GridSphere framework

The DokWorks-Project OOoCon 2003 Development of a Document Management System (DMS) using IBM VisualAge Smalltalk 6.x and StarOffice + OpenOffice.

OpenOffice/StarSuite 新功能與實用技巧. Sun Microsystems Taiwan 吳宏彬 軟體技術顧問

Introduction to LibreOffice 5

Introduction to LibreOffice 6

SECTION II: JAVA SERVLETS

CA IdentityMinder. Glossary

Agenda. Summary of Previous Session. Extreme Java G Session 3 - Main Theme Java Core Technologies (Part I)

Tools to Migrate Windows Applications

CICS and the Web: Web-enable your CICS Applications

vsphere Web Client SDK Documentation VMware vsphere Web Client SDK VMware ESXi vcenter Server 6.5.1

Introduction. Enterprise Java Instructor: Please introduce yourself Name Experience in Java Enterprise Edition Goals you hope to achieve

Oracle Developer Day

Etanova Enterprise Solutions

Developing Ajax Web Apps with GWT. Session I

OpenOffice.org and XUL Embedding Gecko in OOo Stephan Schäfer

PDF Exporter Xpages Custom Control Documentation

The DCOM Connector HELP.BCMIDDCOM. Release 4.6C

Web Application Architecture (based J2EE 1.4 Tutorial)

Chapter 2 FEATURES AND FACILITIES. SYS-ED/ Computer Education Techniques, Inc.

Performance evaluation of J2EE

13. Databases on the Web

KINGS COLLEGE OF ENGINEERING 1

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Appendix A GLOSSARY SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC.

Sharing and Deploying MATLAB Programs Sundar Umamaheshwaran Amit Doshi Application Engineer-Technical Computing

Outline. Introduction to Java. What Is Java? History. Java 2 Platform. Java 2 Platform Standard Edition. Introduction Java 2 Platform

Tutorial Point Servlets Pdf

OpenOffice.org at the French Institute of Statutory Auditors

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

CapeConnect Three. Concepts

Components and Application Frameworks

SAS 9.2 Integration Technologies. Overview

Chapter 2 Introduction

Oracle9i Application Server Architecture and Com

Micro Focus Developer Kit

Take Your Oracle Forms on the Road Using ADF Mobile. Mia Urman, OraPlayer & Denis Tyrell, Oracle Corporation

Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect

STU SDK Redistribution

Rob Weir, IBM 1 ODF and Web Mashups

OrgPublisher 8.1 PluginX Implementation Guide

Overview of Web Application Development

Borland JBuilder 7 Product Certification. Study Guide

STANDARD : 12 MODEL QUESTION PAPER 2

JDMS - A Java Based Alternative to Motif DMS Windows Susanna Wallenberger, Janice Replogle, SAS Institute Inc., Cary NC

Database Explorer Quickstart

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

Java J Course Outline

Enterprise JavaBeans. Layer 05: Deployment

OOoCon 2004 Berlin. XML Technologies: W3C XSLT Functionality in OpenOffice.org. Svante Schubert. Slide 1

WEB GRAPHICS ADOBE PHOTOSHOP CS3. Learning Outcomes:

Java Beans Component APIs for Java. Graham Hamilton JavaSoft

(9A05803) WEB SERVICES (ELECTIVE - III)

Improve and Expand JavaServer Faces Technology with JBoss Seam

uick Start Guide 1. Install Oracle Java SE Development Kit (JDK) version or later or 1.7.* and set the JAVA_HOME environment variable.

Tutorial Point On Html5 Pdf

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

Introduction to Worklight Integration IBM Corporation

Web Presentation Patterns (controller) SWEN-343 From Fowler, Patterns of Enterprise Application Architecture

Teamcenter Global Services Customization Guide. Publication Number PLM00091 J

How to create custom Excel reports from Jira issues in no time

JBoss DNA. Randall Hauch Principal Software Engineer JBoss Data Services

Tutorial 6 : Receiving Siebel Integration Object through the Oracle AS Adapter

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

OpenOffice.org Writer

IBM Workplace Software Development Kit

pinremote Manual Version 4.0

AD105 Introduction to Application Development for the IBM Workplace Managed Client

Sun Java Studio Creator. Ken Paulsen Staff Engineer Sun Microsystems, Incorporated (Slides by: Craig R. McClanahan)

Technical product documentation

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group

Adobe ColdFusion 11 Enterprise Edition

How To Get Database Schema In Java Using >>>CLICK HERE<<<

Computer Application Practical

when your Jaguar is caught in the Web

Installing ArcIMS 9.1 on Windows

Properties Sidebar: Make editing much easier

Creating Web Mapping Applications. Nikki Golding

OpenOffice.org 2.x Resource Kit By Solveig Haugland, Floyd Jones

What we need. Agenda. What s J2EE. Challenges of Enterprise Application Development

Transcription:

OOoCon 2004 - Berlin OpenOffice.org as a platform for developers Mathias.Bauer@sun.com Mathias Bauer - OpenOffice.org Application Framework - Slide 1

Agenda Speaker introductions Features for development OpenOffice.org API architecture OpenOffice.org as a service provider Extending OpenOffice.org User Interface programmability AddOns OpenOffice.org AddOns (Demo) Q & A Mathias Bauer - OpenOffice.org Application Framework - Slide 2

Speaker introductions At Sun Microsystems: Working on StarOffice/OpenOffice.org since 1995 Application Framework, 3 rd party integration Manager Software Engineering Application Framework UNO SDK UCB For OpenOffice.org: Working on the project since its foundation Application Framework Project Lead Member of Engineering Steering Committee Mathias Bauer - OpenOffice.org Application Framework - Slide 3

Features for developers Support for many platforms and languages 11 languages available for standard builds More languages provided by the community OOo 2.0: New tool support for localizing help content Stable language independent API based on UNO Usable from Java, C++, OpenOfficeBASIC, Python Support for OLE automation on Windows (f.e. VB, Delphi) OOo 2.0: Language binding for CLI (.NET runtime) More programming and scripting languages through a language agnostic scripting framework (f.e. JavaScript) Implement own UNO services in C++, Java, Python OOo 2.0: Much simpler use of UNO services Mathias Bauer - OpenOffice.org Application Framework - Slide 4

Features for developers (continued) UNO Component and type registry Extend the OOo API by creating own types Register own UNO components XML based expandable configuration Read and write OOo configuration settings Create own configuration templates and settings Access through OpenOffice.org API Open, XML based file format Add arbitrary content streams to packages OOo 2.0: Store and read document variables Mathias Bauer - OpenOffice.org Application Framework - Slide 5

Features for developers (continued) Easy deployment of 3rd party components Based on ZIP packages Deployable on user or installation base OOo 2.0: New Package Manager Live Deployment Package Manager GUI Deployable content: Code: jar files, Basic modules, scripts, libraries (for multiple platforms in one file) Configuration files (schema and data) UNO types and services UI elements (Popup menus, toolbars, images) Document templates Mathias Bauer - OpenOffice.org Application Framework - Slide 6

OpenOffice.org API architecture Macro-Script. Server-Apps GUI-Apps... JavaBean A P I Application Framework Writer Calc Draw Impress SPI (Service Provider Interface) Content Filter Calc Add-in Data Connector... Mathias Bauer - OpenOffice.org Application Framework - Slide 7

OpenOffice.org as a service provider Connect through UNO Use any programming language supporting UNO calls Connect from Python Scripts Connect from Java Applets, Servlets, Java GUI Apps Connect from Native Applications On Windows: Connect via COM OOo 2.0: On Windows: Connect via.net Use existing GUI embedding technologies ActiveX OLE documents Java Applet Java (AWTContainers) OOo 2.0: Netscape Plugin OOo 2.0: Java Beans Mathias Bauer - OpenOffice.org Application Framework - Slide 8

Development Opportunities OpenOffice.org as content format gateway Provide 1 format, publish to N Server based document conversions OpenOffice.org as a point of service integration Relational Databases Address books, LDAP directory Web services File/Content management systems OOo 2.o: Workflow management XForms support Document variables Digital signing of documents Mathias Bauer - OpenOffice.org Application Framework - Slide 9

Service Integration LDAP Directory OO.org Enterprise Database Public Web Service Intranet Web Service Dynamic Document Model Mathias Bauer - OpenOffice.org Application Framework - Slide 10

Service Integration LDAP Directory Enterprise Database Contacts Data Data SDBC Data GUI (JDBC, JNDI) Fields Content OO.org Mr. Mathias Bauer Sun Microsystems... insert a paragraph Intranet Web Service Content Public Web Service Response Response JAXM / XML RPC client Mathias Bauer - OpenOffice.org Application Framework - Slide 11

Content Format Gateway *XML HTML PDF OpenOffice.org XML format OASIS Open Office XML format OpenOffice.org SVG RTF Flash Closed Proprietary Formats (e.g. MS Office) Mathias Bauer - OpenOffice.org Application Framework - Slide 12

Content Format Gateway use case http://x.y/abc.sxw OO.o This is a sample document that was written in OpenOffice.org, published to our intranet web-site. It is converted automatically to other needed formats, either when the document is updated,or when a browser requests a specific format. Browser This is a sample document that was written in OpenOffice.org, published to our intranet web-site. It is converted automatically to other needed formats, either when the document is updated,or when a browser requests a specific format. HTTP-GET HTTP-PUT HTTP-GET Clients W e b S e r v e r OpenOffice. org AP I Servlet http://x.y/abc.html http://x.y/abc.pdf http://x.y/abc.swf Formats This is a sample docu was Open This This is is a a sample document sample that was document written that in OpenOffice.org, was written in... StarOffice,...??? HTM PDF This is a sample doc was Ope Flas This is a sample document that was written in OpenOffice,... Mathias Bauer - OpenOffice.org Application Framework - Slide 13

Extending OpenOffice.org Adding external components to OpenOffice.org Provide UNO components (see Developers Guide) Bridge to other technologies (COM, Java etc.) Provide UNO wrappers for existing components Call non-uno based components Build your components with the OpenOffice.org SDK Currently possible languages: C++, Java, Python Develop platform independent components Use Java Provide libraries for several platforms in one package Use SDK libraries for platform support Replace existing components or add new ones Mathias Bauer - OpenOffice.org Application Framework - Slide 14

OpenOffice.org API architecture Macro-Script. Server-Apps GUI-Apps... JavaBean A P I Application Framework Writer Calc Draw Impress SPI (Service Provider Interface) Content Filter Calc Add-in Data Connector... Mathias Bauer - OpenOffice.org Application Framework - Slide 15

Integrating external components Registration of new Service Providers Data Connectors: new data connections Calc Add-ins: new functions in Calc formulas Content Providers: new file sources Document import/export filters OOo 2.0: Impress Shapes Exchange current implementations Example: FilePicker and FolderPicker service Spell Checker Replace existing Service Providers Call external components from the GUI Add new GUI elements Redirect calls from existing GUI elements Mathias Bauer - OpenOffice.org Application Framework - Slide 16

Content Access: UCB Makes content hierarchies accessible through URLs ( http, ftp, file, webdav ) Extend it by defining new protocol schemes Implement access to folders and files following the UCP API Broker UCB Providers FILE UCP HTTP UCP IMAP UCP Contents Folder Content File Content Account Folder Content Message File Content Document Folder Content Mathias Bauer - OpenOffice.org Application Framework - Slide 17

Special: Hierarchy UCP Implements a UCP on a registry backend Default registry backend available working on the OOo configuration Can map arbitrary hierarchies Fixed hierarchies: provide configuration file Moderately changing hierarchy: same as above, but provide service that updates configuration on demand Dynamic hierarchy: provide your own backend Mathias Bauer - OpenOffice.org Application Framework - Slide 18

Integration with CMS Provide WebDAV access OO.org CMS Implement Content Provider Service Own dialog as OpenOffice.org Add-On Mathias Bauer - OpenOffice.org Application Framework - Slide 19

User Interface: Programmability Generic OpenOffice.org UI is XML based Menubar Toolboxes Keyboard shortcuts Event bindings Modification of UI elements Modify the XML files directly Add toolbars as many as you like with new XML files Add toolbars and menubar popups through AddOn configuration files OOo 2.0: API for accessing UI elements at runtime OOo 2.0: Replace menu entries by registered popups Mathias Bauer - OpenOffice.org Application Framework - Slide 20

User Interface: Dispatching Modify or extend the UI through Dispatch Objects Disabling of selected commands: Configuration means Redirecting of internal commands: Dispatch Interception Introducing new commands: Protocol Handlers Functionality is described by commands Commands are strings with URL like syntax OpenOffice.org searches for command handlers implementing the DispatchProvider service Dispatch Providers create Dispatch objects that are bound to the User Interface element Dispatch objects send status information Dispatch objects execute commands Dispatch objects are very lightweight objects Mathias Bauer - OpenOffice.org Application Framework - Slide 21

Default Dispatching process UI Bound command Frame Framework dispatch provider Document dispatch provider Mathias Bauer - OpenOffice.org Application Framework - Slide 22

Intercepted dispatching process UI Bound command Frame Framework dispatch provider Document dispatch provider Dispatch Interceptor Mathias Bauer - OpenOffice.org Application Framework - Slide 23

Complete dispatching process Protocol Handler UI Unknown protocol Bound command Frame Framework dispatch provider Document dispatch provider Dispatch Interceptor Mathias Bauer - OpenOffice.org Application Framework - Slide 24

OpenOffice.org AddOn concept Chapter 4.7.3 in the OOo 1.1 Developers Guide Sample code for Demo Addon in OOo 2.0 SDK Java C++ Basic elements: GUI configuration files for menu, toolbars Images for toolbar and menu entries Protocol Handler Dispatch Interceptor, Context Menu interceptor Event Listeners Jobs Pack up everything into a zip file Mathias Bauer - OpenOffice.org Application Framework - Slide 25