<!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 7.1</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. Changes can be made by the user 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/71/options-window.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 class="notes">Note:</b> This document uses NetBeans IDE 7.1 and NetBeans Platform 7.1. If you
            are using an earlier version, see <a href="../70/nbm-code-template.html">the previous version
                of this document</a>.</p>

        <p><b>Contents</b></p>

        <p><img src="../../images/articles/71/netbeans-stamp.png" class="stamp" width="114" height="114" alt="Content on this page applies to NetBeans IDE 7.1" title="Content on this page applies to NetBeans IDE 7.1"/></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 7.1 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 above</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. Click Next.</li>
            <li>In the Basic Module Configuration panel, type <tt>org.netbeans.htmlcodetemplate</tt>
                in Code Name Base. 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 in "Folder" browse to the "htmlcondetemplate" folder.
                    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>

                </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>

        <div class="indent">

            <ol>

                <li>Right-click the <tt>org.netbeans.modules.htmlcodetemplate</tt> node and
                    choose New &gt; Other &gt; Module Development &gt; XML Layer.
                    Click Next and then click Finish.</li>
                <li>Replace the comtent of the layer.xml file
                    with the following:

                    <pre class="examplecode">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN" "https://netbeans.org/dtds/filesystem-1_2.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>
                    </pre></li>
            </ol>

        </div>
        <!-- ======================================================================================= -->

        <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>In the Projects window, right-click the <tt>HTMLCodeTemplates</tt> project and 
                        choose Run. 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. 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%207.1">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>
        
                <table width="76%" border="1">
                    <tbody>
                        <tr>
                            <td>
                                <b>Version</b>
                            </td>
                            <td>
                                <b>Date</b>
                            </td>
                            <td>
                                <b>Changes</b>
                            </td>
                            <td>
                                <b>Open Issues</b>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                1
                            </td>
                            <td>
                                14 November 2008
                            </td>
                            <td>
                                Initial version
                            </td>
                            <td>
                            </td>
                        </tr>
                        <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>
                        <tr>
                            <td>
                                3
                            </td>
                            <td>
                                18 November 2011
                            </td>
                            <td>
                                Updated for 7.1.
                            </td>
                            <td>
                            </td>
                        </tr>
                    </tbody>
                </table>-->
    </body>
</html>
