CZJUG, 15.12.2008, Robert Vojta
Transkript
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
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ř...
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...
Č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,...
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...