Your SlideShare is downloading. ×
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Tutorial: Criando extensões para o OpenOffice
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Tutorial: Criando extensões para o OpenOffice

712

Published on

Apresentação oferecida no JustJava 2009 (16 de Setembro de 2009) …

Apresentação oferecida no JustJava 2009 (16 de Setembro de 2009)
http://www.sucesusp.org.br/mailing2009/congresso/justjava/apresentacoes/apresentacoes_justjava2009.html

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
712
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
27
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Criando extensões para o BrOffice.org usando Java e NetBeans 16 de setembro de 2009 William D. Colen M. Silva Engenharia da Computação – Poli USP 2002 - 2006Mestrando Ciência da Computação – IME USP 2009 - Desenvolvedor corretor gramatical CoGrOO 2004 -
  • 2. Agenda● Introdução● Requisitos e preparação do ambiente● Tutoriais ● Components – Revisor de textos (BrOffice.org Writer) ● Add-ons – BrOffice.org Calc ● Nova função que responderá a pergunta fundamental da Vida, do Universo e Tudo Mais – BrOffice.org Write ● Tradutor ● Client application – Não será abordado nesse material William Colen - http://broffice.org 2
  • 3. Onde procurar e para onde enviar extensões? William Colen - http://broffice.org 3
  • 4. Estendendo o BrOffice.org BrOffice.org App ExtensãoExterno .OXT Client App Components Implementam interfaces para estender - Template de novo documento funcionalidades - Extrair dados de uma planilha Add-ons Add-ins - CoGrOO Implementam - Nova fórmula no Calc novas funcionalidades William Colen - http://broffice.org 4
  • 5. UNO - Universal Network Objects● É a tecnologia de componentes básica do OpenOffice.org, com ela é possível escrever programas que abstraem diferentes linguagens, tecnologias, plataformas e arquiteturas de rede.● UNO está disponível em Linux, Solaris, Windows, Power PC, FreeBSD e Mac OS X● Linguagens suportadas são Java, C++, OpenOffice.org Basic, Python e ainda MS Com, .NET CLI e linguagens script como Javascript, Beanshell e Jython● Com ele é possível criar aplicativos que se conectam a uma instância local ou remota e manipular os diversos documentos suportados pelo OpenOffice.org. William Colen - http://broffice.org 5
  • 6. Service Managers● São “fábricas” de serviços – objetos que conhecem sobre algumas tarefas específicas. Exemplos: ● com.sun.star.frame.Desktop – pode abrir documentos e gerencia os documentos já abertos ● com.sun.star.sdb.DatabaseContext – gerencia os bancos de dados carregados pela aplicação ● com.sun.star.text.GlobalSettings – gerencia visualização e impressão William Colen - http://broffice.org 6
  • 7. Extensões para BrOffice.org● Pacote .OXT● description.xml● Identificador● Versão● Atualizações William Colen - http://broffice.org 7
  • 8. Preparando o ambiente● Requisitos ● BrOffice.org - http://broffice.org ● JDK da Sun - http://java.sun.com - ou OpenJDK - http://openjdk.java.net ● OpenOffice.org Software Development Kit (SDK) - http://download.openoffice.org/sdk ● Java IDE – sugestão: NetBeans 3.5.x com plug-in OpenOffice.org API for NetBeans William Colen - http://broffice.org 8
  • 9. Configurando Java no BrOffice.org● No BrOffice.org, acessar Ferramentas >> Opções...● No painel esquerdo acessar BrOffice.org >> Java● Siga as instruções para adicionar uma JRE William Colen - http://broffice.org 9
  • 10. Instalando o OOo API Plug-in no NetBeans● Até setembro de 2009 a versão disponível, a 2.0.4, só funcionava no NetBeans 3.5.1.● Para instalar, no NetBeans siga por Tools >> Plugins e selecione o OpenOffice.org API Plugin na aba Available Plugins. Pressione Install William Colen - http://broffice.org 10
  • 11. Configurando o OOo API Plug-in no NetBeans● As únicas configurações necessárias são os caminhos para o OpenOffice.org e OpenOffice.org SDK. Siga por Tools >> Options >> Miscellaneous >> OOo API plugin William Colen - http://broffice.org 11
  • 12. Exemplo de componente: revisor de textos● Estende as capacidades de revisão do BrOffice.org● Pode ser um revisor ortográfico (verifica a grafia) ou gramatical (verifica a sintaxe)● Deve implementar a API Linguistic. Para verificadores que dependem da sintaxe usar a interface com.sun.star.linguistic2.XProofreader● Requer um arquivo de configuração Linguistic.xcu● Exemplo: criar um revisor que marca a frase “BrOffice.org é bom” como errada e sugere usar “BrOffice.org é o melhor”. Nota: revisores ortográficos em geral são implementados usando dicionários. Veja como aqui: http://wiki.services.openoffice.org/wiki/Extension_Dictionaries William Colen - http://broffice.org 12
  • 13. Exemplo de componente: revisor de textosCrie um novo projeto OpenOffice.org >> OpenOffice.org component usando o Wizard do NetBeans William Colen - http://broffice.org 13
  • 14. Exemplo de componente: revisor de textosCrie um novo projeto OpenOffice.org >> OpenOffice.org component usando o Wizard do NetBeans William Colen - http://broffice.org 14
  • 15. Exemplo de componente: revisor de textosDefina o serviço com.sun.star.linguistic2.Proofreader clicando em Add Service/Interface. Clique em Finish. William Colen - http://broffice.org 15
  • 16. Exemplo de componente: revisor de textosO novo projeto será criado. Vamos agora alterar o template de acordo com nossas necessidades. William Colen - http://broffice.org 16
  • 17. Exemplo de componente: revisor de textosPrimeiro configuramos as propriedades da extensão. Vamos criar osarquivos necessários para a descrição. Os nomes dos arquivos nãosão importantes:● Description_enUS.txt – Sample proofreader that search for “BrOffice.org é bom” and suggest to use “BrOffice.org é o melhor”.● Description_ptBR.txt – Exemplo de revisor que busca “BrOffice.org é bom” e sugere usar “BrOffice.org é o melhor”.● License.txt - “BSD”● broffice.png (42x42)Sugestão: crie estes arquivos em qualquer pasta fora do projeto edeixe o Wizard colocar eles nos locais apropriados William Colen - http://broffice.org 17
  • 18. Exemplo de componente: revisor de textos Clique com o direito no projeto e depois em Properties >>OpenOffice.org >> Display e escolha Current Locale “en”. Preencha os campos do Description. William Colen - http://broffice.org 18
  • 19. Exemplo de componente: revisor de textos Em seguida configure para pt-BR William Colen - http://broffice.org 19
  • 20. Exemplo de componente: revisor de textosArquivos necessários para a descrição da extensão são copiados para o projeto. William Colen - http://broffice.org 20
  • 21. Exemplo de componente: revisor de textos Em Version configure também o identificador (que deve ser único por toda a vida da extensão) e ainda configure eventuais dependências e o site de update.Nota: saiba mais sobre updates aqui:http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Extensions/Online_Update_of_Extensions William Colen - http://broffice.org 21
  • 22. Exemplo de componente: revisor de textos Com isto temos o description.xml já configurado William Colen - http://broffice.org 22
  • 23. Exemplo de componente: revisor de textosAlterações no template: adicionar o Linguistic.xcu para que o OOo conheça a nova implementação William Colen - http://broffice.org 23
  • 24. Exemplo de componente: revisor de textosConfigure o arquivo UNO manifest para que ele conheça a nova extensão Linguistic.xcu William Colen - http://broffice.org 24
  • 25. Exemplo de componente: revisor de textos● Alguns componentes podem ser instanciados apenas uma vez, é o caso do nosso revisor● Para facilitar vamos introduzir a classe SingletonFactory que instância o revisor apenas uma vez e mantém a referência para este objeto● Ocasionalmente temos que trocar o contexto de execução do revisor, por isso vamos alterar a classe MeuExemploDeRevisor, tirando o final da variável m_xContext e introduzindo o método changeContext(XComponentContext xCompContext) para trocar o seu valor. William Colen - http://broffice.org 25
  • 26. Exemplo de componente: revisor de textos Adicione a classe SingletonFactory William Colen - http://broffice.org 26
  • 27. Exemplo de componente: revisor de textosModifique a classe MeuExemploDeRevisor para usar SingletonFactory William Colen - http://broffice.org 27
  • 28. Exemplo de componente: revisor de textos● Agora podemos implementar nosso revisor propriamente dito. Primeiro implementamos os métodos da interface XSupportedLocales: ● public com.sun.star.lang.Locale[] getLocales() – Retorna os Locales suportados. Vamos retornar apenas pt-BR ● public boolean hasLocale(com.sun.star.lang.Locale aLocale) – Deveria validar o locale, mas vamos retornar sempre true. William Colen - http://broffice.org 28
  • 29. Exemplo de componente: revisor de textosImplemente os métodos da interface XSupportedLocales William Colen - http://broffice.org 29
  • 30. Exemplo de componente: revisor de textosE finalmente os métodos da interface XProofreader:● public boolean isSpellChecker() – Vamos fazer do nosso um gramatical, vamos retornar false● public void ignoreRule(String aRuleIdentifier, com.sun.star.lang.Locale aLocale) throws com.sun.star.lang.IllegalArgumentException – Efetiva ignorar regra. Nós não vamos implementar porque não usaremos sistema de regras● public void resetIgnoreRules() – Limpar lista de regras ignoradas. William Colen - http://broffice.org 30
  • 31. Exemplo de componente: revisor de textosContinuação da interface XProofreader:● public com.sun.star.linguistic2.ProofreadingResult doProofreading( String aDocumentIdentifier, // usado se guardar dados do doc String aText, // texto para ser verificado com.sun.star.lang.Locale aLocale, // locale do texto int nStartOfSentencePosition, // onde começar a verif. no text int nSuggestedBehindEndOfSentencePosition, // * com.sun.star.beans.PropertyValue[] aProperties //detalhes locale ) throws com.sun.star.lang.IllegalArgumentException – Método deve verificar o texto. aDocumentIdentifier pode ser usado para guardar numa estrutura de dados o contexto de um dado documento (*) O BrOffice.org sugere onde uma sentença termina, mas muitas vezes o verificador é melhor nessa delimitação do que o BrOffice.org, por isso que ele manda sempre texto extra. William Colen - http://broffice.org 31
  • 32. Exemplo de componente: revisor de textos Implementação do método doProofReading● Primeiro criamos um objeto ProofreadingResult e inicializamos ele com os dados passados como argumentos de doProofReading● Caso o texto seja nulo ou vazio, já retornamos● Caso exista texto, nós aceitamos como fim da sentença o tamanho do texto dado pela API● Em seguida criamos um verificador bem ingênuo, que busca usando uma expressão regular o texto “BrOffice.org é bom”. Para cada região com esta ocorrência ele cria um objeto SingleProofreadingError e finalmente coloca estes na lista de erros no ProofreadingResult William Colen - http://broffice.org 32
  • 33. Exemplo de componente: revisor de textos Implementação do método doProofReading William Colen - http://broffice.org 33
  • 34. Exemplo de componente: revisor de textos Debugando o componente: inserindo um Breakpoint William Colen - http://broffice.org 34
  • 35. Exemplo de componente: revisor de textos Debugando o componente: inicializando William Colen - http://broffice.org 35
  • 36. Exemplo de componente: revisor de textosDebugando o componente: wizard instala no BrOffice.org William Colen - http://broffice.org 36
  • 37. Exemplo de componente: revisor de textosDebugando o componente: Digite o texto no BrOffice.org Writer William Colen - http://broffice.org 37
  • 38. Exemplo de componente: revisor de textosDebugando o componente: o BrOffice.org chama o método doProofReading William Colen - http://broffice.org 38
  • 39. Exemplo de componente: revisor de textosDebugando o componente: o BrOffice.org sublinha o texto William Colen - http://broffice.org 39
  • 40. Exemplo de componente: revisor de textosDebugando o componente: e ainda fornece um menu de contexto William Colen - http://broffice.org 40
  • 41. Exemplo de componente: revisor de textosDebugando o componente: e finalmente corrige o texto William Colen - http://broffice.org 41
  • 42. Exemplo de componente: revisor de textos Gerando o instalador William Colen - http://broffice.org 42
  • 43. Exemplo de componente: revisor de textos Gerando o instalador William Colen - http://broffice.org 43
  • 44. Exemplo de Calc Add-in: Responde a questão da Vida, Do Universo e Tudo Mais● Ainda mais fácil que um revisor de texto é criar um Add-in para o Calc● Não são necessários menus, configurações etc. A nova função estará disponível para uso da mesma forma que as funções nativas.● Este exemplo envolve um cálculo complexo que responde a questão da Vida, Do Universo e Tudo Mais, conforme descrito na série O Guia do Mochileiro das Galáxias, de Douglas Adams. William Colen - http://broffice.org 44
  • 45. Exemplo de Calc Add-in: Responde a questão da Vida, Do Universo e Tudo MaisCrie um novo projeto usando OpenOffice.org >> OpenOffice.org Calc Add-in William Colen - http://broffice.org 45
  • 46. Exemplo de Calc Add-in: Responde a questão da Vida, Do Universo e Tudo Mais Configure os parâmetros do novo projeto William Colen - http://broffice.org 46
  • 47. Exemplo de Calc Add-in: Responde a questão da Vida, Do Universo e Tudo Mais Configure o nome e tipo da função, descrição e argumentos William Colen - http://broffice.org 47
  • 48. Exemplo de Calc Add-in: Responde a questão da Vida, Do Universo e Tudo MaisConfigure o componente clicando com o direito no projeto e depois em Properties >> OpenOffice.org >> Display, como feito no exemplo anterior. William Colen - http://broffice.org 48
  • 49. Exemplo de Calc Add-in: Responde a questão da Vida, Do Universo e Tudo Mais● Criar um Add-in para o Calc é muito simples. Só é necessário alterar o método que implementa o cálculo da função● No nosso caso basta então implementar na classe ResolvedorDaVidaUniversoETudoMaisImpl o método public int answerToLifeTheUniverseAndEverything(int magicalNumber) William Colen - http://broffice.org 49
  • 50. Exemplo de Calc Add-in: Responde a questão da Vida, Do Universo e Tudo Mais Implementação do método answerToLifeTheUniverseAndEverything William Colen - http://broffice.org 50
  • 51. Exemplo de Calc Add-in: Responde a questão da Vida, Do Universo e Tudo Mais Estamos prontos para executar William Colen - http://broffice.org 51
  • 52. Exemplo de Calc Add-in: Responde a questão da Vida, Do Universo e Tudo Mais Como especificado, a função está na categoria Suplementos William Colen - http://broffice.org 52
  • 53. Exemplo de Calc Add-in: Responde a questão da Vida, Do Universo e Tudo Mais William Colen - http://broffice.org 53
  • 54. Exemplo de Calc Add-in: Responde a questão da Vida, Do Universo e Tudo Mais A função está pronta para uso em planilhas. William Colen - http://broffice.org 54
  • 55. Exemplo de Add-on: Tradutor● Adiciona uma nova característica ao BrOffice.org● Vamos trabalhar apenas com documentos de texto (Writer) simples● Usuário seleciona um texto e executa o comando de traduzir. Uma janela é aberta e o usuário seleciona o idioma de origem e o de destino. O texto selecionado é substituído pela versão traduzida.● Para traduzir vamos usar o Google Translate, através da API fornecida pelo projeto Google-API-Translate-Java – distribuído sob licença LGPL e disponível no site http://code.google.com/p/google-api-translate-java William Colen - http://broffice.org 55
  • 56. Exemplo de Add-on: TradutorCrie um novo projeto usando OpenOffice.org >> OpenOffice.org Add-on William Colen - http://broffice.org 56
  • 57. Exemplo de Add-on: TradutorConfigure os parâmetros do novo projeto William Colen - http://broffice.org 57
  • 58. Exemplo de Add-on: TradutorConfigure as funções suportadas pelo Add-On. Coloque a função principal e eventuais chamadas para configurações. William Colen - http://broffice.org 58
  • 59. Exemplo de Add-on: TradutorConfigure o menu, dando um nome padrão e localizações desejadas. Configure o menu para aparecer apenas no BrOo Writer. William Colen - http://broffice.org 59
  • 60. Exemplo de Add-on: TradutorConfigure também a barra de botões. Configure a barra para aparecer apenas no BrOo Writer. Aperte Finish. William Colen - http://broffice.org 60
  • 61. Exemplo de Add-on: Tradutor Configure o componente clicando com o direito no projeto e depois emProperties >> OpenOffice.org >> Display como feito no exemplo anterior. William Colen - http://broffice.org 61
  • 62. Exemplo de Add-on: Tradutor O Wizard já criou o Addons.xcu William Colen - http://broffice.org 62
  • 63. Exemplo de Add-on: Tradutor e o ProtocolHandler.xcu William Colen - http://broffice.org 63
  • 64. Exemplo de Add-on: Tradutor● Addons.xcu ● Configura os menus e as barras de botões do Add-on.● ProtocolHandler.xcu ● Direciona todos os comandos com namespace “org.broffice.addons.meutradutorusandogoogletranslate.meutradu torusandogoogletranslate:*” para o Add-on William Colen - http://broffice.org 64
  • 65. Exemplo de Add-on: TradutorVamos adicionar a biblioteca do google-api-translate-java-0.8 ao projeto William Colen - http://broffice.org 65
  • 66. Exemplo de Add-on: Tradutor● Agora criamos as seguintes classes para acessar a API do Google Translate ● GoogleTranslate – Singleton para gerenciar o acesso – String Traduzir(String texto, String origem, String destino) – public String[] getIdiomas() – public short getOrigemPadrao() – public short getDestinoPadrao() ● TradutorDeTexto – Classe que conhece o documento e o GoogleTranslate – private XTextRange getRegiaoSelecionada() – private String getTextoSelecionado(XTextRange regiaoSelecionada) – private void setTextoSelecionado(XTextRange regiaoSelecionada, String texto) – public void traduzTextoSelecionado(String origem, String destino) William Colen - http://broffice.org 66
  • 67. Exemplo de Add-on: TradutorGoogleTranslate – Singleton para gerenciar o acesso William Colen - http://broffice.org 67
  • 68. Exemplo de Add-on: TradutorTradutorDeTexto – Classe que conhece o documento e o GoogleTranslate William Colen - http://broffice.org 68
  • 69. Exemplo de Add-on: Tradutor● Vamos agora criar uma caixa de dialogo para pedir ao usuário que ele escolha o idioma de origem e o de destino● Interfaces gráficas são feitas usando UNO e uma implementação do AWT próprio do BrOo. O código é um pouco diferente já que não podemos criar objetos UNO como criamos objetos no Java. Devemos usar o método XmultiServiceFactory.createInstance para criar os componentes. ● DialogoIdioma – public DialogoIdioma(XComponentContext xCompContext) – construtor que recebe o contexto de execução, exibe a janela – public String getOrigem() - retorna o idioma de origem selecionado – public String getDestino() - retorna o idioma de origem selecionado ● I18nLabelsLoader – classe auxiliar para facilitar a internacionalização da caixa de diálogo. William Colen - http://broffice.org 69
  • 70. Exemplo de Add-on: TradutorDialogoIdioma - pede para o usuário o idioma de origem e de destino William Colen - http://broffice.org 70
  • 71. Exemplo de Add-on: TradutorI18nLabelsLoader – classe auxiliar para facilitar a internacionalização da caixa de diálogo. William Colen - http://broffice.org 71
  • 72. Exemplo de Add-on: Tradutor● Vamos finalmente integrar tudo na classe MeuTradutorUsandoGoogleTranslate.● Esta classe aparenta ser bem complexa, mas grande parte dela serve apenas para o sistemas de Add-ons funcionar. Alguns métodos podem ser alterados para personalizar algum comportamento do Add-on, mas não é o nosso caso neste exemplo.● O único método que precisamos alterar é o dispatch● Todos os eventos são direcionados para o dispatch. O que temos que fazer é tratar quando for o evento Translate. William Colen - http://broffice.org 72
  • 73. Exemplo de Add-on: TradutorMétodo dispatch cria uma nova thread para tratar o evento William Colen - http://broffice.org 73
  • 74. Exemplo de Add-on: TradutorA thread chama DialogoIdioma para pegar as opções e em seguida chama TradutorDeTexto para efetivar a tradução William Colen - http://broffice.org 74
  • 75. Exemplo de Add-on: TradutorEstamos prontos para executar! Digite o texto, selecione e chame Translate William Colen - http://broffice.org 75
  • 76. Exemplo de Add-on: TradutorO texto foi traduzido. Você pode ainda chamar novamente trocando o idioma: William Colen - http://broffice.org 76
  • 77. Exemplo de Add-on: Tradutor E o texto foi traduzido novamente. William Colen - http://broffice.org 77
  • 78. ReferênciasOpenOffice.org Developers Guide -http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OpenOffice.org_Developers_GuideExtensions -http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Extensions/ExtensionsOpenOffice.org API -http://api.openoffice.orgIntegração NetBeans -http://wiki.services.openoffice.org/wiki/OpenOffice_NetBeans_Integration William Colen - http://broffice.org 78
  • 79. Encontro Nacional BrOffice.org William Colen - http://broffice.org 79
  • 80. Obrigado pela oportunidade e pela atenção! http://cogroo.sourceforge.net William Colen - http://broffice.org 80

×