blob: e67604e8f0a8cfc458d69c05b406a37b17bb49f3 [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>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!-- -*- xhtml -*- -->
<title>NetBeans プラットフォーム 6.0: NetBeans ファイルテンプレートモジュールのチュートリアル</title>
<link rel="stylesheet" type="text/css" href="../../../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 using the Nodes API.">
<!-- Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. -->
<!-- Use is subject to license terms.-->
</head>
<body>
<h1>NetBeans ファイルテンプレートモジュールのチュートリアル</h1>
<p>このチュートリアルでは、ファイルテンプレートを含むモジュールの作成方法について学習します。ユーザーが IDE にモジュールをインストールすると、「新規ファイル」ウィザードでファイルテンプレートを使用できるようになります。テンプレートを含むモジュールがあれば、テンプレートの共有が容易になります。IDE でバイナリを作成してほかのユーザーが利用できるようにすると、ほかのユーザーはプラグインマネージャーを通じてそれをインストールできます。
</p><p>ファイルテンプレートは、テンプレートファイル、HTML の説明ファイル、およびアイコンで構成されます。HTML の説明ファイルは、「新規ファイル」ウィザードでテンプレートに関する情報を表示します。アイコンは、テンプレートを識別するもので、「新規ファイル」ウィザードのほかのテンプレートと区別するためのものです。このチュートリアルでは、既存のファイルテンプレートの内容を空のファイルにコピーすることによって新しいファイルテンプレートを作成します。そのあとで、「新規ファイル」ウィザード用の説明ファイルと識別用アイコンを設定したら、テンプレート、HTML の説明ファイル、およびアイコンを NetBeans 構成ファイルに登録します。構成ファイルは、<tt>layer.xml</tt> ファイルです。
</p><p><b>目次</b></p>
<img src="../../images/articles/60/netbeans-stamp60-61.gif" class="stamp" width="114" height="114" alt="このページの内容は NetBeans IDE 6.1 が対象です" title="このページの内容は NetBeans IDE 6.1 が対象です"> </p>
<ul class="toc">
<li><a href="#freemarker">FreeMarker について</a></li>
<li><a href="#creatingthemoduleproject">モジュールプロジェクトの作成</a></li>
<li><a href="#creatingandgettingtoknowthemainfiles">ファイルテンプレートの作成</a>
<ul>
<li><a href="#creating-the-template-file">テンプレートファイルの作成</a>
</li><li><a href="#creating-the-description-file">説明ファイルの作成</a>
</li><li><a href="#getting-an-icon">アイコンの取得</a>
</li></ul></li>
<li><a href="#registering">ファイルテンプレートの登録</a></li>
<li><a href="#building">モジュールの構築とインストール</a></li>
<li><a href="#additional">追加の変数の提供</a></li>
<li><a href="#license">プロジェクトライセンスの供与</a></li>
</ul>
<p><b>このチュートリアルを行うには、次の表に示すソフトウェアおよびリソースが必要です。</b></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">ソフトウェアまたはリソース</th>
<th class="tblheader" scope="col">必須バージョン</th>
</tr>
<tr>
<td class="tbltd1">NetBeans IDE</td>
<td class="tbltd1"><a href="http://download.netbeans.org/netbeans/6.1/final/">version 6.1</a> または<br>
version 6.0</td>
</tr>
<tr>
<td class="tbltd1">Java Developer Kit (JDK)</td>
<td class="tbltd1"><a href="http://java.sun.com/javase/downloads/index.jsp">version 6</a> または<br>
version 5</td>
</tr>
</tbody>
</table>
<p class="tips">トラブルシューティングのために、<a href="http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=3755">完了したサンプルをダウンロード</a>してソースを調べることもできます (任意)。
</p><h2 class="tutorial"><a name="freemarker"></a>FreeMarker について</h2>
<p>NetBeans IDE 6.0 以降では、ファイルテンプレートの定義に、任意に <a href="http://freemarker.org/">FreeMarker</a> テンプレート言語を使用できます。IDE にバンドルされているテンプレートのいくつかは、この方法で定義されています。たとえば、Java クラステンプレートは次のように定義されています。
</p><pre class="examplecode">&lt;#assign licenseFirst = &quot;/*&quot;&gt;
&lt;#assign licensePrefix = &quot; * &quot;&gt;
&lt;#assign licenseLast = &quot; */&quot;&gt;
&lt;#include &quot;../Licenses/license-${project.license}.txt&quot;&gt;
&lt;#if package?? &amp;&amp; package != &quot;&quot;&gt;
package ${package};
&lt;/#if&gt;
/**
*
* @author ${user}
*/
public class ${name} {
}</pre>
<p>FreeMarker を使用する利点は、このテンプレートに見られるように、if、elseif、else やループコンストラクトのような<i>指令</i>を使用して、テンプレートに<i>論理</i>を追加できることです。FreeMarker テンプレート言語についての詳細は、『<a href="http://freemarker.org/docs/index.html">FreeMarker Manual</a>』、特に「<a href="http://freemarker.org/docs/dgui_template_directives.html">Directives</a>」の章を参照してください。このチュートリアルでは、特に、ファイルテンプレートに FreeMarker を取り入れるために必要な手順について学習します。
<!-- ===================================================================================== -->
</p><h2 class="tutorial"><a name="creatingthemoduleproject"></a> モジュールプロジェクトの作成</h2>
<p>はじめに、「新規モジュールプロジェクト」ウィザードで、新規モジュール用にすべて最小要件でソースの構造を作成します。
</p><ol>
<li>「ファイル」&gt;「新規プロジェクト」(Ctrl-Shift-N) を選択します。「カテゴリ」で「NetBeans モジュール」を選択します。「プロジェクト」で「モジュールプロジェクト」を選択し、「次へ」をクリックします。</li>
<p></p><li>「名前と場所」パネルで、「プロジェクト名」に「<tt>AdditionalFileTemplates</tt>」と入力します。「プロジェクトの場所」を使用コンピュータ上の任意のディレクトリに変更します。「スタンドアロンモジュール」ラジオボタンと「主プロジェクトとして設定」チェックボックスは選択されたままにします。「次へ」をクリックします。
<p></p></li><li>「基本モジュール構成」パネルで、「コード名ベース」の <tt>yourorghere</tt><tt>myorg</tt> に置き換え、コード名ベース全体を <tt>org.myorg.additionalfiletemplates</tt> にします。デフォルトのモジュール表示名に空白文字を追加し、<tt>Additional File Templates</tt> に変更します。「ローカライズ版バンドル」と「XML レイヤー」の場所はそのままにしておきます。これらは <tt>org/myorg/additionalfiletemplates</tt> という名前のパッケージに格納されます。「完了」をクリックします。</li></ol>
<p> IDE によって <tt>Additional File Templates</tt> プロジェクトが作成されます。このプロジェクトには、ソースや、プロジェクトの Ant 構築スクリプトなどのプロジェクトメタデータがすべて含まれます。IDE でプロジェクトが開きます。「プロジェクト」ウィンドウ (Ctrl-1) で、プロジェクトの論理構造を表示できます。また、「ファイル」ウィンドウ (Ctrl-2) で、プロジェクトのファイル構造を表示できます。たとえば、「プロジェクト」ウィンドウは次のように表示されます。
</p><p><img border="1" src="../../images/tutorials/filetemplates/initial-projects-window-60.png" alt="初期プロジェクトウィンドウ">
<br />
<!-- ===================================================================================== -->
</p><h2><a name="creating-the-file-template"></a>ファイルテンプレートの作成</h2>
<p>ファイルテンプレートは、テンプレートファイル、HTML の説明ファイル、およびアイコンで構成されます。新しくファイルテンプレートを作成する簡単な方法は、既存のファイルテンプレートの内容を空のファイルにコピーする方法です。そのあと「新規ファイル」ウィザードの説明ファイルおよび識別用アイコンを設定したら、<tt>layer.xml</tt> ファイルにテンプレートを登録する準備ができます。
</p><div class="indent">
<p></p><h3 class="tutorial"><a name="creating-the-template-file"></a>テンプレートファイルの作成</h3>
<p>
</p><ol>
<li><tt>Additional File Templates</tt> ノードを右クリックし、「新規」&gt;「その他」を選択します。「新規ファイル」ウィザードの「カテゴリ」で「その他」を、「ファイルの種類」で「HTML」を選択します。「次へ」をクリックします。
<p></p></li><li>「ファイル名」に「<tt>Description</tt>」と入力します。「参照」をクリックし、<tt>src/org/myorg/additionalfiletemplates</tt> を参照します。「フォルダを選択」をクリックします。「完了」をクリックします。</p>
<p>ソースエディタに <tt>HTML.html</tt> という新しい HTML ファイルが開きます。このファイルには、次に示すような標準的な HTML ファイルの内容が含まれています。
</p><pre class="examplecode">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p></p></li><li>必要に応じて HTML ファイルに変更を加えます。必要な場合は、次の事前定義された変数を追加できます。
<p></p><ul>
<li>${date} は現在の日付を挿入します。形式は、「Feb 16, 2008」のようになります。
</li><li>${encoding} は UTF-8 のようなデフォルトのエンコーディングを挿入します。
</li><li>${name} はファイルの名前を挿入します。
</li><li>${nameAndExt} はファイルの名前を拡張子付きで挿入します。
</li><li>${package} はファイルが作成されたパッケージの名前を挿入します。
</li><li>${time} は現在の時刻を挿入します。形式は、「7:37:58 PM」のようになります。
</li><li>${user} はユーザー名を挿入します。
</li></ul>
<p><b class="notes">注: </b>ユーザーは「ツール」メニューの「テンプレートマネージャー」で、これらの変数の値を設定できるようになります。ユーザーは、最後の「ユーザー構成プロパティー」までスクロールします。そのノードの中にある <tt>user.properties</tt> ファイルに、前述の値を設定すると、システムが提供する値に対してオーバーライドできます。ただし、前述の変数のデフォルト値はうまく機能するため、一般的にはそのようにすることはありません。
</p><p>事前定義の変数のほかに、モジュールを使用して、ユーザーに追加の変数を提供することができます。これについては、このチュートリアルのあとのほうで説明します。次に示すのは FreeMarker 指令の全リストですが、これらもテンプレートに論理を追加するために使用できます。
</p><p></p><ul>
<li>#assign
</li><li>#else
</li><li>#elseif
</li><li>#end
</li><li>#foreach
</li><li>#if
</li><li>#include
</li><li>#list
</li><li>#macro
</li><li>#parse
</li><li>#set
</li><li>#stop
</li></ul>
<p>一例として、Java クラステンプレートの定義を次に示します。
</p><pre class="examplecode">&lt;#assign licenseFirst = &quot;/*&quot;&gt;
&lt;#assign licensePrefix = &quot; * &quot;&gt;
&lt;#assign licenseLast = &quot; */&quot;&gt;
&lt;#include &quot;../Licenses/license-${project.license}.txt&quot;&gt;
&lt;#if package?? &amp;&amp; package != &quot;&quot;&gt;
package ${package};
&lt;/#if&gt;
/**
*
* @author ${user}
*/
public class ${name} {
}</pre>
<p>#assign 指令についての詳細は、「<a href="#license">プロジェクトライセンスの供与</a>」を参照してください。FreeMarker テンプレート言語についての詳細は、『<a href="http://freemarker.org/docs/index.html">FreeMarker Manual</a>』、特に「<a href="http://freemarker.org/docs/dgui_template_directives.html">Directives</a>」の章を参照してください。
</p></li>
<h3 class="tutorial"><a name="creating-the-description-file"></a>説明ファイルの作成</h3>
<ol>
<li><tt>org.myorg.additionalfiletemplates</tt> ノードを右クリックし、「新規」&gt;「その他」を選択します。「カテゴリ」で「その他」を選択します。「ファイルの種類」で「HTML ファイル」を選択します。「次へ」をクリックします。「ファイル名」に「<tt>HTML</tt>」と入力します。「参照」をクリックし、<tt>src/org/myorg/additionalfiletemplates</tt> を参照します。「フォルダを選択」をクリックします。「完了」をクリックします。
<p>ソースエディタに空の HTML ファイルが開き、「プロジェクト」ウィンドウにそのノードが表示されます。
</p><p></p></li><li>次のように <tt>&lt;body&gt;</tt> タグの間に「<tt>Creates new HTML file</tt>」と入力します
<pre class="examplecode">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
Creates new HTML file.
&lt;/body&gt;
&lt;/html&gt;</pre>
</li></ol>
<h3 class="tutorial"><a name="getting-an-icon"></a>アイコンの取得</h3>
<p>アイコンは、「新規ファイル」ウィザードでファイルテンプレートと同時に表示されます。ファイルテンプレートを識別し、ほかのファイルテンプレートと区別します。アイコンの大きさは、16&times;16 ピクセルにします。
</p><p>アイコンに <tt>icon.png</tt> と名前を付け、<tt>org.myorg.additionalfiletemplates</tt> パッケージに追加します。
</p><p>「プロジェクト」ウィンドウは次のようになります。
</p><p align="left"><img border="1" src="../../images/tutorials/filetemplates/final-projects-window-60.png" alt="プロジェクトの最終ウィンドウ。">
</p></ol></div>
<br />
<!-- ===================================================================================== -->
<h2><a name="registering"></a>ファイルテンプレートの登録</h2>
<p>ファイルテンプレートを作成したら、NetBeans システムのファイルシステムに登録してください。<tt>layer.xml</tt> ファイルはこの目的のために作成されます。</p>
<ol><li><tt>layer.xml</tt> ファイルの <tt>&lt;filesystem&gt;</tt> タグの間に、次のエントリを追加します。
<pre class="examplecode">&lt;folder name=&quot;Templates&quot;&gt;
&lt;folder name=&quot;Other&quot;&gt;
&lt;attr name=&quot;SystemFileSystem.localizingBundle&quot; stringvalue=&quot;org.myorg.additionalfiletemplates.Bundle&quot;/&gt;
&lt;file name=&quot;MyHTML.html&quot; url=&quot;HTML.html&quot;&gt;
&lt;attr name=&quot;template&quot; boolvalue=&quot;true&quot;/&gt;
&lt;attr name=&quot;SystemFileSystem.localizingBundle&quot; stringvalue=&quot;org.myorg.additionalfiletemplates.Bundle&quot;/&gt;
&lt;attr name=&quot;SystemFileSystem.icon&quot; urlvalue=&quot;nbresloc:/org/myorg/additionalfiletemplates/icon.png&quot;/&gt;
&lt;attr name=&quot;templateWizardURL&quot; urlvalue=&quot;nbresloc:/org/myorg/additionalfiletemplates/Description.html&quot;/&gt;
<b>&lt;!--FreeMarker テンプレート言語を利用する場合のみこの行を使用:--&gt;</b>
&lt;attr name=&quot;javax.script.ScriptEngine&quot; stringvalue=&quot;freemarker&quot;/&gt;
&lt;/file&gt;
&lt;/folder&gt;
&lt;/folder&gt;</pre>
<p></p></li><li><tt>Bundle.properties</tt> ファイルに表示名を追加します。
<p></p><pre class="examplecode">Templates/Other/MyHTML.html=My HTML File</pre>
</li></ol>
<br />
<!-- ======================================================================================= -->
<h2><a name="building"></a>モジュールの構築とインストール</h2>
<p>IDE は、Ant 構築スクリプトを使用してモジュールを構築およびインストールします。構築スクリプトは、モジュールプロジェクトを作成するときに作成されます。</p>
<div class="indent">
<h3 class="tutorial">NetBeans モジュールのインストール</h3>
<p>「プロジェクト」ウィンドウで、<tt>Additional File Templates</tt> プロジェクトを右クリックし、「ターゲットプラットフォームでのインストール/再読み込み」を選択します。 </p>
<p>モジュールが構築され、ターゲットの IDE またはプラットフォームにインストールされます。ターゲットの IDE またはプラットフォームが開き、新しいモジュールを使ってみることができます。デフォルトのターゲット IDE またはプラットフォームは、開発用の IDE の現在のインスタンスが使用しているインストールです。
</p><p><b class="notes">注: </b>モジュールを実行するときには、開発用の IDE のユーザーディレクトリではなく、テスト用の一時的なユーザーディレクトリを使用します。
</p><h3 class="tutorial">NetBeans モジュールの使用</h3>
<ol>
<li>「ファイル」&gt;「新規プロジェクト」(Ctrl-Shift-N) を選択し、新しいプロジェクトを作成します。
<p></p></li><li>プロジェクトを右クリックし、「新規」&gt;「その他」を選択します。「新規ファイル」ウィザードが開き、新しいファイルの種類が表示された新しいカテゴリが表示されます。アイコンが異なる可能性がありますが、画面は次のようなものです。</p>
<p><img border="1" src="../../images/tutorials/filetemplates/new-file-wizard-60.png" alt="「新規ファイル」ウィザード">
</p><p></p></li><li>新しいファイルの種類を選択して「次へ」をクリックし、新規ファイルを作成します。「完了」をクリックすると、ソースエディタに新しく作成されたテンプレートが表示されます。
</li></ol>
<h3 class="tutorial">共有可能なモジュールバイナリの作成</h3>
<ol>
<li>「プロジェクト」ウィンドウで、<tt>Additional File Templates</tt> プロジェクトを右クリックし、「NBM を作成」を選択します。
<p>NBM ファイルが作成されます。これは「ファイル」ウィンドウ (Ctrl-2) で確認できます。
</p><p><img border="1" src="../../images/tutorials/filetemplates/shareable-nbm-60.png" alt="共有可能な NBM。">
</p></li><li>これを、たとえば電子メールなどを通じて、ほかで使用できるようにします。
</li></ol>
</div>
<!-- ===================================================================================== -->
<h2><a name="additional"></a>追加の変数の提供</h2>
<p>前に説明したように、${user} や ${time} のような事前定義された変数を、独自に追加できます。たとえば、渡す変数を名前のリストで指定する場合は、テンプレートを次のように定義できます。
</p><pre class="examplecode">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;#list names as oneName&gt;
&lt;b&amp;gt${oneName}&lt;/b&amp;gt
&lt;/#list&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>先に示した FreeMarker の #list 指令では、「names」と呼ばれる変数を通じて逐次代入します。それぞれのインスタンスは「oneName」と呼ばれます。代入されたそれぞれの値は、ファイルに出力され、bold タグで囲まれます。「names」の値はさまざまな場所から代入されることが考えられますが、一般的にはウィザードパネルからです。この場合ユーザーは、リストから名前のセットを選択します。
</p><p>この新しい変数を通じて行う逐次代入を可能にするには、『<a href="http://netbeans.dzone.com/news/freemarker-netbeans-ide-60-first-scenario">FreeMarker in NetBeans IDE 6.0: First Scenario</a>』を参照し、そのあとで<a href="http://blogs.oracle.com/geertjan/entry/freemarker_baked_into_netbeans_ide1">このブログのエントリ</a><tt>DataObject.createFromTemplate(df, targetName, hashMap)</tt> に関する記述を参照してください。
<br />
<!-- ===================================================================================== -->
</p><h2><a name="license"></a>プロジェクトライセンスの供与</h2>
<p>FreeMarker の #assign 指令に関連することで、まだここでは触れていないことがあります。これは、ファイルが作成されたときに、ユーザーがプロジェクトライセンスを生成することを可能にする場合のみ関係があります。ユーザーのライセンスへのニーズを満たすために、ファイルテンプレートにライセンスに関する指令を提供できます。こうすると、ユーザーのプロジェクト内に作成されるすべてのファイルは、提供したライセンスに関する指令を含むことになります。
</p><p>これを行うには、次の手順を実行します。
</p><ol>
<li>「ツール」メニューに移動します。「テンプレート」を選択します。エディタで、Java の Java クラステンプレートを開きます。
<p></p><p>
</p><p><img src="http://blogs.oracle.com/geertjan/resource/freemarker-in-nb-2.png" border="1"/>
</p><p></p></li><li>前に示したテンプレート、および FreeMaker で定義することについては前に説明しました。しかしここでは、次に示す最初の 4 行に特に注目します。
<p></p><pre>&lt;#assign licenseFirst = &quot;/*&quot;&gt;
&lt;#assign licensePrefix = &quot; * &quot;&gt;
&lt;#assign licenseLast = &quot; */&quot;&gt;
&lt;#include &quot;../Licenses/license-${project.license}.txt&quot;&gt;</pre>
<p>これらの 4 行には<i>ライセンス</i>に関することが含まれています。最後の行では、プロジェクトごとに、使用するライセンスが決められています。最初の 3 行には、ライセンスの各行の前後の文字が決められています。この 4 行は、Java ソースファイル用のものです。次に示すのは、プロパティーファイルのテンプレートの最初にある、同様の定義です。
</p><p></p><pre>&lt;#assign licensePrefix = &quot;# &quot;&gt;
&lt;#include &quot;../Licenses/license-${project.license}.txt&quot;&gt;</pre>
<p>最初の行は、ライセンスの各行が、「*」ではなく「#」が接頭辞として使用されることを示しています。「*」は、Java ソースファイル用の接頭辞です (最初の行が「/*」で最後の行が「*/」)。これを確認するために Java ソースファイルを作成してからプロパティーファイルを作成します。いずれの場合もライセンスが表示されます。ただし、さきほどの定義のため、各行の接頭辞の文字と接尾辞の文字が異なっています。
</p><p></p></li><li>次に、ライセンスそのものを見てみましょう。先ほど示したテンプレートの次の行を見ます。
<p></p><pre>&lt;#include &quot;../Licenses/license-${project.license}.txt&quot;&gt;</pre>
<p>特に次の部分に注目します。
</p><p></p><pre>${project.license}</pre>
<p>アプリケーションの <tt>nbproject/project.properties</tt> ファイルに、キーとしてそれを置きます。値を追加してみましょう。例:
</p><pre>project.license=apache</pre>
<p>テンプレートマネージャーの「ライセンス」フォルダをふたたび参照します。そこにはいくつかのテンプレートがあります。ここで、新たに <tt>license-apache.txt</tt> という名前のテンプレートを作成します。今のところは、既存のテンプレートをコピーし、テンプレートマネージャーの同じカテゴリにペーストするだけです。次に、この行を含む FreeMarker テンプレートで定義されるファイルを作成します。
</p><p></p><pre>&lt;#include &quot;../Licenses/license-${project.license}.txt&quot;&gt;</pre>
新たに作成されたファイルには、指定したライセンスが組み込まれます。
</li></ol>
<p>簡単に言うと、NetBeans IDE 6.0 では、プロジェクトごとに、各ファイルに表示されるべきライセンスを定義します。さらに、別のライセンスを使用して新しいプロジェクトを作成する必要がある場合を考えてみます。テンプレートマネージャーに新しくライセンスを定義することは、<tt>nbproject/project.properties</tt> ファイルに、キーと値のペアを 1 つ追加するのと同じように簡単です。これは以前は不可能でしたが、NetBeans IDE 6.0 への FreeMarker のサポートによって可能になりました。ライセンスに関する参考情報については、<a href="http://blogs.oracle.com/geertjan/date/20071126">このブログのエントリ</a>を参照してください。特に記事のあとにあるコメントも参考になります。
</p><p>
<br />
<br>
</p><div class="feedback-box"><a href="https://netbeans.org/about/contact_form.html?to=3&amp;subject=Feedback:%20NetBeans%206.0%20File%20Template%20Module%20Tutorial">ご意見をお寄せください</a></div>
<br style="clear:both;" />
<!-- ======================================================================================== -->
<h2><a name="nextsteps"></a>次の手順</h2>
<p>NetBeans モジュールの作成と開発の詳細については、次のリソースを参照してください。
</p><ul>
<p></p><li><a href="https://netbeans.org/kb/trails/platform.html">その他の関連チュートリアル</a></li>
<p></p><li><a href="https://netbeans.org/download/dev/javadoc/">NetBeans API Javadoc</a></li>
</ul>
<hr>
<!-- ======================================================================================== -->
<h2><a name="version"></a>変更履歴 </h2>
<p>
<table width="76%" border="1">
<tbody>
<tr>
<td>
<div align="left"><b>バージョン</b></div>
</td>
<td>
<div align="left"><b>年月日</b></div>
</td>
<td>
<div align="left"><b>変更内容</b></div>
</td>
</tr>
<tr>
<td>
1
</td>
<td>
2005 年 6 月 26 日
</td>
<td>
最初のバージョン
</td>
</tr>
<tr>
<td>
2
</td>
<td>
2005 年 6 月 28 日
</td>
<td>
<ul>
<li>記述子ファイルに bold タグを付け加え、「説明」ボックスに HTML タグが表示されることを示すよう変更
</li><li>順序の属性を追加
</li><li>表示名を Bundle.properties に変更
</li><li>「NetBeans プラグインの使用」のスクリーンショットを変更
</li><li><tt>layer.xml</tt> が BrandedJavaClass.template と呼ばれるファイルを検索するため、BrandedJavaClass ファイルに拡張子「.template」を追加。また、この拡張子「.template」の変更を反映するために、「ファイルテンプレートの作成」の項の最後にある「プロジェクト」ウィンドウのスクリーンショットを変更。
</li></ul></td>
</tr>
<tr>
<td>
3
</td>
<td>
2005 年 10 月 2 日
</td>
<td>
<ul>
<li>最新のビルドに合わせて全体を変更。主にテンプレート用の「オプション」ウィンドウを「テンプレート」に置き換えに関して複数個所を変更。
</li><li>冒頭部分に 2 番目と 3 番目の段落を新たに追加し、新しいファイルの種類を作成している場合は、このチュートリアルは必須でないことを説明。
</li></ul></td>
</tr>
<tr>
<td>
4
</td>
<td>
2005 年 10 月 3 日
</td>
<td>
<ul>
<li>layer.xml の templateWizard[Iterator|URL] は廃止予定となったため、例示を [Iterator|WizardURL] に変更。</li></ul>
</td>
</tr>
<tr>
<td>
5
</td>
<td>
2006 年 3 月 16 日
</td>
<td>
<ul>
<li>全体的に見直したが、特に問題はなく行間を多少修正。
</li><li>アイコンが若干異なるためスクリーンショットの置き換えが必要。
</li><li>アイコンを追加する必要あり。
</li><li>「新規ファイル」ウィザードで同時に複数のテンプレートを作成する方法について説明する必要あり。 </li></ul>
</td>
</tr>
<tr>
<td>
6
</td>
<td>
2006 年 9 月 12 日
</td>
<td>
<ul>
<li>NetBeans IDE 5.5 Beta 2 でチュートリアルの内容を確認。
</li><li>記述どおりに動作することを確認。
</li><li>スクリーンショットの一部を更新。
</li><li>コードのインデントを修正。 </li></ul>
</td>
</tr>
<tr>
<td>
7
</td>
<td>
2007 年 6 月 9 日
</td>
<td>
NetBeans 6 に更新を開始。
</td>
</tr>
<tr>
<td>
8
</td>
<td>
2008 年 2 月 16 日
</td>
<td>
<a href="http://blogs.oracle.com/geertjan/entry/freemarker_baked_into_netbeans_ide1">このブログのエントリ</a><a href="http://blogs.oracle.com/geertjan/entry/freemarker_baked_into_netbeans_ide2">このブログのエントリ</a><a href="http://blogs.oracle.com/geertjan/date/20071126">このブログのエントリ</a>、および<a href="http://netbeans.dzone.com/news/freemarker-netbeans-ide-60-first-scenario">この記事</a>からの情報の移行を開始。
</td>
</tr>
<tr>
<td>
9
</td>
<td>
2008 年 4 月 15 日
</td>
<td>
バッジ、目次、必須ソフトウェア表の形式を新しいフォーマットに変更。
</td>
</tr>
</tbody>
</table>
</p></body>
</html>