Archív Inet.sk Pôvodný autor: Július Pastierik
30. 06. 2008 o 00:00 2820x

Makrá v OpenOffice.org 06/2008

V dnešnom dieli seriálu o makrách v OpenOffice.org si ukážeme, ako z makra dokážeme vytvoriť rozšírenie.
Makrá v OpenOffice.org 06/2008

Pri popise rozšírenia pre prípravu slov do slovenského slovníka sme sľúbili, že prinesieme aj jeho zdrojové kódy. Skôr, ako sa dostaneme k tomuto makru, musíme sa ešte venovať problematike rozšírení, pretože toto makro je naň úzko previazané.

Pri praktickom programovaní makier potrebujeme z neho mnohokrát urobiť rozšírenie, pomocou ktorého sa makro automaticky vloží do OpenOffice.org vrátane možností jeho ľahkého volania či už pomocou menu alebo vložených panelov nástrojov. Pozrime sa preto na to, ako to dokážeme urobiť.

Hneď na začiatok uveďme, že tento návod rozhodne nie je úplný, ale iba popíše niektoré základné veci, ktoré musíme pri tvorbe rozšírení dodržať. Pretože rozšírenia sú vlastne ZIP súbory, ich štúdiom sa následne môžeme naučiť aj ďalšie „finty“. V neposlednom rade je potom na stránkach vývojárov OpenOffice.org k dispozícii dokumentácia pre tvorbu rozšírení.

Dosť však bolo teórie. Pri praktickej tvorbe rozšírenia je samozrejmé, že makro najprv odladíme v prostredí OpenOffice.org. Pokiaľ vieme, že z neho budeme rozbiť rozšírenie je najlepšie, ak ho uložíme do osobitnej knižnice. Táto je potom k dispozícii ako samostatný adresár v používateľskom adresári OpenOffice.org (v OS Windows ho nájdeme v adresári „C:Documents and Settings používateľ Application DataOpenOffice.org2userbasic“).

Teraz si pripravíme na inom mieste adresár, ktorý bude tvoriť v konečnom dôsledku vlastné rozšírenie (napríklad „SK_SK_Slovnik“). Do neho skopírujeme 1:1 adresár knižnice s makrami, z ktorého ideme vytvárať rozšírenie (osobne používam úplne rovnaké názvy). Ďalej si musíme v tomto adresári vytvoriť adresár „META-INF“ – pozor, musí sa menovať presne takto vrátane dodržania veľkosti písmen.

Vnutorny zoznam suborov a adresarov rozsirenia

Pre ďalšiu prácu potrebujeme textový editor, ktorý umožňuje pracovať so súbormi v kódovaní „UTF-8“. Osobne mi pre túto prácu najviac vyhovuje český editor PSPad, ktorý je možné používať zadarmo aj pre komerčné účely. O tom, čo všetko umožňuje si prinesieme informáciu vrámci recenzií programov.

PsPad

V adresári „META-INF“ teraz vytvoríme súbor „manifest.xml“ s nasledujúcim obsahom:

<?xml version="1.0" encoding="UTF-8"?>
<manifest:manifest>
 <manifest:file-entry manifest:full-path="WriterWindowState.xcu" manifest:media-type="application/vnd.sun.star.configuration-data"/>
 <manifest:file-entry manifest:full-path="addon.xcu" manifest:media-type="application/vnd.sun.star.configuration-data"/>
 <manifest:file-entry manifest:full-path="SK_SK_Slovnik/" manifest:media-type="application/vnd.sun.star.basic-library"/>
</manifest:manifest>

Týmto zápisom oznamujeme OpenOffice.org, kde sa nachádzajú ostatné popisné časti rozšírenia.

Teraz sa vrátime do hlavného adresára, kde vytvoríme tri súbory: „addon.xcu“, „WriterWindowState.xcu“ a „description.xml“.

V súbore „description.xml“ definujeme základné parametre rozšírenia, ako je jeho názov (pozor, musí byť vrámci OpenOffice.org jedinečný), verzia, link, kde je uložený a pod. Jeho obsah môže byť napríklad takýto:

<?xml version="1.0" encoding="UTF-8"?>
<description xmlns="http://openoffice.org/extensions/description/2006" xmlns:xlink="http://www.w3.org/1999/xlink">
 <version value="0.5.7-b2" />
 <identifier value="SK_SK_Slovnik.addon" />
 <update-information>
  <src xlink:href="http://www.inet.sk/images/user/pastierik/ooomakra/SK_SK_Slovnik.oxt"/>
 </update-information>
</description>

V súbore „WriterWindowState.xcu“ teraz budeme definovať, že do OpenOffice.org pridávame nový panel nástrojov, ktorý nazveme úplne rovnako, ako rozšírenie – „SK_SK_Slovnik“:

<?xml version='1.0' encoding='UTF-8'?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="WriterWindowState" oor:package="org.openoffice.Office.UI">
 <node oor:name="UIElements">
  <node oor:name="States">
   <node oor:name="private:resource/toolbar/addon_name.JP.addon.SK_SK_Slovnik" oor:op="replace">
    <prop oor:name="UIName" oor:type="xs:string">
     <value xml:lang="en-US">SK_SK_Slovnik</value>
    </prop>
   </node>
  </node>
 </node>
</oor:component-data>

Samozrejme, nie sme obmedzení iba na jeden panel. Napríklad pomocou tejto definície zadefinujeme až štyri panely nástrojov („JP_formatuj_dokument“, „JP_formatuj_medzery“, „JP_specialna_zamena“ a „JP_medzery_on_off“):

<?xml version='1.0' encoding='UTF-8'?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="WriterWindowState" oor:package="org.openoffice.Office.UI">
 <node oor:name="UIElements">
  <node oor:name="States">

   <node oor:name="private:resource/toolbar/addon_name.JP_format_zamen.addon.JP_formatuj_dokument" oor:op="replace">
    <prop oor:name="UIName" oor:type="xs:string">
     <value xml:lang="en-US">JP_formatuj_dokument</value>
    </prop>
   </node>

   <node oor:name="private:resource/toolbar/addon_name.JP_format_zamen.addon.JP_formatuj_medzery" oor:op="replace">
    <prop oor:name="UIName" oor:type="xs:string">
     <value xml:lang="en-US">JP_formatuj_medzery</value>
    </prop>
   </node>

   <node oor:name="private:resource/toolbar/addon_name.JP_format_zamen.addon.JP_specialna_zamena" oor:op="replace">
    <prop oor:name="UIName" oor:type="xs:string">
     <value xml:lang="en-US">JP_specialna_zamena</value>
    </prop>
   </node>

   <node oor:name="private:resource/toolbar/addon_name.JP_format_zamen.addon.JP_medzery_on_off" oor:op="replace">
    <prop oor:name="UIName" oor:type="xs:string">
     <value xml:lang="en-US">JP_medzery_on_off</value>
    </prop>
   </node>

  </node>
 </node>
</oor:component-data>

Nakoniec musíme v súbore „addon.xcu“ zadefinovať vlastný obsah panela nástrojov. Nasledujúca definícia obsahuje popis iba jedného jediného tlačidla:

<?xml version='1.0' encoding='UTF-8'?>
<oor:node xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="Addons" oor:package="org.openoffice.Office">
 <node oor:name="AddonUI">
  <node oor:name="OfficeToolBar">
   <node oor:name="name.JP.addon.SK_SK_Slovnik" oor:op="replace">

    <node oor:name="btn01" oor:op="replace">
     <prop oor:name="Context" oor:type="xs:string">
      <value>com.sun.star.text.TextDocument</value>
     </prop>
     <prop oor:name="Title" oor:type="xs:string">
      <value xml:lang="sk">Príprava slova pre slovník</value>
     </prop>
     <prop oor:name="URL" oor:type="xs:string">
      <value>macro:///SK_SK_Slovnik.Slovnik.Skontroluj_slovo</value>
     </prop>
     <prop oor:name="Target" oor:type="xs:string">
      <value>_self</value>
     </prop>
     <prop oor:name="ImageIdentifier" oor:type="xs:string">
      <value>%origin%/SK_SK_Slovnik/skontroluj</value>
     </prop>
    </node>

   </node>
  </node>
 </node>
</oor:node>

Pri niektorých položkách sa teraz pristavíme trochu podrobnejšie.
Zápis „<node oor:name="btn01" oor:op="replace">“ určuje vnútorný názov tlačidla („btn01“). Na tomto názve záleží iba v rámci príslušného rozšírenia a dokonca iba v rámci definície jedného panela nástrojov.

Zápis „<value>com.sun.star.text.TextDocument</value>“ hovorí o tom, že toto tlačidlo panela nástrojov bude prístupné v module Writer. Pre modul Calc by musel mať tvar „<value>com.sun.star.sheet.SpreadsheetDocument</value>“.

Zápis „<prop oor:name="Title" oor:type="xs:string"> <value xml:lang="sk">Príprava slova pre slovník</value>“ je nápomocný text, ktorý sa zobrazí, keď prejdeme nad príslušné tlačidlo.

Zápis „<prop oor:name="URL" oor:type="xs:string"> <value>macro:///SK_SK_Slovnik.Slovnik.Skontroluj_slovo</value>“ hovorí o tom, ktorá procedúra sa pri stlačení tlačidla bude volať.

TlačidloZápis <prop oor:name="ImageIdentifier" oor:type="xs:string"> <value>%origin%/SK_SK_Slovnik/skontroluj</value>“ hovorí o tom, ktoré tlačidlo sa bude zobrazovať. Tlačidlá musíme definovať špecificky v BMP formáte. Názov tlačidla je „skontroluj“ (musí byť jednoznačné v rámci príslušného rozšírenia), pričom názov súboru musí byť „skontroluj_16.bmp“ a, pokiaľ chceme definovať aj veľké tlačidlá, tak „skontroluj_26.bmp“. Ako naznačujú čísla pri názvoch, rozmer obrázku musí byť 16x16 (26x26) bodov. Ako priehľadná farba sa používa fialová farba, ako je vidno na zosnímanej definícii tlačidla. Vlastné súbory je potrebné uložiť do adresára, kde je definícia makra.

Obsah adresára s makrami a tlačidlami

Keď máme všetky súbory pripravené, označíme ich a vytvoríme z nich ZIP súbor. Tomuto následne premenujeme príponu na OXT a rozšírenie máme hotové. Z makier odstránime knižnicu, z ktorej sme rozšírenie pripravovali a nič nám nebráni v jeho inštalácii.

Na budúce uvedieme zdrojové texty rozšírenia pre prácu so slovníkmi, pričom sa znovu vrátime k dnešnému dielu, pretože do rozšírenia budeme vkladať aj iné (konkrétne textové) súbory s definíciou gramatiky.

 

Novinky a inšpirácie

Z nášho blogu

Prečítajte si novinky, inšpirácie a dôležité informácie zo sveta webhostingu a technológií.

Novinky na Inet.sk (09 / 2026) Novinky
09. 09. 2026

Novinky na Inet.sk (09 / 2026)

Posledné mesiace sme v Inet.sk nevenovali len stabilite serverov, ale najmä počúvaniu vašich reálnych skúseností z každodennej praxe. Výs...

Čítať viac
Plánovaná údržba v datacentre (20.09.2026) Oznamy
07. 09. 2026

Plánovaná údržba v datacentre (20.09.2026)

Stabilita a nepretržitá dostupnosť vašich webov je pre nás kľúčová. Aby sme tento štandard nielen udržali, ale neustále zvyšovali, naši p...

Čítať viac
Aktualizujte ihneď svoj Wordpress - Kritická zraniteľnosť (CVE-2026-63030) Oznamy
31. 08. 2026

Aktualizujte ihneď svoj Wordpress - Kritická zraniteľnosť (CVE-2026-63030)

Bezpečnostný tím WordPressu vydal núdzovú bezpečnostnú záplatu pre kritickú chybu označenú ako CVE-2026-63030. Táto zraniteľnosť dosiahla...

Čítať viac
Nespíme na vavrínoch, pozrite si našu úrodu nových webov Novinky
01. 07. 2026

Nespíme na vavrínoch, pozrite si našu úrodu nových webov

Prvých šesť mesiacov roka 2026 preverilo našu kreativitu aj technické nasadenie. Naše servery nezaznamenali len nárast prevádzky, ale aj ...

Čítať viac

Podpora klientom

Máte ďalšie otázky?

Nezúfajte, pripravili sme pre Vás jednoduché odpovede na najdôležitejšie otázky, ktoré od našich klientov dostávame.

Zistiť viac

Naše výhody

Prečo si nás vybrať?

Našim klientom ponúkame až 30-dňovú záruku vrátenia peňazí.

Sme skutočný slovenský webhosting

Slovenská
firma

Nepatríme pod žiadnu nadnárodnú spoločnosť, sme malá rodinná firma.

Na nás sa môžete kedykoľvek spoľahnúť

Dlhoročné
skúsenosti

Na slovenskom trhu pôsobíme už viac ako 20 rokov, sme overená značka.

Naši prví zákazníci sú stále s nami

Spokojní
zákazníci

Naši zákazníci sú ako naša rodina, preto nám verí už viac ako 1250 klientov.

Maximálna bezpečnosť

Maximálna
bezpečnosť

Chránime Vás pred útokmi i SPAMom. U nás sú Vaše dáta v bezpečí.

Prozákaznícka podpora

Ochotná
podpora

Zakladáme si na individuálnom prístupe, preto Vám vždy radi pomôžeme.

Kvalita a dobrá cena

Výborný pomer
cena / výkon

Ponúkame kvalitné a stabilné služby za rozumnú cenu bez skrytých poplatkov.

U nás sa Vám nič nestratí

Pravidelné
zálohovanie

Vaše dáta zálohujeme každý deň, dostupné sú aj zálohy z pred niekoľkých mesiacov.

Svižný Admin Panel nájdete len u nás

Prehľadný
Admin Panel

Máme rýchly a prehľadný Admin Panel, ktorý zvládne používať naozaj každý.

Správa používateľov

Správa
používateľov

Spravujte svoje projekty bez akýchkoľvek obáv s kolegami alebo externými partnermi.

Máme zľavy pre verných klientov

Vernostné
zľavy

Verní klienti u nás automaticky získavajú 15 % zľavu na každú ďalšiu objednávku.

My Vás nebudeme obmedzovať

Bez
obmedzení

Neobmedzujeme počet databáz, e-mailov, ftp a ani prenos dát.

Hosting pre WordPress

WordPress
na 1 klik

Nainštalujte si obľúbené redakčné systémy rýchlo a jednoducho.

Referencie

Spokojní zákazníci

Pozrite sa, čo o nás povedali naši klienti. Neváhajte a pridajte sa k nám ešte dnes.

Auto 100
Bystricoviny
eCall Slovakia
Filip Jančík
Frost
Merkury Broker
Mi:Su Design
Mesto Nitra
Pro Clienta
Schneider Lekáreň
Vego Marketing
Mesto Zlaté Moravce

Všetky ceny sú uvádzané bez DPH
© 2006 - 2026, Inet.sk, s. r. o., Všetky práva vyhradené

Na našej stránke používame "cookies". Vďaka nim sledujeme návštevnosť, prispôsobujeme reklamu a používateľské nastavenia, čo zlepšuje Váš zážitok z našej stránky. Súhlasíte s ich spracovaním?
Vlastné nastavenia cookies