WIRTSCHAFTSUNIVERSITÄT WIEN BAKKALAUREATSARBEIT

Embed Size (px)

Citation preview

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    1/82

    WIRTSCHAFTSUNIVERSITT WIENBAKKALAUREATSARBEIT

    Titel der Bakkalaureatsarbeit:

    Automatische Erstellung von Orientierungshilfen fr PrsentorInnen inOpenOffice.org Impress

    Enlis!"er Titel der Bakkalaureatsarbeit:

    Automated Creation of Guideposts & Hints for Presenters inOpenOffice.org Impress

    Ver#asser: omini! Gundac!er

    $atrikel%Nr&: "#$%%$

    Studienri!"tun: '"(( $) *a!!alaureat +irtschaftsinformati!

    Kurs: %$) ,ertiefungs!urs ,I - *a!!alaureatsareitElectronic Commerce

    Te'ts(ra!"e: Englisch

    Betreuerin)Betreuer: ao. /niv. Prof. r. 0on1 G. 2latscher

    Ich versichere3

    dass ich die *a!!alaureatsareit selststndig verfasst4 andere als die angegeenen 5uellen undHilfsmittel nicht enut6t und mich auch sonst !einer unerlauten Hilfe edient hae.

    dass ich die Ausareitung 6u dem oigen 7hema isher 8eder im In9 noch im Ausland :einer*eurteilerin- einem *eurteiler 6ur *egutachtung; in irgendeiner 2orm als Prfungsareit vorgelegthae.

    dass diese Areit mit der vom *etreuer eurteilten Areit ereinstimmt.

    atum /nterschrift

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    2/82

    Page )

    Table *# C*ntents% Introduction...................................................................................................................

    %.% Astract..................................................................................................................

    %.) 0esearch 5uestion................................................................................................

    %.( ect 0e??.................................................................................................=

    ).%.% Histor1............................................................................................................=

    ).%.) 0e??@A...........................................................................................................

    ).%.( Overvie8.........................................................................................................).%.# B1nta?.............................................................................................................

    ).) OpenOffice.org....................................................................................................%(

    ).).% Histor1..........................................................................................................%(

    ).).) Overvie8.......................................................................................................%(

    ).).( Architecture..................................................................................................%#

    ).).# Bervices & Interfaces...................................................................................%

    ).( *ean Bcripting 2rame8or! for 0e??....................................................................%).(.% *ean Bcripting 2rame8or!...........................................................................%

    ).(.) *B2#0e??....................................................................................................)"

    ).(.( *B2.C@B.......................................................................................................))

    ).(.# /DO.C@B......................................................................................................)(

    ).(.$ 0outines.......................................................................................................)#

    ).# Bummar1.............................................................................................................)$

    ( Installation Guide........................................................................................................)

    (.% Installation 'ava...................................................................................................)

    (.) Installation OpenOffice.org..................................................................................)=

    (.( Installation Open O>ect 0e??.............................................................................)=

    (.# Installation *B2#0e??.........................................................................................)

    # Impress Automation...................................................................................................()

    #.% General................................................................................................................()

    #.) Introduction E?ample...........................................................................................(#

    #.( E?amples.............................................................................................................#"

    #.(.% E?ample"%...................................................................................................#%

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    3/82

    Page (

    #.(.) E?ample")...................................................................................................#$

    #.(.( E?ample"(...................................................................................................#

    #.(.# E?ample"#...................................................................................................$#

    #.(.$ E?ample"$...................................................................................................$=

    #.(. E?ample"...................................................................................................%

    #.(.= E?ample"=...................................................................................................

    #.(. E?ample"...................................................................................................=%

    #.(. E?ample"...................................................................................................=$

    $ Conclusion..................................................................................................................=

    0eferences.................................................................................................................."

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    4/82

    Page #

    Table *# Fiures2igure %3 Communication et8een /DO components 2lat"F.....................................%$

    2igure )3 /DO Component odel 2lat"$F.....................................................................%$

    2igure (3 Illustration of Berviceanager OpenOf"=cF...................................................%=

    2igure #3 Interfaces & ethods OpenOf"=cF.................................................................%

    2igure $3 Architecture of *B2#0e?? 2lat"cF................................................................)%

    2igure 3 2rom oo0e?? to Automation Aham"$F...........................................................)$

    2igure =3 Options ialog in OOo.....................................................................................)

    2igure 3 E?tension anager..........................................................................................("

    2igure 3 acros installation...........................................................................................(%

    2igure %"3 Presentation ocument odel OOoev"$F.................................................(#

    2igure %%3 Organi6e acros...........................................................................................($

    2igure %)3 acro editor...................................................................................................(

    2igure %(3 Hello +orld 7e?tBhape ..............................................................................(

    2igure %#3 Clic!Event on 7e?tBhape..............................................................................(

    2igure %$3 Progress ar..................................................................................................#(

    2igure %3 Pacman on his 8a1 to the cherries...............................................................#=

    2igure %=3 *om 8ith fuse..............................................................................................$)

    2igure %3 E?plosion slide...............................................................................................$(

    2igure %3 Cloc! transition..............................................................................................$

    2igure )"3 Input dialogs.................................................................................................."

    2igure )%3 Generated rea! slide..................................................................................."

    2igure ))3 Blide effects...................................................................................................#

    2igure )(3 ialog for choosing the speed.......................................................................$

    2igure )#3 uration of one slide......................................................................................$2igure )$3 5uestion dialog for end slide.........................................................................$

    2igure )3 Guideposts from heading..............................................................................

    2igure )=3 Guideposts 8ith oo!mar!s..........................................................................=#

    2igure )3 Generated agenda.........................................................................................=

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    5/82

    Page $

    Table *# Sni((etsBnippet %3 Hello +orld....................................................................................................%"

    Bnippet )3 ,ariales........................................................................................................%"

    Bnippet (3 Control Btructures %.......................................................................................%%

    Bnippet #3 Control Btructures ).......................................................................................%%

    Bnippet $3 Control Btructures (.......................................................................................%)

    Bnippet 3 Control Btructures #.......................................................................................%)

    Bnippet =3 *B2#0e?? simple e?ample...........................................................................)(

    Bnippet 3 *B2#0e?? message o? e?ample................................................................)(

    Bnippet 3 /sing /DO.C@B.............................................................................................)#

    Bnippet %"3 Interfaces 8ith es!top...............................................................................(

    Bnippet %%3 Introduction e?ample :""introduction.re?;.................................................(

    Bnippet %)3 Progressar :"%progressar.re?;..............................................................#)

    Bnippet %(3 Pacman :")pacman.re?;...........................................................................#=

    Bnippet %#3 *om :"(om.re?;...................................................................................$%

    Bnippet %$3 Cloc! :"#cloc!.re?;....................................................................................$$

    Bnippet %3 Create *rea! Blide :"$rea!.re?;..............................................................$

    Bnippet %=3 ,arious tas!s :"finishpresentation.re?;.................................................(

    Bnippet %3 Guideposts from headings :"=guideposts.re?;.........................................

    Bnippet %3 Guideposts 8ith circles and oo!mar!s :"guidepostscircles.re?;........ =(

    Bnippet )"3 Create an agenda :"agenda.re?;............................................................==

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    6/82

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    7/82

    General Part Page =

    , 1eneral 2art

    7his chapter contains an overvie8 of all the used tools4 applications and frame8or!s4

    8hich are needed for the automation of Impress and other OpenOffice.org applications.

    In addition to the technical prereKuisites4 the most important terms 8ill e defined here4

    to ease the access to the topic of the achelor paper.

    ,&+ 3(en 3b4e!t Re''

    7he paper starts 8ith some introductor1 8ords aout the scripting language Open

    O>ect 0e?? and ho8 it emerges from I*Ls 0EMM language. 7here 8ill also e a

    section 8ith the asic s1nta? of Open O>ect 0e??4 8hich is reall1 not that hard to learn

    and understand.

    ,&+&+ Hist*r/

    Open O>ect 0e?? has its seeds in the human centric language 0EMM :Restructured

    E5tended E5ecutor; implemented 1 i!e Co8lisha8 of I* et8een )" arch %=

    and mid9%). 7he main purpose of the development of 0EMM 8as to replace I*Nsmainframe atch language EMEC II.

    2lat"aF

    Eventuall1 in % 0EMM 8as een standardi6ed 1 ADBI4 8hich pulished it under the

    code ADBI M(.)=#% Information 7echnolog1 Programming @anguage 0EMMQ.

    +i!i0e"=F

    In the %"s4 there 8ere t8o ne8er variants of 0EMM4 8hich 8ere released3

    Det0e?? this version compiles to 'ava 1te9code and ma!es use of the 'ava

    o>ect model. 7herefore it is not generall1 up8ards9compatile 8ith the RclassicL

    0EMM.

    O>ect 0e?? the generall1 up8ards9compatile version of 0EMM4 8hich

    implements the o>ect9oriented paradigm.

    +i!i0e"=F

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    8/82

    General Part Page

    As noted aove4 O>ect 0e?? is the o>ect9oriented approach to the scripting language

    0e??. One of the reKuirements of this version 8as the full compatiilit1 8ith otherinterpreters that 8ere not o>ect9oriented or other Open Bource 0e?? interpreters

    currentl1 availale.

    OO0e??"=F

    7his 8as a reKuest of the BHA0E BIG :special interest group;.

    In %= after 1ears of development4 the commercial version of O>ect 0EMM 8as

    released included in OB-) +arpQ. @ater on4 I* uilt versions for +indo8s4 AIM and

    e?perimental ports for @inu? and Bolaris.

    2lat"aF

    7he last step of 0EMM ecoming Open O>ect 0e?? 8as the decision from I* to ma!e

    their product availale to the open source communit1. 7he1 choose the 0e??@A for

    managing the pro>ect in )""#.

    7he first release of Open O>ect 0e?? 8as announced in arch )""$.

    OO0e??"=aF

    ,&+&, Re''LA

    7he 0e?? @anguage Association :0e??@A; is an independent4 non9profit organi6ation

    dedicated to promoting the use and understanding of the 0e?? programming language

    0e??@A"=F

    7his special interest group 8as involved in porting O>ect 0e?? to an open sourcepro>ect in )""# as mentioned aove. Ever1 1ear4 the group holds a annual meeting

    called SAnnual International 0e?? B1mposium 8here the memers and other e?perts

    present ne8 and interesting pro>ects.

    ,&+&. 36er6ie0

    7his paragraph deals 8ith the main features and fundamental principles of the 0e??

    language. One of the ma>or advantages of 0e?? is that it is ver1 eas1 to learn4 even8ithout advanced programming s!ills4 and that it facilitates a rapid development

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    9/82

    General Part Page

    process.

    7he main features are the follo8ing3

    Natural lanuae s/nta' +ith Open O>ect 0e?? 8riting and maintainingprograms is ver1 eas1. Intuitive instructions4 8hich are oriented to the English

    language4 ma!e programming accessile to I7 or usiness users. *ecause 0e??

    does not use an1 strange areviations4 it is eas1 to read a program or script

    and readil1 understand its functionalit14 for e?ample. RB1stem.out.println:??Q;L in

    'ava and Ba1 ??Q in 0e??.

    3b4e!t *rientati*n Bupports effective componenti6ation and all the other

    advantages of the o>ect9oriented paradigm.

    I7(li!it data t/(in In 0e??4 there is no need to e?plicitl1 declare variales.

    7hat reduces the comple?it1 of application code and ma!es programming more

    intuitive and faster.

    8e!i7al arit"7eti! Open O>ect 0e?? performs calculations in a more

    accurate 8a1. 7he asence of rounding ma!es it eas1 to compl1 8ith legal

    reKuirements for financial reporting.

    Cr*ss%(lat#*r7 inter*(erabilit/ 0educes development costs and supports

    s!ills transfer across platforms.

    Ra(id dian*sti!s In the case of e?ceptions and errors4 Open O>ect 0e??

    provides the user 8ith clear messages and a uilt9 in4 multi9level deugger.

    OO0e??"=aF

    ,&+&9 S/nta'

    In order to understand the e?amples and snippets in the follo8ing sections of this

    paper4 a short introduction into the Open O>ect 0e?? language is inevitale. 7his

    paper does not 8ant to rea! an1 conventions for descriing a programming language4

    so the first piece of code is the infamous SHello +orld e?ample.

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    10/82

    General Part Page %"

    7his snippet sho8s man1 aspects of 0e??3

    $ulti line !*77ents Btarting 8ith a slash and an asteris!4 a comment can

    span over multiple lines. An asteris! and a slash closes the comment.

    Sinle line !*77ent Btarting 8ith a doule minus sign or dash4 a comment

    can e made onl1 till the end of the line.

    C*77and end Dormall14 a command consists of all characters till the

    semicolon. It is possile to 8rite as man1 commands as one prefers in one line.

    If there is no semicolon4 the command ends at the end of the line.

    Basi! !*77ands BAT prints the follo8ing string literals4 variales4 etc. to the

    command shell 8here the 0e?? script 8as started.

    EMI7 "4 as the name implies4 e?its the program and sends " ac! to the shell.

    +hereas " generall1 means that the program finished 8ith no prolems or

    errors.

    2lat"F

    7his snippet sho8s the follo8ing facts3

    One do not need to specif1 a data t1pe or something similar. 0e?? automaticall1

    detects if the value inside a variale is a string or a numeric value and handles the

    Snippet 2: Variables

    Snippet 1: Hello World

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    11/82

    General Part Page %%

    operation itself.

    0e?? also treats several 8hite spaces in commands and string concatenations as one

    8hitespace. 7hat is 8h1 the output of the SAYnumer % and SAYnumer ) are eKual.

    7he doule9pipe in a string concatenation avoids the single 8hitespace et8een the

    strings and connects the value of aand the value of bseamless together.

    7he last SAYcommand adds the t8o values regardless the fact that b8as initiali6ed

    8ith a string literal containing the numer #.

    2lat"F

    7he ne?t snippets sho8 ho8 control structures are implemented in 0e??3

    7he IF ELSEimplementation of 0e?? loo!s li!e in an1 other programming language.

    If one 8ants to ma!e a loc! of commands4 for e?ample to e processed in the IFor

    ELSEranch4 then the DO ENDcommands are appropriate. 7here is no need for a

    enclosing tag.

    +ith the !e18ords DOand ENDrespectivel1 a loop is implemented in 0e??. One can

    specif1 the numer of iterations after DO.

    Snippet 4: Control Structures 2

    Snippet 3: Control Structures 1

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    12/82

    General Part Page %)

    7he eKuivalent to a for loop in 'ava is the DOTOBYloop. +ith this loop one can

    specif1 the start value of a control variale4 the value 8hen the loop should e e?ited

    and the value that 8ould e added to the control variale after each iteration.

    7he last snippet sho8s the DO-WHILEloop. In fact it is nearl1 the same li!e the DO-

    TO-BY loop4 ut unli!e this version4 one has to manage the increase of the control

    variale himself. 7he !e18ord WHILEcan e changed to UNTIL4 8hich alters the 8a1

    ho8 the loop 8ill e e?ited.

    2lat"F

    Snippet 6: Control Structures 4

    Snippet 5: Control Structures 3

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    13/82

    General Part Page %(

    ,&, 3(en3##i!e&*r

    7his paragraph deals 8ith the ne?t essential part of this achelor paper3 7he

    OpenOffice.org office suite. 7he first part descries the historic facts of the pro>ect4 later

    on the paper sho8s the main components of OpenOffice.org.

    OpenOffice.org is a free suite of office applications availale under the GD/ @esser

    General Pulic @icense :@GP@;. 7he soft8are pac!age includes a 8ord processor4 a

    spreadsheet4 a presentation program4 a dataase program and a vector graphics

    editor. 7he suite is targeted to reduce the mar!et share of icrosoftNs Office and en>o1s

    increasing popularit1 amongst the communit1.+i!iOo"=F

    ,&,&+ Hist*r/

    7he origin of OpenOffice.org is the compan1 Btarivision4 8hich 8as founded in

    German1 in % 1 arco *Urries. OpenOffice.org emerged from the earlier

    proprietar1 soft8are application suite BtarOffice.

    +i!iOo"=F

    After Bun icros1stems acKuired Btarivision in %4 the1 released BtarOffice $.)4 the

    first version 8hich 8as free of charge. OpenOf"=aF

    In )""" Bun released the source code under oth the @GP@ and the Bun Industr1

    Btandards Bource @icense :BIBB@;. Bince the autumn of that 1ear4 the product is no8

    called OpenOffice.org. Tears later Bun changed the s1stems 8ith t8o different license

    t1pes and decides to continue their 8or! 8ith the usage of the @GP@.

    At the time 8hen this paper 8as 8ritten4 the current version of OpenOffice.org 8as

    ).).% 0C% uild B0C"m% and 8as released on a1 $th4 )""=.

    +i!iOo"=F

    ,&,&, 36er6ie0

    7he OpenOffice.org office suite consists of different applications. Dearl1 all of them

    have corresponding applications in icrosoftNs Office. 7his fact should ma!e it easier

    for users4 to s8itch to the open source suite.

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    14/82

    General Part Page %#

    7he components are the follo8ing3

    Writer 7he 8ord processing application4 similar to B +ord4 can e used to

    create te?t documents4 from simple letters to oo!s or thesis li!e this one.

    Cal! 7he spreadsheet program is the counterpart to B E?cel 8ith the asic

    functionalities li!e tales4 cell and calculations ut also provides the user 8ith a

    comprehensive range of advanced functions.

    I7(ress 7he presentation soft8are of OpenOffice.org. @i!e Po8erPoint4

    Impress can e used for creating multimedia presentations. 7his component 8ill

    e heavil1 used across the paper.

    Base *ase is a dataase application and can e compared 8ith B Access. In

    *ase creation of tales4 reports4 Kueries and forms is possile.

    8ra0 ra8 represents a vector graphics editor to create and design

    ever1thing from simple diagrams to d1namic ( illustrations.

    $at" A tool4 8hich can e used to create mathematical eKuations4 either 8ith

    a graphical user interface :G/I; or a eKuation editor.

    +i!iOo"=F OpenOf"=F

    ,&,&. Ar!"ite!ture

    7his section 8ill cover the architecture of OpenOffice.org to act as an entr1 point for the

    automation. 7he facts presented here are essential for the understanding of the

    snippets and nutshells in this paper.

    OpenOffice.org is ased on a client9server architecture. 7he communication et8een

    the la1ers is t1picall1 supposed to run over 7CP-IP soc!ets 1 using /DO remote

    protocol :urp;4 8hereas a t1pical installation of this office suite runs on a single PC

    rather than on different machines 8ith each running different operating s1stems4 8hich

    is possile.

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    15/82

    General Part Page %$

    2igure %illustrates the communication et8een /DO o>ects.

    Figure 1: Communication between !" components #Flat$6%

    7he o>ect model used in OpenOffice.org is called /niversal Det8or! O>ects :/DO;

    and ever1 component or o>ect is defined using an interface description language

    :I@;. 7hat means that each application4 for e?ample Impress4 represents a set of those

    components assemled together.

    2igure )tries to picture this concept4 8hereas it should e noted that s8riter or scalc

    can here e replaced 1 an1 otherOpenOffice.org applications.

    2lat"$F

    Figure 2: !" Component &odel #Flat$5%

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    16/82

    General Part Page %

    ,&,&9 Ser6i!es ; Inter#a!es

    3b4e!ts

    SIn /DO4 an o>ect is a soft8are artifact that has methods that 1ou can call andattriutes that 1ou can get and set. E?actl1 8hat methods and attriutes an o>ect

    offers is specified 1 the set of interfaces it supports.

    OpenOf"=cF

    Inter#a!e

    SAn interface specifies a set of attriutes and methods that together define one single

    aspect of an o>ect

    OpenOf"=cF

    Each /DO component consists of interfaces and properties4 8hich provide access to

    the different functionalities of the components. Properties are used for storing

    information for these services.

    7o retrieve a ne8 instance of a service component one has to use a Berviceanager4

    8hich is an implementation of the factor1 method pattern in soft8are programming.7he methods createInstance:; or createInstanceWithArguments:; in comination

    8ith the full1 Kualified name of the /DO component can e used to create the so9called

    service o>ects.

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    17/82

    General Part Page %=

    Figure 3: 'llustration o( Ser)ice&anager #"pen"($*c%

    In order to get access to methods from an interface4 one has to Kuer1 the service o>ect

    for the interface itself. 7his step is mandator1 and returns an o>ect4 8hich has the

    methods of the reKuested interface4 8hich can e invo!ed no8.

    7his 8or! flo8 seems ver1 a8!8ard4 ut offers fe8 advantages li!e the separation and

    grouping of methods that elong semanticall1 and functionall1 together.

    2lat"$F

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    18/82

    General Part Page %

    Figure 4: 'nter(aces + &et,ods #"pen"($*c%

    2igure #sho8s ho8 t8o o>ects 8ith interfaces and corresponding methods loo! li!e in

    OpenOffice.org using an /@ diagram. TextDcumentcontains te?t4 is searchale and

    refreshale. *ecause 7e?tocument is al8a1s an O!!iceDcument4 it implements also

    the interfaces"#$i!iab%e4"#$e%4"&rintab%eand"Strab%e. All Interfaces egin 8ith

    an M in OpenOffice to distinguish them from other entities.

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    19/82

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    20/82

    General Part Page )"

    Bome languages are also supported ecause the1 have their o8n *B2 engine3

    ect;

    1r**6/

    ects.

    BSFEnine 7hrough this interface it is possile to handle script e?ecution and

    o>ect registration in a generic 8a14 ecause it provides an astract vie8 of the

    scripting languageLs capailities.

    *B2"=cF

    ,&.&, BSF9Re''

    *B2#0e??4 as aove mentioned4 is an e?tension to ma!e it possile to use the

    scripting language 0e?? to dive into the 8orld of 'ava. 7his means that one can access

    ever1 'ava o>ect or method via 0e??. Also the reverse 8a14 using 0e?? in 'ava4 is

    provided 1 *B2#0e??

    *B2#0e"=cF

    +ith this ridge4 0e?? can get access to the largest e?ternal function pac!age on earth4

    8hich 8as additionall1 ported to each and ever1 important operating s1stem and

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    21/82

    General Part Page )%

    hard8are platform

    2lat"cF

    2rom the historical point of vie84 it 8as Prof. ag. r. 0on1 G. 2latscher 8hodeveloped *B2#0e?? in ( different steps. Each version 8as named after the cit1 8here

    he 8as 8or!ing at a universit1.

    7he SEssener ,ersion 8as developed in )""" in cooperation 8ith a student from Prof.

    2latscher4 Peter or

    changes4 eside some ugfi?es4 8as the addition of e?ternal functions from 0e?? intothe S*B2#0e??.dll pac!age.

    7he current version4 the S,ienna ,ersion4 8ith the numer ). allo8s Open O>ect

    0e?? programs to address 'ava fields as if the1 8ere Open O>ect 0e?? attriutes.

    7here are also t8o important methods4 bx and unbx4 8hich can 8rap and un8rap

    primitive data t1pes in 'ava to the corresponding classes.

    2lat"cF4 *B2#0e"=cF

    Figure 5: -rc,itecture o( .SF4/e00 #Flat$6c%

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    22/82

    General Part Page ))

    2igure $sho8s the Architecture of the S,ienna ,ersion of *B2#0e??. 7here is a cls

    file4 8hich supports *B2 routines and contains services that ma!e the most important

    'ava classes directl1 availale via the environment s1mol &bs#9re''.

    2lat"cF

    ,&.&. BSF&CLS

    7his section 8ill sho8 ho8 0e?? can access some 8ell !no8n 'ava classes and ho8 it

    can call methods and retrieve results from them.

    As mentioned aove4 8ith the help of the BSF'(LSmodule4 one can access a huge

    amount of classes and functionalit14 8hich is availale in and for the 8orld of 'ava.2rom accessing the standard 'ava classes4 8hich 8ere shipped 8ith the 'ava Bects4 '*C connections4 B8ing and B+7 G/Is

    through more sophisticated third part1 tools and pac!ages. Ever1 'ava API can e

    accessed from the scripting language Open O>ect 0e??.

    7he module provides the developer 8ith some asic and general functions for loading

    classes4 for e?ample the method bs!'%a$(%ass) 8hich acts as a creator for 'ava

    o>ects. 7he follo8ing snippet should sho8 ho8 eas1 it is to access a 'ava Class 8ith

    >ust a fe8 lines of code. One remar! in advance4 in 0e?? one can include a module 8ith

    functions in t8o different 8a1s3

    Usin ::RE-UIRES dire!ti6e9 7his !ind of including the module has to e in

    the last line of 1our script. It is invo!ed efore an1 other statement is interpreted

    and ecause of this4 the functions 8ould e availale across the 8hole 0e??

    scripts. 7he ne?t snippet uses this st1le of import.

    Usin CALL 7he invocation of (ALLhas to e efore the first usage of a

    method of the included module. In the case of including BSF'(LS4 (ALL

    BSF'(LSshould e 8ritten4 efore one calls a *B2 function. 7he latter of the

    snippets for *B2#0e?? uses this st1le of import.

    2lat"dF

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    23/82

    General Part Page )(

    7his snippet sho8s ho8 to create a ne8 Dateo>ect and store this o>ect into a 0e??

    variale. $ateOb+ectcontains no8 a 'ava o>ect4 to 8hich a message is send using the

    t8iddle operator. Bending a message in 0e?? means to call a method on this o>ect.

    Again the result4 a Stringo>ect4 is saved into a 0e?? variale and is printed 8ith the

    help of the SAYcommand.

    7he BSF'(LSmodule also contains some useful helper classes4 li!e message o?es

    and input o?es 8hich are uild open the 'ava class 'OptionPane. 7he ne?t snippet

    uses a message o? to notif1 the user aout something.

    7he script sends the class $ia%g the message messageBx8ith the te?t that should

    e displa1ed. 7here are some other parameter4 8hich are optional4 for e?ample the title

    of the dialog and the t1pe.

    ,&.&9 UN3&CLS

    7his section 8ill present the final step to automate OpenOffice.org programs using the

    module UNO'(LS4 8hich ma!es the life of developer easier4 ecause this module

    provides common functionalit14 8hich is used across the automation process.

    +ithout using UNO'(LSit 8ould ta!e up to )$ lines of code to >ust open a lan! +riter

    document. All the initiali6ation of U,L,es%ers4 NamingSerices and Factries is a

    ver1 intricate 8a1 of doing such asic tas!s. And ecause the process of creating

    macros or scripts for automation in OpenOffice.org should e a ver1 simple thing to do4

    UNO'(LSprovides the developer 8ith a load of helper functions. 7he difficult parts and

    those parts4 8hich 8ill e the same for ever1 script one 8ants to 8rite4 are summed upin single methods li!e UNO'createDes.t/01. 7his method ta!es care of nearl1

    Snippet : .SF4/e00 message bo0 e0ample

    Snippet *: .SF4/e00 simple e0ample

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    24/82

    General Part Page )#

    ever1thing from creating the /DO runtime to instantiating the /0@ 8here

    OpenOffice.org is listening on.

    7he ne?t snippet 8ill sho8 ho8 eas1 it is to create an empt1 +riter document 8hen 1ouare using the UNO'(LSmodule3

    Bnippet uses another helper routine contained in the UNO'(LS4 .UNO2n&r/s& 7his

    function creates an empt1 &r/ert3o>ect.

    *ecause UNO'(LS alread1 includes BSF'(LS4 there is no need for a ,E4UI,E

    statement in those scripts4 8hich 8ant to use the OpenOffice.org /DO modules.

    ,&.&= R*utines

    A short overvie8 of some methods presented in the reference card included in the

    current *B2#0e?? version3

    un'createDes.t/05cntext61 - returns the %ca% O/enO!!ice $es.t/ b+ect

    un'get&r/erties01 - returns a b%an. $e%imite$) enc$e$ string 7ith a%% $e!ine$

    /r/erties !r the serice b+ect

    un'getScri/t(ntext01 - returns a UNO /rx3) i! the ,exx scri/t 7as in.e$

    b3 O/enO!!ice) 'ni% e%se' The UNO /rx3 b+ect has the !%%7ing meth$s)

    returning cntext re%ate$ UNO /rx3 b+ects8

    o getDcument 0the $cument serice b+ect) an "#$e%1

    o getDes.t/ 0the $es.t/ serice b+ect) an "Des.t/1

    o get(m/nent(ntext 0the cntext b+ect) an "(m/nent(ntext1

    *B2#0e"=aF *B2#0e"=F

    Snippet : sing !"CS

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    25/82

    General Part Page )$

    ,&9 Su77ar/

    7his paragraph sums up the previous chapters to ma!e again clear4 ho8 the

    automation of Impress in this achelor paper is going to e accomplished.

    7o illustrate this procedure2igure from a previous achelor thesis from a student of

    the universit1 of usiness administration in ,ienna sho8s the different la1ers et8een a

    method call in Open O>ect 0e?? and OpenOffice.org.

    Figure 6: From oo/e00 to -utomation #-,am$5%

    7he scripts developed in Open O>ect 0e?? are using the module UNO'(LSto enefit

    from the simplified o>ect creations and initiali6ations. In the ne?t step4 the procedures

    in UNO'(LSuse the functionalit1 provided 1 the module BSF'(LS. As 8ritten in the

    chapter aout *B24 one can use a scripting language4 in this case and 8ith the

    *B2#0e?? e?tension the scripting language Open O>ect 0e??4 to ma!e use of 'ava.

    E?actl1 this point rings sustantial improvement to the development process ecause

    it is not necessar1 to develop in 'ava and

    1 the use of UNO'(LSone can save a lot of lines of code

    In OpenOffice.org there is a comprehensive support of 'ava to communicate 8ith the

    /DO components. 7his represents the 'ava /DO la1er on 2igure .

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    26/82

    General Part Page )

    7he 'ava /DO model then is connected to the /DO certainl1 and this leads to

    OpenOffice.org itself to conduct the automation.

    2lat"$F

    As the last chapters have sho8n4 an open source scripting language can e used to

    control and automate an open source office suite on ehalf of OpenOffice.org. *ut not

    onl1 that4 OpenOffice.org itself can invo!e Open O>ect 0e?? macros.

    7his fact is ver1 important4 ecause all of the snippets for automating Impress 8ill e

    8ritten in form of macros.

    It comines the po8er and straightfor8ardness of Open O>ect 0e?? 8ith the fullfeatured and open interfaces of OpenOffice.org to ma!e it possile to easil1 automate

    the programs of this office suite4 even 8ithout 8ide e?perience in the field of

    programming and development.

    . Installati*n 1uide

    7his chapter 8ill descrie and sho8 ho8 to set up the environment for developing and

    running the snippets provided 1 this paper. 7his section 8ill onl1 tal! aout the currentversions of each application and programming language.

    7he steps (.%4 (.). and (.( must not e follo8ed 1 in this specific order. 7he onl1 step4

    8hich has a fi?ed order is step numer #4 the installation of *B2#0e??. 7he other

    installations should e finished prior to this tas!.

    .&+ Installati*n

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    27/82

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    28/82

    Installation Guide Page )

    .&9 Installati*n BSF9Re''

    7he installation of *B2#0e?? is proal1 the most sophisticated step for preparing the

    computer for the automation snippets. *ut if one follo8s the installation guide supplied8ith the release and the previous steps 8ere finished successfull14 there should e no

    prolems4 even for non9e?perts.

    7he current release of the *B2#0e?? is availale under http3--8i.8u9

    8ien.ac.at-rgf-re??-sf#re??-currentthe 8e space from Prof. r. ag. 2latscher on the

    universit1 of usiness administration 8e server.

    *B2#0e?? comes in form of a 6ip file4 8hich contains all files4 the installation scripts4some e?amples from previous achelor thesisL and other 0e?? communit1 memers

    and installation guides for ever1 step.

    2or the first part of the installation4 the *B2#0e?? part4 the file rea$meBSF9,exx'txtis

    the proper one. 7o start the installation run the setup script setu/'rexusing the re??

    command. 7his command should no8 e availale in the command prompt after

    installing Open O>ect 0e?? in one of the previous steps.

    7his script should create four ne8 files3

    sf#re??.cmd +ith this4 *B2#0e?? scripts can alread1 e run

    install*B2#0e??.cmd 7his script copies the 'ava archives :>ars; and d1namic

    lin! liraries to the used 'ava e?tension folder. Do8 ever1 'ava application can

    use *B2#0e??

    uninsta%%BSF9,exx'cm$ 7his script undoes the actions from the install script.

    setEnirnment9BSF9,exx'cm$ 7his script sets the proper environment

    variales for using *B2#0e??

    On a @inu? PCLs all the generated scripts 8ill not have the e?tension cmd4 the scripts

    are .sh files.

    0unning the script install*B2#0e?? 8ill finish the installation 1 no8 and *B2#0e??can e tested 1 calling different !inds of commands to ensure that ever1thing is

    http://wi.wu-wien.ac.at/rgf/rexx/bsf4rexx/currenthttp://wi.wu-wien.ac.at/rgf/rexx/bsf4rexx/currenthttp://wi.wu-wien.ac.at/rgf/rexx/bsf4rexx/currenthttp://wi.wu-wien.ac.at/rgf/rexx/bsf4rexx/currenthttp://wi.wu-wien.ac.at/rgf/rexx/bsf4rexx/currenthttp://wi.wu-wien.ac.at/rgf/rexx/bsf4rexx/currenthttp://wi.wu-wien.ac.at/rgf/rexx/bsf4rexx/currenthttp://wi.wu-wien.ac.at/rgf/rexx/bsf4rexx/current
  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    29/82

    Installation Guide Page )

    8or!ing correctl1.

    0unning the scripts in!BSF'rex and in!BSF-'rex 8ith oth the rexx and rexx+

    command should give the user an output in form of the registered *B2 functions.

    *B2#0e??"=9(F

    7he second part of the installation is to ma!e the ridge to OpenOffice.org and install

    the 0e?? support for the office suite.

    7he corresponding readme file is called rea$meOO'txt.

    7he first step is to ensure that 'ava is enaled for OpenOffice.org. 2or this reason start

    an1 application of the office suite4 for e?ample +riter4 and select the menu item

    O/tins in the T%smenu. In the tree on the left side there is an entr1 called :aa)

    8hich sho8s some options on the right side of the dialog.

    Figure *: "ptions ialog in ""o

    2igure =sho8s the dialog in 8hich the user has to select the desired '0E. 7his version

    should e the same as the version for 8hich *B2#0e?? is installed. After ma!ing

    changes on this settings4 OpenOffice.org as 8ell as the 5uic!Btarter should e closed.

    0unning the command rexx setu/OO'rex /ath-tOO-$irectr38ill create the installscripts for the OpenOffice.org support.

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    30/82

    Installation Guide Page ("

    An e?ample3

    rexx setu/OO'rex ;$8'

    Again some scripts for installing the support4 uninstalling and setting up of theenvironmental variales 8ill e generated.

    0unning the insta%%OO'cm$ 8ill actuall1 install the support. All Instances of

    OpenOffice.org should e closed to ensure that the configuration ta!es effect in ever1

    module.

    7o test the OpenOffice.org support there are a t8o 0e?? scripts :testOO'rex and

    testOO='rex; 8hich should e started 8ith either the rexxand rexx+command.

    7he scripts should open a +riter document and insert some te?t into the document.

    7he last step for the configuration and installation is the macro support in

    OpenOffice.org. 7o do that clic! on the menu entr1 SExtensin #anager in the T%s

    menu in an OpenOffice.org application. After clic!ing on A$$ and selecting the >ar9!i%e

    Scri/t&ri$erFr,exx'+ar4 it 8ill install the macro support for Open O>ect 0e??.

    *B2#0e"=dF

    Figure : 0tension &anager

    After restarting OpenOffice.org4 in the menu #acrsVW Organi?e #acrs1ou can see if

    the installation 8as finished successfull1. 2igure sho8s e?actl1 ho8 it should loo!

    li!e.

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    31/82

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    32/82

    Impress Automation Page ()

    9 I7(ress Aut*7ati*n

    After creating the asis !no8ledge for conducting automation in OpenOffice.org4 this

    chapter contains general information aout the document overvie8 of Impress and

    some descriptive 8ords regarding the automation.

    7his achelor paper 8ants to sho8 ho8 Open O>ect 0e?? can ease the life of

    presenters using Impress. 7he e?amples presented in this paper can also rush up and

    advance e?isting presentations also in consideration of the audience.

    A lot of presentations created 1 students4 managers or normal 'ohn oes lac! of

    different !inds of gimmic!s4 8hich are ver1 useful for oth the presenter himself and the

    audience. 7hose improvements can e guideposts to illustrate the status of the current

    slide in the presentation and other helpful and valuale things.

    7he implementation of this automation 8ill e developed in form of macros 8ritten in

    Open O>ect 0e??4 ecause this !ind of reali6ation 8ould allo8 running the scripts on

    e?isting presentation 1 selecting a menu entr1 in the OpenOffice.org application.

    7his paper 8ill not cover an1 stand9alone Open O>ect 0e?? scripts ecause suchehavior 8ill not meet the given reKuirements for this application area.

    7he starting point of each automation process is an e?isting :e?isting from the content

    point of vie8; presentation4 8hich should e further enhanced 1 the macros provided

    in this achelor paper.

    9&+ 1eneral

    In OpenOffice.org Impress and ra8 are vector9oriented applications for creatingpresentations and dra8ings. *oth applications support different !ind of things to dra84

    for e?ample rectangles4 te?t4 curves and other graphic shapes.

    /nli!e to the te?t documents in +riter and the spreadsheet document in Calc4 ra8

    and Impress use the so9called dra8pages for displa1ing the content. 2igure %"reflects

    this fact 8ith the dra8page container in the middle of the graphic. 7he document

    service manager pictured 8ith the faric s1mol at the top of the figure is used for

    creating all the dra8ing elements and shape o>ects. 7hese o>ects 8ill e later

    inserted into the dra8pages.

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    33/82

    Impress Automation Page ((

    7here are man1 different t1pes of shapes to add to a dra8page in Impress & ra84 the

    most important ones are3

    @ra/hicOb+ectSha/e4 8hich can displa1 an image from a file

    (nnectrSha/e4 8hich can connect other Sha/es

    E%%i/seSha/escan e various circles and ellipses.

    ,ectang%eSha/ethat pictures a rectangle on a dra8page

    TextSha/ecan e used for displa1ing te?t on a slide

    7he controller is used to present the presentation in the G/I and for assigning st1les

    and la1outs to the dra8ings.

    7he figure also sho8s the interfaces for accessing the #aster&ages and the

    La3ut#anager.

    Oooev"$F

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    34/82

    Impress Automation Page (#

    Figure 1$: 7resentation ocument &odel #""oe)$5%

    9&, Intr*du!ti*n E'a7(le7o ma!e the introduction for the Open O>ect 0e?? macros easier4 this paragraph 8ill

    tal! aout a ver1 simple macro4 8hich adds a slide to an e?isting presentation and puts

    a te?t field 8ith a t1pe of the notorious SHello +orld lael on each additional slide. 7he

    previous slide 8ill get a te?t field that causes a slide transition to the ne?t page 8hen

    someone clic!s on the te?t.

    7here 8ill e an e?amination of ever1 action ta!en in the script so that the asicfunctionalit14 li!e getting access to the dra8 pages4 8ill e cleared 1 no8.

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    35/82

    Impress Automation Page ($

    ost of the functions4 interfaces and properties 8ill e used throughout the 8hole

    achelor paper.

    *ecause the snippets 8ill e e?ecuted as a macro inside OpenOffice.org the first thingto do is to open an e?isting presentation or to create a ne8 one using Impress.

    In the menu T%s #acrs Organi?e #acrsthere is the entr1 ,exx) 8hich opens

    a dialog to create4 edit and run the 8ritten macros4 as sho8n on 2igure %%4

    Figure 11: "rgani8e &acros

    7he dialog for editing the macros acts also as a deug 8indo8 8here the lines4 8hich

    cause an error are mar!ed and the error message is sho8n. /nfortunatel1 there is no

    s1nta? highlighting in the edit dialog4 so the est thing one can do is to 8rite the macros

    in a third part1 editor li!e gvim4 8hich supports the s1nta? of Open O>ect 0e??. 7hen4

    after 8riting the scripts4 the1 can e copied into the macro editor of OpenOffice.org.

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    36/82

    Impress Automation Page (

    Figure 12: &acro editor

    7he dialog is sho8n on the 2igure %)4 from here the script can e e?ecuted. 7he source

    code of the introduction snippet can e seen in the Bnippet %%.

    7his cutout from Bnippet %%8ill get the Scri/ting(ntext8hose function is to provide

    the developer 8ith the document services and interfaces.

    7his is specific for the macros in Open O>ect 0e??4 if one 8ants to 8or! 8ith the

    Impress interfaces from a standalone script4 the UNO'createDes.t/01 procedure 8ill

    get the related interfaces.

    Snippet 1$: 'nter(aces wit, es9top

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    37/82

    Impress Automation Page (=

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    38/82

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    39/82

    Impress Automation Page (

    7he t8o shapes4 one TextSha/efor the SHello +orld lael and the other one for the

    clic! te?t field to go to the ne?t slide4 are added to the dra8pages using the add

    method.

    7he variale run&resentatin is " 8hen the user does 8ant to start the presentation

    after the changes of the slides 8ere done. 7he impress document 8ill e Kueried for

    the "&resentatinSu//%ier interface. 7his interface has a method to get the

    "&resentatininterface to start the presentation.

    7he ne?t t8o figures sho8 the output of the macro.

    After running the script4 the presentation 8ill e updated and depending on the decision

    made at the eginning4 it 8ill also e started.

    Figure 13: =Hello World= >e0tS,ape

    Figure 14: Clic9)ent on >e0tS,ape

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    40/82

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    41/82

    Impress Automation Page #%

    9&.&+ E'a7(le>+

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    42/82

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    43/82

    Impress Automation Page #(

    7he first e?ample for advancing presentations in OpenOffice.org adds a progress ar to

    the ottom of each slide. *ecause in most presentations4 the first slide is some sort of a

    8elcome or introduction page4 this page 8ill not contain a progress ar.

    7hat means on the second slide 1ou can see a rectangle 8ith a filled section on the left

    side3

    Figure 15: 7rogress bar

    Each slide 8ill sho8 ne8 shapes4 8here the filled shapes 8idth is increased

    incremental. 7his 8ill give the audience a feeling ho8 advanced the progress of the

    presentation is. Also the presenter 8ill get a critical information aout the state of the

    presentation.

    As the presentation goes on4 the rectangle 8ill e filled more and more till it reaches the

    end.

    7he first thing to do is to go through all the e?isting dra8pages. 7his 8ill e reali6ed

    8ith a DO TO iteration starting 8ith the dra8page 8ith inde? %4 8hich is actuall1 the

    second slide ecause the inde? is " ased. If there is alread1 a progress ar4 the

    grouped shape 8ill e removed. 7he macro then generates a ,ectang%eSha/e and

    passes it to a routine4 8hich resi6es the component and places it to the correct position.

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    44/82

    Impress Automation Page ##

    7his snippet sho8s the routine for positioning and resi6ing shapes4 8hich is used in

    ever1 macro. As one can see the routine creates a Si?eO>ect 8ith arguments numer

    t8o and three and a &intO>ect 8ith the latter one. Argument numer one is the

    shape itself.

    7his routine creates the round edges of oth the order shape and the shape that

    represents the progress in the presentation 1 ad>usting the 8idth of the rectangle.

    7here is also a shado8 created for the shapes.

    7he shape for the progress ar filling has not >ust a normal solid color. 7he Fi%%St3%eis a

    @ra$ientO>ect4 8hich can create a transition from one color to another 8ith detailed

    configuration ho8 this transition 8ill e done. 7he @ra$ientO>ect is generated in ano8n function. 7his function returns the o>ect and can e accessed from outside

    through the variale resu%t. Again the function for formatting the shape 8ill e called

    here.

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    45/82

    Impress Automation Page #$

    9&.&, E'a7(le>,

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    46/82

    Impress Automation Page #

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    47/82

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    48/82

    Impress Automation Page #

    7his snippet sho8s the placing of the circle shapes4 8hich represent the points in the

    Pacman game. 7he placement starts at the current position of Pacman and adds

    E%%i/seSha/eo>ects to the dra8page till the ?9coordinate reaches the end in form of

    the position of the cherr1.

    7he circles are >ust E%%i/seSha/e o>ects that have the (irc%ein$ FULL. 7he other

    options are SE(TIONfor a circle 8ith a cut connected 1 a line4 (UTfor a circle 8ith a

    cut connected 1 t8o lines :for e?ample a ca!e diagram; and an A,(4 8hich is a circle

    8ith an open cut.

    After the creation of the shapes4 the1 8ill e added to a Sha/e@ru/4 all of the shapes

    8hich are inside the sha/e@ru/ o>ect 8ill e grouped together using the

    "Sha/e@ru/erfrom a dra8page. 7o e ale to remove them in the case of a second

    run of the macro the group gets a name.

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    49/82

    Impress Automation Page #

    9&.&. E'a7(le>.

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    50/82

    Impress Automation Page $"

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    51/82

    Impress Automation Page $%

    7he t1pe of the ne?t macro is again a progress sho8ing macro. Instead of Pacmangoing to the end of the slide4 there 8ill e a fuse 8ith a flame. 7he fuse is connected to

    a om. 7he fuse 8ill e reali6ed 8ith the help of a ,ectang%eSha/e. As the progress

    of the presentation is advancing4 the fuse is urning do8n. One of the difference to the

    last e?ample is that the macro is generating a ne8 slide at the end of the presentation

    and put some shapes on the dra8page. 7he ne8 dra8page as 8ell as the shapes on it

    8ill have some effects4 8hich are assigned in the script.

    7he last slide contains a TextSha/e 8ith the te?t *OOOXXQ and an

    @ra/hicOb+ectSha/e8ith an e?plosion image.

    Snippet 14: .omb $3;bombre0

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    52/82

    Impress Automation Page $)

    7he /0@ of the image is set in the cutout using the"&r/ert3Setinterface. 7he method

    used for fetching the filename is operating s1stem independent. 7he images have to e

    in the same folder as the presentation. 7he animation effect of the TextSha/e

    *OOOXXXXQ 8ill e a fade from the center of the slide and 8ill e conducted in a

    fast sped. Bimilar to that4 the effect of the image 8ith the e?plosion should e a little it

    slo8er and 8ith a hori6ontal rotation.

    7he counterpart to the Sha/e AnimatinE!!ect o>ect for slide transitions is the

    Fa$eE!!ecto>ect. 7he ,ANDO#value sets a random effect to the slide transition 8ith

    medium speed. 7he om 8ith the fuse as 8ell as the slide 8ith the e?plosion image

    are displa1ed on the ne?t t8o figures.

    Figure 1*: .omb wit, (use

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    53/82

    Impress Automation Page $(

    2or sure4 this demonstration of a progress illustration and the e?ample 8ith Pacman is

    not ver1 appropriate for usiness presentations. 2or these !ind of presentations the

    progress ar 8ill e the est solution. 7his should e >ust a proof of concept ho8 eas1 it

    is to put a ver1 helpful feature to a presentation4 also 8ith a 8hiff of pla1fulness..

    Figure 1: 0plosion slide

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    54/82

    Impress Automation Page $#

    9&.&9 E'a7(le>9

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    55/82

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    56/82

    Impress Automation Page $

    time 8ill e a SE(TIONE%%i/seSha/e. 7o configure the section4 the values for the start

    and end angle need to e set.

    *1 setting the values as seen in the cutout aove4 the section is forced to start at %)

    oNcloc!. ecreasing the startAng%e value after each slide 8ill e?pand the section

    cloc!8ise. 7he fill color of the section is also changing throughout the presentation.

    7he color is represented 1 a he?adecimal value. Btarting 8ith 8hite :222222; and

    fading to red. 7his is done 1 sutracting values from the start color. 7he transition of

    the cloc!s loo!s li!e 2igure %.

    Figure 1: Cloc9 transition

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    57/82

    Impress Automation Page $=

    9&.&= E'a7(le>=

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    58/82

    Impress Automation Page $

    7he ne?t macro 8ill support the presenter 1 automaticall1 creating a slide in the

    middle of the presentation. 2or long presentations it could e necessar1 to ma!e such a

    rea! to let the audience get some refreshments. 7he user 8ill e as!ed for the

    duration of the rea! and for a message4 8hich 8ill e sho8n on the ne8 slide. 7he

    duration has to e entered in minutes. After the time is elapsed the presentation 8ill

    continue 8ith the ne?t slide.

    7he slide efore the rea! as 8ell as all created shapes 8ill get effects in addition to

    the slide transition.

    Snippet 16: Create .rea9 Slide $5;brea9re0

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    59/82

    Impress Automation Page $

    7his line is responsile for the e?ception handling in Open O>ect 0e??. If an1 error

    occurs during the runtime of the script4 the code at the mar!erANY8ill e e?ecuted.

    7he script has to handle possile e?ceptions ecause it has to operate 8ith a data

    entered 1 a user. +hen the user does not enter a valid numer4 there 8ould e a

    BTD7AM error and the script 8ould crash.

    In order to handle those prolems4 the mar!er ANY8as implemented in the rear

    section of the script.

    7he code then sho8s up another message o? 8ith the line numer 8here the prolem

    occurred.

    7he cutout from the snippet aove sho8s ho8 the middle of the presentation is een

    calculated. 7he -- operator acts as the modulo function in Open O>ect 0e?? to get the

    rest of a division of integers.7he in/utBxprocedure from the BSF'(LSmodule is used for entering the duration of

    the rea!. 7he value 8ill e saved into the variale minutes.

    7he dialogs and the rea! slide can e seen on the ne?t figures.

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    60/82

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    61/82

    Impress Automation Page %

    9&.&? E'a7(le>?

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    62/82

    Impress Automation Page )

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    63/82

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    64/82

    Impress Automation Page #

    returned value 8ill e the nil o>ect.

    7he he?adecimal value ""A represents a line rea! and is used in a dialog o? to

    separate the message.

    7he macro can also change the animation effects of ever1 shape on ever1 dra8page if

    the user 8ants to. /sing the interface"Sha/esof a dra8page one can get access to

    ever1 shape o>ect on it. @i!e iterating through the dra8pages of a presentation4 one

    can access the shapes using an inde?.

    7he dialogs for as!ing after the effects are sho8n on the ne?t figures.

    Figure 22: Slide e((ects

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    65/82

    Impress Automation Page $

    Figure 23: ialog (or c,oosing t,e speed

    Figure 24: uration o( one slide

    Figure 25: Auestion dialog (or end slide

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    66/82

    Impress Automation Page

    9&.&@ E'a7(le>@

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    67/82

    Impress Automation Page =

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    68/82

    Impress Automation Page

    7he goal of this macro is to create guideposts on the slides of a presentation. 7he onl1

    thing the creator of the presentation has to care aout is that the slides have te?t fields8ith the predefined st1le Hea$ing or Hea$ingassigned to them. 7hen the macro

    Snippet 1: @uideposts (rom ,eadings $*;guidepostsre0

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    69/82

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    70/82

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    71/82

    Impress Automation Page =%

    9&.& E'a7(le>

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    72/82

    Impress Automation Page =)

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    73/82

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    74/82

    Impress Automation Page =#

    *ut the most important difference is the use of oo!mar!s in this script. Each guidepost

    gets an On(%ic.event4 8hich directl1 leads to the slide 8ith the corresponding heading.

    7his 8ill provide a fast and eas1 8a1 of navigating through the presentation 8ithout

    8riting those actions and graphical shapes manuall1.

    Onl1 the parts of the code4 8hich are different compared to Bnippet %8ill e sho8n in

    this paragraph.

    +hen the macro has found a slide 8ith a heading te?t field4 the related dra8page gets

    a name4 to e ale to access it later 8ith a oo!mar!. 7he name is set 8ith the help of

    the"Name$interface and is the inde? of the heading slide.

    7hese lines set the name of the dra8page to the inde? of the slide.

    7his cutout sho8s ho8 the On(%ic.event is een connected to the oo!mar! using the

    inde? of the guidepost circle shape. 7he te?t inside the circle 8ill e a serial numer

    and is assigned to the shape in the line %(#.

    Figure 2*: @uideposts wit, boo9mar9s

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    75/82

    Impress Automation Page =$

    9&.& E'a7(le>

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    76/82

    Impress Automation Page =

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    77/82

    Impress Automation Page ==

    7he last macro of this achelor paper is a script that generates a slide 8ith the agenda

    of the presentation. 7he agenda 8ill e created using the te?t fields 8ith heading st1le.

    If the agenda is alread1 created in the past and the script is started again4 the agenda

    8ill e updated 8ith the current heading tags. 7his script 8ill again use various parts of

    the previous e?amples to retrieve the arra1 8ith the heading information. 7o ensure a

    failsafe process4 the macro chec!s if there is an1 heading te?t field at all and sho8s a

    message dialog in the case of none?istence.

    7his procedure gets a dra8page as an argument and sets the name of it for enaling

    the possiilit1 to refresh it 8hen running the macro at a later date. 7he La3utpropert1

    is set to % that means the slide gets a te?t field at the top and a listing at the center. 7he

    te?t of the te?t shape is set to AgendaQ 1 accessing the shape 8ith the inde? ".

    2or formating the listing 8ith the headings this procedure is called. 7he line spacing as

    8ell as the font si6e is ad>usted to create a good loo!ing agenda.

    Snippet 2$: Create an agenda $;agendare0

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    78/82

    Impress Automation Page =

    7he script appends each heading to the listing te?t field on the agenda slide 1 using a

    Text(ursr. @ine numer =( sho8s the command ho8 the cursor 8ill e placed at the

    end. 7he"Text,ange interface 8ill then e used to append the te?t 8ith a carriage

    return.

    2igure )sho8s a generated agenda slide.

    Figure 2: @enerated agenda

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    79/82

    Conclusion Page =

    = C*n!lusi*n

    7he conclusion of this achelor thesis is that 8ith the help of Open O>ect 0e??4 *ean

    Bcripting 2rame8or!4 *B2#0e?? and OpenOffice.org it is possile to automate the

    office suite 8ithout an1 e?pert !no8ledge aout programming languages.

    7he onl1 real reKuirement for the development is to e ale to search self9dependent in

    the 8e for the functionalit1 one is loo!ing for. *ut this is not >ust the case for this t1pe

    of 8or!. 2or nearl1 ever1 tas! one is coping 8ith4 there is a need to find the desired

    information as fast as possile4 ut not loosing the sight of the Kualit1 of the results.

    7he open source scripting language Open Office 0e?? is ver1 eas1 to learn and canuse the massive amount of classes provided 1 'ava 8ith the help of *B2 and

    *B2#0e??. 7his 8ill give the scripting language more po8er and opens the door to the

    /DO ased architecture of OpenOffice.org.

    7he macros themselves are ver1 useful and could save presenters a lot of time4

    especiall1 for the macros4 8hich are dealing 8ith the progress indication. *ut that

    should not e the onl1 important output of this paper. Other students 8ho are also

    interested in this topic can enefit from the results and uild open the snippets to create

    even more sophisticated macros.

    *ecause there 8ere not so man1 e?amples for automation of Impress4 actuall1 there is

    onl1 one on the homepage of OpenOffice.org4 it 8as not ver1 eas1 to get in touch 8ith

    the interfaces4 properties and functionalit1 of Impress. +ith the help of the e?cellent

    evelopers Guide4 some nutshells from previous achelor papers and the online

    communit1 of OpenOffice.org it 8as possile to create the snippets in this achelorpaper in a reasonale amount of time.

    It also emerged that the functions in oth the UNO'(LS and BSF'(LS 8ere ver1

    helpful4 for e?ample the ones 8hich return the names of the inferfaces using reflection

    and the properties of an o>ect.

    And if more and more snippets and e?amples are getting online4 the communit1 gro8s

    and gro8s and the collective !no8ledge 8ould increase over the 1ears4 the po8er of

    OpenOffice.org and open source soft8are in general 8ill e strengthen.

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    80/82

  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    81/82

    0eferences Page %

    2lat"$F 2latscher4 0on1 G.3 Automating OpenOffice.org 8ith Oo0e??3

    Architecture4 Gluing to 0e?? using *B2#0e??4 )""$4

    +irtschaftsuniversitt +ien :,ienna /niversit1 of Economics and

    *usiness Administration;4 Austria4

    http3--8i.8u9

    8ien.ac.at-rgf-re??-or?%-)""$or?%Gluing)oo0e??OOo.pdf4

    retrieved on )""=9"$9)"

    2lat"aF 2latscher4 0on1 G.3 0esurrecting 0EMM4 Introducing O>ect 0e??4

    )""4 +irtschaftsuniversitt +ien :,ienna /niversit1 of Economics and

    *usiness Administration;4 Austria4

    http3--prog.vu.ac.e-Y8dmeuter-0@"-2latscher.pdf4

    retrieved on )""=9"$9%

    2lat"F 2latscher4 0on1 G.3 Automatisierung von +indo8s An8endungen :%; 9

    Einfhrung4 Zerlic!4 An8eisungen4 Pro6eduren4 2un!tionen4

    http3--8i.8u9

    8ien.ac.at-rgf-8u-lehre-auto8in-material-folien-Automatisierung"%.pdf4

    retrieved on )""9"(9%$

    2lat"cF 2latscher4 0on1 G.3 7he ,ienna ,ersion of *B2#0e??4 Presentation at

    the )"" International 0e?? B1mposium4 /BA4 )""4

    http3--8i.8u98ien.ac.at-rgf-re??-or?%=-)""or?%=*B2,iennaEd.pdf4

    retrieved on )""=9"$9)"

    2lat"dF 2latscher4 0on1 G.3 Automatisierung von +indo8sAn8endungen :(;

    Ausnahmen :E?ceptions;4 0eferen6en4 ire!tiven :33routine4 33reKuires;http3--8i.8u9

    8ien.ac.at-rgf-8u-lehre-auto8in-material-folien-Automatisierung"(.pdf4

    retrieved on )""9"(9%=

    OO0e??"=aF Open O>ect 0e?? Homepage4 Product *rochure4

    http3--888.oore??.org-oo0e??9*rochure.pdf4

    retrieved on )""=9"$9%=

    http://wi.wu-wien.ac.at/rgf/rexx/orx16/2005_orx16_Gluing2ooRexx_OOo.pdfhttp://wi.wu-wien.ac.at/rgf/rexx/orx16/2005_orx16_Gluing2ooRexx_OOo.pdfhttp://prog.vub.ac.be/~wdmeuter/RDL06/Flatscher.pdfhttp://wi.wu-wien.ac.at/rgf/wu/lehre/autowin/material/folien/Automatisierung_01.pdfhttp://wi.wu-wien.ac.at/rgf/wu/lehre/autowin/material/folien/Automatisierung_01.pdfhttp://wi.wu-wien.ac.at/rgf/rexx/orx17/2006_orx17_BSF_ViennaEd.pdfhttp://wi.wu-wien.ac.at/rgf/wu/lehre/autowin/material/folien/Automatisierung_03.pdfhttp://wi.wu-wien.ac.at/rgf/wu/lehre/autowin/material/folien/Automatisierung_03.pdfhttp://www.oorexx.org/ooRexx-Brochure.pdfhttp://wi.wu-wien.ac.at/rgf/rexx/orx16/2005_orx16_Gluing2ooRexx_OOo.pdfhttp://wi.wu-wien.ac.at/rgf/rexx/orx16/2005_orx16_Gluing2ooRexx_OOo.pdfhttp://wi.wu-wien.ac.at/rgf/rexx/orx16/2005_orx16_Gluing2ooRexx_OOo.pdfhttp://wi.wu-wien.ac.at/rgf/rexx/orx16/2005_orx16_Gluing2ooRexx_OOo.pdfhttp://wi.wu-wien.ac.at/rgf/rexx/orx16/2005_orx16_Gluing2ooRexx_OOo.pdfhttp://wi.wu-wien.ac.at/rgf/rexx/orx16/2005_orx16_Gluing2ooRexx_OOo.pdfhttp://prog.vub.ac.be/~wdmeuter/RDL06/Flatscher.pdfhttp://prog.vub.ac.be/~wdmeuter/RDL06/Flatscher.pdfhttp://prog.vub.ac.be/~wdmeuter/RDL06/Flatscher.pdfhttp://wi.wu-wien.ac.at/rgf/wu/lehre/autowin/material/folien/Automatisierung_01.pdfhttp://wi.wu-wien.ac.at/rgf/wu/lehre/autowin/material/folien/Automatisierung_01.pdfhttp://wi.wu-wien.ac.at/rgf/wu/lehre/autowin/material/folien/Automatisierung_01.pdfhttp://wi.wu-wien.ac.at/rgf/wu/lehre/autowin/material/folien/Automatisierung_01.pdfhttp://wi.wu-wien.ac.at/rgf/wu/lehre/autowin/material/folien/Automatisierung_01.pdfhttp://wi.wu-wien.ac.at/rgf/wu/lehre/autowin/material/folien/Automatisierung_01.pdfhttp://wi.wu-wien.ac.at/rgf/rexx/orx17/2006_orx17_BSF_ViennaEd.pdfhttp://wi.wu-wien.ac.at/rgf/rexx/orx17/2006_orx17_BSF_ViennaEd.pdfhttp://wi.wu-wien.ac.at/rgf/rexx/orx17/2006_orx17_BSF_ViennaEd.pdfhttp://wi.wu-wien.ac.at/rgf/wu/lehre/autowin/material/folien/Automatisierung_03.pdfhttp://wi.wu-wien.ac.at/rgf/wu/lehre/autowin/material/folien/Automatisierung_03.pdfhttp://wi.wu-wien.ac.at/rgf/wu/lehre/autowin/material/folien/Automatisierung_03.pdfhttp://wi.wu-wien.ac.at/rgf/wu/lehre/autowin/material/folien/Automatisierung_03.pdfhttp://wi.wu-wien.ac.at/rgf/wu/lehre/autowin/material/folien/Automatisierung_03.pdfhttp://wi.wu-wien.ac.at/rgf/wu/lehre/autowin/material/folien/Automatisierung_03.pdfhttp://www.oorexx.org/ooRexx-Brochure.pdfhttp://www.oorexx.org/ooRexx-Brochure.pdfhttp://www.oorexx.org/ooRexx-Brochure.pdf
  • 8/13/2019 WIRTSCHAFTSUNIVERSITT WIEN BAKKALAUREATSARBEIT

    82/82

    0eferences Page )

    OO0e??"=F Open O>ect 0e?? Homepage4 Aout4

    http3--888.oore??.org-inde?.html4 retrieved on )""=9"$9%=

    OpenOf"=aF Open Office Homepage4 Aout 4http3--aout.openoffice.org-inde?.html4 retrieved on )""=9"$9)"

    OpenOf"=F Open Office Homepage4 Product 4

    http3--888.openoffice.org-product-inde?.html4 retrieved on )""=9"$9)"

    OpenOf"=cF Open Office Homepage4 API evelopers Guide4 2irst Bteps4

    http3--api.openoffice.org-docs-evelopersGuide-2irstBteps-2irstBteps.?

    html4 retrieved on )""=9"$9)"

    OOoev"$F Open Office Homepage4 evelopers Guide4 a1 )""$4

    http3--api.openoffice.org-docs-evelopersGuide-evelopersGuide.pdf4

    retrieved on )""=9"$9)%#

    +i!i*B"=F +i!imedia 2oundation Inc4 *ean Bcripting 2rame8or!4

    http3--en.8i!ipedia.org-8i!i-*eanBcripting2rame8or!4

    retrieved on )""=9"$9"

    +i!iOo"=F +i!imedia 2oundation Inc4 OpenOffice.org4

    http3--en.8i!ipedia.org-8i!i-Openoffice.org4 retrieved on )""=9"$9"$

    +i!i0e"=F +i!imedia 2oundation Inc4 0EMM4

    http3--en.8i!ipedia.org-8i!i-0EMM4 retrieved on )""=9"$9"#

    http://www.oorexx.org/index.htmlhttp://about.openoffice.org/index.htmlhttp://www.openoffice.org/product/index.htmlhttp://api.openoffice.org/docs/DevelopersGuide/FirstSteps/FirstSteps.xhtmlhttp://api.openoffice.org/docs/DevelopersGuide/FirstSteps/FirstSteps.xhtmlhttp://api.openoffice.org/docs/DevelopersGuide/DevelopersGuide.pdfhttp://en.wikipedia.org/wiki/Bean_Scripting_Frameworkhttp://en.wikipedia.org/wiki/Openoffice.orghttp://en.wikipedia.org/wiki/REXXhttp://www.oorexx.org/index.htmlhttp://www.oorexx.org/index.htmlhttp://www.oorexx.org/index.htmlhttp://about.openoffice.org/index.htmlhttp://about.openoffice.org/index.htmlhttp://about.openoffice.org/index.htmlhttp://www.openoffice.org/product/index.htmlhttp://www.openoffice.org/product/index.htmlhttp://www.openoffice.org/product/index.htmlhttp://api.openoffice.org/docs/DevelopersGuide/FirstSteps/FirstSteps.xhtmlhttp://api.openoffice.org/docs/DevelopersGuide/FirstSteps/FirstSteps.xhtmlhttp://api.openoffice.org/docs/DevelopersGuide/FirstSteps/FirstSteps.xhtmlhttp://api.openoffice.org/docs/DevelopersGuide/FirstSteps/FirstSteps.xhtmlhttp://api.openoffice.org/docs/DevelopersGuide/FirstSteps/FirstSteps.xhtmlhttp://api.openoffice.org/docs/DevelopersGuide/FirstSteps/FirstSteps.xhtmlhttp://api.openoffice.org/docs/DevelopersGuide/DevelopersGuide.pdfhttp://api.openoffice.org/docs/DevelopersGuide/DevelopersGuide.pdfhttp://api.openoffice.org/docs/DevelopersGuide/DevelopersGuide.pdfhttp://en.wikipedia.org/wiki/Bean_Scripting_Frameworkhttp://en.wikipedia.org/wiki/Bean_Scripting_Frameworkhttp://en.wikipedia.org/wiki/Bean_Scripting_Frameworkhttp://en.wikipedia.org/wiki/Openoffice.orghttp://en.wikipedia.org/wiki/Openoffice.orghttp://en.wikipedia.org/wiki/Openoffice.orghttp://en.wikipedia.org/wiki/REXXhttp://en.wikipedia.org/wiki/REXXhttp://en.wikipedia.org/wiki/REXX