blob: 6d3cf2ee0b9980e7e4f657cf9590beb7117cdf01 [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</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) 2005 Sun Microsystems, Inc. All rights reserved. -->
<!-- Use is subject to license terms.-->
</head>
<body>
<h1>Руковод�?тво по интеграции типов файлов</h1>
<p>В �?том руковод�?тве ра�?�?матривает�?�? напи�?ание модул�?, позвол�?ющего �?реде IDE или любому другому приложению на базе платформы NetBeans ра�?познать новый тип файлов.
</p><p><b>Содержание</b></p>
<img src="../../images/articles/60/netbeans-stamp60-61.gif" class="stamp" width="114" height="114" alt="Содержимое на �?той �?транице отно�?ит�?�? к �?реде IDE NetBeans 6.1" title="Содержимое на �?той �?транице отно�?ит�?�? к �?реде IDE NetBeans 6.1"> </p>
<ul class="toc">
<li><a href="#intro">Введение в интеграцию типов файлов</a></li>
<li><a href="#creating">Создание проекта модул�?</a></li>
<li><a href="#recognizing">Ра�?познавание файлов &quot;Abc&quot;</a></li>
<li><a href="#adding">Создание возможно�?тей дл�? файлов &quot;Abc&quot;</a></li>
<ul>
<li><a href="#action">Добавление дей�?твий</a>
</li><li><a href="#topcomponent">Открытие файла в окне</a>
</li></ul>
<li><a href="#building">У�?тановка модул�? типа файлов &quot;Abc&quot;</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">Среда IDE NetBeans</td>
<td class="tbltd1">вер�?и�? <a href="http://download.netbeans.org/netbeans/6.1/final/">вер�?и�? 6.1</a> или<br>
вер�?и�? 6.0</td>
</tr>
<tr>
<td class="tbltd1">Комплект дл�? разработчика на �?зыке Java (JDK)</td>
<td class="tbltd1"><a href="http://java.sun.com/javase/downloads/index.jsp">вер�?и�? 6</a> или<br>
вер�?и�? 5</td>
</tr>
</tbody>
</table>
<h2 class="tutorial"><a name="intro"></a>Введение в интеграцию типов файлов</h2>
<p>Типы файлов, ра�?познаваемые в �?реде IDE, имеют �?об�?твенные значки, пункты меню и поведение. Отображаемые &quot;файлы&quot; �?вл�?ют�?�? объектами <tt>FileObject</tt> &ndash; обертками дл�? <tt>java.io.File</tt> или, в �?лучае файлов на�?тройки, обычными обертками дл�? данных, �?охраненных иным �?по�?обом, например, внутри файлов XML в модул�?х. Фактиче�?ки <i>видимыми</i> �?вл�?ют�?�? узлы (<tt>Nodes</tt>), предо�?тавл�?ющие функциональные возможно�?ти, такие как дей�?тви�? и локализованные имена, дл�? различных объектов, в том чи�?ле файлов. Между узлами (<tt>Nodes</tt>) и объектами файлов (<tt>FileObjects</tt>) наход�?т�?�? объекты данных (<tt>DataObjects</tt>). Объект <tt>DataObject</tt> похож на <tt>FileObject</tt> за и�?ключением того, что он обладает информацией об отображаемом файле. Дл�? файлов �? различными ра�?ширени�?ми и файлов XML �? различными про�?тран�?твами имен обычно и�?пользуют�?�? различные типы <tt>DataObject</tt>. Каждый из <tt>DataObject</tt> пред�?тавлен различными модул�?ми, реализующими поддержку одного или более типа файлов. �?апример, модуль &quot;Image&quot; обе�?печивает ра�?познавание и открытие файлов �? ра�?ширени�?ми <tt>.gif</tt> и <tt>.png</tt>.
</p><p>Модуль, ра�?познающий тип файлов, у�?танавливает загрузчик <tt>DataLoader</tt> &ndash; фабрику дл�? <tt>DataObject</tt> по �?оответ�?твующему типу файла. При разворачивании папки �?реда IDE задает каждому изве�?тному <tt>DataLoader</tt> вопро�? о том, изве�?тно ли ему, что �?то такое. Первый ответивший &quot;Да&quot; �?оздает дл�? файла объект <tt>DataObject</tt>. Дл�? отображени�? чего-либо дл�? каждого файла вызывают�?�? <tt>DataObject.getNodeDelegate()</tt> по каждому <tt>DataObject</tt>; фактиче�?ки в �?реде IDE отображают�?�? узлы (<tt>Nodes</tt>).
</p><p>�?а приведенной �?лева внизу �?хеме показано, что обе�?печивает каждый упом�?нутый выше �?лемент:
</p><p></p><p align="left"><img border="1" src="../../images/tutorials/filetype/diagram-dataobject2.png" alt="Схема">
</p><p>В �?том руковод�?тве будет �?оздан модуль, у�?танавливающий <tt>DataLoader</tt> дл�? воображаемых файлов &quot;Abc&quot; (ра�?ширение файла <tt>.abc</tt>). По умолчанию файлы �? ра�?ширением &quot;abc&quot; обрабатывают�?�? как и любые другие файлы, не ра�?познаваемые �?редой IDE: они во�?принимают�?�? как тек�?товые файлы, и в результате �?реда IDE предо�?тавл�?ет дл�? файлов &quot;Abc&quot; те же �?амые функциональные возможно�?ти, что и дл�? тек�?товых файлов. По�?ле �?оздани�? модул�? будет показано, как ра�?ширить его функциональными возможно�?т�?ми, которые будут до�?тупны только файлам &quot;Abc&quot;. По завершении цикла разработки можно разрешить другим пользовател�?м и�?пользовать модуль &ndash; �?реда IDE позвол�?ет �?оздать двоичный файл и передать его другим пользовател�?м, которые затем могут у�?тановить его �? помощью центра обновлений.
<!-- ===================================================================================== -->
</p><h2 class="tutorial"><a name="creating"></a>Создание проекта модул�?</h2>
<p>В �?том разделе �? помощью ма�?тера будут �?озданы �?труктуры и�?ходных файлов, необходимые дл�? каждого модул�? NetBeans. Структура и�?ходных файлов �?о�?тоит из определенных папок в конкретных ме�?тах и из р�?да в�?егда требуемых файлов. �?апример, каждый модуль NetBeans требует наличи�? папки &quot;nbproject&quot;, �?одержащей метаданные проекта, и файла <tt>layer.xml</tt> дл�? декларативной реги�?трации �?лементов, таких как, например, кнопки на панели ин�?трументов и окна.
</p><ol>
<li>Выберите &quot;File &gt; New Project&quot; (Ctrl-Shift-N). В обла�?ти &quot;Categories&quot; выберите &quot;NetBeans Modules&quot;. В обла�?ти &quot;Projects&quot; выберите &quot;Module&quot; и нажмите кнопку &quot;Next&quot;.</li>
<li>�?а �?кране &quot;Name and Location&quot; введите <tt>AbcFileType</tt> в поле &quot;Project Name&quot;. В поле &quot;Project Location&quot; укажите любой каталог на компьютере, например, <tt>c:\mymodules</tt>. О�?тавьте переключатель &quot;Standalone Module&quot; выбранным. Экран должен выгл�?деть �?ледующим образом:
<p></p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-projectwizard1.png" alt="Ма�?тер �?оздани�? проекта: первый �?кран">
</p><p>�?ажмите кнопку &quot;Next&quot;.
</p></li><li>�?а �?кране &quot;Basic Module Configuration&quot; замените <tt>yourorghere</tt> в поле &quot;Code Name Base&quot; на <tt>myorg</tt>; чтобы о�?нова названи�? кода выгл�?дела как <tt>org.myorg.abcfiletype</tt>. Добавьте пробелы к значению пол�? &quot;Module Display Name&quot; по умолчанию; им�? должно изменить�?�? на <tt>Abc File Type</tt>. �?е измен�?йте ме�?тоположение пакета локализации и файла layer.xml дл�? их �?охранени�? в пакете �? именем <tt>org/myorg/abcfiletype</tt>. Экран должен выгл�?деть �?ледующим образом:
<p></p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-projectwizard2.png" alt="Ма�?тер �?оздани�? проекта: второй �?кран">
</p></li><li>�?ажмите кнопку &quot;Finish&quot;.</li></ol>
<p> Средой IDE будет �?оздан проект <tt>Abc File Type</tt>. Проект �?одержит в�?е и�?ходные файлы и метаданные проекта, например, �?ценарий �?борки Ant. Проект открывает�?�? в �?реде IDE. Логиче�?кую �?труктуру проекта можно про�?мотреть в окне &quot;Projects&quot; (Ctrl-1), а �?труктуру файлов &ndash; в окне &quot;Files&quot; (Ctrl-2). �?апример, окно &quot;Projects&quot; теперь должно выгл�?деть �?ледующим образом:
</p><p></p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-projectswindow1.png" alt="�?ачальное окно &quot;Projects&quot;">
<br />
<!-- ===================================================================================== -->
</p><h2><a name="recognizing"></a>Ра�?познавание файлов &quot;Abc&quot;</h2>
<p>В �?том разделе �? помощью ма�?тера будут �?озданы кла�?�?ы, необходимые дл�? ра�?познавани�? файлов &quot;Abc&quot;, отличающих�?�? от о�?тальных файлов. Как было опи�?ано в начале �?того руковод�?тва, дл�? �?того необходимы объект данных и загрузчик данных, а также преобразователь типа MIME и реги�?трационные запи�?и в файле <tt>layer.xml</tt>. Их можно �?оздать �? помощью ма�?тера �?оздани�? типов файлов (&quot;New File Type&quot;).
</p><ol>
<li>Щелкните правой кнопкой мыши узел проекта и выберите &quot;New &gt; File Type&quot;.</li>
<li>�?а �?кране &quot;File Recognition&quot; выполните �?ледующие дей�?тви�?:
<p></p><ul><li>Введите <tt>text/x-abc</tt> в поле &quot;MIME Type&quot;.
</li><li>Введите <tt>.abc .ABC</tt> в поле &quot;by Filename Extension&quot;.</li></ul>
<p>Теперь �?кран &quot;File Recognition&quot; должен выгл�?деть �?ледующим образом:
</p><p></p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-filewizard1.png" alt="Ма�?тер �?оздани�? типов файлов: первый �?кран">
</p><p>Обратите внимание на �?ледующие пол�? на �?кране &quot;File Recognition&quot;:
</p><ul>
<li><b>MIME Type.</b> Указывает уникальный дл�? объекта данных тип MIME.
</li><li>by
<ul><li><b>Filename Extension.</b> Указывает одно или более ра�?ширение файлов, которое �?реда IDE ра�?познает как указатель на принадлежно�?ть к у�?тановленному типу MIME. Ра�?ширению файла также может предше�?твовать точка. В каче�?тве разделителей могут вы�?тупать зап�?тые, пробелы или и то, и другое. По�?тому допу�?тимы в�?е �?ледующие варианты:
<p></p><ul><li><tt>.abc,.def</tt>
</li><li><tt>.abc .def</tt>
</li><li><tt>abc def</tt>
</li><li><tt>abc,.def ghi, .wow</li></ul></tt>
<p>Пред�?тавим �?ебе, что файлы &quot;Abc&quot; чув�?твительны к реги�?тру. Дл�? �?того в �?том руковод�?тве указано <i>два</i> типа MIME &ndash; <tt>.abc</tt> и <tt>.ABC</tt>.
</p></li><li><b>XML Root Element.</b> Указывает уникальное про�?тран�?тво имен, которое отличает тип файлов XML от в�?ех других типов файлов XML. Так как большое количе�?тво файлов XML имеет одинаковое ра�?ширение имени файла (<tt>xml</tt>), �?реда IDE различает файлы XML по их корневым �?лементам XML. Это означает, что �?реда IDE может различать про�?тран�?тва имен и первый �?лемент XML в файлах XML. Этим можно во�?пользовать�?�?, например, дл�? различени�? де�?крипторов развертывани�? JBoss и WebLogic. Это гарантирует, что пункты меню, добавл�?емые к контек�?тному меню де�?криптора JBoss, не до�?тупны де�?криптору WebLogic. Пример приведен в документе <a href="nbm-palette-api2.html">Руковод�?тво по модулю палитры �?лементов в �?реде NetBeans</a>.
</li></ul></li></ul>
<p>�?ажмите кнопку &quot;Next&quot;.
</p></li><li>�?а �?кране &quot;Name and Location&quot; введите <tt>Abc</tt> в каче�?тве &quot;Class Name Prefix&quot; и выберите любое изображение размером 16x16 пик�?елей в каче�?тве нового значка типа файлов, как показано ниже.
<p align="left"></p><p></p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-filewizard2.png" alt="Ма�?тер �?оздани�? типов файлов: второй �?кран">
</p><p><b>Примечание: </b>Можно и�?пользовать любой значок. При необходимо�?ти можно щелкнуть �?тот значок и �?охранить его локально, а затем указать его на показанном выше �?кране ма�?тера: <img border="1" src="../../images/tutorials/filetype/Datasource.gif" alt="Datasource.gif">
</p></li><li>�?ажмите кнопку &quot;Finish&quot;.
<p></p><p>Окно &quot;Projects&quot; теперь должно выгл�?деть �?ледующим образом:
</p><p></p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-projectswindow2.png" alt="Итоговое окно &quot;Projects&quot;"></p></li>
<p>�?иже кратко пред�?тавлен каждый из недавно �?озданных файлов:
</p><ul>
<li><b>AbcDataLoader.java.</b> Ра�?познает тип MIME <tt>text/x-abc</tt>. Функции как фабрика дл�? <tt>AbcDataObject.java</tt>. Дл�? получени�? дополнительных �?ведений �?м. раздел <a href="http://wiki.netbeans.org/wiki/view/Netbeans/DevFaqDataLoader">Что такое DataLoader?</a>.
</li><li><b>AbcResolver.xml.</b> Отображает ра�?ширени�? файла <tt>.abc</tt> и <tt>.ABC</tt> на тип MIME. <tt>AbcDataLoader</tt> только ра�?познает тип MIME и не учитывает ра�?ширение файла.
</li><li><b>AbcDataObject.java.</b> Обертывает <tt>FileObject</tt>. Объекты DataObject �?оздают�?�? загрузчиками DataLoader. Дл�? получени�? дополнительных �?ведений �?м. раздел <a href="http://wiki.netbeans.org/wiki/view/DevFaqDataObject">Что такое DataObject?</a>.
</li><li><b>AbcDataNode.java.</b> Отвечает за то, что <i>отображает�?�?</i> в �?реде IDE, т.е. функциональные возможно�?ти, такие дей�?тви�?, значки и локализованные имена.
</li><li><b>AbcDataLoaderBeanInfo.java.</b> Управл�?ет пред�?тавлением загрузчика в разделе &quot;Object Types&quot; окна &quot;Options&quot;.
</li></ul>
</p>
<br />
<!-- ===================================================================================== -->
<h2><a name="adding"></a>Создание возможно�?тей дл�? файлов &quot;Abc&quot;</h2>
<p>Теперь, когда платформа NetBeans �?по�?обна отличать файлы &quot;Abc&quot; от в�?ех других типов файлов, пришло врем�? добавить возможно�?ти �?пециально дл�? �?тих типов файлов. В �?том разделе будет добавлен пункт контек�?тного меню, по�?вл�?ющего�?�? при щелчке узла файла правой кнопкой мыши в окнах проводника, например, в окне &quot;Projects&quot;, а также будет разрешено открытие файла в отдельном окне, а не в редакторе.
</p><div class="indent">
<h3 class="tutorial"><a name="action"></a>Добавление дей�?твий</h3>
<p>В �?том подразделе дл�? �?оздани�? кла�?�?а Java, который реализует дей�?твие дл�? ра�?�?матриваемого типа файлов, и�?пользует�?�? ма�?тер �?оздани�? дей�?твий (&quot;New Action&quot;). Этот ма�?тер также реги�?трирует кла�?�? в файле <tt>layer.xml</tt>, по�?ле чего пользователь �?может вызвать дей�?твие из пункта контек�?тного меню, по�?вл�?ющего�?�? при щелчке узла типа файлов правой кнопкой мыши в окне проводника.
</p><ol>
<li>Щелкните правой кнопкой мыши узел проекта и выберите &quot;New &gt; Action&quot;.</li>
<li>�?а �?кране &quot;Action Type&quot; выберите &quot;Conditionally Enabled&quot;. Введите <tt>AbcDataObject</tt> &ndash; им�? объекта данных, �?озданного ранее при помощи ма�?тера �?оздани�? типов файлов, как показано ниже:
<p></p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-action1.png" alt="Ма�?тер �?оздани�? дей�?твий: первый �?кран">
</p><p>�?ажмите кнопку &quot;Next&quot;.
</p></li><li>�?а �?кране &quot;GUI Registration&quot; выберите категорию &quot;Edit&quot; в ра�?крывающем�?�? �?пи�?ке &quot;Category&quot;. Ра�?крывающий�?�? �?пи�?ок &quot;Category&quot; позвол�?ет указать ме�?то отображени�? дей�?тви�? в редакторе �?очетаний клавиш в �?реде IDE.
<p></p><p>Затем �?нимите флажок &quot;Unselect Global Menu Item&quot; и у�?тановите флажок &quot;File Type Context Menu Item&quot;. В ра�?крывающем�?�? �?пи�?ке &quot;Content Type&quot; выберите тип MIME, введенный ранее в ма�?тере �?оздани�? типов файлов, как показано ниже:
</p><p align="left"></p><p></p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-action2.png" alt="Ма�?тер �?оздани�? дей�?твий: второй �?кран">
</p><p>Обратите внимание, что можно у�?тановить позицию пункта меню и отделить его от предше�?твующего и по�?ледующего пункта. �?ажмите кнопку &quot;Next&quot;.
</p></li><li>�?а �?кране &quot;Name and Location&quot; введите <tt>MyAction</tt> в поле &quot;Class Name&quot; и <tt>My Action</tt> в поле &quot;Display Name&quot;. Пункты контек�?тного меню не имеют �?в�?занных значков. По�?тому нажмите кнопку &quot;Finish&quot;, по�?ле чего к пакету <tt>org.myorg.abcfiletype</tt> будет добавлен <tt>MyAction.java</tt>.
</li><li>В редакторе и�?ходного кода добавьте �?ледующий код к дей�?твию метода <tt>performAction</tt>:
<pre class="examplecode">protected void performAction(Node[] activatedNodes) {
AbcDataObject d = (AbcDataObject) activatedNodes[0].getCookie(AbcDataObject.class);
FileObject f = d.getPrimaryFile();
String displayName = FileUtil.getFileDisplayName(f);
String msg = &quot;I am &quot; + displayName + &quot;. Hear me roar!&quot;;
NotifyDescriptor nd = new NotifyDescriptor.Message(msg);
DialogDisplayer.getDefault().notify(nd);
}</pre>
<p>�?ажмите Ctrl-Shift-I. Среда IDE автоматиче�?ки добавит операторы импорта в верхнюю ча�?ть кла�?�?а. Ча�?ть кода в�?е еще подчеркнута кра�?ным, что указывает на то, что не в�?е требуемые пакеты наход�?т�?�? по пути к кла�?�?ам. Щелкните правой кнопкой мыши узел проекта, выберите &quot;Properties&quot; и затем выберите &quot;Libraries&quot; в диалоговом окне &quot;Project Properties&quot;. �?ажмите кнопку &quot;Add&quot; в верхней ча�?ти �?крана &quot;Libraries&quot; и добавьте интерфей�? &quot;Dialogs API&quot;.
</p><p>В кла�?�?е <tt>MyAction.java</tt> �?нова нажмите Ctrl-Shift-I. Кра�?ное подчеркивание и�?чезнет, т.к. �?реда IDE нашла требуемые пакеты в &quot;Dialogs API&quot;.
</p></li><li>В узле &quot;Important Files&quot; разверните &quot;XML Layer&quot;. Два узла <tt>&lt;this layer&gt;</tt> и <tt>&lt;this layer in context&gt;</tt> вме�?те �? их подузлами �?о�?тавл�?ют обозреватель <a href="https://platform.netbeans.org/tutorials/nbm-glossary.html">файловой �?и�?темы �?реды</a>. Разверните <tt>&lt;this layer&gt;</tt>, затем разверните <tt>Loaders</tt> и по�?ледующие узлы, пока на �?кране не по�?вит�?�? �?озданное выше дей�?твие <tt>Action</tt>.
</li><li>Перетащите дей�?твие <tt>My Action</tt>, чтобы оно по�?вило�?ь ниже дей�?тви�? <tt>Open</tt>:
<p align="left"></p><p></p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-action3.png" alt="Обозреватель файловой �?и�?темы �?реды">
</p><p>Как видно из по�?ледних двух �?тапов, обозреватель файловой �?и�?темы �?реды может и�?пользовать�?�? дл�? бы�?трой реорганизации по�?ледовательно�?ти �?лементов, зареги�?трированных в файловой �?и�?теме �?реды.
</p></li>
<h3 class="tutorial"><a name="topcomponent"></a>Открытие файла в окне</h3>
<p>По умолчанию при открытии пользователем определенного в �?том руковод�?тве типа файла файл будет открыт в базовом редакторе. Однако иногда возникает необходимо�?ть в �?оздании визуального пред�?тавлени�? файла и в предо�?тавлении пользователю возможно�?ти перета�?кивать �?лементы оформлени�? окон на визуальное пред�?тавление. Первым дей�?твием при �?оздании такого интерфей�?а пользовател�? �?вл�?ет�?�? предо�?тавление пользователю возможно�?ти открывать файл в окне. В �?том разделе приводит�?�? процедура такой на�?тройки.
</p><ol>
<li>С помощью ма�?тера оконных �?лементов �?оздайте верхний �?лемент (&quot;TopComponent&quot;) �? названием &quot;AbcTopComponent&quot;.
</li><li>Измените объект данных таким образом, чтобы вме�?то &quot;DataEditorSupport&quot; и�?пользовал�?�? &quot;OpenSupport&quot;.
<p></p><pre>public AbcDataObject(FileObject pf, AbcDataLoader loader)
throws DataObjectExistsException, IOException {
super(pf, loader);
CookieSet cookies = getCookieSet();
//cookies.add((Node.Cookie) DataEditorSupport.create(this, getPrimaryEntry(), cookies));
cookies.add((Node.Cookie) new AbcOpenSupport(getPrimaryEntry()));
}</pre>
</li><li>Создайте кла�?�? &quot;OpenSupport&quot;:
<p></p><pre>class AbcOpenSupport extends OpenSupport implements OpenCookie, CloseCookie {
public AbcOpenSupport(AbcDataObject.Entry entry) {
super(entry);
}
protected CloneableTopComponent createCloneableTopComponent() {
AbcDataObject dobj = (AbcDataObject) entry.getDataObject();
AbcTopComponent tc = new AbcTopComponent();
tc.setDisplayName(dobj.getName());
return tc;
}
}</pre>
</li><li>�?а�?тройте &quot;TopComponent&quot; таким образом, чтобы он �?вл�?л�?�? ра�?ширением &quot;CloneableTopComponent&quot;, а не &quot;TopComponent&quot;. Определите модификатор кла�?�?а &quot;TopComponent&quot; и модификатор его кон�?труктора как общедо�?тупный, а не закрытый.
</li></ol>
<p>Теперь при открытии файла &quot;Abc&quot; кла�?�? &quot;OpenSupport&quot; обрабатывает открытие, т.е. открывает файл в �?лемент &quot;TopComponent&quot;, а не в базовом редакторе, обе�?печиваемом &quot;DataEditorSupport&quot;. Пример дальнейшей разработки �?лемента &quot;TopComponent&quot; приведен в <a href="https://platform.netbeans.org/tutorials/60/nbm-visual_library_ru.html">руковод�?тве по работе �? Visual Library в �?реде NetBeans 6.0</a>.
</p></ol></div>
<br />
<!-- ======================================================================================= -->
<h2><a name="building"></a>У�?тановка модул�? типа файлов &quot;Abc&quot;</h2>
<p>Дл�? �?борки и у�?тановки модул�? в �?реде&nbsp;IDE и�?пользует�?�? �?ценарий �?борки Ant. Сценарий �?борки �?оздает�?�? при �?оздании проекта.</p>
<div class="indent">
<h3 class="tutorial">У�?тановка модул�? NetBeans</h3>
<ul>
<li>В окне &quot;Projects&quot; щелкните правой кнопкой мыши проект <tt>Abc File Type</tt> и выберите &quot;Install/Reload&quot; в поле &quot;Target Platform&quot;.
<p></p><p>Модуль компонует�?�? и у�?танавливает�?�? в целевой �?реде IDE. По�?ле открыти�? целевой �?реды IDE новый модуль можно проте�?тировать. По умолчанию целева�? �?реда IDE пред�?тавл�?ет �?обой �?и�?тему, и�?пользуемую текущим �?кземпл�?ром �?реды IDE.
</p></li>
<h3 class="tutorial">Работа �? модулем NetBeans</h3>
<ol>
<li>Создайте любое приложение в �?реде IDE.
</li><li>Щелкните правой кнопкой мыши узел приложени�? и выберите &quot;New &gt; Other&quot;. В категории &quot;Other&quot; дл�? нового типа файлов до�?тупен фиктивный шаблон:
<p></p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-action4.png" alt="Фиктивный шаблон">
</p><p>Е�?ли необходимо предо�?тавить код по умолчанию через фиктивный шаблон, добавьте код к файлу <tt>AbcTemplate.abc</tt>, �?оздаваемому ма�?тером �?оздани�? типов файлов.
</p></li><li>Щелкните узел файла правой кнопкой мыши.
<p></p><p>Обратите внимание, что файл &quot;Abc&quot; имеет значок, назначенный ему в его модуле, и что �?пи�?ок дей�?твий, определенных в �?в�?занном �? ним файле <tt>layer.xml</tt>, пред�?тавлен в контек�?тном меню, которое можно вызвать при помощи правой кнопки мыши:
</p><p></p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-dummytemplate.png" alt="Итоговое окно &quot;Projects&quot;">
</p></li><li>Выберите новый пункт меню. �?а �?кране будет пред�?тавлено им�? файла &quot;Abc&quot; и его ме�?тоположение:
<p></p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-information.png" alt="Информаци�?">
</p></li>
<h3 class="tutorial">Создание �?овме�?тно и�?пользуемого двоичного модул�?</h3>
<ol>
<li>В окне &quot;Projects&quot; щелкните правой кнопкой мыши проект <tt>Abc File Type</tt> и выберите &quot;Create NBM&quot;.
<p></p><p>Будет �?оздан файл NBM, который можно про�?мотреть в окне &quot;Files&quot; (Ctrl-2):
</p><p></p><p align="left"><img border="1" src="../../images/tutorials/filetype/60-shareable-nbm.png" alt="Совме�?тно и�?пользуемый файл NBM">
</p></li><li>Этот файл можно ра�?про�?транить �?реди коллег, например, по �?лектронной почте. Дл�? его у�?тановки получатель должен и�?пользовать ди�?петчер подключаемых модулей (&quot;Tools &gt; Plugins&quot;).
</li></ol>
</ol></ul></div>
<!-- ======================================================================================== -->
<br>
<div class="feedback-box"><a href="https://netbeans.org/about/contact_form.html?to=3&amp;subject=Feedback:%20File%20Type%20Module%20Tutorial">Мы ждем ваших отзывов</a></div>
<br style="clear:both;" />
<!-- ======================================================================================== -->
<h2><a name="nextsteps"></a>Что дальше?</h2>
<p>Дл�? получени�? дополнительной информации о �?оздании и разработке модулей NetBeans �?м. �?ледующие материалы:
</p><ul>
<li><a href="https://platform.netbeans.org/index.html">Домашн�?�? �?траница платформы NetBeans</a></li>
<li><a href="https://netbeans.org/download/dev/javadoc/">Спи�?ок интерфей�?ов API �?реды NetBeans (текуща�? вер�?и�? разработки)</a></li>
<li><a href="https://netbeans.org/kb/trails/platform.html">Другие �?в�?занные руковод�?тва</a></li></ul>
</p>
<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>
25 авгу�?та 2005 г.
</td>
<td>
<ul><li>�?ачальна�? вер�?и�?.
</li><li>Дальнейшие дей�?тви�?:
<ul><li>Добавить на�?тройки, у�?танавливаемые по�?ле �?оздани�? (т.е. раздел &quot;Ра�?ширенна�? поддержка нового типа файлов&quot;).
</li><li>По�?�?нить, дл�? чего и�?пользуют�?�? �?озданные файлы (в на�?то�?щее врем�? преду�?мотрено ме�?то под �?тот раздел).
</li><li>По�?�?нить запи�?и в файле layers.
</li><li>В�?тавить опи�?ание первого �?крана типа файлов (в на�?то�?щее врем�? преду�?мотрено ме�?то под �?тот раздел).
</li><li>Возможно, �?о�?тавить отдельное руковод�?тво по ра�?познаванию файлов XML.</li></ul></li></ul>
</td>
</tr>
<tr>
<td>
2
</td>
<td>
23 �?ент�?бр�? 2005 г.
</td>
<td>
<ul><li>Добавлено большое количе�?тво информации из ча�?то задаваемых вопро�?ов, а также добавлено опи�?ание ма�?тера �?оздани�? дей�?твий и обозревател�? файловой �?и�?темы �?реды.
</li><li>Дальнейшие дей�?тви�?:
<ul><li>По�?�?нить <tt>LoaderBeanInfo.java</tt> и <tt>Resolver.xml</tt> (по одной �?троке на каждый).
</li><li>Возможно, �?о�?тавить отдельное руковод�?тво по ра�?познаванию файлов XML.
</li><li>Возможно, �?ледует отказать�?�? от и�?пользовани�? Tomcat GIF.
</li><li>Возможно, дей�?твие должно прино�?ить какие-то практиче�?кие результаты.
</li><li>Возможно, �?ледует удалить пр�?мые �?�?ылки на ча�?то задаваемые вопро�?ы.
</li><li>Веро�?тно, необходимо добавить больше информации о файле <tt>layer.xml</tt>.
</li><li>Возможно, к �?тому �?ценарию �?ледует добавить другие удобные функциональные возможно�?ти из поддержки API.
</li><li>�?еобходимо больше информации о типах MIME.
</li><li>Вводные абзацы должны быть проиллю�?трированы графикой. Следует добавить �?хему дл�? иллю�?трации �?в�?зи между узлом, объектом данных, объектом файла, загрузчиком данных и т.д.</li></ul></li></ul>
</td>
</tr>
<tr>
<td>
3
</td>
<td>
28 �?ент�?бр�? 2005 г.
</td>
<td>
<ul><li>Учтены комментарии от Дже�?�?и Глик (Jesse Glick).
</li><li>Дальнейшие дей�?тви�?:
<ul> <li>�?еобходимо добавить больше информации о типах MIME.
</li><li>Вводные абзацы должны быть проиллю�?трированы графикой. Следует добавить �?хему дл�? иллю�?трации �?в�?зи между узлом, объектом данных, объектом файла, загрузчиком данных и т.д.
</li><li>�?еобходимо добавить много �?�?ылок на документацию Javadoc (также дл�? <tt>performAction</tt>).
</li><li>�?еобходима информаци�? о cookie, дей�?тви�?х cookie, кла�?�?ах cookie.
</li><li>Дей�?твие заканчивает�?�? тек�?товым HTML даже в том �?лучае, е�?ли был выбран �?об�?твенный тип MIME.
</li><li>�?еобходимо по�?�?нить или указать �?�?ылку на по�?�?нени�? дл�? �?кземпл�?ра, тени и т.д.
</li><li>В контек�?те у�?тановки на целевой платформе �?ледует упом�?нуть Platform Manager.
</li><li>�?еобходимо продемон�?трировать добавление �?вой�?тв к таблице �?вой�?тв.</li></ul></li></ul>
</td>
</tr>
<tr>
<td>
4
</td>
<td>
4 окт�?бр�? 2005 г.
</td>
<td>
<ul><li>Добавить во вводные абзацы две �?хемы из презентации &quot;JavaOne&quot; Тима Будро (Tim Boudreau).
</li><li>Дальнейшие дей�?тви�?:
<ul> <li>�?еобходимо больше информации о типах MIME.
</li><li>�?еобходимо добавить много �?�?ылок на документацию Javadoc (также дл�? <tt>performAction</tt>).
</li><li>В начале документа необходимо �?оздать раздел: &quot;Ча�?то задаваемые вопро�?ы по �?той теме&quot;:
<ul><li>�?еобходима информаци�? о cookie, дей�?тви�?х cookie, кла�?�?ах cookie.
</li><li>�?еобходимо по�?�?нить или указать �?�?ылку на по�?�?нени�? дл�? �?кземпл�?ра, тени и т.д.
</li><li>DataLoader, DataObject и т.д.</li></ul>
</li><li>В контек�?те у�?тановки на целевой платформе �?ледует упом�?нуть Platform Manager.
</li><li>�?еобходимо продемон�?трировать добавление �?вой�?тв к таблице �?вой�?тв.
</li><li>�?еобходимо указать получаемый фиктивный шаблон, как его измен�?ть и как на�?траивать опи�?ание в ма�?тере �?оздани�? файлов.</li></ul></li></ul>
</td>
</tr>
<tr>
<td>
4
</td>
<td>
4 но�?бр�? 2005 г.
</td>
<td>
<ul><li>Добавлен загружаемый и�?ходный код, новый раздел &quot;У�?тановка примера&quot; и �?�?ылки на руковод�?тво &quot;Под�?ветка �?интак�?и�?а&quot; в конце.
</li><li>Дальнейшие дей�?тви�?:
<ul> <li>См. запи�?и от 4 окт�?бр�?.</li></ul>
</li></ul></td>
</tr>
<tr>
<td>
5
</td>
<td>
29 но�?бр�? 2005 г.
</td>
<td>
<ul><li>Добавлены �?�?ылки на �?овершенно новое руковод�?тво по палитре �?лементов.
</li><li>Дальнейшие дей�?тви�?:
<ul> <li>См. запи�?и от 4 окт�?бр�?.</li></ul>
</li></ul></td>
</tr>
<tr>
<td>
6
</td>
<td>
21 апрел�? 2006 г.
</td>
<td>
<ul><li>Заголовок изменен �? &quot;Руковод�?тво по модулю DataLoader&quot; на &quot;Руковод�?тво по ра�?познаванию типов файлов&quot;.
</li><li>Дальнейшие дей�?тви�?:
<ul> <li>См. запи�?и от 4 окт�?бр�?.</li></ul>
</li></ul></td>
</tr>
<tr>
<td>
7
</td>
<td>
17 но�?бр�? 2007 г.
</td>
<td>
<ul><li>В�?е руковод�?тво обновлено в �?оответ�?твии �?о �?редой вер�?ии 6.0, заменены в�?е �?нимки �?крана, теперь [т.к. �?реда IDE 6.0 уже поддерживает файлы манифе�?та] руковод�?тво �?о�?редоточено на воображаемых файлах &quot;Abc&quot;.
</li><li>Дальнейшие дей�?тви�?:
<ul> <li>�?еобходимо заменить загрузку (котора�? �?ейча�? �?овпадает �? прежней) �? учетом файлов манифе�?та.
</li><li>См. запи�?и от 4 окт�?бр�?.
</li><li>В &quot;TopComponent&quot; добавлен &quot;OpenSupport&quot; �?о �?�?ылкой на Visual Library.</li></ul>
</li><li>Заголовок изменен на &quot;Руковод�?тво по интеграции типов файлов&quot;.
</li><li>�?екоторые ме�?та в руковод�?тве отредактированы в �?оответ�?твии �?о �?редой вер�?ии 6.0.
</li></ul></td>
</tr>
<tr>
<td>
8
</td>
<td>
15 апрел�? 2008&nbsp;г.
</td>
<td>
Стили (значок, оглавление, таблица требуемого программного обе�?печени�?) обновлены в �?оответ�?твии �? новым форматом.
</td>
</tr>
</tbody>
</table>
</p></ol></body>
</html>