| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <title>Criando um módulo NetBeans utilizando o Maven</title> |
| <link rel="stylesheet" type="text/css" href="https://netbeans.org/netbeans.css"/> |
| <meta name="AUDIENCE" content="NBUSER"/> |
| <meta name="TYPE" content="ARTICLE"/> |
| <meta name="EXPIRES" content="N"/> |
| <meta name="indexed" content="y"/> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <meta name="description" content="A short demonstration of how to use Maven to create and run a NetBeans Platform Module Suite."/> |
| <!-- Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. --> |
| <!-- Use is subject to license terms.--> |
| </head> |
| <body> |
| |
| <h1>Criando um módulo NetBeans utilizando o Maven</h1> |
| |
| <p>Este documento demonstra como criar um projeto no módulo NetBeans a partir de um arquetipo Maven e como desenvolver e instalar o módulo em sua instalação do IDE. Neste tutorial, você criará um projeto de módulo simples que após ser instalado permite criar um novo tipo de arquivo em seus projetos. Este módulo também cria uma ação de menu que fica disponível quando o novo tipo de arquivo é selecionado. |
| </p> |
| |
| <p>Este documento tem base no <a href="https://platform.netbeans.org/tutorials/nbm-filetype_pt_BR.html">Tutorial de tipo de arquivo do NetBeans</a> com base no Ant e ilustra algumas das diferenças entre o uso do Ant e do Maven para desenvolver módulos NetBeans. Após compreender algumas das diferenças, é possível prosseguir com facilidade através dos outros tutoriais na <a href="https://netbeans.org/kb/trails/platform_pt_BR.html">Trilha de aprendizado da plataforma NetBeans</a>.</p> |
| |
| <p class="tips">Caso seja novo na plataforma NetBeans, recomenda-se com ênfase que você assista à série de screencasts <a href="https://platform.netbeans.org/tutorials/nbm-10-top-apis.html">As 10 principais APIs do NetBeans</a>.</p> |
| |
| <p><b>Conteúdo</b></p> |
| <p><img src="../images/articles/74/netbeans_stamp_74_73_72.png" class="stamp" width="114" height="114" alt="O conteúdo desta página se aplica ao NetBeans IDE 6.5, 6.7, 6.8" title="O conteúdo desta página se aplica ao NetBeans IDE 6.5, 6.7, 6.8" /></p> |
| |
| <ul class="toc"> |
| <li><a href="#config">Utilizando Maven com o IDE</a> |
| <ul> |
| <li><a href="#config1">Configurando as opções do Maven</a></li> |
| <li><a href="#config2">Visualizando os repositórios Maven</a></li> |
| </ul></li> |
| <li><a href="#01">Criando o projeto do módulo da plataforma NetBeans</a> |
| <ul> |
| <li><a href="#01a">Criando o módulo</a></li> |
| <li><a href="#01b">Criando a classe DataObject</a></li> |
| </ul> |
| </li> |
| <li><a href="#02">Desenvolvendo e executando o projeto do módulo</a> |
| <ul> |
| <li><a href="#02a">Especificando a localização da instalação do NetBeans</a></li> |
| <li><a href="#02b">Executando o módulo</a></li> |
| </ul> |
| </li> |
| <li><a href="#03">Adicionando uma ação para o tipo de arquivo</a> |
| <ul> |
| <li><a href="#03a">Criando a classe Action</a></li> |
| <li><a href="#03b">Atribuindo um comportamento à ação</a></li> |
| </ul> |
| </li> |
| <li><a href="#04">Criando uma janela para o tipo de arquivo</a></li> |
| <li><a href="#05">Criando uma janela de múltiplas visualizações</a></li> |
| </ul> |
| |
| <p><b>Para seguir este tutorial, os softwares e recursos listados na tabela seguinte são necessários.</b></p> |
| |
| <table> |
| <tbody> |
| <tr> |
| <th class="tblheader" scope="col">Software ou recurso</th> |
| <th class="tblheader" scope="col">Versão necessária</th> |
| </tr> |
| <tr> |
| <td class="tbltd1"><a href="http://download.netbeans.org/">NetBeans IDE</a></td> |
| <td class="tbltd1">versão 6.9</td> |
| </tr> |
| <tr> |
| <td class="tbltd1"><a href="http://java.sun.com/javase/downloads/index.jsp">Java Developer Kit (JDK)</a></td> |
| <td class="tbltd1">Versão 6</td> |
| </tr> |
| <tr> |
| <td class="tbltd1"><a href="http://maven.apache.org/">Maven</a></td> |
| <td class="tbltd1">Versão 2.0.9 ou superior</td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <p><strong class="notes">Nota:</strong> não é preciso efetuar o download de uma versão separada da plataforma NetBeans para desenvolver aplicativos para a plataforma NetBeans. Normalmente, você desenvolverá os aplicativos e os módulos no NetBeans IDE e, em seguida, somente incluirá os módulos necessários para executar a plataforma NetBeans e seu aplicativo.</p> |
| |
| <p>Antes de começar este tutorial, talvez você queira se familiarizar com a documentação a seguir.</p> |
| <ul> |
| <li><a href="http://wiki.netbeans.org/MavenBestPractices">Melhores práticas para o Apache Maven no NetBeans 6.x</a></li> |
| <li><a href="http://www.sonatype.com/books/maven-book/reference/introduction.html">Capítulo 1. Introdução ao Apache Maven</a> (do <a href="http://www.sonatype.com/books/maven-book/reference/public-book.html">Maven: o guia definitivo</a>)</li> |
| <li><a href="https://netbeans.org/kb/docs/java/gui-functionality_pt_BR.html">Introdução à construção de GUIs</a></li> |
| </ul> |
| |
| |
| |
| |
| |
| |
| |
| <!-- =================================================================== --> |
| <!-- +++++++++++++++ Configuring Maven +++++++++++++++++++++++++++++++++ --> |
| |
| <h2><a name="config"></a>Usando Maven com o IDE</h2> |
| <p>Se este for seu primeiro projeto Maven, talvez queira se familiarizar com as definições de configurações e com o navegador do repositório Maven.</p> |
| |
| <div class="indent"> |
| <a name="config1"></a> |
| <h3>Configurando as opções do Maven</h3> |
| <p>É possível usar a aba Maven na janela Opções para configurar o comportamento do Maven no IDE e verificar se sua configuração está correta.</p> |
| |
| <ol> |
| <li>Selecione a categoria Diversos na janela Opções e clique na aba Maven.</li> |
| <li>Especifique a localização da instalação local do Maven (requer 2.0.9 ou mais recente).</li> |
| <li>Verifique se a localização do repositório local do Maven está correta.</li> |
| <li>Clique em OK.</li> |
| </ol> |
| <p>Na maioria dos casos, se sua configuração do Maven é a típica, as informações na janela Opções já devem estar corretas.</p> |
| |
| <p class="notes"><strong>Nota.</strong> O suporte ao Maven é ativado como parte do conjunto de recursos do Java SE. Se a aba Maven não estiver disponível na janela Opções, confirme se o Java SE está ativado ao criar um aplicativo Java.</p> |
| |
| <h3><a name="config2"></a>Visualizando os repositórios Maven</h3> |
| <p>Os artefatos que são usados pelo Maven para construir todos os seus projetos são armazenados em seu repositório local Maven. Quando um artefato é declarado como uma dependência do projeto, o artefato é baixado para seu repositório local a partir de um dos repositórios remotos registrados.</p> |
| |
| <p>Como padrão, o repositório NetBeans e os diversos repositórios Maven indexados conhecidos são registrados e identificados na janela do navegador do repositório. O repositório NetBeans contém a maioria dos artefatos públicos necessários para que você desenvolva seu projeto. Você pode usar o navegador do repositório Maven para visualizar o conteúdo dos repositórios locais e remotos. Você expande o nó Repositório local para ver os artefatos que estão presentes localmente. Os artefatos listados abaixo dos nós do repositório NetBeans podem ser adicionados como dependências do projeto, mas nem todos eles estão localmente presentes. Eles são adicionados ao repositório local somente quando são declarados como dependências do projeto.</p> |
| |
| <p>Para abrir o navegador do repositório Maven:</p> |
| <ul> |
| <li>Escolha Janela > Outro > Navegador do repositório Maven no menu principal.<br/> |
| <img src="../images/tutorials/maven-quickstart68/maven-nbm-netbeans-repo.png" alt="Captura de tela do navegador do repositório Maven" title="Captura de tela do navegador do repositório Maven" class="margin-around b-all" /> |
| |
| </li> |
| </ul> |
| </div> |
| |
| |
| <!-- =================================================================== --> |
| <!-- ++++++++++++++++++++++ Creating the Module ++++++++++++++++++++++++ --> |
| |
| <h2><a name="01"></a>Criando o projeto do módulo da plataforma NetBeans</h2> |
| <p>Nesta seção você criará um projeto do módulo NetBeans e a seguir criará um DataObject para o novo tipo de arquivo.</p> |
| <div class="indent"> |
| <h3><a name="01a"></a>Criando o módulo</h3> |
| <p>Neste exercício, você usa o assistente Novo projeto para criar um projeto do módulo NetBeans a partir de um arquetipo Maven.</p> |
| <ol> |
| <li>Abra o assistente Novo projeto e escolha Módulo NetBeans Maven na categoria Maven. Clique em Próximo.</li> |
| <li>Digite <strong>AbcFileType</strong> em Nome do projeto. Clique em Terminar.</li> |
| </ol> |
| <p>Quando você clicar em Terminar, o IDE criará o projeto AbcFileType. Se você examinar o POM poderá ver que o Maven utilizará o <tt><a href="http://maven.apache.org/plugins/maven-jar-plugin/">plug-in maven-jar</a></tt> para desenvolver o JAR e o <tt><a href="http://mojo.codehaus.org/nbm-maven-plugin/">plug-in nbm-maven</a></tt> empacotará o JAR como um módulo NetBeans (<tt>nbm</tt>).</p> |
| |
| <pre class="examplecode"> <modelVersion>4.0.0</modelVersion> |
| <groupId>com.mycompany</groupId> |
| <artifactId>AbcFileType</artifactId> |
| <strong><packaging>nbm</packaging></strong> |
| <version>1.0-SNAPSHOT</version> |
| <name>AbcFileType NetBeans Module</name> |
| ... |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <strong><artifactId>nbm-maven-plugin</artifactId></strong> |
| <extensions>true</extensions> |
| </plugin> |
| ... |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <strong><artifactId>maven-jar-plugin</artifactId></strong> |
| <version>2.2</version> |
| <configuration> |
| <!-- to have the jar plugin pickup the nbm generated manifest --> |
| <useDefaultManifestFile>true</useDefaultManifestFile> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build></pre> |
| |
| |
| |
| |
| <h3><a name="01b"></a>Criando a classe DataObject</h3> |
| |
| <p>Nesta seção você utilizará o assistente Novo tipo de arquivo para criar os arquivos para a criação e reconhecimento de um novo tipo de arquivo denominado <tt>.abc</tt>. O assistente criará um <tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-loaders/org/openide/loaders/DataObject.html">DataObject</a></tt>, um solucionador de tipo MIME e um modelo de arquivo para os arquivos <tt>abc</tt> e modificará o <tt>layer.xml</tt> para adicionar entradas do registro para o novo tipo de arquivo.</p> |
| |
| <ol> |
| <li>Clique com o botão direito do mouse no nó da janela Projeto e escolha Novo > Tipo de arquivo.</li> |
| <li>No painel Reconhecimento de arquivo, digite <strong>text/x-abc</strong> para o Tipo the MIME e <strong>.abc .ABC</strong> como a extensão do nome do arquivo. Clique em Próximo.<br/> |
| <img src="../images/tutorials/maven-single/maven-single-new-filetype-wizard.png" alt="Captura de tela para o assistente Novo tipo de arquivo" title="Assistente Novo tipo de arquivo" class="margin-around b-all" /> |
| </li> |
| <li>Digite <strong>Abc</strong> como o prefixo do nome da classe.</li> |
| <li>Clique em Procurar e selecione um arquivo de imagem de 16x16 pixels como o ícone do novo tipo de arquivo. Clique em Terminar. |
| <p class="tips">Você pode salvar esta imagem como <tt><a href="../images/tutorials/maven-crud/abc16.png">abc16.png</a></tt> ( <img src="../images/tutorials/maven-crud/abc16.png" alt="imagem do ícone 16x16" title="16x16" /> ) em seu sistema e especificar a imagem no assistente.</p> |
| </li> |
| </ol> |
| |
| |
| <p>Quando você clica em Terminar, o IDE cria a classe <tt>AbcDataObject</tt> e copia o ícone do tipo de arquivo no pacote em <tt>src/main/resources</tt> sob Outras origens.<br/> |
| <img src="../images/tutorials/maven-single/maven-single-projects1.png" alt="Captura de tela da janela Projetos" title="Captura de tela da janela Projetos" class="margin-around b-all" /> |
| |
| </p> |
| <p>Na janela Projetos é possível visualizar que o assistente criou o solucionador de tipo MIME (<tt>AbcResolver.xml</tt>) e os arquivos de modelo (<tt>AbcTemplate.abc</tt>) no diretório <tt>src/main/resources</tt>.</p> |
| |
| <p class="tips">Para obter mais detalhes sobre os arquivos criados pelo IDE, consulte <a href="http://wiki.netbeans.org/DevFaqDataObject">O que é um DataObject</a> e a seção em <a href="nbm-filetype_pt_BR.html#recognizing">Reconhecendo arquivos Abc</a> no <a href="nbm-filetype_pt_BR.html">tutorial de tipo de arquivo NBM</a>.</p> |
| |
| |
| </div> |
| |
| |
| |
| <!-- =================================================================== --> |
| <!-- ++++++++++++++++++++++ Running the Module ++++++++++++++++++++++++ --> |
| <h2><a name="02"></a>Desenvolvendo e executando o projeto</h2> |
| |
| <p>Nesta seção você configurará o módulo para que seja instalado na versão atual do IDE. Uma nova instância do IDE se inicia quando você executa o módulo. </p> |
| |
| <div class="indent"> |
| <h3><a name="02a"></a>Especificando a localização da instalação do NetBeans</h3> |
| <p>Como padrão, nenhuma instalação NetBeans alvo é especificada quando você usa o arquetipo Maven para criar um módulo da plataforma NetBeans. Você pode desenvolver o projeto, mas quando tenta executá-lo antes de definir o diretório de instalação, verá um erro de versão similar ao seguinte na janela Saída.<br/> |
| <img src="../images/tutorials/maven-single/output-build-error.png" alt="Captura de tela da janela Saída mostrando o erro de versão" title="Janela Saída mostrando o erro de versão" class="margin-around b-all" /> |
| |
| </p> |
| <p>Para instalar e executar o módulo em uma instalação do IDE, é necessário editar o elemento <tt>nbm-maven-plugin</tt> no POM para especificar o caminho para o diretório de instalação.</p> |
| <ol> |
| <li>Expanda o nó Arquivos do projeto e abra o <tt>pom.xml</tt> no editor.</li> |
| <li>Especifique o caminho para a instalação do NetBeans ao modificar o elemento <tt>nbm-maven-plugin</tt> para adicionar o elemento <tt><netbeansInstallation></tt>. |
| <pre class="examplecode"><plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>nbm-maven-plugin</artifactId> |
| <version>3.2</version> |
| <extensions>true</extensions> |
| <strong><configuration> |
| <netbeansInstallation>/home/me/netbeans-6.9</netbeansInstallation> |
| </configuration></strong> |
| </plugin></pre> |
| <!-- <descriptor>src/main/nbm/module.xml</descriptor> --> |
| <p class="notes"><strong>Nota.</strong> O caminho precisa especificar o diretório que contenha o diretório <tt>bin</tt> contendo o arquivo executável.</p> |
| <p>Por exemplo, no SO X o caminho pode se parecer com o seguinte.</p> |
| <pre class="examplecode"><netbeansInstallation>/Applications/NetBeans/NetBeans 6.9.app/Contents/Resources/NetBeans</netbeansInstallation></pre> |
| </li> |
| </ol> |
| |
| <h3><a name="02b"></a>Executando o módulo</h3> |
| <p>Após especificar o diretório de instalação do NetBeans IDE, é possível desenvolver e executar o módulo.</p> |
| <ol> |
| <li>Clique com o botão direito do mouse no nó do projeto e escolha Construir.</li> |
| <li>Clique com o botão direito do mouse no nó do projeto e escolha Executar.</li> |
| </ol> |
| <p>Quando você escolhe Executar, o IDE é iniciado com o novo módulo instalado. Para confirmar que o novo módulo esteja funcionando corretamente, crie um novo projeto e a seguir use o assistente Novo arquivo para criar um arquivo <tt>abc</tt>. Por exemplo, você pode criar um aplicativo Java simples e a seguir abrir o assistente Novo arquivo e escolher o tipo de arquivo Empty Abc na categoria Outro.</p> |
| <p class="tips">Quando você cria o novo arquivo, especifique uma pacote de origem se desejar visualizar o arquivo na janela Projetos. Como padrão, o assistente para o novo tipo de arquivo criará o arquivo no nível raiz do projeto.</p> |
| <p><img src="../images/tutorials/maven-single/wizard-new-abc-file.png" alt="Captura de tela do assistente Novo arquivo com o tipo de arquivo Abc" title="assistente Novo arquivo com o tipo de arquivo Abc" class="margin-around b-all" /> |
| <br/> |
| Após você criar o novo arquivo abc, poderá visualizar que o arquivo é exibido na janela Projetos com o ícone para o tipo de arquivo. Se você abrir o arquivo no editor, poderá visualizar o conteúdo do novo arquivo que foi gerado a partir do modelo de arquivo.<br/> |
| <img src="../images/tutorials/maven-single/maven-single-projects-abcfile.png" alt="Captura de tela do arquivo Abc na janela Projetos e aberto no editor" title="Arquivo Abc na janela Projetos e aberto no editor" class="margin-around b-all" /> |
| </p> |
| </div> |
| |
| |
| |
| <!-- =================================================================== --> |
| <!-- +++++++++++++++++++++++ Adding an Action ++++++++++++++++++++++++++ --> |
| <h2><a name="03"></a>Adicionando uma ação para o tipo de arquivo</h2> |
| <p>Nesta seção você adicionará uma ação que pode ser chamada a partir do menu suspenso quando o usuário clica com o botão direito do mouse no nó do novo tipo de arquivo.</p> |
| |
| <div class="indent"> |
| <h3><a name="03a"></a>Criando a classe Action</h3> |
| <p>Neste exercício, usaremos o assistente Nova ação para criar uma classe Java que executará uma ação para o novo tipo de arquivo. O assistente também registrará a classe no <tt>layer.xml</tt>.</p> |
| <ol> |
| <li>Clique com o botão direito do mouse no nó do projeto e escolha Nova > Ação.</li> |
| <li>No painel Tipo de ação, selecione Condicionalmente habilitado e digite <strong>com.mycompany.abcfiletype.AbcDataObject</strong> para a classe Cookie. Clique em Próximo.<br/> |
| <img src="../images/tutorials/maven-single/maven-single-newactionwizard.png" alt="Captura de tela do assistente Nova ação" title="Assistente Nova ação" class="margin-around b-all" /> |
| </li> |
| <li>Selecione Editar na lista suspensa Categoria e cancele a seleção de Item de menu global.</li> |
| <li>Selecione Item de menu de contexto de tipo de arquivo e selecione <strong>text/x-abc</strong> na lista suspensa Tipo de conteúdo. Clique em Próximo.</li> |
| <li>Digite <strong>MyAction</strong> como o Nome da classe e <strong>My Action</strong> como o Nome de exibição. Clique em Terminar.</li> |
| </ol> |
| <p>Quando você clica em Terminar, <tt>MyAction.java</tt> é criado no pacote fonte <tt>com.mycompany.abcfiletype</tt>. Se você abre o <tt>layer.xml</tt> no editor, poderá visualizar que o assistente adicionou detalhes sobre a nova ação para o tipo de arquivo dentro da pasta <tt>Edit</tt> e o elemento dentro da pasta <tt>Actions</tt>.</p> |
| <pre class="examplecode"> |
| <folder name="Actions"> |
| <folder name="Edit"> |
| <strong><file name="com-mycompany-abcfiletype-MyAction.instance"></strong> |
| <attr name="delegate" methodvalue="org.openide.awt.Actions.inject"/> |
| <attr name="displayName" bundlevalue="com.mycompany.abcfiletype.Bundle#CTL_MyAction"/> |
| <attr name="injectable" stringvalue="com.mycompany.abcfiletype.MyAction"/> |
| <attr name="instanceCreate" methodvalue="org.openide.awt.Actions.context"/> |
| <attr name="noIconInMenu" boolvalue="false"/> |
| <attr name="selectionType" stringvalue="EXACTLY_ONE"/> |
| <attr name="type" stringvalue="com.mycompany.abcfiletype.AbcDataObject"/> |
| </file> |
| </folder> |
| </folder></pre> |
| <p>O assistente também gerou elementos dentro das pastas <tt>Loaders</tt> e <tt>Factories</tt> e elementos que se aplicam ao novo tipo de arquivo. As ações de menu para o tipo de arquivo <tt>abc</tt> são especificadas sob <tt>Actions</tt> e o <tt>DataLoader</tt> é especificado sob <tt>Factories</tt>.</p> |
| |
| <pre class="examplecode"> |
| <folder name="Loaders"> |
| <folder name="text"> |
| <strong><folder name="x-abc"> |
| <folder name="Actions"> |
| <file name="com-mycompany-abcfiletype-MyAction.shadow"></strong> |
| <attr name="originalFile" stringvalue="Actions/Edit/com-mycompany-abcfiletype-MyAction.instance"/> |
| <strong><attr name="position" intvalue="0"/></strong> |
| </file> |
| <file name="org-openide-actions-CopyAction.shadow"> |
| <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-CopyAction.instance"/> |
| <attr name="position" intvalue="400"/> |
| </file> |
| ... |
| </folder> |
| <strong><folder name="Factories"> |
| <file name="AbcDataLoader.instance"></strong> |
| <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/com/mycompany/abcfiletype/abc16.png"/> |
| <attr name="dataObjectClass" stringvalue="com.mycompany.abcfiletype.AbcDataObject"/> |
| <attr name="instanceCreate" methodvalue="org.openide.loaders.DataLoaderPool.factory"/> |
| <attr name="mimeType" stringvalue="text/x-abc"/> |
| </file> |
| </folder> |
| </folder> |
| </folder> |
| </folder></pre> |
| |
| <p class="tips">A posição de My Action no menu suspenso é especificada pelo atributo <tt>posição</tt> (<tt><attr name="position" intvalue="0"/></tt>). O padrão é o de atribuir o atributo <tt>intvalue</tt> de uma nova ação como <tt>0</tt> que fará com que a ação esteja no topo da lista. Você pode alterar a ordem ao alterar o <tt>intvalue</tt>. Por exemplo, se você altera o <tt>intvalue</tt> para <tt>200</tt>, o item de menu My Action aprecerá abaixo do item de menu Abrir (a ação Abrir tem um <tt>intvalue</tt> de <tt>100</tt>).</p> |
| |
| |
| <h3><a name="03b"></a>Atribuindo um comportamento à ação</h3> |
| <p>Agora é necessário adicionar o código para a ação. Neste exemplo, você adicionará algum código que usa <tt>DialogDisplayer</tt> para abrir uma caixa de diálogo quando a ação é chamada a partir do menu suspenso. Para usar <tt>DialogDisplayer</tt> também será necessário declarar uma dependência direta em <tt>org.openide.dialogs</tt>.</p> |
| <ol> |
| <li>Modifique o método <tt>actionPerformed(ActionEvent ev)</tt> no <tt>MyAction.java</tt> para abrir uma caixa de diálogo quando My Action é chamada. |
| <pre class="examplecode">@Override |
| public void actionPerformed(ActionEvent ev) { |
| <strong>FileObject f = context.getPrimaryFile(); |
| String displayName = FileUtil.getFileDisplayName(f); |
| String msg = "This file is " + displayName + "."; |
| NotifyDescriptor nd = new NotifyDescriptor.Message(msg); |
| DialogDisplayer.getDefault().notify(nd);</strong> |
| }</pre> |
| </li> |
| <li>Corrija suas importações e confirme que você importou <tt><strong>org.openide.filesystems.FileObject</strong></tt>. Salve as alterações. |
| <p>Quando você corrigiu as importações adicionou uma declaração de importação para <tt>org.openide.DialogDisplayer</tt>. Agora é necessário declarar a dependência no artefato <tt>org.openide.dialogs</tt>, uma dependência direta ao invés de uma dependência transitiva.</p></li> |
| <li>Clique com o botão direito do mouse no JAR <tt>org.openide.dialogs</tt> sob o nó Bibliotecas do projeto e escolha Declarar como dependência direta.</li> |
| </ol> |
| <p>Agora é possível testar o módulo para confirmar que a nova ação funciona corretamente.</p> |
| <p class="notes"><strong>Nota.</strong> Para executar o módulo, é preciso primeiro limpar e desenvolver o módulo.</p> |
| <p><img src="../images/tutorials/maven-single/maven-single-action-popup.png" alt="Captura de tela do arquivo Abc na janela Projetos e aberto no editor" title="Arquivo Abc na janela Projetos e aberto no editor" class="margin-around b-all" /> |
| </p> |
| <p>Ao clicar com o botão direito do mouse em um nó no tipo de arquivo <tt>abc</tt>, verá que My Action é um dos itens no menu suspenso.</p> |
| |
| </div> |
| |
| |
| <!-- =================================================================== --> |
| <!-- +++++++++++++++++++++++ Creating a Window +++++++++++++++++++++++++ --> |
| |
| <h2><a name="04"></a>Criando uma janela para o Tipo de arquivo</h2> |
| <p>Como padrão, o novo tipo de arquivo será aberto em um editor de texto básico. Caso não deseje usar um editor para o novo tipo de arquivo, você pode criar uma nova janela especificamente para editar o novo tipo de arquivo. Você pode então modificar o componente de janela para suportar outras formas de editar o arquivo, por exemplo, ao tornar a janela um editor visual. Nesta seção você criará um novo componente de janela especificamente para arquivos de seu novo tipo de arquivo.</p> |
| |
| <ol> |
| <li>Clique com o botão direito do mouse no nó do projeto e escolha Nova > Janela.</li> |
| <li>Selecione <strong>editor</strong> na lista suspensa e selecione Abrir ao iniciar o aplicativo. Clique em Próximo.</li> |
| <li>Digite <strong>Abc</strong> como o prefixo do nome da classe. Clique em Terminar.</li> |
| <li>Abra <tt>AbcDataObject.java</tt> no editor e modifique o construtor de classe para usar <tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-loaders/org/openide/loaders/OpenSupport.html">OpenSupport</a></tt> ao invés de <tt>DataEditorSupport</tt>. |
| <pre class="examplecode"> |
| public AbcDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException, IOException { |
| super(pf, loader); |
| CookieSet cookies = getCookieSet(); |
| <strong>cookies.add((Node.Cookie) new AbcOpenSupport(getPrimaryEntry()));</strong> |
| }</pre> |
| </li> |
| <li>Crie a classe <tt>AbcOpenSupport</tt> que é chamada pelo construtor. |
| <p class="tips">Tecle Alt-Enter na linha que contém a chamada para <tt>AbcOpenSupport</tt> para criar <tt>AbcOpenSupport</tt> no pacote <tt>com.mycompany.abcfiletype</tt>.</p></li> |
| <li>Modifique <tt>AbcOpenSupport</tt> para estender <tt>OpenSupport</tt> e implementar <tt>OpenCookie</tt> e <tt>CloseCookie</tt>. |
| <pre class="examplecode"> |
| class AbcOpenSupport <strong>extends OpenSupport implements OpenCookie, CloseCookie</strong> {</pre> |
| </li> |
| <li>Implemente os métodos abstratos (Alt-Enter) e faça as seguintes alterações na classe. |
| <pre class="examplecode"> |
| public AbcOpenSupport(<strong>AbcDataObject.Entry entry</strong>) { |
| <strong>super(entry);</strong> |
| } |
| |
| @Override |
| protected CloneableTopComponent createCloneableTopComponent() { |
| <strong>AbcDataObject dobj = (AbcDataObject) entry.getDataObject(); |
| AbcTopComponent tc = new AbcTopComponent(); |
| tc.setDisplayName(dobj.getName()); |
| return tc;</strong> |
| }</pre> |
| </li> |
| <li>Abra <tt>AbcTopComponent</tt> no editor e modifique a classe para estender <tt>CloneableTopComponent</tt> ao invés de <tt>TopComponent</tt>. |
| <pre class="examplecode">public final class AbcTopComponent extends <strong>CloneableTopComponent</strong> {</pre> |
| </li> |
| <li>Altere o modificador de classe de <tt>privado</tt> para <tt>público</tt>. |
| <pre class="examplecode"><strong>public</strong> static AbcTopComponent instance;</pre> |
| </li> |
| <li>Corrija as importações e salve as alterações.</li> |
| </ol> |
| <p>Agora é possível tentar executar o módulo novamente após limpar e desenvolver o projeto.<br/> |
| <img src="../images/tutorials/maven-single/maven-single-newfile-window.png" alt="Captura de tela do arquivo Abc na janela Projetos e aberto no editor" title="Arquivo Abc na janela Projetos e aberto no editor" class="margin-around b-all" /></p> |
| <p>Quando você abre um arquivo abc, este agora será aberto na nova janela ao invés de no editor básico.</p> |
| |
| |
| |
| |
| |
| |
| |
| |
| <!--<p>The project also contains other XML files containing metadata about the project such as <tt>profiles.xml</tt>. |
| The <tt>profiles.xml</tt> file specifies the path to the NetBeans installation and is used by the IDE when running the project. |
| --> |
| |
| <!--<p>Unlike the original Ant-based tutorial, you do not specify the platform installation in the wizard. |
| For Maven module suites you need to modify the <tt><netbeans.installation></tt> element in the profiles.xml file |
| and explicitly specify the path to the NetBeans platform installation. </p> |
| see https://netbeans.org/bugzilla/show_bug.cgi?id=185941. |
| --> |
| |
| |
| |
| <p>Este tutorial demonstrou como criar e executar um módulo NetBeans criado a partir de um arquetipo Maven. Você aprendeu como modificar o POM do projeto para especificar a instalação NetBeans alvo, para que o comando Executar no IDE instale o módulo e inicie uma nova instância do IDE. Você também aprendeu um pouco sobre como trabalhar com tipos de arquivos e <tt>DataObjects</tt>, mas para obter mais detalhes deveria consultar o <a href="https://platform.netbeans.org/tutorials/nbm-filetype_pt_BR.html">Tutorial de tipo de arquivo do NetBeans</a>. Para obter mais exemplos sobre como desenvolver aplicativos e módulos da plataforma NetBeans, consulte os tutoriais listados na <a href="https://netbeans.org/kb/trails/platform_pt_BR.html">Trilha do aprendizado da plataforma NetBeans</a>.</p> |
| |
| |
| <!-- ======================================================================================== --> |
| |
| |
| <h2><a name="nextsteps"></a>Consulte também</h2> |
| |
| <p>Para obter mais informações sobre a criação e o desenvolvimento de aplicativos, consulte os seguintes recursos.</p> |
| <ul> |
| <li><a href="https://netbeans.org/kb/trails/platform_pt_BR.html">Trilha do aprendizado da plataforma NetBeans</a></li> |
| <li><a href="http://bits.netbeans.org/dev/javadoc/">Javadoc da API da NetBeans </a></li> |
| </ul> |
| <p>Sempre que tiver perguntas sobre a plataforma NetBeans, de qualquer tipo, sinta-se a vontade para escrever para a lista de e-mail, dev@platform.netbeans.org, ou visualize <a href="https://netbeans.org/projects/platform/lists/dev/archive">o arquivo da lista de e-mail da plataforma NetBeans</a>.</p> |
| |
| |
| <!-- ======================================================================================== --> |
| |
| |
| |
| </body> |
| |
| </html> |