- 1. BP204 Integration of OpenOffice.org and IBM Lotus Notes and
Domino
2. Before we begin
- Please turn off/set to vibrate/mute all Cell Phones Pagers
Computers Please remember to fill out your evaluations
3. Agenda
- EXAMPLE 1 thru 3 The Hello World examples
- EXAMPLE 4 Hello World using Java
- EXAMPLE 6 Fun with Spreadsheets
- EXAMPLE 7 A Real World Notes Application
- EXAMPLE 8 Impress with Impress
- Notes 8 Productivity Editors
4. Who are we?
5. About Dominux 6. Who are we?
- Offering and Development Manager for frameworks at PSC Group,
LLC
- Involved in Lotus technology since 1993
-
- Over 22 sessions at Lotusphere since 1996
-
- Speaker at Advisor conferences
-
- Advisor Magazine and other publications on Office and
SmartSuite integration with Notes
-
- LotusUserGroup.org contributing Author and Forum moderator
7. PSC Group, LLC
- IBM Premium Business Partner for 15+ Years
- Winner of 2007 Lotus Award!
- Host of the following blogs:
-
- Ed Brills( www.edbrill.com )
-
- Alan Lepofskys Notes Tips( www.alanlepofsky.net )
-
- Alan Gartenberg - Sametime( www.adamgartenberg.com )
-
- Jeff Eisen Hannover ( www.jeffeisen.com )
-
- Domino Server Team (www.dominoblog.com)
8. A little poll ...
9. OpenOffice.org The History
- Star Division Star Office written in the mid 80s
- Bought by Sun Microsystems in 1999
- Sun Star Office released in August 1999
- Source code released October 2000
- OpenOffice.org 1.0 released May 2002
- OpenOffice.org 2.0 released October 2005
- OpenDocument format becomes international standard ISO/IEC
26300 November 2006
- IBM Lotus Workplace Productivity Editors released 2005
- Notes 8 to include IBM Productivity Editors
10. What is OpenOffice.org?
- From the website: free office suite - OpenOffice.org is a
multiplatform and multilingual office suite and an open-source
project. Compatible with all other major office suites, the product
is free to download, use, and distribute. To help build the
community, join us.
- And the mission statement: To create, as a community, the
leading international office suite that will run on all major
platforms and provide access to all functionality and data through
open-component based APIs and an XML-based file format.
11. What is OpenOffice.org?
- Getting past the marketing speak
- OpenOffice is an alternative to Microsoft Word, Excel, and
PowerPoint which isFREE
- Provides the following applications
-
- Impress Presentation Program
-
- Math Math Function Creator
12. Why should I care about OpenOffice.org?
- Only office suite that supports Open Document Format (ODF)
100%
- A free alternative to Microsoft Office
- OpenOffice is the basis of the IBM Productivity Tools included
with IBM Lotus Notes 8
13. OpenOffice.org - Licensing
-
- LGPL the GNU Lesser General Public License
-
- Lesser means that non-free code can use integration with
OpenOffice.org (roughly speaking)
14. OpenOffice.org != StarOffice
- StarOffice is Suns packaged version of OpenOffice
- Sun adds other software, services, and support
- For development purposes, you can write code that runs in
both
15. Introduction to OpenOffice.org Development
- The OpenOffice Development effort is designed on an
interface-based component model called UNO ( Universal Network
Objects)
- UNO Definition: UNO offers interoperability between different
programming languages, different object models, different machine
architectures and different processes; either in a local network or
even via the Internet. UNO components can be implemented in and
accessed from any programming language for which a UNO language
binding exists.
16. Say Hi to the ServiceManager
- The ServiceManager is kind of like the NotesSession class, it
is a factory class that gets you to other places
-
-
- Set SM=CreateObject("com.sun.star.ServiceManager")
- You can think of the ServiceManager as a back end class, and we
want the front end, (like NotesUIWorkspace)
-
-
- Set
Desktop=SM.createInstance("com.sun.star.frame.Desktop")
17. What did that do? 18. Lets start an application
- So far we have an OpenOffice.Org window, but it doesn't yet
know what application it will be, so we have to tell it.
-
-
- Set WriterApplication=Desktop.loadComponentFromURL
("private:factory/swriter","_blank",0,args)
- Args is a variant array, we don't want to pass any parameters,
but it must be an array.
- The s in swriter stands for Star
- Now we have a word processor up and running
19. The picture so far . . . 20. Now for some text
- First we need to get a handle to the text part of the
document
-
-
- Set WriterText=WriterApplication.getText()
- And we need a cursor position where we can insert some
text
-
-
- Set Cursor=WriterText.createTextCursor()
- Finally we can make the traditional greeting
-
-
- Call WriterText.insertString(Cursor,"Hello World!",False)
21. Hello World! 22. EXAMPLE 1 Writer Hello World - Lets see all
the code together
-
-
- Sub Click(Source As Button)
-
-
- Set SM=CreateObject("com.sun.star.ServiceManager")
-
-
- Set
Desktop=SM.createInstance("com.sun.star.frame.Desktop")
-
-
- Set WriterApplication=Desktop.loadComponentFromURL_
-
-
- ("private:factory/swriter","_blank",0,args)
-
-
- Set WriterText=WriterApplication.getText()
-
-
- Set Cursor=WriterText.createTextCursor()
-
-
- Call WriterText.insertString(Cursor,"Hello World!",False)
23. EXAMPLE 2 Hello Calc
-
-
- Sub Click(Source As Button)
-
-
- Set SM=CreateObject("com.sun.star.ServiceManager")
-
-
- Set
Desktop=SM.createInstance("com.sun.star.frame.Desktop")
-
-
- Set CalcApplication=Desktop.loadComponentFromURL_
-
-
- ("private:factory/scalc","_blank",0,args)
-
-
- Set Worksheet=CalcApplication.Sheets.getByName("Sheet1")
-
-
- Set cell=Worksheet.getCellByPosition(3,6)
-
-
- Call cell.setString("Hello World!")
- We have set the string in a cell, but which cell is it?
24. D7! 25. Rows and columns are numbered from zero 26. Now for
Impress
- Impress and Draw are almost the same application
- Text is handled just like it is in Writer
27. EXAMPLE 3 Hello World from Impress
-
-
- Set SM=CreateObject("com.sun.star.ServiceManager")
-
-
- Set
Desktop=SM.createInstance("com.sun.star.frame.Desktop")
-
-
- Set ImpressApplication=Desktop.loadComponentFromURL_
-
-
- ("private:factory/simpress","_blank",0,args)
-
-
- Set Presentation=ImpressApplication.getDrawPages()
-
-
- Set Slide=Presentation.getByIndex(0)
-
-
- Slide.layout=1 'this layout has a title and an outline
-
-
- Set title=Slide.getbyindex(0) 'the first shape is the
title
-
-
- Set TitleText=title.getText() 'this bit is like talking to
writer
-
-
- Set Cursor=TitleText.createTextCursor()
-
-
- Call TitleText.insertString(Cursor,"Hello World!",False)
28. 29. The Help Files how to read them
- Interfaces collections of properties
- In LotusScript you can use methods and properties from any
interface
- In Java and C you have to specify which interface you want to
use.
30. EXAMPLE 4 Lets see some Java
- The examples in the help files are typically in Java
- You have to specify the interface you want to use on an
object
31. More to say then Hello
- So far, we have shown you the basics
-
- How to connect to OpenOffice.org from Notes
-
- LotusScript and Java examples
- Now, let's show you some real-world, useful demos
32. EXAMPLE 5 Mail Merge
- Same concepts as Word Mail Merge
33. Spreadsheets with Calc
- How would you like your spreadsheet to work?
-
-
- Dim ss as new spreadsheet
-
-
- ss.setcell(3,6,Hello World!)
-
-
- print ss.findrow(3,Hello World!)
34. EXAMPLE 6 Spreadsheets
35. How it works
-
-
- public cols list as Column
-
-
- 'all the hard work happens here
- Lists of lists are very cool
36. EXAMPLE 7 OpenOffice.org in a Real World Application
37. EXAMPLE 8 Impresing with Impress
38. The Notes 8 Productivity Editors
- How do they relate to OpenOffice.org?
39. Wrap-Up
- A Real World Notes Application
- Notes 8 Productivity Editors
- 8 Examples you can take home with you!
40. Resources
- LDD Discussions (Notes.Net)
http://www-130.ibm.com/developerworks/lotus
- OpenOffice.orghttp://www.openoffice.org
- OpenOffice Developers Guide
http://api.openoffice.org/DevelopersGuide/DevelopersGuide.html
- Programming OpenOffice with Visual Basic
http://www.kalitech.fr/clients/doc/VB_APIOOo_en.html
- Alan Bell's blog http://www.dominux.co.uk/dominuxblog.nsf
- John Heads blog http://www.johndavidhead.com
- Slides and content available from http://www.johndavidhead.com
http://www.dominux.co.uk
41. Thank You! Questions & Answers We will be in the speaker
room after the session Please remember to fill out your evaluation.
[email protected]://www.dominux.co.uk/dominuxblog.nsfhttp://www.dominux.co.uk
[email_address] www.johndavidhead.com www.psclistens.com