Optimalizace návrhu a správy prostorových dat pomocí Topobase API
Topobase Server API Díky API na straně serveru lze v Topobase nastavovat připojení na jiné servery a načítat data z databáze Oracle s pomocí programovacích jazyků Java a PL/SQL. Server API je vyvíjen …
Topobase Server API
Díky API na straně serveru lze v Topobase nastavovat připojení na jiné servery a načítat data z databáze Oracle s pomocí programovacích jazyků Java a PL/SQL. Server API je vyvíjen právě v Javě a PL/SQL a pracuje nad databází Oracle 10g. API podporuje editaci metadatového modelu Topobase a jedno z jeho nejdůležitějších použití je během migrace dat.
Následující kousek kódu vytváří nové téma a třídu objektů s využitím Server API:
var n number;
call TBSYS.Topic.CreateTopic(‚MyTopic‘, ‚MyTopic‘) into :n
call TBSYS.FeatureClass.CreateFeatureClass(
‚MYPOINT‘, ‚MyPoint‘, ‚MyTopic‘, ‚P‘, 2,
0.0005, ‚NULL‘, ‚AnyInteract‘, 0,
1000000, 1000000, 10000, -10, -10, -10)
into :n
Vzhledem k tomu, že k funkcím Server API se přistupuje pomocí Framework API, není běžně Server API využívána pro vývoj aplikací.
Topobase Framework API
Framework API je základní komponentou Topobase API pro vytvoření jednoho ze dvou typů Topobase aplikace – Autodesk Topobase Client nebo Autodesk Topobase Web Application a umožňuje přístup k Oracle databázi. Pro připojení k databázi, spouštění příkazů a získávání výsledků jsou použity provideři ADO.NET a OraDirect.NET. Díky této API mohou uživatelé vytvářet mnoho specifických aplikací a pluginů pro přizpůsobení svým požadavkům.
Framework API se skládá z následujících částí:
- Datová vrstva – poskytuje přístup k datům, podporu metadat, rozhraní pro dlouhé transakce (long transaction) a pravidla objektů
- Mapové rozhraní – poskytuje více než 50 mapově založených metod a pracuje identicky v prostředí klienta (Map 3D) nebo webu (Autodesk MapGuide).
- Uživatelské rozhraní – Topobase poskytuje objekty pro vývoj vlastních formulářů a ovládacích prvků. Namespace Topobase.Forms obsahuje mnoho dialogových boxů pro oboustrannou komunikaci s uživatelem. Na rozdíl od ovládacích prvků obsažených v knihovně Windows forms, je možné Topobase.Forms použít i pro tvorbu webové aplikace Topobase Web Client.
- Další API komponenty – Graphics, Utilities, Jobs, Logging, a mnoho dalších.
Existují dvě rozdílné cesty k rozšíření a přizpůsobení Topobase pomocí Framework API – vytváření vlastních pluginů a použití skriptů.
Skriptování v Topobase
Skriptování je jednou z cest k přizpůsobení a rozšíření Topobase o novou funkcionalitu. Skripty v Topobase jsou vytvářeny v jazyce VB.NET a jsou používány k práci s pracovními postupy (workflow) nebo atributovými formuláři. Uživatelé mohou vytvářet skripty pro každý workflow dokument pomocí nástroje Topobase Administrator. Definice jsou vždy ukládány v systémové tabulce TB_WORKFLOW. V atributových formulářích lze použít ovládací prvek Script Button pro spuštění krátkých skriptů – ty lze spouštět bez použití pluginů.
Topobase pluginy
Pluginy hrají v Topobase poměrně zásadní roli, protože umožňují vývojářům rozšířit a přizpůsobit Topobase přesně dle specifických požadavků každé organizace. Umožňují například výrazně měnit uživatelské rozhraní, kompletně spravovat pracovní prostředí a řídit, jakým způsobem budou uživatelé pracovat s různými dokumenty a pracovními prostředími. Mnoho z komponent systému Autodesk Topobase je tvořeno právě pluginy. Tato struktura umožňuje vývojářům rozšiřovat již existující funkce nebo naopak bez doplňovat nové bez větších zásahů do celého programu. Samotný aplugin se skládá z DLL knihovny, která může obsahovat jednu nebo více tříd a referenci na Topobase plugin (formát TBP).
Pluginy jsou tedy knihovny .NET tříd, které mohou obsahovat různé prvky uživatelského rozhraní (pluginy aplikací, dokumentů, dialogová okna, formuláře s výběrovými podmínkami a podobně), které jsou přidány do prostředí aplikace Topobase. Jakýkoliv prvek uživatelského rozhraní může být uložen v samostatné knihovně, ale každý musí obsahovat referenci na TBP soubor, který doprovází danou knihovnu.
Formát TBP souboru
Soubor Topobase plugin definuje pro topobase aplikaci, jak má s pluginem pracovat. Název TBP souboru musí být shodný s názvem DLL knihovny (a samozřejmě musí mít koncovku TBP).
Ukázka obsahu TBP souboru:
Namespace="VbSample"
DocumentKey=""
MapName=""
Priority="100"
ExecutionTargetWeb="True"
ExecutionTargetDesktop="True"
Company="My Sample Company"
Author="Jan Novak"
LicenseKey="Construction"
/>
Tag Default slouží k definici vlastností, které by měly být použity pro všechny tagy s pluginy v tomto souboru.
Typy pluginů
V uživatelském rozhraní aplikace Topobase se můžeme setkat s těmito základními typy pluginů:
Application Plug-ins — pluginy týkající se celé aplikace integrované do hlavní nástrojové lišty programu, hlavní nabídky nebo panelu úloh. Puligin je odvozen z třídy Topobase.Forms.ApplicationPlug-in.
Document Plug-ins – pluginy modifikující lokální nástrojové lišty nebo kontextovou nabídku na daném dokumentu a jeho panelu úkolů. Odvozen je z třídy Topobase.Forms.DocumentPlug-in.
Dialog Plug-ins — tyto pluginy mohou měnit nástrojové lišty, nabídky a jiné prvky dialogových oken programu. Odvozeny jsou z třídy Topobase.Forms.DialogPlug-in.
Option Pages – jako "option pages" jsou označovány výběrové formuláře uvnitř nastavení možností aplikace nebo dialogových oken dokumentů a mohou být použity pro přidání nových formulářů do těchto dialogových oken. Odvozeny jsou buď z Topobase.Forms.ApplicationOptionPage nebo Topobase.Forms.DocumentOptionPage.
Application Flyins – pluginy pro pohyblivá okna ukotvitelná uvnitř panelu úloh. Všechny kotvící operace jsou inicializovány automaticky. Pluginy jsou odvozeny z třídy Topobase.Forms.FlyIns.ApplicationFlyIn.
Document Flyins – pohyblivá okna ukotvitelná uvnitř záložek dokumentů v panelu úloh. Všechny kotvící operace jsou inicializovány automaticky. Pluginy jsou odvozeny z třídy Topobase.Forms.FlyIns.DocumentFlyIn.
Dialog Flyins — rámce uvnitř dialogových oken. Na rozdíl od jiných druhů plovoucích oken s nimi nelze pohybovat. Tyto pluginy jsou odvozeny z třídy Topobase.Forms.FlyIns.DialogFlyIn.
Související články:
- Optimalizace návrhu a správy prostorových dat pomocí Topobase API