Postup tvorby aplikace se liší pro každý programovací jazyk. Následujících několik bodů Vám dá návod jak projít všechny úskalí tvorby aplikace v programovacím jazyku Java. Postup tvorby nebudeme vysvětlovat ve vývojovém prostředí, protože ne každý vývojové prostředí vlastní. Vývojové prostředí pro Javu není součástí dodávky AutoCADu.
Postup tvorby jednoduché aplikace v Javě v libovolném textovém editoru, umožňujícím ukládání souboru ve formátu ASCII s koncovkou .java. Ke spouštění programů napsaných v Javě je nutný virtuální stroj (VM). ActiveX objekty v AutoCADu používají Microsoft Win32 Java virtuální stroj, který je součástí vývojového prostředí Microsoft Visual J++ (je možné bezplatně nahrát na adrese www.microsoft.com/java jako Microsoft Java SDK, v současnosti ve verzi 3.2). Abychom mohli vyvíjet programy v Javě pro AutoCAD potřebujeme:
Abychom mohli pracovat s rozhraním ActiveX AutoCAD (importovali ActiveX objekty do Java tříd), musíme použít program jactivex. Do příkazového řádku napište následující kód:
jactivex acad.tlbSoubor acad.tlb je v hlavním adresáři AutoCADu. Tento příkaz vytvoří v adresáři \windows\java\trustlib\ podadresář se jménem acad, který bude obsahovat Java třídy importující ActiveX objekty systému AutoCAD.
Druhým krokem je definice všech požadavky, které od programu požadujete splnit. Zejména se zaměřte na vstupy a výstupy z programu. Také si důkladně prostudujte objektový model AutoCADu, usnadní Vám to pozdější práci sobjekty AutoCADu. Při studiu se zaměřte zejména na vazby mezi objekty.
Jakmile pochopíte objektový model AutoCADu, bude pro Vás již snadné zjistit si tvar všech příkazů AutoCADu, které budete používat. Ušetří Vám to spoustu drahoceného času při ladění programu. Při zjišťování tvaru příkazů AutoCADu můžete využít nápovědy Visual Basicu pro Aplikace (příkazy VBA a Javy jsou si v mnohém velice podobné).
Při psaní aplikace je dobré se předem rozhodnout jakým způsobem bude uživatel dotazován na zadání potřebných informací. Zadání informací pomocí příkazové řadky je sice jednoduché, ale nenázorné. Příjemnější získání hodnot od uživatele je pomocí dialogového okna. Pokud Vaše aplikace bude používat uživatelské rozhraní - formuláře, je výhodné si nejprve navrhnout jejich tvar na papír. Při návrhu formulářů si popište jednotlivé dialogové prvky (usnadní Vám to orientaci ve složitějších dialogových oknech a využijete je také při psaní kódu).
Nyní můžete již začít psát kód aplikace. Otevřete libovolný ASCII editor (textový editor, který umožňuje ukládat soubor ve formátu ASCII s koncovkou .java, např. Notepad).
Na začátku kódu aplikace musíme nejprve kompilátoru sdělit jaké balíky tříd v aplikaci používat. Aby byly přístupné třídy (objekty AutoCADu a práce s ActiveX) musíme importovat následující balíky:
import acad.*; // zpřístupnění balíku tříd acad import com.ms.com.*; // zpřístupnění balíku tříd pro // podporu ActiveXPokud se potřebujete dozvědět více o importování balíku tříd dozvíte se je v kapitole Postup při importování knihovny typů.
Jelikož vytváříme aplikaci Javy, musí za importováním balíku tříd následovat deklarace veřejné třídy a metody main. Jméno veřejné třídy musí být totožné (i velikostí písmen) se jménem souboru, do kterého bude třída uložena!
public class jméno_veřejné_třídy { public static void main(String[] args) {
V programu musíme dále zpřístupnit (vytvořit) instanci objektu aplikace AutoCAD, z objektu Application AutoCADu. Vytvořený objekt Application AutoCAD nesmíte zapomenout zpřístupnit:
IAcadApplication IApp = (IAcadApplication) new AcadApplication(); IApp.putVisible(true);Další kroky programu záleží již na specifické funkci aplikace. Pokud potřebujete například vykreslit objekty v AutoCADu musíte si zpřístupnit objekty:
- ActiveDocument - aktivní dokument AutoCADu,
- ModelSpace - modelový prostor AutoCADu a
- Utility - pomocné metod (např pro převody).
Více se o objektech a objektovém modelu AutoCADu můžete dozvědět v kapitole Objektový model AutoCADu.
IAcadDocument IDoc = (IAcadDocument) IApp.getActiveDocument(); IAcadUtility IUtil = (IAcadUtility) IDoc.getUtility(); IAcadModelSpace IMSpace = (IAcadModelSpace) IDoc.getModelSpace();
Jakmile máte zpřístupněny všechny objekty AutoCADu můžete dopsat výkonný kód Vaší aplikace (vykreslení objektů, interakce s uživatel, poslání dat atd.). V kódu aplikace nezapomeňte ošetřit úseky kódu, které by mohly vygenerovat při běhu programu nějaké chyby. Typicky se jedná o úseky kódu, v kterém má uživatel zadat hodnoty v AutoCADu. Více o odchycení chyb při běhu aplikace se v kapitole Použití výjimek při psaní kódu.
Po napsání veřejné třídy můžete do aplikace přidat uživatelské rozhraní - formuláře. Bohužel Java neobsahuje (pokud se nejedná o vývojové prostředí např. Visual J++) žádné prodtředky pro visuální tvorbu formulářů.
Dopsaný kód aplikace musíme uložit s koncovkou .java se stejným jménem jako má veřejná třída aplikace:
jméno_veřejné_třídy.javaTímto krokem jsme dokončily první část tvorby aplikace.
Aby bylo možné vytvořenou aplikaci spustit, musíme aplikaci nejprve zkompilovat do binárního formátu - soubor.class. Zkompilování třídy se uskuteční pomocí příkazu:
jvc jméno_veřejné_třídy.java
Uvědomte si, že jméno_veřejné_třídy je totožné s jménem souboru .java. Pokud by tomu tak nebylo kompilátor oznámí chybu a aplikaci nezkompiluje.
Po zkompilování se vytvoří soubor jméno_veřejné_třídy.class. Více o souborech Javy se dozvíte v kapitole Formáty ukládání souborů.
Pokud máte aplikaci zkompilovanou, můžete ji spustit. Aplikace Javy se spouší příkazem:
jview jméno_veřejné_třídy
Pokud nevlastníte žádné vývojové prostředí pro tvorbu aplikací v Javě (př. Visual J++ apod.) musíte použít primitivní metody ladění, vesměs založené na použítí příkazu tisku zprávy do okna příkazový řádek:
System.out.println("Zpráva, hodnota proměnné ... " + proměnná);Vývojová prostředí poskytují mnohem širší možnosti ladní aplikace (okna pro sledování proměnných, doplnění zarážek do programu, krokování programu ...).