blob: d81cd814c2e80386da17d2b883c603c74675e756 [file] [log] [blame]
<!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>Guia de in&iacute;cio r&aacute;pido da plataforma 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 create a simple
NetBeans Platform application and module and use Maven for the build framework."/>
<!-- Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. -->
<!-- Use is subject to license terms.-->
</head>
<body>
<h1>Guia de in&iacute;cio r&aacute;pido da plataforma NetBeans utilizando o Maven</h1>
<p>Bem-vindo &agrave; <a href="https://platform.netbeans.org/"><b>Plataforma NetBeans</b></a>!</p>
<p>Este documento &eacute; uma demonstra&ccedil;&atilde;o r&aacute;pida de como criar um simples aplicativo e m&oacute;dulo da plataforma NetBeans e utilizar o Maven para a estrutura da constru&ccedil;&atilde;o. Neste documento ser&atilde;o utilizados os arqu&eacute;tipos Maven para criar um aplicativo e m&oacute;dulo da plataforma NetBeans. Voc&ecirc; utilizar&aacute; o kit de ferramentas da interface de usu&aacute;rio Swing e o Construtor GUI &quot;Matisse&quot; para criar um componente de janela no m&oacute;dulo. O aspecto modular da plataforma NetBeans lhe possibilita desenvolver e expandir a funcionalidade do seu aplicativo, adicionando simplesmente novos m&oacute;dulos.
</p>
<p>Este documento tem base no <a href="nbm-quick-start_pt_BR.html">Guia de in&iacute;cio r&aacute;pido da Plataforma NetBeans para Plataformas NetBeans</a> com base no Ant. e ilustra algumas das diferen&ccedil;as entre o uso do Ant e do Maven para desenvolver os aplicativos da plataforma NetBeans. Ap&oacute;s ter entendido como o Maven &eacute; diferente do Ant, ser&aacute; poss&iacute;vel prosseguir com facilidade atrav&eacute;s de 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 esteja utilizando o NetBeans IDE 6.8, consulte o <a href="68/nbm-maven-quickstart.html">Guia de in&iacute;cio r&aacute;pido para Plataforma NetBeans 6.8 utilizando o Maven</a>.</p>
<p class="tips">Caso n&atilde;o tenha experi&ecirc;ncia com a plataforma NetBeans, recomenda com &ecirc;nfase assistir &agrave; s&eacute;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&uacute;do</b></p>
<p><img src="../images/articles/74/netbeans_stamp_74_73_72.png" class="stamp" width="114" height="114" alt="O conte&uacute;do desta p&aacute;gina se aplica ao NetBeans IDE 6.5, 6.7, 6.8" title="O conte&uacute;do desta p&aacute;gina se aplica ao NetBeans IDE 6.5, 6.7, 6.8" /></p>
<ul class="toc">
<li><a href="#config">Configurando Maven</a></li>
<li><a href="#01">Criando projeto de aplicativo da plataforma NetBeans</a>
<ul>
<li><a href="#01a">Modificando elementos de marca</a></li>
</ul>
</li>
<li><a href="#02">Criando m&oacute;dulo Maven WordEngine</a>
<ul>
<li><a href="#02b">Tornando m&oacute;dulo uma depend&ecirc;ncia</a></li>
<li><a href="#02c">Adicionando um componente de janela</a></li>
</ul>
</li>
<li><a href="#04">Criando m&oacute;dulo TextFilter</a>
<ul>
<li><a href="#04b">Tornando m&oacute;dulo uma depend&ecirc;ncia</a></li>
<li><a href="#04c">Adionando uma interface</a></li>
<li><a href="#04d">Tornando p&uacute;blico o m&oacute;dulo</a></li>
</ul>
</li>
<li><a href="#05">Criando m&oacute;dulo MyFilter</a>
<ul>
<li><a href="#05b">Adicionando TextFilter como uma depend&ecirc;ncia</a></li>
<li><a href="#05c">Adicionando uma classe Java</a></li>
<li><a href="#05d">Chamando o m&eacute;todo a partir do m&oacute;dulo Maven WordEngine</a></li>
</ul>
</li>
<li><a href="#06">Adicionando campos Listener e Conte&uacute;do</a></li>
<li><a href="#07">Criando m&oacute;dulo Hist&oacute;rico</a>
<ul>
<li><a href="#07b">Adicionando um componente de janela</a></li>
</ul>
</li>
<li><a href="#08">Executando aplicativo</a></li>
</ul>
<p><b>Para seguir este tutorial, s&atilde;o necess&aacute;rios os softwares e recursos listados na tabela a seguir.</b></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">Software ou recurso</th>
<th class="tblheader" scope="col">Vers&atilde;o necess&aacute;ria</th>
</tr>
<tr>
<td class="tbltd1"><a href="http://download.netbeans.org/">NetBeans IDE</a></td>
<td class="tbltd1">vers&atilde;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&atilde;o 6</td>
</tr>
<tr>
<td class="tbltd1"><a href="http://maven.apache.org/">Maven</a></td>
<td class="tbltd1">vers&atilde;o 2.0.9 ou superior</td>
</tr>
</tbody>
</table>
<p><strong class="notes">Observa&ccedil;&atilde;o:</strong> n&atilde;o &eacute; necess&aacute;rio baixar uma vers&atilde;o avulsa da plataforma NetBeans para desenvolver os aplicativos para a plataforma NetBeans. Normalmente, voc&ecirc; desenvolve os aplicativos e m&oacute;dulos no NetBeans IDE e, a seguir, inclui somente os m&oacute;dulos necess&aacute;rios para executar a plataforma NetBeans e seu aplicativo.</p>
<p>Antes de come&ccedil;ar este tutorial, talvez voc&ecirc; queira se familiarizar com a documenta&ccedil;&atilde;o a seguir.</p>
<ul>
<li><a href="http://wiki.netbeans.org/MavenBestPractices">Melhores pr&aacute;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&iacute;tulo 1. Introdu&ccedil;&atilde;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&ccedil;&atilde;o &agrave; constru&ccedil;&atilde;o de GUIs</a></li>
</ul>
<!-- =================================================================== -->
<!-- +++++++++++++++ Configuring Maven +++++++++++++++++++++++++++++++++ -->
<h2><a name="config"></a>Configurando Maven</h2>
<p>Se este for seu primeiro Projeto Maven, talvez voc&ecirc; queira verificar as defini&ccedil;&otilde;es de configura&ccedil;&otilde;es do Maven na janela Op&ccedil;&otilde;es. Para completar este tutorial &eacute; preciso ter o Maven instalado no sistema local. &Eacute; poss&iacute;vel fazer o download do instalador no <a href="http://maven.apache.org/">site do Maven</a>.</p>
<ol>
<li>Selecione a categoria Diversos na janela Op&ccedil;&otilde;es e clique na aba Maven.</li>
<li>Especifique a localiza&ccedil;&atilde;o da instala&ccedil;&atilde;o local do Maven (requer 2.0.9 ou mais recente).</li>
<li>Verifique se a localiza&ccedil;&atilde;o do reposit&oacute;rio local do Maven est&aacute; correta.</li>
<li>Clique em OK.</li>
</ol>
<p>Na maioria dos casos, se a configura&ccedil;&atilde;o do Maven for normal, as informa&ccedil;&otilde;es na janela Op&ccedil;&otilde;es j&aacute; devem estar corretas.</p>
<p class="notes"><strong>Observa&ccedil;&atilde;o.</strong> O suporte do Maven &eacute; ativado como parte do conjunto dos recursos do Java SE. Caso a aba Maven n&atilde;o esteja dispon&iacute;vel na janela Op&ccedil;&otilde;es, confirme que o Java SE est&aacute; ativado criando um aplicativo Java.</p>
<p>O IDE usa o Maven SCM para checkout dos artefatos Maven. Talvez voc&ecirc; queira verificar se os clientes necess&aacute;rios para o checkout das fontes est&atilde;o instalados na m&aacute;quina local e configurados corretamente.</p>
<p class="tips">Para mais detalhes sobre o Maven SCM, consulte a <a href="http://maven.apache.org/scm/index.html">p&aacute;gina Maven SCM</a>.</p>
<div class="indent">
<h3><a name="config1"></a>Visualizando reposit&oacute;rios Maven</h3>
<p>Os artefatos que s&atilde;o utilizados pelo Maven para construir todos os seus projetos s&atilde;o armazenados no reposit&oacute;rio local Maven. Quando um artefato &eacute; declarado como uma depend&ecirc;ncia do projeto, o artefato &eacute; baixado para o reposit&oacute;rio local a partir de um dos reposit&oacute;rios remotos registrados.</p>
<p>O reposit&oacute;rio NetBeans e v&aacute;rios outros reposit&oacute;rios conhecidos Maven indexados s&atilde;o registrados e listados, por padr&atilde;o, na janela Navegador do reposit&oacute;rio. O reposit&oacute;rio do NetBeans cont&eacute;m a grande maioria dos artefatos p&uacute;blicos necess&aacute;rios para a constru&ccedil;&atilde;o do projeto. &Eacute; poss&iacute;vel utilizar o navegador do reposit&oacute;rio Maven para visualizar o conte&uacute;do dos reposit&oacute;rios locais e remotos. &Eacute; poss&iacute;vel expandir o n&oacute; Reposit&oacute;rio local para visualizar os artefatos que est&atilde;o presentes localmente. Os artefatos listados sob os n&oacute;s Reposit&oacute;rio do NetBeans podem ser adicionados &agrave;s depend&ecirc;ncias do projeto, mas nem todos eles est&atilde;o presentes localmente. Eles s&atilde;o adicionados ao reposit&oacute;rio local somente quando s&atilde;o declarados como depend&ecirc;ncias do projeto.</p>
<p>Para abrir o navegador do reposit&oacute;rio Maven:</p>
<ul>
<li>Escolha Janela &gt; Outro &gt; Navegador do reposit&oacute;rio Maven do menu principal.<br/>
<img src="../images/tutorials/maven-quickstart68/maven-nbm-netbeans-repo.png" alt="Captura de tela do Navegador do reposit&oacute;rio Maven" title="Captura de tela do Navegador do reposit&oacute;rio Maven" class="margin-around b-all" />
</li>
</ul>
<p>Quando o cursor estiver sobre um artefato, o IDE exibir&aacute; uma dica de ferramenta com as coordenadas do artefato. &Eacute; poss&iacute;vel visualizar detalhes adicionais sobre um artefato ao clicar duas vezes no arquivo JAR do artefato no navegador.</p>
<p class="tips">&Eacute; poss&iacute;vel pesquisar por um artefato ao clicar no bot&atilde;o Localizar da barra de ferramentas do navegador do reposit&oacute;rio Maven ou ao utilizar o campo de texto Pesquisa r&aacute;pida na barra de ferramentas principal.</p>
<p class="tips">Para saber mais sobre como gerenciar as depend&ecirc;ncias de classpath Maven e sobre como trabalhar com reposit&oacute;rios Maven no IDE, consulte a se&ccedil;&atilde;o <a href="http://wiki.netbeans.org/MavenBestPractices#Dependency_management">Gerenciamento de depend&ecirc;ncia</a> em <a href="http://wiki.netbeans.org/MavenBestPractices">Melhores pr&aacute;ticas para o Apache Maven no NetBeans 6.x</a>.
</p>
<p class="tips">Para assistir a uma demonstra&ccedil;&atilde;o sobre como utilizar o Visualizador de artefato, consulte o screencast <a href="https://netbeans.org/kb/docs/java/maven-dependencies-screencast.html"> Trabalhando com depend&ecirc;ncias Maven</a>.</p>
</div>
<!-- =================================================================== -->
<!-- +++++++++++++++ Creating the Platform Application +++++++++++++++++ -->
<h2><a name="01"></a>Criando projeto do aplicativo da plataforma NetBeans</h2>
<p>Nesta se&ccedil;&atilde;o ser&aacute; utilizado o assistente Novo projeto para criar um aplicativo NetBeans a partir de um arqu&eacute;tipo Maven. O assistente criar&aacute; os projetos do m&oacute;dulo Maven necess&aacute;rios para desenvolver um aplicativo na plataforma NetBeans. O assistente fornece tamb&eacute;m a op&ccedil;&atilde;o de criar um m&oacute;dulo NetBeans no projeto do aplicativo, mas neste tutorial ser&aacute; criado cada m&oacute;dulo individualmente.</p>
<div class="indent">
<h3>Criando projeto</h3>
<p>Execute as etapas a seguir, para criar o aplicativo da plataforma NetBeans utilizando o assistente Novo projeto.</p>
<ol>
<li>Selecione Arquivo &gt; Novo projeto (Ctrl-Shift-N) para abrir o assistente Novo projeto.</li>
<li>Selecione o aplicativo Netbeans Maven na categoria Maven. Clique em Pr&oacute;ximo.</li>
<li>Digite <strong>MavenPlatformWordApp</strong> como o nome do projeto e defina a localiza&ccedil;&atilde;o do projeto. Clique em Terminar. <br/>
<img src="../images/tutorials/maven-quickstart/maven-newproject.png" alt="Captura de tela do assistente Novo projeto" title="Captura de tela do assistente Novo projeto" class="margin-around b-all" />
</li>
</ol>
<p class="notes"><strong>Observa&ccedil;&atilde;o.</strong> Caso este seja o seu primeiro aplicativo da plataforma NetBeans utilizando o Maven, pode ser que leve mais tempo para criar os projetos, uma vez que o IDE precisa baixar todos os artefatos necess&aacute;rios a partir do reposit&oacute;rio NetBeans.</p>
<p>Ao clicar em Terminar, por padr&atilde;o, o IDE cria os seguintes tipos do projeto Maven.</p>
<ul>
<li><strong>Aplicativo da plataforma NetBeans.</strong> Este projeto &eacute; um projeto recipiente para o aplicativo da plataforma e lista os m&oacute;dulos a serem inclu&iacute;dos e a localiza&ccedil;&atilde;o dos reposit&oacute;rios do projeto. Este projeto n&atilde;o cont&eacute;m nenhuma origem. O IDE gera os m&oacute;dulos contendo as fontes e recursos nos subdiret&oacute;rios deste projeto.</li>
<li><strong>Aplicativo com base na plataforma NetBeans.</strong> Este projeto especifica os artefatos (fontes) necess&aacute;rios para a compila&ccedil;&atilde;o do aplicativo. As depend&ecirc;ncias exigidas (artefatos IDE, artefatos de m&oacute;dulos) s&atilde;o especificadas no arquivo <tt>pom.xml</tt> do projeto. Se expandir o n&oacute; Bibliotecas, poder&aacute; visualizar as bibliotecas necess&aacute;rias para o aplicativo da plataforma NetBeans.</li>
<li><strong>Recursos de marca do aplicativo da plataforma.</strong> Este projeto cont&eacute;m os recursos utilizados para a marca do aplicativo. </li>
</ul>
<p>Para todos os projetos Maven, o arquivo <tt>pom.xml</tt> (POM) est&aacute; localizado sob o n&oacute; Arquivos do projeto na janela Projetos. Se observar o POM para o projeto do aplicativo da plataforma NetBeans, poder&aacute; notar que os outros dois m&oacute;dulos criados pelo assistente est&atilde;o listados como m&oacute;dulos no aplicativo.</p>
<pre class="examplecode">
&lt;modules&gt;
&lt;module&gt;branding&lt;/module&gt;
&lt;module&gt;application&lt;/module&gt;
&lt;/modules&gt;
</pre>
<h3><a name="01a"></a>Modificando elementos da marca</h3>
<p>O m&oacute;dulo da marca especifica os recursos da marca utilizados ao construir o aplicativo da plataforma. A caixa de di&aacute;logo da marca lhe permite modificar facilmente as propriedades do aplicativo para alterar o nome, a tela de splash e os valores dos elementos de texto. </p>
<p>Ao criar o aplicativo da plataforma NetBeans a partir do arqu&eacute;tipo, o nome padr&atilde;o para o aplicativo &eacute; o artifactId do aplicativo. Neste exerc&iacute;cio ser&aacute; utilizado o assistente de marca para modificar o nome do aplicativo e substituir a imagem padr&atilde;o para a tela splash.</p>
<p class="notes"><strong>Observa&ccedil;&atilde;o.</strong> O IDE precisa construir o m&oacute;dulo de marca antes que voc&ecirc; possa modificar os recursos da marca.</p>
<ol>
<li>Clique com o bot&atilde;o direito no m&oacute;dulo <strong>Recursos de marca do aplicativo da plataforma</strong> e selecione Marca.</li>
<li>Na aba B&aacute;sico, altere o t&iacute;tulo do aplicativo para <strong>Aplicativo My Maven Platform Word</strong>.<br/>
<img src="../images/tutorials/maven-quickstart/maven-branding1.png" alt="Captura de tela do assistente Novo projeto" title="Captura de tela do assistente Novo projeto" class="margin-around b-all" />
</li>
<li>Clique na aba Tela splash e clique no bot&atilde;o Navegador ao lado da imagem da tela splash para localizar uma imagem diferente. Clique em OK.</li>
<!--<li>Click the Resource Bundles tab and expand the <strong>org/netbeans/core/startup/Bundle.properties</strong> node.</li>
<li>Double-click <strong>CTL_About_Title</strong> and type a new title for the About dialog window. Click OK.<br/>
<img src="../images/tutorials/maven-quickstart/maven-branding2.png" alt="Screenshot of New Project wizard" title="Screenshot of New Project wizard" class="margin-around b-all" />
</li>-->
</ol>
<p class="tips">&Eacute; poss&iacute;vel copiar a imagem abaixo para o seu sistema local e especificar a imagem como uma tela splash na caixa de di&aacute;logo Marca.</p>
<img src="../images/tutorials/maven-quickstart68/splash.gif" alt="Exemplo da imagem splash padr&atilde;o" title="Exemplo da imagem splash padr&atilde;o" class="margin-around b-all" />
</div>
<!-- =================================================================== -->
<!-- +++++++++++++++ Creating the MavenWordEngine Module +++++++++++++++ -->
<h2><a name="02"></a>Criando m&oacute;dulo Maven WordEngine</h2>
<p>Nesta se&ccedil;&atilde;o ser&aacute; criado um novo m&oacute;dulo chamado Maven WordEngine. Voc&ecirc; modificar&aacute; ent&atilde;o o m&oacute;dulo para adicionar um componente de janela, um bot&atilde;o e uma &aacute;rea de texto.</p>
<div class="indent">
<h3><a name="02a"></a>Criando m&oacute;dulo</h3>
<p>Neste exerc&iacute;cio ser&aacute; criado um novo projeto de m&oacute;dulo no mesmo diret&oacute;rio que cont&eacute;m o m&oacute;dulo da marca e o m&oacute;dulo do aplicativo.</p>
<ol>
<li>Selecione no menu principal Arquivo &gt; Novo projeto.</li>
<li>Selecione M&oacute;dulo NetBeans Maven na categoria Maven. Clique em Pr&oacute;ximo.</li>
<li>Digite <strong>Maven WordEngine</strong> como o nome do projeto.</li>
<li>Clique em Navegador e localize o diret&oacute;rio MavenPlatformWordApp como a localiza&ccedil;&atilde;o do projeto. Clique em Terminar.</li>
</ol>
<img src="../images/tutorials/maven-quickstart/maven-wizard-project-location.png" alt="Captura de tela do assistente Novo projeto" title="Captura de tela do assistente Novo projeto" class="margin-around b-all" />
<p>Se observar o POM para o m&oacute;dulo MavenWordEngine notar&aacute; que a <tt>artifactId</tt> do projeto &eacute; <strong>MavenWordEngine</strong>.</p>
<pre class="examplecode">
&lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
&lt;parent&gt;
&lt;groupId&gt;com.mycompany&lt;/groupId&gt;
&lt;artifactId&gt;MavenPlatformWordApp&lt;/artifactId&gt;
&lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
&lt;/parent&gt;
&lt;groupId&gt;com.mycompany&lt;/groupId&gt;
&lt;artifactId&gt;<strong> MavenWordEngine </strong>&lt;/artifactId&gt;
&lt;packaging&gt;nbm&lt;/packaging&gt;
&lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
&lt;name&gt;MavenWordEngine NetBeans Module&lt;/name&gt;
</pre>
<p>Para construir o m&oacute;dulo NetBeans &eacute; necess&aacute;rio utilizar o <tt>nbm-maven-plugin</tt>. Se observar o POM para o m&oacute;dulo, poder&aacute; notar que o IDE especificou automaticamente o <tt>nbm</tt> para o <tt>pacote</tt> e que o <strong>nbm-maven-plugin</strong> foi especificado como um plugin de constru&ccedil;&atilde;o.</p>
<pre class="examplecode">
&lt;plugin&gt;
&lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
&lt;artifactId&gt;<strong>nbm-maven-plugin</strong>&lt;/artifactId&gt;
&lt;version&gt;3.2-SNAPSHOT&lt;/version&gt;
&lt;extensions&gt;true&lt;/extensions&gt;
&lt;/plugin&gt;
</pre>
<p>Se observar o POM para o aplicativo da plataforma NetBeans, voc&ecirc; notar&aacute; que o <strong>MavenWordEngine</strong> foi adicionado &agrave; lista de m&oacute;dulos no aplicativo.</p>
<pre class="examplecode">
&lt;modules&gt;
&lt;module&gt;branding&lt;/module&gt;
&lt;module&gt;application&lt;/module&gt;
&lt;module&gt;<strong>MavenWordEngine</strong>&lt;/module&gt;
&lt;/modules&gt;
</pre>
<h3><a name="02b"></a>Tornando m&oacute;dulo uma depend&ecirc;ncia do MavenPlatformWordApp</h3>
<p>Neste exerc&iacute;cio ser&aacute; declarado o m&oacute;dulo MavenWordEngine como uma depend&ecirc;ncia do aplicativo com base na plataforma NetBeans adicionando a depend&ecirc;ncia no POM. O POM para o aplicativo declara as depend&ecirc;ncias a seguir.</p>
<pre class="examplecode">&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.netbeans.cluster&lt;/groupId&gt;
&lt;artifactId&gt;platform&lt;/artifactId&gt;
&lt;version&gt;${netbeans.version}&lt;/version&gt;
&lt;type&gt;pom&lt;/type&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
&lt;groupId&gt;com.mycompany&lt;/groupId&gt;
&lt;artifactId&gt;branding&lt;/artifactId&gt;
&lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;</pre>
<p>Se expandir o n&oacute; Bibliotecas para o aplicativo com base na plataforma NetBeans, notar&aacute; que h&aacute; uma depend&ecirc;ncia no m&oacute;dulo da marca e em outras bibliotecas que s&atilde;o depend&ecirc;ncias do cluster necess&aacute;rio para construir o aplicativo.</p>
<img src="../images/tutorials/maven-quickstart/maven-projects-libraries.png" alt="Captura de tela do n&oacute; Bibliotecas" title="Captura de tela da caixa de di&aacute;logo Adicionar depend&ecirc;ncia" class="margin-around b-all" />
<p class="tips">&Eacute; poss&iacute;vel expandir a lista de depend&ecirc;ncias n&atilde;o-classpath para visualizar a lista completa de depend&ecirc;ncias.</p>
<p>Para adicionar a depend&ecirc;ncia ao POM, &eacute; poss&iacute;vel editar o POM diretamente no editor ou abrir a caixa de di&aacute;logo Adicionar depend&ecirc;ncia na janela Projetos.</p>
<ol>
<li>Expanda o <strong>Aplicativo com base na plataforma NetBeans-MavenPlatformAPP</strong> na janela Projetos.</li>
<li>Clique com o bot&atilde;o direito no n&oacute; Bibliotecas e selecione Adicionar depend&ecirc;ncia.</li>
<li>Clique na aba Abrir projetos e selecione <strong>MavenWordEngine</strong>. Clique em OK.</li>
</ol>
<img src="../images/tutorials/maven-quickstart/maven-add-dependency1.png" alt="Captura de tela da caixa de di&aacute;logo Adicionar depend&ecirc;ncia" title="Captura de tela da caixa de di&aacute;logo Adicionar depend&ecirc;ncia" class="margin-around b-all" />
<p class="notes"><strong>Observa&ccedil;&atilde;o.</strong> O novo projeto aparecer&aacute; na caixa de di&aacute;logo ap&oacute;s o IDE finalizar a an&aacute;lise e atualiza&ccedil;&atilde;o dos &iacute;ndices.</p>
<p>Se expandir o n&oacute; Bibliotecas do MavenPlatformWordApp na janela Projetos, voc&ecirc; notar&aacute; que o MavenWordEngine est&aacute; agora listado com uma depend&ecirc;ncia.</p>
<h3><a name="02c"></a>Adicionando componente de janela a um m&oacute;dulo</h3>
<p>Neste exerc&iacute;cio ser&aacute; utilizado um assistente para adicionar o componente de janela ao m&oacute;dulo MavenWordEngine.</p>
<ol>
<li>Clique com o bot&atilde;o direito do mouse no <strong>M&oacute;dulo NetBeans MavenWordEngine</strong> na janela Projetos e selecione Novo &gt; Outro para abrir o assistente Novo arquivo.</li>
<li>Selecione Janela na categoria Desenvolvimento do m&oacute;dulo. Clique em Pr&oacute;ximo.</li>
<li>Selecione <strong>sa&iacute;da</strong> na lista suspensa Posi&ccedil;&atilde;o da janela. Clique em Pr&oacute;ximo.<br/>
<img src="../images/tutorials/maven-quickstart/maven-new-window.png" alt="Captura de tela da p&aacute;gina Componente de janela no assistente Novo arquivo" title="Captura de tela da p&aacute;gina Componente de janela no assistente Novo arquivo" class="margin-around b-all" />
</li>
<li>Digite <strong>Texto</strong> no campo Prefixo do nome da classe. Clique em Terminar.
<p>O assistente exibe uma lista de arquivos que ser&atilde;o criados e dos arquivos que ser&atilde;o modificados. </p></li>
</ol>
<p>Ao clicar em Terminar, na janela Projetos, poder&aacute; notar que o IDE gerou a classe <tt>TextTopComponent.java</tt> no <tt>com.mycompany.mavenwordengine</tt> sob os pacotes Origem. O IDE tamb&eacute;m gerou arquivos de recursos adicionais no <tt>com.mycompany.mavenwordengine</tt> sob Outras fontes. Neste exerc&iacute;cio ser&aacute; editado somente o arquivo <tt>TextTopComponent.java</tt>.</p>
<p>&Eacute; poss&iacute;vel visualizar a estrutura do projeto na janela Arquivos. Para compilar um projeto Maven, somente arquivos de origem podem ser localizados sob os pacotes Origem (diret&oacute;rio <tt>src/main/java</tt> na janela Arquivos). Outros recursos (ex. arquivos XML) precisam ser localizados sob Outras fontes (diret&oacute;rio <tt>src/main/resources</tt> na janela Arquivos). </p>
<h3><a name="02d"></a>Modificando componente de janela</h3>
<p>Neste exerc&iacute;cio ser&atilde;o adicionados uma &aacute;rea de texto e um bot&atilde;o ao componente de janela. Voc&ecirc; modificar&aacute; ent&atilde;o o m&eacute;todo invocado pelo bot&atilde;o para mudar as letras na &aacute;rea de texto para letras mai&uacute;sculas.</p>
<ol>
<li>Clique na aba Desenho do <tt>TextTopComponent.java</tt> no editor.</li>
<li>Arraste e solte um bot&atilde;o e uma &aacute;rea de texto da paleta na janela.</li>
<li>Clique com o bot&atilde;o direito na &aacute;rea de texto e selecione Alterar nome vari&aacute;vel e, a seguir, digite <strong>texto</strong> como o nome. Voc&ecirc; utilizar&aacute; o nome ao acessar o componente do seu c&oacute;digo.</li>
<li>Defina o texto do bot&atilde;o como &quot;<strong>Filtro!</strong>&quot;.<br/>
<img src="../images/tutorials/maven-quickstart68/maven-nbm-textopcomponent.png" alt="Captura de tela da p&aacute;gina Componente de janela no assistente Novo arquivo" title="Captura de tela da p&aacute;gina Componente de janela no assistente Novo arquivo" class="margin-around b-all" />
</li>
<li>Clique duas vezes no elemento do bot&atilde;o Filtro! na visualiza&ccedil;&atilde;o Desenho para abrir o m&eacute;todo manipuladores de eventos para o bot&atilde;o no editor do c&oacute;digo de origem. O m&eacute;todo &eacute; criado automaticamente ao clicar duas vezes no elemento bot&atilde;o.</li>
<li>Modifique o corpo do m&eacute;todo e adicione o c&oacute;digo a seguir. Salve as altera&ccedil;&otilde;es.
<pre class="examplecode">
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
<strong>tring s = text.getText();
s = s.toUpperCase();
text.setText(s);</strong>}</pre>
<p class="tips">&Eacute; poss&iacute;vel utilizar a conclus&atilde;o do c&oacute;digo no editor para ajud&aacute;-lo a digitar o c&oacute;digo. </p>
</li>
</ol>
<p>Se desejar testar se seus aplicativos est&atilde;o funcionando corretamente, pode clicar com o bot&atilde;o direito do mouse no n&oacute; Projeto do <strong>aplicativo com base na plataforma NetBeans mavenPlatformWordApp</strong> e selecionar Construir com depend&ecirc;ncias.</p>
<p>A a&ccedil;&atilde;o padr&atilde;o mapeada para Construir com depend&ecirc;ncias &eacute; construir o projeto utilizando o plugin Reator. Ao construir um projeto utilizando o plugin Reator, as depend&ecirc;ncias dos subprojetos s&atilde;o constru&iacute;das antes que o projeto recipiente seja constru&iacute;do. A janela Sa&iacute;da exibe a ordem de constru&ccedil;&atilde;o.</p>
<img src="../images/tutorials/maven-quickstart/maven-buildwithdependencies1.png" alt="Captura de tela da Ordem de constru&ccedil;&atilde;o do Reator na janela Sa&iacute;da" title="Captura de tela da Ordem de constru&ccedil;&atilde;o do Reator na janela Sa&iacute;da" class="margin-around b-all" />
<p>Os resultados da constru&ccedil;&atilde;o s&atilde;o mostrados tamb&eacute;m na janela Sa&iacute;da.</p>
<img src="../images/tutorials/maven-quickstart/maven-buildwithdependencies2.png" alt="Captura de tela da Constru&ccedil;&atilde;o bem sucedida do Reator na janela Sa&iacute;da" title="Captura de tela da Constru&ccedil;&atilde;o bem sucedida do Reator na janela Sa&iacute;da" class="margin-around b-all" />
<p>Se observar a janela Projetos, notar&aacute; que os projetos n&atilde;o possuem mais distintivos porque os artefatos das depend&ecirc;ncias exigidas agora est&atilde;o dispon&iacute;veis no reposit&oacute;rio local sob o n&oacute; <tt>com.mycompany</tt>.</p>
<img src="../images/tutorials/maven-quickstart/maven-localrepo.png" alt="Captura de tela do Reposit&oacute;rio local" title="Captura de tela do Reposit&oacute;rio local" class="margin-around b-all" />
<p>Para executar o projeto, clique com o bot&atilde;o direito no n&oacute; projeto do <strong>aplicativo com base na plataforma NetBeans MavenPlatformWordApp</strong> e selecione Executar. Ap&oacute;s a ativa&ccedil;&atilde;o do aplicativo, &eacute; poss&iacute;vel test&aacute;-lo executando as etapas a seguir.</p>
<ol>
<li>Selecione Janela &gt; Texto no menu principal do aplicativo da plataforma para abrir a janela Texto.</li>
<li>Digite algumas letras min&uacute;sculas na &aacute;rea de texto e clique em Filtro! </li>
<li>Saia do Maven Platform Word App.</li>
</ol>
<p>Ao clicar em Filtro!, as letras que digitou ser&atilde;o alteradas para mai&uacute;sculas e exibidas na &aacute;rea de texto. </p>
</div>
<!-- =================================================================== -->
<!-- +++++++++++++ Creating the TextFilter Module ++++++++++++++++++++++ -->
<h2><a name="04"></a>Criando m&oacute;dulo TextFilter</h2>
<p>Neste exerc&iacute;cio ser&aacute; criado um m&oacute;dulo chamado <b>TextFilter</b> e adicionar&aacute; o m&oacute;dulo como uma depend&ecirc;ncia ao aplicativo. O m&oacute;dulo TextFilter fornecer&aacute; um servi&ccedil;o e conter&aacute; somente uma interface. Ent&atilde;o ser&aacute; poss&iacute;vel acessar o servi&ccedil;o a partir de seus outros m&oacute;dulos utilizando o objeto Pesquisar.</p>
<div class="indent">
<h3><a name="04a"></a>Criando m&oacute;dulo</h3>
<p>Neste exerc&iacute;cio ser&atilde;o executados as etapas a seguir para criar o m&oacute;dulo TextFilter.</p>
<ol>
<li> Selecione Arquivo &gt; Novo projeto (Ctrl-Shift-N).</li>
<li> Selecione o arqu&eacute;tipo do m&oacute;dulo NetBeans Maven na categoria Maven. Clique em Pr&oacute;ximo.</li>
<li> Digite <b>TextFilter</b> como o nome do projeto.</li>
<li> Clique no Navegador para definir a localiza&ccedil;&atilde;o do projeto e localizar o diret&oacute;rio MavenPlatformWordApp. Clique em Terminar.</li>
</ol>
<p>Ao clicar em Terminar, o IDE cria o m&oacute;dulo e abre o projeto do m&oacute;dulo <b>M&oacute;dulo NetBeans TextFilter </b> na janela Projetos.</p>
<p>O IDE modifica o arquivo <tt>pom.xml</tt> do projeto POM aplicativo da plataforma NetBeans - MavenPlatformWordApp para adicionar o novo m&oacute;dulo &agrave; lista de m&oacute;dulos a ser inclu&iacute;da no projeto.</p>
<pre class="examplecode">&lt;modules&gt;
&lt;module&gt;branding&lt;/module&gt;
&lt;module&gt;application&lt;/module&gt;
&lt;module&gt;MavenWordEngine&lt;/module&gt;
&lt;module&gt;TextFilter&lt;/module&gt;
&lt;/modules&gt;</pre>
<p>Ap&oacute;s criar o m&oacute;dulo ser&aacute; necess&aacute;rio adicionar o mesmo como uma depend&ecirc;ncia do aplicativo.</p>
<h3><a name="04b"></a>Adicionando M&oacute;dulo TextFilter como uma depend&ecirc;ncia do MavenPlatformWordApp</h3>
<p>Neste exerc&iacute;cio ser&aacute; adicionado o m&oacute;dulo TextFilter como uma depend&ecirc;ncia do aplicativo com base na plataforma NetBeans MavenPlatformWordApp.</p>
<ol>
<li>Clique com o bot&atilde;o direito do mouse no n&oacute; Bibliotecas do projeto<strong>aplicativo com base na plataforma NetBeans - MavenPlatformWordApp</strong> e selecione Adicionar depend&ecirc;ncia.</li>
<li>Clique na aba Abrir projetos na caixa de di&aacute;logo Adicionar depend&ecirc;ncia.</li>
<li>Selecione o m&oacute;dulo <strong>M&oacute;dulo TextFilterNetBeans</strong>. Clique em OK.</li>
</ol>
<p>Ao clicar em OK, o IDE adiciona o m&oacute;dulo como uma depend&ecirc;ncia do projeto. Se expandir o n&oacute; Biblioteca, poder&aacute; notar que o m&oacute;dulo foi adicionado &agrave; lista de depend&ecirc;ncias. No POM para o <strong>aplicativo com base na plataforma NetBeans - MavenPlatformWordApp</strong>, poder&aacute; notar que o IDE adicionou as linhas seguintes dentro do elemento <tt>depend&ecirc;ncias</tt>.</p>
<pre class="examplecode">&lt;dependency&gt;
&lt;groupId&gt;${project.groupId}&lt;/groupId&gt;
&lt;artifactId&gt;TextFilter&lt;/artifactId&gt;
&lt;version&gt;${project.version}&lt;/version&gt;
&lt;/dependency&gt;</pre>
<h3><a name="04c"></a>Adicionando uma interface ao m&oacute;dulo TextFilter</h3>
<p>Neste exerc&iacute;cio ser&aacute; adicionado uma interface simples ao m&oacute;dulo TextFilter.</p>
<ol>
<li> Clique com o bot&atilde;o direito do mouse no <strong>M&oacute;dulo NetBeans TextFilter</strong> e selecione Nova &gt; Interface Java.</li>
<li> Digite <strong>TextFilter</strong> como o nome da classe.</li>
<li> Selecione <b>com.mycompany.textfilter</b> na lista suspensa Pacote. Clique em Terminar.</li>
<li> Modifique a classe para adicionar o c&oacute;digo a seguir. Salve as altera&ccedil;&otilde;es.</li>
</ol>
<pre class="examplecode">package com.mycompany.textfilter;
public interface TextFilter {
<strong>public String process(String s);</strong>}</pre>
<h3><a name="04d"></a>Tornando p&uacute;blico o m&oacute;dulo TextFilter</h3>
<p>Neste exerc&iacute;cio voc&ecirc; tornar&aacute; p&uacute;blico os conte&uacute;dos do pacote <tt>com.mycompany.textfilter</tt>, de forma que outros m&oacute;dulos possam acessar os m&eacute;todos. Para declarar um pacote como p&uacute;blico, modifique o elemento da <tt>configura&ccedil;&atilde;o</tt> do <tt>nbm-maven-plugin</tt> no POM para especificar os pacotes exportados como p&uacute;blico pelo plugin. &Eacute; poss&iacute;vel fazer as altera&ccedil;&otilde;es ao POM no editor ou selecionar os pacotes a se tornarem p&uacute;blicos na caixa de di&aacute;logo Propriedades.
</p>
<ol>
<li> Clique com o bot&atilde;o direito no <strong>M&oacute;dulo NetBeans TextFilter</strong> e selecione Propriedades.</li>
<li> Selecione a categoria Pacotes p&uacute;blicos na caixa de di&aacute;logo Propriedades do projeto.</li>
<li> Selecione o pacote <strong>com.mycompany.textfilter</strong>. Clique em OK.</li>
</ol>
<img src="../images/tutorials/maven-quickstart/maven-public-packages.png" alt="Captura de tela da caixa de di&aacute;logo Propriedades" title="Captura de tela da caixa de di&aacute;logo Propriedades" class="margin-around b-all" />
<p>Ao clicar em OK, o IDE modifica o projeto POM para modificar o elemento da <tt>configura&ccedil;&atilde;o</tt> do artefato <tt>nbm-maven-plugin</tt> para adicionar as seguintes entradas.</p>
<pre>&lt;publicPackages&gt;
&lt;publicPackage&gt;com.mycompany.textfilter&lt;/publicPackage&gt;
&lt;/publicPackages&gt;</pre>
<p>Agora a entrada do POM cont&eacute;m as seguintes entradas.</p>
<pre>&lt;plugin&gt;
&lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
&lt;artifactId&gt;nbm-maven-plugin&lt;/artifactId&gt;
&lt;version&gt;3.2&lt;/version&gt;
&lt;extensions&gt;true&lt;/extensions&gt;
&lt;configuration&gt;
&lt;publicPackages&gt;
&lt;publicPackage&gt;com.mycompany.textfilter&lt;/publicPackage&gt;
&lt;/publicPackages&gt;
&lt;/configuration&gt;
&lt;/plugin&gt;</pre>
<p class="tips">Para mais informa&ccedil;&otilde;es, consulte <a href="http://mojo.codehaus.org/nbm-maven-plugin/manifest-mojo.html#publicPackages" class="external text" title="http://mojo.codehaus.org/nbm-maven-plugin/manifest-mojo.html#publicPackages" rel="nofollow">manifesto nbm-maven-plugin</a></p>
</div>
<!-- =================================================================== -->
<!-- +++++++++++++ Creating the MyFilter Module ++++++++++++++++++++++++ -->
<h2><a name="05"></a>Criando m&oacute;dulo MyFilter</h2>
<p>Neste exerc&iacute;cio ser&aacute; criado o m&oacute;dulo <b>MyFilter</b> e adicionado como uma depend&ecirc;ncia do TextFilter. &Eacute; poss&iacute;vel ent&atilde;o chamar os m&eacute;todos no MyFilter pesquisando o servi&ccedil;o TextFilter.</p>
<div class="indent">
<h3><a name="05a"></a>Criando m&oacute;dulo</h3>
<p>Neste exerc&iacute;cio ser&aacute; criado o m&oacute;dulo chamado <strong>MyFilter</strong>. Para criar o m&oacute;dulo, voc&ecirc; seguir&aacute; os mesmas etapas que executou ao criar o m&oacute;dulo TextFilter.</p>
<ol>
<li> Selecione Arquivo &gt; Novo projeto (Ctrl-Shift-N).</li>
<li> Selecione M&oacute;dulo NetBeans Maven na categoria Maven. Clique em Pr&oacute;ximo.</li>
<li> Digite <b>MyFilter</b> como o nome do projeto.</li>
<li> Clique no Navegador para definir a localiza&ccedil;&atilde;o do projeto e localizar o diret&oacute;rio <strong>MavenPlatformWordApp</strong>. Clique em Terminar.</li>
<li> Adicione o m&oacute;dulo MyFilter como uma depend&ecirc;ncia do projeto do <b>aplicativo com base na plataforma NetBeans - MavenPlatformWordApp</b>.</li>
</ol>
<h3><a name="05b"></a>Adicionando m&oacute;dulo TextFilter como uma depend&ecirc;ncia</h3>
<p>Neste exerc&iacute;cio ser&aacute; adicionado o m&oacute;dulo TextFilter como uma depend&ecirc;ncia do m&oacute;dulo MyFilter.</p>
<ol>
<li>Clique com o bot&atilde;o direito do mouse no n&oacute; Bibliotecas do projeto <b>MyFilter</b> e selecione Adicionar depend&ecirc;ncia.</li>
<li>Clique na aba Abrir projetos na caixa de di&aacute;logo Adicionar depend&ecirc;ncia.</li>
<li>Selecione o m&oacute;dulo <strong>TextFilter</strong>. Clique em OK.</li>
</ol>
<h3><a name="05c"></a>Modificando m&oacute;dulo MyFilter</h3>
<p>Neste exerc&iacute;cio ser&aacute; adicionada uma classe Java com um m&eacute;todo simples chamado <tt>processo</tt> que converte uma string para letra mai&uacute;scula. Voc&ecirc; tamb&eacute;m especificar&aacute; que a classe implementar&aacute; a interface TextFilter. Voc&ecirc; utilizar&aacute; tamb&eacute;m uma anota&ccedil;&atilde;o <tt>@ServiceProvider</tt> para especificar que o TextFilter &eacute; um servi&ccedil;o que ser&aacute; registrado no tempo de compila&ccedil;&atilde;o.</p>
<ol>
<li> Clique com o bot&atilde;o direito no m&oacute;dulo <b>MyFilter</b> e selecione Nova &gt; Classe Java.</li>
<li> Digite <b>UpperCaseFilter</b> como o nome da classe.</li>
<li> Selecione<b>com.mycompany.myfilter</b> na lista suspensa Pacote. Clique em Terminar.</li>
<li> Modifique a classe para adicionar o c&oacute;digo a seguir. Salve as altera&ccedil;&otilde;es.</li>
</ol>
<pre>package com.mycompany.myfilter;
import com.mycompany.textfilter.TextFilter;
import org.openide.util.lookup.ServiceProvider; <strong>@ServiceProvider(service=TextFilter.class)</strong> public class UpperCaseFilter <strong>implements TextFilter {
public String process(String s) {
return s.toUpperCase();
}</strong>}</pre>
<p class="tips">Observe como a anota&ccedil;&atilde;o &eacute; usada para especificar o provedor do servi&ccedil;o. Para mais informa&ccedil;&otilde;es sobre a anota&ccedil;&atilde;o do <tt>@ServiceProvider</tt> e sobre o funcionamento do mecanismo ServiceceLoader no JDK 6, consulte a documenta&ccedil;&atilde;o dos utilit&aacute;rios API.</p>
<h3><a name="05d"></a>Modificando m&oacute;dulo MavenWordEngine</h3>
<p>Neste exerc&iacute;cio ser&aacute; modificado o manipulador de eventos no componente de janela Texto para utilizar um objeto pesquisar para chamar a interface TextFilter e acessar o m&eacute;todo no MyFilter. Antes de adicionar o c&oacute;digo ao manipulador de eventos &eacute; necess&aacute;rio declarar uma depend&ecirc;ncia no m&oacute;dulo TextFilter.</p>
<ol>
<li>Clique com o bot&atilde;o direito do mouse no n&oacute; Bibliotecas no m&oacute;dulo <strong>MavenWordEngine</strong> e adicione uma depend&ecirc;ncia no m&oacute;dulo TextFilter.</li>
<li>Expanda os pacotes Origem do m&oacute;dulo <strong>MavenWordEngine</strong> e abra o <tt>TextTopComponent</tt> no editor de origem.</li>
<li>Modifique o m&eacute;todo manipulador do bot&atilde;o <tt>jButton1ActionPerformed</tt> para adicionar o c&oacute;digo a seguir. Salve as altera&ccedil;&otilde;es.
<pre>private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String s = text.getText();
<strong>TextFilter filter = Lookup.getDefault().lookup(TextFilter.class);
if (filter != null) {
s = filter.process(s);
}</strong> text.setText(s);
}</pre>
</li>
</ol>
<p class="tips">&Eacute; poss&iacute;vel utilizar a conclus&atilde;o do c&oacute;digo para obter ajuda com o c&oacute;digo.</p>
<p>Nesta fase voc&ecirc; pode verificar se seu aplicativo est&aacute; funcionando corretamente. A seguir, voc&ecirc; adicionar&aacute; um novo componente de janela que exibir&aacute; um hist&oacute;rico do texto que processou utilizando o filtro.</p>
</div>
<!-- =================================================================== -->
<!-- ++++++++++++++++++ Adding a LookupListener ++++++++++++++++++++++++ -->
<h2><a name="06"></a>Adicionando objetos LookupListener e InstanceContent para o componente de janela Texto</h2>
<p>Neste exerc&iacute;cio ser&atilde;o adicionados um listener e um campo para armazenar os conte&uacute;dos da &aacute;rea de texto ao clicar no bot&atilde;o &quot;Filtro!&quot;.</p>
<ol>
<li>No m&oacute;dulo <strong>MavenWordEngine</strong> adicione o objeto <tt>InstanceContent</tt> e modifique o construtor do <tt>TextTopComponent</tt> adicionando o c&oacute;digo a seguir.
<pre>public final class TextTopComponent extends TopComponent {
<strong>private InstanceContent content;</strong> public TextTopComponent() {
initComponents();
setName(NbBundle.getMessage(TextTopComponent.class, &quot;CTL_TextTopComponent&quot;));
setToolTipText(NbBundle.getMessage(TextTopComponent.class, &quot;HINT_TextTopComponent&quot;));
// setIcon(Utilities.loadImage(ICON_PATH, true));
<strong>content = new InstanceContent();
associateLookup(new AbstractLookup(content));</strong> }</pre>
</li>
<li>Modifique o m&eacute;todo <tt>jButton1ActionPerformed</tt> para adicionar um valor antigo do texto ao objeto <tt>InstanceContent</tt> quando o bot&atilde;o for clicado.
<pre>private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String s = text.getText();
TextFilter filter = Lookup.getDefault().lookup(TextFilter.class);
if (filter&nbsp;!= null) {
<strong>content.add(s);</strong> s = filter.process(s);
}
text.setText(s);
}</pre>
</li>
</ol>
<!-- =================================================================== -->
<!-- ++++++++++++++ Creating the History Module ++++++++++++++++++++++++ -->
<h2><a name="07"></a>Criando m&oacute;dulo Hist&oacute;rico</h2>
<p>Nesta se&ccedil;&atilde;o ser&aacute; criado um m&oacute;dulo chamado <strong>Hist&oacute;rico</strong> que exibir&aacute; o valor do <tt>InstanceContent</tt>. Para criar o m&oacute;dulo, voc&ecirc; seguir&aacute; os mesmas etapas que executou ao criar os m&oacute;dulos TextFilter e MyFilter.</p>
<div class="indent">
<ol>
<li>Selecione Arquivo &gt; Novo projeto (Ctrl-Shift-N).</li>
<li>Selecione M&oacute;dulo NetBeans Maven na categoria Maven. Clique em Pr&oacute;ximo.</li>
<li>Digite <strong>Hist&oacute;rico</strong> como o nome do projeto.</li>
<li>Clique no Navegador para definir a localiza&ccedil;&atilde;o do projeto e localizar o diret&oacute;rio MavenPlatformWordApp. Clique em Terminar.</li>
<li>Adicione o m&oacute;dulo Hist&oacute;rico como uma depend&ecirc;ncia do projeto do <b>aplicativo com base na plataforma NetBeans - MavenPlatformWordApp</b>.</li>
</ol>
<h3><a name="07a"></a>Criando um componente de janela no m&oacute;dulo Hist&oacute;rico</h3>
<p>Neste exerc&iacute;cio ser&aacute; utilizado um assistente para adicionar um componente de janela ao m&oacute;dulo.</p>
<ol>
<li>Clique com o bot&atilde;o direito em <b>M&oacute;dulo NetBeans Hist&oacute;rico</b> na janela Projetos e selecione Novo &gt; Outro para abrir a caixa de di&aacute;logo Novo Arquivo.</li>
<li>Selecione Janela na categoria Desenvolvimento do m&oacute;dulo. Clique em Pr&oacute;ximo.</li>
<li>Selecione <b>editor</b> na lista suspensa Posi&ccedil;&atilde;o da janela. Clique em Pr&oacute;ximo.</li>
<li>Digite <b>Hist&oacute;rico</b> no campo Prefixo do nome da classe. Clique em Terminar.<br />
O assistente exibe uma lista de arquivos que ser&atilde;o criados e dos arquivos que ser&atilde;o modificados.</li>
</ol>
<h3><a name="07b"></a>Modificando componente de janela Hist&oacute;rico</h3>
<p>Voc&ecirc; agora adicionar&aacute; um elemento da &aacute;rea de texto ao componente de janela que ser&aacute; exibido nas strings filtradas.</p>
<ol>
<li>Clique na aba Desenho do arquivo <tt>HistoryTopComponent.java</tt> no editor.</li>
<li>Arraste e solte uma &aacute;rea de texto a partir da paleta na janela.</li>
<li>Clique com o bot&atilde;o direito do mouse na &aacute;rea de texto e selecione Alterar nome da vari&aacute;vel e, a seguir, digite <b>historyText</b> como o nome.</li>
<li>Adicione o campo <tt>resultado</tt><tt>privado</tt> e o c&oacute;digo seguinte ao construtor do <tt>HistoryTopComponent</tt> de maneira que este observe o objeto pesquisar da classe String da janela ativa atual e exiba todos os objetos String recuperados nesta &aacute;rea de texto.
<pre class="examplecode">
<strong>private Lookup.Result result;</strong> public HistoryTopComponent() {
initComponents();
...
<strong>result = org.openide.util.Utilities.actionsGlobalContext().lookupResult(String.class);
result.addLookupListener(new LookupListener() {
public void resultChanged(LookupEvent e) {
historyText.setText(result.allInstances().toString());
}
});</strong> }</pre>
</li>
</ol>
</div>
<h2><a name="02c"></a>Construindo e Executando aplicativo</h2>
<p>Agora &eacute; poss&iacute;vel testar o aplicativo.</p>
<ol>
<li>Clique com o bot&atilde;o direito no n&oacute; Projeto no <strong>aplicativo com base na plataforma NetBeans mavenPlatformWordApp</strong> e selecione Limpar.</li>
<li>Clique com o bot&atilde;o direito no n&oacute; Projeto no <strong>aplicativo com base na plataforma NetBeans mavenPlatformWordApp</strong> e selecione Construir com depend&ecirc;ncias.</li>
<li>Clique com o bot&atilde;o direito no n&oacute; Projeto no <strong>aplicativo com base na plataforma NetBeans mavenPlatformWordApp</strong> e selecione Executar.</li>
</ol>
<p>Ao clicar em Executar, o IDE ativa o aplicativo da plataforma NetBeans. &Eacute; poss&iacute;vel abrir as janelas Hist&oacute;rico e Texto a no menu Janela.<br/>
<img src="../images/tutorials/maven-quickstart/maven-final-app.png" alt="Captura de tela do aplicativo final da plataforma NetBeans" title="Captura de tela do aplicativo final da plataforma NetBeans" class="margin-around b-all" />
</p>
<p>Ao digitar o texto na janela Texto e clicar no bot&atilde;o Filtro!, o texto &eacute; convertido em letra mai&uacute;scula e &eacute; adicionado ao conte&uacute;do da janela Hist&oacute;rico.</p>
<p>Este Guia de in&iacute;cio r&aacute;pido demonstra que criar um aplicativo da plataforma NetBeans utilizando Maven, n&atilde;o &eacute; muito diferente de criar um aplicativo utilizando Ant. A principal diferen&ccedil;a &eacute; entender como o POM Maven controla como o aplicativo &eacute; montado. Para mais exemplos sobre como construir os aplicativos e m&oacute;dulos da plataforma NetBeans, consulte os tutoriais listados na <a href="https://netbeans.org/kb/trails/platform_pt_BR.html">Trilha de aprendizado da plataforma NetBeans</a>.</p>
<!-- ======================================================================================== -->
<h2><a name="nextsteps"></a>Veja tamb&eacute;m</h2>
<p>Para mais informa&ccedil;&otilde;es sobre a cria&ccedil;&atilde;o e o desenvolvimento dos aplicativos, consulte os recursos a seguir.</p>
<ul>
<li><a href="https://netbeans.org/kb/trails/platform_pt_BR.html">Trilha de aprendizado da plataforma NetBeans</a></li>
<li><a href="http://bits.netbeans.org/dev/javadoc/">Javadoc da API do NetBeans</a></li>
</ul>
<p>Caso tenha alguma d&uacute;vida referente &aacute; plataforma Netbeans, envie-nos um e-mail para dev@platform.netbeans.org, ou consulte o <a href="https://netbeans.org/projects/platform/lists/dev/archive">arquivo de endere&ccedil;os da plataforma Netbeans</a>.</p>
<!-- ======================================================================================== -->
</body>
</html>