blob: ebc1515b24f612b2e4cd08b2b8af318cc1458b37 [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.1</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="jtulach@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>Добро пожаловать в среду NetBeans!
</p><p>В этом документе представлена процедура быстрого знакомства с работой в среде NetBeans на примере создания простого редактора HTML. Несмотря на свою простоту, создаваемый редактор HTML будет очень функциональным, поскольку в нем будет использована инфраструктура, предоставляемая платформой NetBeans. Например, этот редактор HTML будет иметь развитую оконную систему, для создания которой не потребуется написание какого-либо кода. После изучения этого руководства читатель получит общее представление о создании, сборке и выполнении приложений на базе платформы NetBeans.
</p><p>После изучения этого руководства можно перейти к другой <a href="https://netbeans.org/kb/trails/platform.html"> учебной карте по платформе NetBeans</a>. Учебная карта содержит подробные руководства, в которых рассматривается широкий спектр интерфейсов API среды NetBeans для разнообразных приложений. Если процедура создания простейшего приложения &quot;Hello World&quot; читателю уже знакома, можно пропустить этот документ и перейти сразу к учебной карте.
</p><p><b>Содержание</b></p>
<img src="../../images/articles/61/netbeans-stamp.gif" class="stamp" width="114" height="114" alt="Содержимое на этой странице относится к среде IDE NetBeans 6.1" title="Содержимое на этой странице относится к среде IDE NetBeans 6.1"> </p>
<ul class="toc">
<li><a href="#generating">Создание скелета приложения</a></li>
<li><a href="#tweakingthemenuitems">Настройка интерфейса пользователя</a>
</li><li><a href="#tweakingthewindowlayout">Настройка размещения элементов в окне</a></li>
<li><a href="#tweakingthefavorites">Настройка окна &quot;Favorites&quot;</a></li>
<li><a href="#runningtheapplication">Выполнение приложения</a></li>
<li><a href="#distributingtheapplication">Подготовка дистрибутива приложения</a>
<ul>
<li><a href="#zip">Распространение редактора HTML в виде файла ZIP</a></li>
<li><a href="#webstart">Распространение редактора HTML через общедоступное хранилище для установки NetBeans по сети</a></li>
</ul>
</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></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>
<p class="tips">Дополнительно, в целях поиска и устранения ошибок, можно <a href="http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=6635">загрузить готовые примеры</a> и изучить исходный код.
</p><p>По завершении изучения этого руководства будет создан редактор HTML, который выглядит следующим образом:</p>
<img src="../../images/tutorials/htmleditor/html_editor_final-61.png" border="1" alt="Окончательный вид редактора HTML">
<p><b class="notes">Примечание:</b> Это очень простое демонстрационное приложение, но вовсе не игрушка! Это <i>настоящая</i> программа, поддерживающая простое редактирование страниц HTML, с такими возможностями, как автозавершение кода, проверка допустимости и предварительно определенные фрагменты HTML.
</p><p>Создаваемый в этом руководстве редактор HTML является функционально насыщенным клиентским приложением на базе платформы NetBeans. Это означает, что основой этого приложения будет ядро среды IDE, которым и <i><u>является</u></i> платформа NetBeans. Поверх платформы NetBeans добавляются необходимые модули и исключаются те, которые нужны для среды IDE, но не требуются для данного приложения. Здесь показаны некоторые из модулей среды IDE, добавленных к платформе NetBeans, которые являются ее основой:</p>
<img src="../../images/tutorials/htmleditor/diagram.png" alt="Структура приложений на платформе NetBeans">
<p>Создание этого редактора HTML подразумевает создание скелета приложения, исключение ненужных модулей и элементов интерфейса пользователя, а затем настройку окна &quot;Favorites&quot;, которое должно открываться по умолчанию при запуске среды IDE. Все эти действия поддерживаются элементами интерфейса пользователя в среде IDE. </p>
<p>Пользователь сможет лично убедиться в том, как легко и просто сформировать или, точнее, <em>собрать</em> полнофункциональное приложение на платформе NetBeans. В конце этого документа показано, как с помощью ускоренной установки по сети сделать конечный продукт легко загружаемым и запускаемым.
</p>
<p><b class="notes">Примечание:</b> Несмотря на то, что это приложение является отдельной программой, для целей этого руководства не требуется загружать платформу NetBeans отдельно. Функционально насыщенное клиентское приложение будет разработано в среде IDE, и затем из него будут исключены модули, необходимые для IDE, но не требуемые этим приложением.
<!-- ===================================================================================== -->
</p><h2 class="tutorial"><a name="generating"></a>Создание скелета приложения</h2>
<p>При создании приложения на базе платформы NetBeans самым первым действием должно стать создание проекта приложения на платформе NetBeans. По умолчанию проект приложения платформы NetBeans имеет в своем составе <i>все</i> модули в составе платформы NetBeans, а также <i>все</i> модули, входящие в среду IDE NetBeans. Поскольку некоторые из этих модулей нам не требуются, их следует исключить.
</p><ol><li>С помощью мастера создания проекта (Ctrl-Shift-N) создайте проект приложения на платформе NetBeans из шаблона в категории &quot;NetBeans Modules&quot;, как показано ниже:</p>
<p><img border="1" src="../../images/tutorials/htmleditor/netbeans-platform-app-1.png" border="1" alt="Мастер создания проекта">
</p><p>Нажмите кнопку &quot;Next&quot; и присвойте проекту приложения на платформе NetBeans имя &quot;NetBeansHTMLEditor&quot;. Нажмите кнопку &quot;Finish&quot;.</p>
</li><li>Щелкните правой кнопкой мыши узел проекта, выберите &quot;Properties&quot; и затем внесите некоторые изменения в диалоговом окне &quot;Project Properties&quot; приложения.
<ul><p></p><li>На экране &quot;Build&quot; выберите &quot;Create Standalone Application&quot;, чтобы указать, что это будет функционально насыщенное клиентское приложение на платформе NetBeans. </p>
<p>Убедитесь, что используется подходящее название исполняемого файла, и определите текст, который будет выводиться в строке заголовка приложения, как показано ниже:</p>
<p><img border="1" src="../../images/tutorials/htmleditor/application_panel-61.png" border="1" alt="Экран настройки приложения">
</p></li><li>На экране &quot;Splash Screen&quot; обратите внимание на то, что можно установить заставку приложения и индикатор хода выполнения, как показано ниже:
</p>
<p><img border="1" src="../../images/tutorials/htmleditor/splash_screen_panel-61.png" border="1" alt="Экран &quot;Splash Screen&quot;">
</p><p><b class="notes">Примечание:</b> При отсутствии собственной заставки используйте <a href="../../images/tutorials/htmleditor/splash.gif">эту</a>.
</p></li>
<li><p>На экране &quot;Libraries&quot; диалогового окна &quot;Project Properties&quot; имеется список кластеров. Кластер представляет собой ряд связанных модулей. Следует выбрать только кластеры <tt>gsf1</tt>, <tt>ide9</tt> и <tt>platform8</tt>. Отмените выбор всех других кластеров. Теперь необходимо подключить и отключить ряд модулей, так как выбраны должны быть только те модули, которые относятся непосредственно к нашему редактору HTML. Каждый раз при выборе или отмене выбора модуля на экране &quot;Libraries&quot; в файл настройки платформы NetBeans данного приложения добавляется запись. Для ускорения этого процесса мы просто вставим записи в данный файл. Закройте диалоговое окно &quot;Project Properties&quot;.</p>
<p></p><p>Разверните узел &quot;Important Files&quot; и затем откройте файл настройки платформы NetBeans. Вставьте следующие записи:
</p><p></p><pre>disabled.clusters=\
apisupport1,\
harness,\
java2,\
nb6.1,\
profiler3
disabled.modules=\
org.mozilla.rhino.patched,\
org.netbeans.api.debugger,\
org.netbeans.api.visual,\
org.netbeans.core.ide,\
org.netbeans.core.multiview,\
org.netbeans.core.nativeaccess,\
org.netbeans.insane,\
org.netbeans.lib.cvsclient,\
org.netbeans.libs.commons_logging,\
org.netbeans.libs.ini4j,\
org.netbeans.libs.jna,\
org.netbeans.libs.svnClientAdapter,\
org.netbeans.libs.xerces,\
org.netbeans.modules.autoupdate.services,\
org.netbeans.modules.autoupdate.ui,\
org.netbeans.modules.classfile,\
org.netbeans.modules.core.kit,\
org.netbeans.modules.css.editor,\
org.netbeans.modules.css.visual,\
org.netbeans.modules.db,\
org.netbeans.modules.db.core,\
org.netbeans.modules.db.drivers,\
org.netbeans.modules.db.kit,\
org.netbeans.modules.db.mysql,\
org.netbeans.modules.db.sql.editor,\
org.netbeans.modules.db.sql.visualeditor,\
org.netbeans.modules.dbapi,\
org.netbeans.modules.editor.bookmarks,\
org.netbeans.modules.editor.kit,\
org.netbeans.modules.extbrowser,\
org.netbeans.modules.gototest,\
org.netbeans.modules.httpserver,\
org.netbeans.modules.ide.kit,\
org.netbeans.modules.javascript.editing,\
org.netbeans.modules.javascript.hints,\
org.netbeans.modules.javascript.kit,\
org.netbeans.modules.javascript.refactoring,\
org.netbeans.modules.languages,\
org.netbeans.modules.languages.bat,\
org.netbeans.modules.languages.diff,\
org.netbeans.modules.languages.manifest,\
org.netbeans.modules.languages.sh,\
org.netbeans.modules.localhistory,\
org.netbeans.modules.mercurial,\
org.netbeans.modules.project.ant,\
org.netbeans.modules.project.libraries,\
org.netbeans.modules.properties,\
org.netbeans.modules.properties.syntax,\
org.netbeans.modules.schema2beans,\
org.netbeans.modules.sendopts,\
org.netbeans.modules.server,\
org.netbeans.modules.servletapi,\
org.netbeans.modules.subversion,\
org.netbeans.modules.tasklist.kit,\
org.netbeans.modules.tasklist.projectint,\
org.netbeans.modules.tasklist.todo,\
org.netbeans.modules.tasklist.ui,\
org.netbeans.modules.timers,\
org.netbeans.modules.usersguide,\
org.netbeans.modules.utilities,\
org.netbeans.modules.utilities.project,\
org.netbeans.modules.versioning,\
org.netbeans.modules.versioning.system.cvss,\
org.netbeans.modules.versioning.util,\
org.netbeans.modules.web.flyingsaucer,\
org.netbeans.modules.xml,\
org.netbeans.modules.xml.axi,\
org.netbeans.modules.xml.core,\
org.netbeans.modules.xml.lexer,\
org.netbeans.modules.xml.multiview,\
org.netbeans.modules.xml.retriever,\
org.netbeans.modules.xml.schema.completion,\
org.netbeans.modules.xml.schema.model,\
org.netbeans.modules.xml.tax,\
org.netbeans.modules.xml.text,\
org.netbeans.modules.xml.tools,\
org.netbeans.modules.xml.wsdl.model,\
org.netbeans.modules.xml.xam,\
org.netbeans.modules.xml.xdm,\
org.netbeans.modules.xsl,\
org.netbeans.spi.debugger.ui,\
org.netbeans.spi.viewmodel,\
org.netbeans.swing.dirchooser,\
org.openide.compat,\
org.openide.util.enumerations
enabled.clusters=\
gsf1,\
ide9,\
platform8
nbplatform.active=default</pre>
</li></ul></li>
<p>Теперь имеется подмножество модулей NetBeans, которые соответствуют нашему редактору HTML. Однако несмотря на то, что все оставшиеся модули действительно необходимы, скорее всего нам не потребуются связанные с ними элементы интерфейса пользователя. В следующих разделах мы настроим интерфейс пользователя и размещение элементов окна специально для создаваемого редактора HTML.
<!-- ===================================================================================== -->
</p><h2 class="tutorial"><a name="tweakingthemenuitems"></a>Настройка интерфейса пользователя</h2>
<p>В интерфейсе пользователя можно оставить столько функций, сколько позволяют выбранные модули. Например, в редакторе HTML возможно, не будут использоваться какие-либо пункты меню &quot;Tools&quot;. Также весьма вероятно, что имеются панели инструментов или кнопки на панелях инструментов, без которых можно обойтись. В этом разделе мы будем настраивать интерфейс пользователя среды IDE до тех пор, пока не останемся с набором функций, полностью отвечающим требованиям функционально насыщенного клиентского приложения.
</p><ol><li>Разверните проект приложения на платформе NetBeans, щелкните правой кнопкой мыши узел &quot;Modules&quot; и выберите &quot;Add New&quot;, как показано ниже:</p>
<p><img border="1" src="../../images/tutorials/htmleditor/add-module-61.png" alt="Узел &quot;this layer in context&quot;">
</p><p>Появится мастер создания проекта (Ctrl-Shift-N). Присвойте проекту имя <tt>BrandingModule</tt> и нажмите кнопку &quot;Next&quot;.
</p></li><li>В поле &quot;Code Name Base&quot; введите <tt>org.netbeans.brandingmodule</tt>.
</li><li>В поле &quot;XML Layer&quot; введите имя пакета с окончанием &quot;layer.xml&quot;, например, &quot;org/netbeans/brandingmodule/layer.xml&quot;, а затем нажмите кнопку &quot;Finish&quot;.
<p><b class="notes">Примечание:</b> Если не ввести в это поле путь к файлу &quot;layer.xml&quot;, файл создан не будет. В этом случае в основном пакете следует создать файл с именем &quot;layer.xml&quot; и затем вручную зарегистрировать его в файле манифеста модуля следующим образом:
</p><p></p><pre>OpenIDE-Module-Layer: org/netbeans/brandingmodule/layer.xml</pre>
</li><li>В модуле &quot;Branding&quot; разверните узел <tt>layer.xml</tt>. Появятся два подузла:</p>
<p><img border="1" src="../../images/tutorials/htmleditor/expanded-xml-layer-61.png" alt="Развернутый файл layer.xml">
</p><p><b class="notes">Примечание:</b> Если файл layer.xml был добавлен вручную, необходимо развернуть узел &quot;Important Files&quot; и затем развернуть находящийся в нем узел &quot;layer.xml&quot;.
</p></li><li>В узле <tt>&lt;this layer in context&gt;</tt> представлены все папки и файлы, зарегистрированные всеми модулями на своих уровнях. Для исключения отдельных элементов щелкните их правой кнопкой мыши и выберите &quot;Delete&quot;, как показано ниже:</p>
<p><img border="1" src="../../images/tutorials/htmleditor/this-layer-in-context-61.png" alt="Узел &quot;this layer in context&quot;">
</p><p>Затем среда IDE добавит теги к файлу <tt>layer.xml</tt> модуля, который после установки модуля скроет удаленные элементы. Например, щелкнув правой кнопкой мыши <tt>Menu Bar/Edit</tt>, можно удалить ненужные для редактора HTML пункты из меню &quot;Edit&quot;. В результате в файле <tt>layer.xml</tt> будут созданы, например, следующие фрагменты:
</p><pre class="examplecode">&lt;folder name=&quot;Menu&quot;&gt;
&lt;folder name=&quot;Edit&quot;&gt;
&lt;file name=&quot;org-netbeans-modules-editor-MainMenuAction$StartMacroRecordingAction.instance_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-editor-MainMenuAction$StopMacroRecordingAction.instance_hidden&quot;/&gt;
&lt;/folder&gt;
&lt;/folder&gt;</pre>
<p>
Результатом приведенного выше фрагмента является то, что функции <tt>Start Macro Recording</tt> и <tt>Stop Macro Recording</tt>, обеспечиваемые другим модулем, будут удалены из меню модулем &quot;Branding&quot;. Чтобы снова вывести их на экран, просто удалите вышеперечисленные теги из файла <tt>layer.xml</tt>.
</p></li><li><p>С помощью вышеописанного метода скройте необходимое количество панелей инструментов, кнопок панели инструментов, меню и пунктов меню.</p>
<p>По завершении загляните в файл <tt>layer.xml</tt>. Общий вид должен соответствовать приведенному ниже, в зависимости от удаленных элементов:</p>
<p></p><pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;? &gt;
&lt;!DOCTYPE filesystem PUBLIC &quot;-//NetBeans//DTD Filesystem 1.1//EN&quot; &quot;https://netbeans.org/dtds/filesystem-1_1.dtd&quot;&gt;
&lt;filesystem&gt;
&lt;folder name=&quot;Menu&quot;&gt;
&lt;file name=&quot;BuildProject_hidden&quot;/&gt;
&lt;folder name=&quot;File&quot;&gt;
&lt;file name=&quot;Separator2.instance_hidden&quot;/&gt;
&lt;file name=&quot;SeparatorNew.instance_hidden&quot;/&gt;
&lt;file name=&quot;SeparatorOpen.instance_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-CloseProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-CustomizeProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-NewFile.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-NewProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-OpenProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-RecentProjects.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-SetMainProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-groups-GroupsMenu.shadow_hidden&quot;/&gt;
&lt;/folder&gt;
&lt;file name=&quot;Refactoring_hidden&quot;/&gt;
&lt;file name=&quot;RunProject_hidden&quot;/&gt;
&lt;folder name=&quot;Window&quot;&gt;
&lt;file name=&quot;ViewRuntimeTabAction.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-logical-tab-action.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-physical-tab-action.shadow_hidden&quot;/&gt;
&lt;/folder&gt;
&lt;/folder&gt;
&lt;/filesystem&gt;</pre>
</li></ol>
<!-- ===================================================================================== -->
<h2 class="tutorial"><a name="tweakingthewindowlayout"></a>Настройка размещения элементов в окне</h2>
<p>
С помощью узла <tt>&lt;this layer in context&gt;</tt> можно не только удалять существующие элементы, но и изменять их содержимое. Например, этот редактор HTML работает с файлами HTML, поэтому в отличие от стандартной среды IDE, которая работает и с исходными файлами, и с проектами Java, здесь в исходной схеме размещения целесообразно отображать окно <tt>Favorites</tt>.
</p>
<p>
Схема размещения элементов окна также описывается в виде файлов на уровнях, хранящихся в папке <tt>Windows2</tt>. Файлы в папке <tt>Windows2</tt> представляют собой &quot;псевдочитаемые&quot; файлы XML, определяемые <a href="http://bits.netbeans.org/dev/javadoc/org-openide-windows/org/openide/windows/doc-files/api.html"> интерфейсами API для системы окон</a>. Они довольно сложны для понимания, однако для целей нашего редактора HTML не обязательно изучать их полностью (см. ниже).
</p>
<ol><li>В узле <tt>&lt;this layer in context&gt;</tt> модуля &quot;Branding&quot; щелкните узел <tt>Windows2</tt> правой кнопкой мыши и выберите &quot;Find&quot;, как показано ниже:</p>
<p><img border="1" src="../../images/tutorials/htmleditor/find-favorites-61.png" alt="Вызов меню &quot;Find&quot;">
</p></li><li>Выполните поиск объекта с именем <tt>Favorites</tt>, без учета регистра. Будет найдено два файла:
</p>
<p><img border="1" src="../../images/tutorials/htmleditor/find-favorites2-61.png" alt="Поиск окна &quot;Favorites&quot;">
</p><p>
Первый файл определяет, как будет выглядеть элемент и как он создается. Поскольку эти параметры изменять не нужно, вносить изменения в файл не требуется. Второй файл более интересен для наших целей, так как он содержит следующее:
</p>
<pre class="examplecode">
&lt;tc-ref version=&quot;2.0&quot;&gt;
&lt;module name=&quot;org.netbeans.modules.favorites/1&quot; spec=&quot;1.1&quot; /&gt;
&lt;tc-id id=&quot;favorites&quot; /&gt;
&lt;state opened=&quot;false&quot; /&gt;
&lt;/tc-ref&gt;</pre>
<p>
</p></li><li>Несмотря на то, что большая часть языка XML представляется непонятной, по крайней мере одна строка выглядит многообещающе &ndash; даже без чтения какой-либо документации очевидно, что путем замены <tt>false</tt> на <tt>true</tt> можно сделать этот элемент открывающимся по умолчанию. Попробуйте!
</li><li>
Аналогичным образом можно изменить состояние открытия по умолчанию на поведение, которое должно быть реализовано в редакторе HTML, для следующих окон:
<ul>
<li><tt>CommonPalette.wstcref</tt>. Состояние открытия окна &quot;Component Palette&quot; &ndash; <tt>false</tt>. Измените его на <tt>true</tt>.
</li><li><tt>navigatorTC.wstcref</tt>. Состояние открытия окна &quot;Navigator&quot; &ndash; <tt>true</tt>. Измените его на <tt>false</tt>.
</li><li><tt>projectTabLogical_tc.wstcref</tt>. Состояние открытия окна &quot;Projects&quot; &ndash; <tt>true</tt>. Измените его на <tt>false</tt>.
</li><li><tt>projectTab_tc.wstcref</tt>. Состояние открытия окна &quot;Files&quot; &ndash; <tt>true</tt>. Измените его на <tt>false</tt>.
</li><li><tt>runtime.wstcref</tt>. Состояние открытия окна &quot;Services&quot; &ndash; <tt>true</tt>. Измените его на <tt>false</tt>.
</li></ul>
</li></ol>
<p>Теперь модуль &quot;Branding&quot; должен содержать несколько новых файлов, по одному для каждого из измененных файлов. Фактически эти файлы заменяют собой те, что были найдены на предыдущих этапах, и теперь мы владеем необходимой информацией для изменения схемы размещения элементов окна:</p>
<p><img border="1" src="../../images/tutorials/htmleditor/wstcrefs-overridden-61.png" alt="Измененная схема размещения для окна &quot;Favorites&quot;">
</p><p>Проверьте, что в файле <tt>layer.xml</tt> теперь имеются нижеприведенные строки. В противном случае скопируйте их и вставьте в файл <tt>layer.xml</tt>.
</p><pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;? &gt;
&lt;!DOCTYPE filesystem PUBLIC &quot;-//NetBeans//DTD Filesystem 1.1//EN&quot; &quot;https://netbeans.org/dtds/filesystem-1_1.dtd&quot;&gt;
&lt;filesystem&gt;
&lt;folder name=&quot;Menu&quot;&gt;
&lt;file name=&quot;BuildProject_hidden&quot;/&gt;
&lt;folder name=&quot;File&quot;&gt;
&lt;file name=&quot;Separator2.instance_hidden&quot;/&gt;
&lt;file name=&quot;SeparatorNew.instance_hidden&quot;/&gt;
&lt;file name=&quot;SeparatorOpen.instance_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-CloseProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-CustomizeProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-NewFile.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-NewProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-OpenProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-RecentProjects.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-SetMainProject.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-groups-GroupsMenu.shadow_hidden&quot;/&gt;
&lt;/folder&gt;
&lt;file name=&quot;Refactoring_hidden&quot;/&gt;
&lt;file name=&quot;RunProject_hidden&quot;/&gt;
&lt;folder name=&quot;Window&quot;&gt;
&lt;file name=&quot;ViewRuntimeTabAction.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-logical-tab-action.shadow_hidden&quot;/&gt;
&lt;file name=&quot;org-netbeans-modules-project-ui-physical-tab-action.shadow_hidden&quot;/&gt;
&lt;/folder&gt;
&lt;/folder&gt;
&lt;folder name=&quot;Windows2&quot;&gt;
&lt;folder name=&quot;Modes&quot;&gt;
&lt;folder name=&quot;commonpalette&quot;&gt;
&lt;file name=&quot;CommonPalette.wstcref&quot; url=&quot;CommonPaletteWstcref.xml&quot;/&gt;
&lt;/folder&gt;
&lt;folder name=&quot;explorer&quot;&gt;
&lt;file name=&quot;favorites.wstcref&quot; url=&quot;favoritesWstcref.xml&quot;/&gt;
&lt;file name=&quot;projectTabLogical_tc.wstcref&quot; url=&quot;projectTabLogical_tcWstcref.xml&quot;/&gt;
&lt;file name=&quot;projectTab_tc.wstcref&quot; url=&quot;projectTab_tcWstcref.xml&quot;/&gt;
&lt;file name=&quot;runtime.wstcref&quot; url=&quot;runtimeWstcref.xml&quot;/&gt;
&lt;/folder&gt;
&lt;folder name=&quot;navigator&quot;&gt;
&lt;file name=&quot;navigatorTC.wstcref&quot; url=&quot;navigatorTCWstcref.xml&quot;/&gt;
&lt;/folder&gt;
&lt;/folder&gt;
&lt;/folder&gt;
&lt;/filesystem&gt;</pre>
<!-- ===================================================================================== -->
<h2 class="tutorial"><a name="tweakingthefavorites"></a>Настройка окна &quot;Favorites&quot;</h2>
<p>
В подпапках папки <tt>branding</tt> проекта приложения на платформе NetBeans, отображенных в окне &quot;Files&quot;, можно заменить строки, определенные в исходных файлах NetBeans. В этом разделе будут заменены те строки, которые описывают метки, используемые в окне &quot;Favorites&quot;. Например, мы изменим текст &quot;Favorites&quot; на &quot;HTML Files&quot;, поскольку это окно предназначено именно для файлов HTML.
</p>
<ol><li>Откройте окно &quot;Files&quot; и разверните папку <tt>branding</tt> проекта приложения на платформе NetBeans.
</li><li>Создайте новую структуру папок в <tt>branding/modules</tt>. Новой папке должно быть присвоено имя <tt>org-netbeans-modules-favorites.jar</tt>. Внутри этой папки создайте иерархию папок <tt>org/netbeans/modules/favorites</tt>. В последней папке, т.е. <tt>favorites</tt>, создайте новый файл <tt>Bundle.properties</tt>.
<p><img border="1" src="../../images/tutorials/htmleditor/favorites-branding-61a.png" alt="Выбор стиля для окна &quot;Favorites&quot;">
</p><p>Эта структура папок и файл свойств соответствуют структуре в исходных файлах NetBeans, которая связана с окном &quot;Favorites&quot;.
</p></li><li>Добавьте строки, показанные ниже на рисунке, для замены таких же строк, определенных в соответствующем файле свойств в исходных файлах окна &quot;Favorites&quot;:</p>
<p><img border="1" src="../../images/tutorials/htmleditor/favorites-branding-61b.png" alt="Выбор стиля для окна &quot;Favorites&quot;">
</p><p>Для упрощения этой задачи скопируйте вышеуказанные строки и вставьте их:
</p><pre>Favorites=HTML Files
ACT_AddOnFavoritesNode=&amp;Find HTML Files...
ACT_Remove=&amp;Remove from HTML Files List
ACT_View=HTML Files
ACT_Select=HTML Files
ACT_Select_Main_Menu=Select in HTML Files List
# JFileChooser
CTL_DialogTitle=Add to HTML Files List
CTL_ApproveButtonText=Add
ERR_FileDoesNotExist={0} does not exist.
ERR_FileDoesNotExistDlgTitle=Add to HTML Files List
MSG_NodeNotFound=The document node could not be found in the HTML Files List.</pre>
</li></ol>
<!-- ===================================================================================== -->
<h2 class="tutorial"><a name="runningtheapplication"></a>Выполнение приложения</h2>
<p>
Выполнить наше приложение совсем не сложно &ndash; следует просто щелкнуть узел проекта правой кнопкой мыши и выбрать требуемый пункт меню.
</p>
<ol>
<li>Щелкните узел проекта приложения правой кнопкой мыши и выберите &quot;Clean and Build All&quot;.
</li><li>Щелкните узел проекта приложения правой кнопкой мыши и выберите &quot;Run&quot;.
</li><li>После развертывания приложения можно щелкнуть правой кнопкой мыши в окне &quot;Favorites&quot; и выбрать папку, содержащую файлы HTML, а затем открыть файл HTML, как показано ниже:</p>
<img src="../../images/tutorials/htmleditor/html_editor_final-61.png" border="1" alt="Открытый файл HTML">
</li></ol>
<!-- ===================================================================================== -->
<!-- ===================================================================================== -->
<h2 class="tutorial"><a name="distributingtheapplication"></a>Подготовка дистрибутива приложения</h2>
<p>
Выберите один из двух способов распространения приложения. Если необходимо поддерживать максимально возможный контроль над приложением, то для его распространения следует выбрать способ установки по сети. В этом случае каждый раз, когда требуется обновить приложение, это осуществляется локально, а конечные пользователи извещаются об обновлении, которое они будут получать автоматически при следующем запуске приложения через сеть. В качестве дистрибутива также может использоваться файл ZIP, содержащий данное приложение. Тогда все приложение будет доступно конечным пользователям локально. В этом случае обновления и новые компоненты будут распространяться через механизм обновления, описанный ниже.
</p><h3 class="tutorial"><a name="zip"></a>Распространение приложения через файл ZIP</h3>
<p> Для обеспечения расширяемости приложения следует предусмотреть возможность установки пользователями модулей для расширения функциональных возможностей приложения. Для этого необходимо просто включить несколько дополнительных модулей, которые свяжут диспетчер подключаемых модулей с редактором HTML.
</p>
<ol><li>Щелкните правой кнопкой мыши проект приложения платформы NetBeans и выберите &quot;Properties&quot;. В диалоговом окне &quot;Project Properties&quot; перейдите на экран &quot;Libraries&quot; и установите флажки <tt>Update Centers</tt>, <tt>Auto Update Services</tt> и <tt>Auto Update UI</tt>, выделенные ниже:</p>
<p><img border="1" src="../../images/tutorials/htmleditor/auto-update-61.png" alt="Модули автоматического обновления">
</p></li><li>Щелкните узел проекта приложения правой кнопкой мыши и выберите &quot;Clean and Build All&quot;.
</li><li>Снова запустите приложение и обратите внимание на появление в меню &quot;Tools&quot; нового пункта меню под названием &quot;Plugins&quot;:</p>
<img src="../../images/tutorials/htmleditor/auto-update2-61.png" border="1" alt="Пункт меню для диспетчера подключаемых модулей ">
</li><li>Выберите новый пункт меню &quot;Plugins&quot; и установите некоторые подключаемые модули, которые будет удобно использовать в редакторе HTML. Просмотрите материалы на <a href="http://plugins.netbeans.org/PluginPortal/"> Plugin Portal </a> и найдите несколько подходящих модулей. Конечные пользователи будут обновлять свою локальную установку приложения таким же способом.
</li><li><p>Щелкните правой кнопкой мыши узел проекта приложения и выберите &quot;Build ZIP Distribution&quot;.</p>
</li><li>Теперь в папке <tt>dist</tt> (в окне &quot;Files&quot;) должен отобразиться файл ZIP, который можно развернуть для просмотра его содержимого:</p>
<p><img border="1" src="../../images/tutorials/htmleditor/unzipped-app-61.png" alt="Созданный файл ZIP">
</p><p><b class="notes">Примечание:</b> Средство запуска приложения создается в папке <tt>bin</tt>, как показано выше.
</p></li>
<br />
<!-- ======================================================================================== -->
<h3><a name="webstart"></a>Распространение редактора HTML через общедоступное хранилище для установки NetBeans по сети</h3>
<p>
Теперь вместо распространения файла ZIP подготовимся к распространению через быструю установку по сети путем точной настройки файла <tt>master.jnlp</tt>, создаваемого при первом запуске приложения. Даже в том случае, если оно работает, оно еще не готово к распространению. Следует как минимум изменить информационную часть с целью усовершенствования описаний и значков.
</p><p>
Еще одно изменение стандартной инфраструктуры приложения на базе JNLP касается использования общедоступного хранилища JNLP на сайте www.netbeans.org. По умолчанию приложение на базе JNLP, создаваемое для программного пакета, всегда содержит все его модули, а также все модули, от которых оно зависит. Это может быть удобно для использования во внутренней сети, но для широкого распространения в Интернете это менее практично. В случае Интернета намного удобнее, когда все приложения, создаваемые на базе платформы NetBeans, обращаются к одному хранилищу модулей NetBeans, т.к. это подразумевает, что такие модули используются совместно и не должны загружаться несколько раз.
</p>
<p>
Такое хранилище существует и для среды NetBeans 6.1. Оно содержит не все имеющиеся в среде IDE NetBeans модули, но достаточное их количество для поддержания работы приложений, не входящих в среду IDE, таких как наш редактор HTML. Для использования этого хранилища необходимо только изменить <tt>platform.properties</tt> путем добавления правильного URL-адреса:
</p>
<pre class="examplecode">
# share the libraries from common repository on netbeans.org
# this URL is for release60 JNLP files:
jnlp.platform.codebase=https://netbeans.org/download/6_0/jnlp/
</pre>
<p>
Как только приложение будет запущено как приложение на базе JNLP, все его совместно используемые подключаемые модули будут загружены с netbeans.org и будут использоваться вместе с другими аналогичными приложениями.</p>
<br />
<!-- ======================================================================================== -->
<br>
<div class="feedback-box"><a href="https://netbeans.org/about/contact_form.html?to=3&amp;subject=Feedback:%20NetBeans%20Platform%206.1%20Quick%20Start%20Tutorial">Мы ждем ваших отзывов</a></div>
<br style="clear:both;" />
<!-- ======================================================================================== -->
<h2><a name="nextsteps"></a>Дополнительная информация</h2>
<p>Руководство по началу работы с платформой NetBeans завершено. В этом документе была рассмотрена процедура создания подключаемого модуля, добавляющего панель поиска Google к среде IDE. Для получения дополнительных сведений о создании и разработке приложений на платформе 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/">Документация Javadoc по интерфейсам API в среде NetBeans</a></li>
</ul>
<hr>
<!-- ======================================================================================== -->
</ol></ol></body>
</html>