8
edits
(document structure) |
(removed blan lines) |
||
Line 46: | Line 46: | ||
}) | }) | ||
</pre> | </pre> | ||
Nyní zkuste Ubiq "hello-world". Uvidíte, že se "Hello, World!" hned zobrazí na obrazovce. Pokud používáte Mac OS X s nainstalovaným [http://en.wikipedia.org/wiki/Growl_(software) Growl], objeví se Growl zpráva. Pokud používáte Windows, objeví se klasická zpráva pravém dolním rohu obrazovky. | Nyní zkuste Ubiq "hello-world". Uvidíte, že se "Hello, World!" hned zobrazí na obrazovce. Pokud používáte Mac OS X s nainstalovaným [http://en.wikipedia.org/wiki/Growl_(software) Growl], objeví se Growl zpráva. Pokud používáte Windows, objeví se klasická zpráva pravém dolním rohu obrazovky. | ||
http://img367.imageshack.us/img367/7051/picture1ui2.png | http://img367.imageshack.us/img367/7051/picture1ui2.png | ||
Line 76: | Line 74: | ||
V našem příkazu "hello-world" nepotřebujeme dělat nic dramatického, prostě jen přidáme text sloužící pro nápovědu, který bude lepší než výchozí "Executes the hello-world command." | V našem příkazu "hello-world" nepotřebujeme dělat nic dramatického, prostě jen přidáme text sloužící pro nápovědu, který bude lepší než výchozí "Executes the hello-world command." | ||
<pre>CmdUtils.CreateCommand({ | <pre>CmdUtils.CreateCommand({ | ||
Line 104: | Line 101: | ||
Použili jsme tu novou funkci setSelection(). Ta vloží text do stránky na pozici kurzoru. Pokud je kurzor v editovatelném poli, pak dojde k vložení textu. Pokud kurzor v takovém poli není, bude setSelection() přesto schopná text vložit. (Firefox si vždy uchovává pozici kurzoru. Zobrazíte si ji pomocí klávesy F7.) Zkuste si zobrazit nějakou stránku, označit v ní kus (neměnného) textu a spusťte náš příkaz. Funguje! Jedná se o obzvláště užitečnou funkci pro příkazy typu "přelož", které vám přeloží texty na stránce. | Použili jsme tu novou funkci setSelection(). Ta vloží text do stránky na pozici kurzoru. Pokud je kurzor v editovatelném poli, pak dojde k vložení textu. Pokud kurzor v takovém poli není, bude setSelection() přesto schopná text vložit. (Firefox si vždy uchovává pozici kurzoru. Zobrazíte si ji pomocí klávesy F7.) Zkuste si zobrazit nějakou stránku, označit v ní kus (neměnného) textu a spusťte náš příkaz. Funguje! Jedná se o obzvláště užitečnou funkci pro příkazy typu "přelož", které vám přeloží texty na stránce. | ||
Funkce toLocalDateString() je nativní funkce JavaScriptu. Pokud ji neznáte, podívejte se do [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Date dokumentace]. | Funkce toLocalDateString() je nativní funkce JavaScriptu. Pokud ji neznáte, podívejte se do [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Date dokumentace]. | ||
Line 203: | Line 199: | ||
Příkaz "map", který Ubiquity obsahuje, je skutečně mocný. Je také slušně komplikovaný, i když to je relativní, jedná se jen několik set řádek kódu. Představte si, že si na Craigslistu (nebo na jiném webu) vybere nějaké domy nebo třeba seznam restaurací a jen zadáte příkaz "map these" a zobrazí se vám mapa, jakou potřebujete. Koncept "these" dovoluje uživatelům vytvářet mashupy. Ale to jsem odbočil. Vytvořme jednoduchý příkaz, který vloží mapu vaší aktuální polohy. | Příkaz "map", který Ubiquity obsahuje, je skutečně mocný. Je také slušně komplikovaný, i když to je relativní, jedná se jen několik set řádek kódu. Představte si, že si na Craigslistu (nebo na jiném webu) vybere nějaké domy nebo třeba seznam restaurací a jen zadáte příkaz "map these" a zobrazí se vám mapa, jakou potřebujete. Koncept "these" dovoluje uživatelům vytvářet mashupy. Ale to jsem odbočil. Vytvořme jednoduchý příkaz, který vloží mapu vaší aktuální polohy. | ||
V tomto příkazu použijeme Google [http://code.google.com/apis/maps/documentation/staticmaps/ API pro statické mapy] a Ubiquity funkci CmdUtils.getGeoLocation(), která vloží mapu s vaší aktuální polohou. Ubiquity v tuto chvíli používá API [http://www.maxmind.com/app/api MaxMind], které odhadne vaši polohu podle IP adresy. V budoucnu to pravděpodobně ještě změníme. | V tomto příkazu použijeme Google [http://code.google.com/apis/maps/documentation/staticmaps/ API pro statické mapy] a Ubiquity funkci CmdUtils.getGeoLocation(), která vloží mapu s vaší aktuální polohou. Ubiquity v tuto chvíli používá API [http://www.maxmind.com/app/api MaxMind], které odhadne vaši polohu podle IP adresy. V budoucnu to pravděpodobně ještě změníme. | ||
Line 360: | Line 355: | ||
Jednou z výhod vytvoření takového datového typu je, když uživatel zadá např. "get-color bl", Ubiquity bude schopno nabídnout "black" a "blue" jako dva možné dokončení vstupu. | Jednou z výhod vytvoření takového datového typu je, když uživatel zadá např. "get-color bl", Ubiquity bude schopno nabídnout "black" a "blue" jako dva možné dokončení vstupu. | ||
Ne každý datový typ budete chtít vytvořit pomocí výčtu všech hodnot. Pokud chcete vybírat hodnoty na základě algoritmu, můžete tak učinit vytvořením vašeho vlastního typu namísto vytváření instance CmdUtils.NounType. Příklad takového použití si ukážeme příště. | Ne každý datový typ budete chtít vytvořit pomocí výčtu všech hodnot. Pokud chcete vybírat hodnoty na základě algoritmu, můžete tak učinit vytvořením vašeho vlastního typu namísto vytváření instance CmdUtils.NounType. Příklad takového použití si ukážeme příště. | ||
Line 676: | Line 670: | ||
* Jelikož činnost asynchronních volání bývá časově náročná a protože metoda suggest může být volána po každém stisku klávesy uživatele, měli byste zvážit implementaci zpožděného vykonávání a cachování. Ubiquity to v tuto chvíli nechává na jednotlivých datových typech. | * Jelikož činnost asynchronních volání bývá časově náročná a protože metoda suggest může být volána po každém stisku klávesy uživatele, měli byste zvážit implementaci zpožděného vykonávání a cachování. Ubiquity to v tuto chvíli nechává na jednotlivých datových typech. | ||
* Mnohem lepší implementaci datových typů a la Freebase najdete na [http://graynorton.com/ubiquity/freebase-nouns.html graynorton.com]. | * Mnohem lepší implementaci datových typů a la Freebase najdete na [http://graynorton.com/ubiquity/freebase-nouns.html graynorton.com]. | ||
== Spouštění skriptu po načtení stránky a při startu == | == Spouštění skriptu po načtení stránky a při startu == |
edits