10
edits
No edit summary |
No edit summary |
||
| Line 64: | Line 64: | ||
Voltando ao exemplo. O centro do comando é a função <code>displayMessage()</code>, que exibe uma mensagem da maneira que o sistema operacional puder fazer. | Voltando ao exemplo. O centro do comando é a função <code>displayMessage()</code>, que exibe uma mensagem da maneira que o sistema operacional puder fazer. | ||
Você deve estar espantado porque existe um hífen no nome, ao invés de um espaço. Isto porque a linguagem nativa do interpretador do Ubiquity não é ainda inteligente o bastante para tratar comandos constituídos de várias palavras e nem argumentos que são formados por múltiplas palavrass. Isto é algo a ser trabalhado no futuro. | |||
== | == Usando o CreateCommand == | ||
Para comandos que forem bem mais complexos que nosso simples comando "hello-world", podemos utilizar a função auxiliar <code>CmdUtils.CreateCommand()</code>, que utiliza um dicionário de opções. Para reescrever nosso comando "hello-world" utilizando esta conveniente função, nós escrevemos: | |||
<pre> | <pre> | ||
| Line 79: | Line 79: | ||
</pre> | </pre> | ||
Isto pode não parecer vantajoso (e não é para comandos simples) mas assim que os comandos tornam-se cada vez mais complexos, irá se perceber que ele ajuda bastante. Uma das formas, é permitir que o nome do comando possa ser dado com maior liberdade através desse método— pois o uso caracteres unicode não ingleses é possível dentro dele. | |||
Temos várias outras funções úteis dentro do namespace CmdUtils. Nós ainda não documentamos totalmente as funções deste comando, mas teremos a idéia da utilidade de algumas nesse tutorial. Para informações mais detalhadas, de uma olhada na [https://ubiquity.mozilla.com/hg/ubiquity-firefox/raw-file/tip/ubiquity/index.html documentação gerada automaticamente] ou [http://hg.toolness.com/ubiquity-firefox/file/9a6c9935da9f/ubiquity/chrome/content/cmdutils.js em cmdutils.js]. | |||
== | == Acrescentando uma Previsão == | ||
http://img352.imageshack.us/img352/1002/picture3ex0.png | http://img352.imageshack.us/img352/1002/picture3ex0.png | ||
Vamos inserir uma previsão ao nosso novo comando. Previsões dão ao usuário uma idéia do que o comando faz antes que ele seja executado. Previsões são excelentes para providenciar uma resposta visual rica como a que é exibida quando é mostrada uma representação gráfica das condições atmosféricas quando utilizamos o comando weather mostradona figura acima. Previsões tem o pleno poder expressivo do HTML, incluindo animações, então há muita coisa que pode ser feita com elas. | |||
Uma consideração: O código das previsões nunca terão efeitos sobre o outro lado. Isto é, uma previsão jamais (sem a intervenção do usuário) irá alterar o estado do sistema. | |||
Para o comando "hello-world", nós não precisaremos fazer nada espetacular: apenas um pequeno texto de ajuda que o descreva melhor que o padrão "Executa o comando hello-world." | |||
<pre> | <pre> | ||
CmdUtils.CreateCommand({ | CmdUtils.CreateCommand({ | ||
name: "hello-world", | name: "hello-world", | ||
preview: " | preview: "Exibe uma <i>salutar</i> saudação ao planeta.", | ||
execute: function() { | execute: function() { | ||
displayMessage( "Hello, World!" ); | displayMessage( "Hello, World!" ); | ||
| Line 103: | Line 103: | ||
</pre> | </pre> | ||
Aqui a previsão é uma sequência de caracteres formatada com HTML. A previsão também pode ser uma função. Nós veremos isto na próxima seção. | |||
= | = o Comando Date: O Segundo Comando = | ||
== | == Modificando uma Seleção == | ||
Eu seguidamente me esqueço que dia é hoje. Isto talvez porque eu precise sair com muita freqüência, mas, como qualquer programador, geralmente eu resolvo meus problemas com tecnologia antes mesmo de saber a causa. Minha solução é criar um comando que insira a data na localização do cursor. | |||
<pre> | <pre> | ||
| Line 121: | Line 121: | ||
</pre> | </pre> | ||
A nova função usada aqui é <code>setSelection()</code>. Isto irá inserir o texto a ser passado pela função dentro da página onde estiver localizado o cursor. Se o cursor estiver sobre campos de texto editáveis ou sobre campos de rich-text, o texto será colocado lá. Se o cursor não estiver em uma área editável, a função <code>setSelection()</code> fará possível inserir a data. (Mesmo quando não é exibido, o Firefox sempre mantém registro da posição do cursor. Para ve-lo, pressione F7.) Experimente ir para uma página, selecionar algum texto não editável, e utilizar o comando. Veja, el trabalha! Isto é particularmente útil para comandos como "translate", onde queremos substituir o texto não editável pela sua tradução. | |||
A função <code>toLocaleDateString()</code> é nativa do Javascript, então se você não estiver familiarizado com ela verifique a documentação para o Javascript [http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Date Date object]. | |||
== A Better Preview == | == A Better Preview == | ||
edits