<!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>
<!-- -*- xhtml -*- -->
  <title>NetBeans Code Template Module Tutorial for NetBeans Platform 6.5</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="developer" content="gwielenga@netbeans.org"/>
  <meta name="indexed" content="y"/>
  <meta name="description"
 content="A short guide to providing code templates for NetBeans Platform
 applications."/>
<!--      Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. -->
<!--     Use is subject to license terms.-->
</head>
<body>
<h1>NetBeans Code Template Module Tutorial</h1>

<p>This tutorial demonstrates how to create a NetBeans module that provides
 code templates. In this particular scenario, you will enable the user
 to type "snf", as below...</p>

<p><img alt="" src="../images/tutorials/code-templates/html-template-1.png"/></p>

 <p>...which, when the user presses Tab, will expand
     to the full text "Select "New File" (Ctrl-N) in the File menu", as shown here:</p>

<p><img alt="" src="../images/tutorials/code-templates/html-template-2.png"/></p>

 <p>The abbreviation will only expand in this way if the user is typing in
 an HTML file. Changes can then be made in the Options window, either
 to customize the existing code templates or to add new ones:</p>

<p><img alt="" src="../images/tutorials/code-templates/html-template-3.png"/></p>

 <p>To provide this functionality, you will not need to use any Java code
  at all. As shown in this tutorial, you will only need to provide an
  XML file that defines your code templates, by registering it in your module's
  <tt>layer.xml</tt> file.</p>

   <p><b>Contents</b></p>
   
   <p><img  src="../images/articles/69/netbeans-stamp7-8-9.png" class="stamp" width="114" height="114" alt="Content on this page applies to NetBeans IDE 6.5, 6.7, 6.8" title="Content on this page applies to NetBeans IDE 6.5, 6.7, 6.8"/></p>
      <ul class="toc">
<li><a href="#creatingthemoduleproject">Setting Up the Module Project</a>
</li>

          <li><a href="#coding-module">Creating the Code Templates</a></li>

<li><a href="#registering-module">Declaring and Registering the Code Template</a>
</li>

<li><a href="#building">Building and Installing the Code Template</a>
<ul>
    <li><a href="#try-plugin">Trying Out the Code Template</a></li>
    <li><a href="#share-plugin">Creating a Shareable Module Binary</a></li>
    </ul></li>
</ul>
         
<p><b>To follow this tutorial, you need the software and resources listed in the following 
table.</b></p>

     <table>
        <tbody>
            <tr>
                <th class="tblheader" scope="col">Software or Resource</th>
                <th class="tblheader" scope="col">Version Required</th>
            </tr>
            <tr>
                <td class="tbltd1"><a href="https://netbeans.org/downloads/index.html">NetBeans IDE</a></td>
                <td class="tbltd1">version 6.7 or above</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">Version 6 or<br/>version 5</td>
            </tr>
        </tbody>
    </table>

<h2 class="tutorial"><a name="creatingthemoduleproject"></a>Setting up the Module Project</h2>
<p>Before you start writing the module, you have to make sure you
  that your project is set up correctly. The IDE provides a wizard that sets up all the basic files
 needed for a module.</p>

<ol>
    <li>Choose File &gt; New Project (Ctrl+Shift+N). Under Categories, select NetBeans Modules.
        Under Projects, select Module. Click Next.</li>
    <li>In the Name and Location panel, type <tt>HTMLCodeTemplates</tt> in the Project Name field.
        Change the Project Location to any directory on your computer. Leave the Standalone Module option
        and Set as Main Project checkbox selected. Click Next.</li>
    <li>In the Basic Module Configuration panel, type <tt>org.netbeans.htmlcodetemplate</tt>
     in Code Name Base.</li>
    <li>Select "Generate XML Layer". Leave the
        locations of both the localizing bundle and the XML layer file
        so that they will be stored in a package with
        the name <tt>org/netbeans/modules/htmlcodetemplate</tt>. Click Finish.</li>
</ol>

<p> The IDE creates the <tt>HTMLCodeTemplates</tt>
project. The project contains all of your sources and
project metadata, such as the project's Ant build script. The project
opens in the IDE. You can view its logical structure in the Projects window (Ctrl-1) and its
file structure in the Files window (Ctrl-2).</p>

<!-- ===================================================================================== -->
<h2><a name="coding-module"></a>Creating the Code Templates</h2>

<p>In this section, you create the code templates for HTML files.</p>

<div class="indent">

<ol>
	
	 <li>Right-click the <tt>org.netbeans.modules.htmlcodetemplate</tt> node and
	      choose New &gt; Other &gt; XML &gt; XML Document.
              Click Next.</li>
     <li>Type <tt>org-netbeans-modules-htmleditor-snippets</tt>
     and browse to the main package is selected in the Package drop-down list.
     Click Next and then click Finish.</li>
	     

   <li>Replace the default content of the <tt>org-netbeans-modules-htmleditor-snippets.xml</tt> file with the following:

<pre class="examplecode">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE codetemplates PUBLIC "-//NetBeans//DTD Editor Code Templates settings 1.0//EN" "https://netbeans.org/dtds/EditorCodeTemplates-1_0.dtd"&gt;
&lt;codetemplates&gt;
    &lt;codetemplate abbreviation="snf" xml:space="preserve"&gt;
        &lt;code&gt;Select "New File" (Ctrl-N) in the File menu&lt;/code&gt;
        &lt;description&gt;Code template for selecting "New File".&lt;/description&gt;
    &lt;/codetemplate&gt;
    &lt;codetemplate abbreviation="pe" xml:space="preserve"&gt;
        &lt;code&gt;Press Enter.&lt;/code&gt;
        &lt;description&gt;Code template for clicking the "Enter" key.&lt;/description&gt;
    &lt;/codetemplate&gt;
&lt;/codetemplates&gt;
</pre>

    <p>Right-click in the Source Editor and choose Format (Alt-Shift-F) and then save the file.</p>
   </li>

</ol>

 </div>

<h2><a name="registering-module"></a>Declaring and Registering the Code Templates</h2>

<p>Code templates are registered in the <tt>layer.xml</tt> file for
    the MIME type to which they apply.</p>
  
<p>Add the following tags to the <tt>layer.xml</tt> file, between the <tt>&lt;filesystem&gt;</tt> tags:</p>

<pre class="examplecode">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.1//EN" "https://netbeans.org/dtds/filesystem-1_1.dtd"&gt;
&lt;filesystem&gt;
    &lt;folder name="Editors"&gt;
        &lt;folder name="text"&gt;
            &lt;folder name="html"&gt;
                &lt;folder name="CodeTemplates"&gt;
                    &lt;file name="org-netbeans-modules-htmleditor-snippets.xml" url="org-netbeans-modules-htmleditor-snippets.xml"/&gt;
                &lt;/folder&gt;
            &lt;/folder&gt;
        &lt;/folder&gt;
    &lt;/folder&gt;
&lt;/filesystem&gt;
</pre>
      
<!-- ======================================================================================= -->

<h2><a name="building"></a>Building and Installing the Code Templates</h2>
<p>Now we need to think about installation and distribution.
 In the first section below, we install the code templates,
 next we create an NBM file and examine distribution channels.</p>
<div class="indent">

	<h3 class="tutorial"><a name="try-plugin"></a>Trying Out the Code Templates</h3>
        
              <p>Install and try out the code templates,
                  by following the steps below.</p>

                  <ol>
                      <li><p>Check that your module's source structure is as follows:</p>
                          <p><img alt="" src="../images/tutorials/code-templates/html-template-4.png"/></p></li>
                  <li><p>In the Projects window, right-click the <tt>HTMLCodeTemplates</tt> project and choose Run. </p>
	      <p>The module is built and installed in the target platform. The target platform opens so that you
	      can try out your new module. The default target platform is the 
          installation used by the current instance of the development IDE.</p></li>

    
    <li><p>Open an HTML file and type "snf". Press the Tab key and notice that the
     abbreviation expands. Do the same for "pe".</p></li>
</ol>

 <h3 class="tutorial"><a name="share-plugin"></a>Creating a Shareable Module Binary</h3>
  
              <p>An NBM file is the binary version of the module that
                  provides the code templates. Below, using one menu item, we create
                  the NBM file.</p>
                  
                  <ol>
              <li><p>In the Projects window, right-click the <tt>HTMLCodeTemplates</tt> project and choose Create NBM.</p>

	      <p>The NBM file is created and you can view it in the Files window (Ctrl-2).</p></li>
	      <li>Make the module available to others via, for example, the
              <a href="http://plugins.netbeans.org/PluginPortal/">Plugin Portal</a>.</li>
	      <li>The recipient can install the module by using their IDE's Plugin Manager. They
               would choose Tools &gt; Plugins
	       from the main menu.</li>
       </ol>
</div>

<div class="feedback-box"><a href="https://netbeans.org/about/contact_form.html?to=3&amp;subject=Feedback:%20Code%20Template%20Module%20Tutorial">Send Us Your Feedback</a></div>
<!-- ======================================================================================== -->

<h2><a name="nextsteps"></a>Next Steps</h2>

<p>For more information about creating and developing NetBeans modules, see the following resources:</p>
  <ul>
	  <li><a href="https://netbeans.org/kb/trails/platform.html">Other Related Tutorials</a></li>
	  <li><a href="http://bits.netbeans.org/dev/javadoc/index.html">NetBeans API Javadoc</a></li>
  </ul>
  
<!-- ======================================================================================== -->
<!--
<h2><a name="version"></a>Versioning </h2>
  
<p>

<table width="76%" border="1">
 <tbody>
   <tr>
      <td>
        <div align="left"><b>Version</b></div>
      </td>
      <td>
	<div align="left"><b>Date</b></div>
      </td>
      <td>
	<div align="left"><b>Changes</b></div>
</td>
<td>
	<div align="left"><b>Open Issues</b></div>
      </td>
  </tr>
  <tr>
      <td>
         1
      </td>
      <td>
	      14 November 2008
      </td>
      <td>
         Initial version
 </td>
<td>
  <tr>
      <td>
         2
      </td>
      <td>
	      23 November 2010
      </td>
      <td>
         Fixing broken elements to remove red error marks in the editor.
 </td>
<td>
...
      </td>
  </tr>
  </tbody>
</table>-->
</body>
</html>
