CZJUG, 15.12.2008, Robert Vojta

Transkript

CZJUG, 15.12.2008, Robert Vojta
Integrace
OpenOffice.org a Javy
CZJUG, 15.12.2008, Robert Vojta
Obsah
Část 1 - Teorie
Úvodní informace, definice pojmů
Dokumentace, Java Language Binding
Pomocné nástroje
Část 2 - Praktické ukázky
Lokální použití OpenOffice.org
OpenOffice.org na serveru
Definice
pojmů
UNO
Universal Network Objects
Základní technologie OO.o
Sdílení komponent mezi jazyky,
platformami, lokálně a vzdáleně
UNO je dostupné pro Linux, Solaris,
Windows, Power PC, FreeBSD a Mac
OS X
UNO
Podporované jazyky - Java, C++
Tvorba komponent
Komponenty je možné používat z
Java, C++, Basic
Python, Microsoft COM
.NET pomocí CLI
Javascript, Beansheel, Jython
UNO
UNO IDL
UNO Interface Definition Language
Univerzální způsob definice
rozhraní, konstant a dalších entit
pro všechny podporované jazyky
Podobné jako CORBA IDL, MIDL
Součástí SDK jsou nástroje, které
generují hlavičkové soubory a
knihovny pro podporované jazyky
UNO IDL ukázka
module name { module vojta {
struct Sample :
com::sun::star::lang::EventObject {
short property;
}; }; };
URE, SDK, URP
UNO Runtime Environment
http://download.openoffice.org/ure.html
SDK Software Development Kit
http://download.openoffice.org/sdk.html
URP UNO Remote Protocol
UNO
&
Java
Mapování typů
UNO
Java
UNO
Java
void
void
u/hyper
long
float
float
boolean boolean
byte
byte
double
double
u/short
short
char
char
u/long
int
String
String
Type
Type
com.sun.star.uno.Type
nesmí být null, je final
přetížené metody, které akceptují Class a
Type
UnoRuntime.queryInterface()
queryInterface( Type type, … );
queryInterface( Class clazz, … );
Any
Any
com.sun.star.uno.Any, final
mapováno na java.lang.Object
výjimka - Any jako parametr funkce
com.sun.star.uno.AnyConverter
statické metody na konverzi
boolean isDouble( Object obj );
double toDouble( Object obj );
Sekvence
Všechny sekvence jsou mapovány
na pole
sequence< double >;
double[];
;
>
>
g
n
o
l
<
e
c
n
e
u
q
e
s
sequence<
int[][];
Struktury
module name { module vojta {
struct Sample :
com::sun::star::lang::EventObject {
short property;
}; }; };
package name.vojta;
public class Sample extends
EventObject {
public short property;
Více informací
Developer's Guide
Professional UNO
UNO Language Bindings
Java Language Binding
Getting a Service Manager
Transparent Use of UNO
Handling interface
Type Mappings
Dokumentace
Dokumentace
Developer's Guide [PDF]
Java UNO Runtime reference
IDL reference
Interface Definition Language
IDL Design Guide
IDL Documentation Guide
Included services
Included services
Hlavní objekty
Metody jsou přímo přístupné
Stejné jako dědění
Properties
Pokud objekt podporuje vlastnosti,
vždy podporuje rozhraní
XPropertySet
Dále jsou podporována (nemusí)
rozhraní XMultiPropertySet,
XPropertyAccess, atd.
Více informací v Developer's Guide
Exported services
Metody nelze volat přímo
Je nutné "přetypování"
Object cell = …;
XCell xCell = ( XCell ) UnoRuntime.
queryInterface( XCell.class,
cell );
Exported services
Metodu queryInterface() je
možné volat i na přetypované
objekty, rozhraní
Služba Cell podporuje XText,
XCell
Přetypuji-li Cell na XText, můžu
XText přetypovat na XCell = není
nutné držet referenci na Cell
Introspekce
XRay
Knihovna v BASICu, která používá
XIntrospection rozhraní
Zobrazuje vlastnosti, metody a
rozhraní objektů
Stáhnout XRay
XRay v praxi
Sub Introspection
BasicLibraries.
LoadLibrary( "XrayTool" )
XRay ThisComponent
End Sub
XRay v praxi
Object inspector
Rozšíření napsané v Javě, které
nabízí obdobnou funkčnost jako
XRay
Navíc umožňuje generovat zdrojový
kód pro Javu, C++, BASIC
Stáhnout Object Inspector
Object inspector v praxi
Sub Inspector
oInspector =
createUnoService("org.openoffice.I
nstanceInspector")
oInspector.inspect(ThisComponent,
"My Document")
End Sub
Object inspector v praxi
NetBeans
OO.o API
plugin
OpenOffice.org plugin
Usnadňuje tvorbu
rozšíření
Podporuje
NetBeans 6.5 a
OO. 3.0
Instalace - Tools
- Plugins NetBeans Beta
OpenOffice.org plugin
Add-on
rozšíření
Calc Add-in
nové funkce
Component
služby (= service)
Client Application
Projekt - Addon
OpenOffice.org Addon
Jednoduché rozšíření
Makra v Basicu, Javě, …
Modifikace menu, ikon, tlačítek
Rozšíření může obsahovat šablony, galerii
klipartů, apod.
Typicky jde o jednoúčelové rozšíření
Projekt - Component
OpenOffice.org org Component
Je to Addon? Je, ale s tím rozdílem, že
musí implementovat minimálně jednu
službu (= service)
Typicky jde o komponentu, kterou lze
použít i z jiných rozšíření
Addon, Component, Calc Addin může být
zkombinován do jednoho rozšíření
Projekt - Addin, Client
OpenOffice.org org Calc Addin
Implementace nových funkcí do Calcu
OpenOffice.org Client Application
Klientská aplikace běžící mimo
OpenOffice.org
OO.o na
serveru
Úvodní informace
Speciální serverová edice neexistuje
Vzdálené připojování je standardně
vypnuté
Je potřeba ošetřit
memory leaky
pády
bezpečnost
Instance
Standardně je možné spustit jednu
instanci pod jedním uživatelem
Neomezený počet instancí je možné
zajistit pomocí
soffice
-env:UserInstallation=/ooo/user1
Start služby
OpenOffice.org se na serveru
spouští pomocí
soffice
-headless -norestore
-invisible -nologo
-accept="socket,
host=0,port=8001;urp;"
Praktické
ukázky

Podobné dokumenty

openMagazin 02/2012

openMagazin 02/2012 FOSS ve veřejné správě. Přednášet budou odborníci z oboru i vývojáři FOSS. Mezi přednášejícími jsou zástupci veřejného i  soukromého sektoru z  českého i  evropského prostředí. Pozvání přijali např...

Více

Průvodce instalací - OpenOffice.org v češtině

Průvodce instalací  - OpenOffice.org v češtině v souboru readme.txt (Windows), README (Solaris a Linux), nebo v souborech readme.html v adresáři office . Instalační soubory OpenOffice.org pro Solaris (SPARC) naleznete v adresáři / cdrom/solspar...

Více

OAuth

OAuth User authorizes access to the protected resources

Více

Česká Java User Group (CZJUG) a Platforma informačních

Česká Java User Group (CZJUG) a Platforma informačních Poslední dobou je čím dál častěji slyšet o hnutí NoSQL, nerelačních databázích a jejich výhodách v prostředí obrovských objemů dat (web-scale). Jednou z nejpopulárnějších NoSQL databází je CouchDB,...

Více

Zobrazit nápovědu v souboru

Zobrazit nápovědu v souboru na tlačítko otevře URL ve webovém prohlížeči, aniž by bylo potřeba vytvářet kód jazyka ActionScript. Pokud jste programátor a chcete vytvářet náročnější aplikace, můžete komponenty vytvářet dynamic...

Více