<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
    <!-- -*- xhtml -*- -->
    <title>Учебный курс по NetBeans CRUD для платформы NetBeans 6.5</title>
    <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 http-equiv="Content-Type" content="text/html; charset=UTF-8">   
    <meta name="description"
          content="A guide describing how to create a CRUD application on
           NetBeans Platform 6.5.">
    <link rel="stylesheet" type="text/css" href="https://netbeans.org/netbeans.css">
</head>

<body>
<h1><a name="top"></a>Учебный курс по NetBeans CRUD для платформы NetBeans</h1>

  <p>В этом курсе описана интеграция базы данных Java DB в приложение платформы NetBeans. Вначале рассматривается база данных Java DB, исходя из которой создается класс сущностей. Следует отметить, что эти указания применимы не только для Java DB. Они могут использоваться для любой реляционной базы данных, поддерживаемой средой IDE NetBeans. Затем классы сущностей помещаются в оболочку модуля наряду с модулями для связанного компонента JPA JARS.

  <p>После того как модули становятся частью приложения, создается новый модуль, который обеспечивает пользовательский интерфейс приложения. Новый модуль предоставляет пользователю древовидную иерархию, отображающую данные из базы данных. Затем создается другой модуль, позволяющий пользователю изменять данные, отображаемые первым модулем. Выделение средства просмотра и средства изменения в отдельные модули позволяет устанавливать различные редакторы для одного средства просмотра, так как различные редакторы могут создаваться внешними производителями как на коммерческой, так и на бесплатной основе. Таким образом, модульная архитектура платформы NetBeans обеспечивает гибкость.

  <p>После установки редактора выполняется добавление функций CRUD. Первый компонент &quot;R&quot; (&quot;Read&quot;, чтение) обрабатывается описанным выше средством просмотра. Затем выполняется компонент &quot;U&quot; (&quot;Update&quot;, обновление), затем &ndash; &quot;C&quot; (&quot;Create&quot;, создание) и &quot;D&quot; (&quot;Delete&quot;, удаление).

  <p>Этот курс позволит получить сведения о различных функциях платформы NetBeans, которые способствуют созданию приложений такого рода. Например, в курсе описаны средства <tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-awt/org/openide/awt/UndoRedo.Manager.html">UndoRedo.Manager</a></tt> и <tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-explorer/org/openide/explorer/ExplorerManager.html">ExplorerManager</a></tt>, а также компоненты платформы NetBeans Swing, например, <tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-windows/org/openide/windows/TopComponent.html">TopComponent</a></tt> и <tt><a href="http://bits.netbeans.org/dev/javadoc/org-openide-explorer/org/openide/explorer/view/BeanTreeView.html">BeanTreeView</a></tt>.

   <p><b class="notes">Примечание.</b> В этом документе используется среда IDE NetBeans версии 6.8. Если установлена более ранняя версия, см <a href="67/nbm-crud.html">версию 6.7 этого документа</a>.</p>

   <p><b>Содержание</b></p>
         
       <img  src="../images/articles/68/netbeans-stamp.gif" class="stamp" width="114" height="114" alt="Содержимое этой страницы относится к среде IDE NetBeans 6.8" title="Содержимое этой страницы относится к среде IDE NetBeans 6.8">
      <ul class="toc">
        <li><a href="#creating-app">Настройка приложения</a></li>
        <li><a href="#integrating-database">Интеграция базы данных</a>
        <ul>
            <li><a href="#creating-entity">Создание классов сущностей из базы данных</a></li>
            <li><a href="#wrapping-entity">Помещение файла JAR класса сущностей в оболочку модуля</a></li>
            <li><a href="#creating-other">Создание других связанных модулей</a></li>
            <li><a href="#designing-ui">Проектирование пользовательского интерфейса</a></li>
            <li><a href="#setting-dependencies">Установка зависимостей</a></li>
            <li><a href="#running-prototype">Запуск прототипа</a></li>
        </ul>
        <li><a href="#integrating-crud">Интеграция функциональности CRUD</a>
        <ul>
            <li><a href="#read">Чтение</a></li>
            <li><a href="#update">Обновление</a></li>
            <li><a href="#create">Создание</a></li>
            <li><a href="#delete">Удаление</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"><a href="https://netbeans.org/downloads/index.html">Среда IDE NetBeans</a></td>
                <td class="tbltd1">версия 6.8</td>
            </tr>
            <tr>
                <td class="tbltd1"><a href="http://java.sun.com/javase/downloads/index.jsp">Комплект для разработчика на языке Java (JDK)</a></td>
                <td class="tbltd1">версия 6 или<br/>версия 5</td>
            </tr>
        </tbody>
    </table>
    
    <p>Создаваемое в этом курсе приложение выглядит следующим образом:</p>

<p><img alt="итоговое состояние приложения" src="http://netbeans.dzone.com/sites/all/files/customer-app-on-nb.png" /> </p>

<p class="tips"> Рекомендуется просмотреть серию демо-роликов <a href="https://platform.netbeans.org/tutorials/nbm-10-top-apis.html">10 лучших интерфейсов API NetBeans</a> перед началом работы с этим курсом. Многие используемые в этом курсе понятия более подробно рассматриваются в демо-роликах.


    <p>
<!-- ===================================================================================== -->  

<br>
<h2 class="tutorial"><a name="creating-app"></a>Настройка приложения</h2>

<p>Начнем с создания нового приложения платформы NetBeans.

<ol>
    <li>Выберите команду &quot;File &gt; New Project&quot; (Ctrl+Shift+N). В разделе &quot;Categories&quot; выберите параметр &quot;NetBeans Modules&quot;. В разделе &quot;Projects&quot; выберите параметр &quot;NetBeans Platform Application&quot;. Нажмите кнопку &quot;Next&quot;.</li>
    <li>На панели &quot;Name and Location&quot; введите текст <tt>DBManager</tt> в поле &quot;Project Name&quot;. Нажмите кнопку &quot;Finish&quot;.</li>
</ol>
    
<p>Средой IDE будет создан проект <tt>DBManager</tt>. Проект является контейнером для всех остальных создаваемых модулей.

<p><img alt="Контейнер платформы NetBeans" src="../images/tutorials/crud/68dbmanager-1.png" /> </p>

<br>

<!-- ===================================================================================== -->

<br>
<h2><a name="integrating-database"></a>Интеграция базы данных</h2>

<p>Для интеграции базы данных следует создать классы сущностей из базы данных и интегрировать эти классы вместе со связанными файлами JAR в модули, которые входят в состав приложения NetBeans Platform.</p>

<div class="indent">
    <h3 class="tutorial"><a name="creating-entity"></a>Создание классов сущностей</h3>
    <p>В этом разделе выполняется создание классов сущностей из выбранной базы данных.
    <ol>
        <li>В рамках этого примера окно &quot;Службы&quot; используется для соединения с демонстрационной базой данных, поставляемой вместе со средой IDE NetBeans:

        <p><img alt="Окно &quot;Службы&quot;" src="../images/tutorials/crud/68dbmanager-2.png" /> </p>

        <p class="tips"> Возможно также выбрать любую другую базу и применить адаптировать действия к конкретному случаю. Если используется MySQL, обратитесь к разделу <a href="https://netbeans.org/kb/docs/ide/mysql_ru.html">Подключение к базе данных MySQL</a>.</p>
        <p><li>В среде IDE выберите пункт меню &quot;Файл | Новый проект&quot;, а затем &ndash; &quot;Java | Библиотека классов Java&quot; для создания нового проекта библиотеки с именем <tt>CustomerLibrary</tt>.
        <p><li>В окне &quot;Projects&quot; правой кнопкой мыши щелкните проект библиотеки и выберите команду &quot;File&quot; | &quot;New File&quot;, а затем &ndash; &quot;Persistence&quot; | &quot;Entity Classes from Database&quot;. В мастере выберите базу данных и требуемые таблицы. Здесь слежует выбрать &quot;Customer&quot;, после чего &quot;Discount Code&quot; добавляется автоматически, поскольку между этими двумя таблицами установлена связь.

                 <p><img alt="добавление таблиц" src="../images/tutorials/crud/68dbmanager-3.png" /> </p>


                 <p><li>Укажите стратегию постоянства, выбрав один из доступных вариантов: Поскольку выбор одного из вариантов является обязательным, выберем EclipseLink:

                             <p><img alt="выбор eclipselink" src="../images/tutorials/crud/68dbmanager-4.png" /> </p>


                            <p><li>Укажите имя demo для пакета, в котором будут созданы классы сущностей.
                             <p><img alt="имя пакета" src="../images/tutorials/crud/68dbmanager-5.png" /> </p>

        <p><li>Нажмите кнопку &quot;Готово&quot;. После выполнения этого действия просмотрите созданный код и обратите внимание на то, что теперь в папке META-INF располагается файл <tt>persistence.xml</tt>, а также классы сущностей для всех таблиц:

<p><img alt="классы сущностей" src="../images/tutorials/crud/68dbmanager-7.png" /> </p>

         <p><li>Создайте библиотеку Java, и файл JAR будет размещен в папке &quot;dist&quot;, которую можно просмотреть в окне &quot;Files&quot;:

<p><img alt="папка назначения" src="../images/tutorials/crud/68dbmanager-8.png" /> </p>

         </li>
    </ol>
    
    <h3 class="tutorial"><a name="wrapping-entity"></a>Помещение файла JAR класса сущностей в оболочку модуля</h3>
    <p>В этом разделе рассматривается добавление первого модуля к приложению. Новый модуль NetBeans помещает в обертку файл JAR, созданный в предыдущем разделе. 
    <ol>
        <li>Правой кнопкой мыши щелкните узел &quot;<tt>DBManager</tt>'s Modules&quot; в окне &quot;Projects&quot; и выберите команду &quot;Add New Library&quot;.
        <p><li>Выберите файл JAR, созданный в предыдущем подразделе, а затем завершите работу мастера, указав любые значения. Предположим, что приложение предназначено для работы с посетителями веб-сайта shop.org; в таком случае для основы кодового имени подходит уникальный идентификатор &quot;org.shop.model&quot;:

         <p><img alt="уникальный идентификатор модуля" src="../images/tutorials/crud/68dbmanager-9.png" /> </p>

    </ol>
        <p>Теперь первый собственный модуль в новом приложении обертывает архив JAR, содержащий классы сущностей и файл persistence.xml:</p>

        <p><img alt="persistence.xml" src="../images/tutorials/crud/68dbmanager-91.png" /> </p>

    <h3 class="tutorial"><a name="creating-other"></a>Создание других связанных модулей</h3>
    <p>В этом разделе создаются два новых модуля, которые помещают файлы JAR EclipseLink в оболочку, а также соединитель баз данных JAR.
    <ol>
        <li>Выполните те же действия, что и при создании оболочки библиотеки для файла JAR класса сущностей, но на этот раз для файлов JAR EclipseLink, которые расположены в библиотеке Java &quot;CustomerLibrary&quot;, созданной ранее:

                <p><img alt="обертывание библиотеки" src="../images/tutorials/crud/68dbmanager-94.png" /></p>


        <p class="tips"> В мастере &quot;Модуль-обёртка вокруг библиотеки&quot; можно выбрать несколько архивов JAR щелчком кнопки мыши при нажатой клавише Ctrl.</p>

        <p><li>Затем следует создать еще один модуль-обертку вокруг библиотеки для файла JAR клиента базы данных Java DB, предоставляемого в дистрибутиве JDK: <tt>db/lib/derbyclient.jar</tt>.
    </ol>
    
    <h3 class="tutorial"><a name="designing-ui"></a>Проектирование пользовательского интерфейса</h3>
    <p>В этом разделе создается простой прототип пользовательского интерфейса, который предоставляет окно <tt>JTextArea</tt> для отображения данных, извлеченных из базы данных.
    <ol>
        <li>Правой кнопкой мыши щелкните узел &quot;<tt>DBManager</tt>'s Modules&quot; в окне &quot;Projects&quot; и выберите команду &quot;Add New&quot;. Создайте новый модуль с именем <tt>CustomerViewer</tt> с основой кодового имени <tt>org.shop.ui</tt>.
        <p><li>В окне &quot;Projects&quot; правой кнопкой мыши щелкните новый модуль и выберите команду &quot;New&quot; | &quot;Window Component&quot;. Укажите, что компонент должен быть создан в положении <tt>editor</tt> и должен открываться при запуске приложения. Установите <tt>Customer</tt> в качестве префикса имени класса окна.
        <p><li>Используйте палитру (Ctrl+Shift+8) для перетаскивания <tt>JTextArea</tt> в новое окно:

        <p><img alt="Размещенная текстовая область" src="../images/tutorials/crud/68dbmanager-93.png" /></p>

       <p><li>Добавьте этот код в конец конструктора TopComponent:
<pre class="examplecode">EntityManager entityManager = Persistence.createEntityManagerFactory(&quot;CustomerLibraryPU&quot;).createEntityManager();
Query query = entityManager.createQuery(&quot;SELECT c FROM Customer c&quot;);
List&lt;Customer&gt; resultList = query.getResultList();
for (Customer c : resultList) {
  jTextArea1.append(c.getName() + &quot; (&quot; + c.getCity() + &quot;)&quot; + &quot;\n&quot;);
}</pre>

<p class="tips"> Так как не установлены зависимости модулей, которые предоставляют объект Customer и файлы состояния JAR, указанные выше операторы будут отмечены красным подчеркиванием. Это будет устранено в следующем разделе.</p>

<p>Выше приведены ссылки на единицу сохранения состояния CustomerLibraryPU, имя которой установлено в файле <tt>persistence.xml</tt>. Кроме того, здесь имеется ссылка на один из классов сущностей с именем <tt>Customer</tt>, который находится в модуле классов сущностей. Если эти элементы отличаются от приведенных выше, их можно соответствующим образом адаптировать.

    </ol>

    <h3 class="tutorial"><a name="setting-dependencies"></a>Установка зависимостей</h3>
    <p>В этом разделе будет показано, как в одних модулях использовать код из других модулей. Для этого нужно совершенно явным образом установить соглашения между связанными модулями. Строгая модульная архитектура платформы NetBeans предотвращает случайное и хаотическое использование кода разных модулей, что нередко происходит на других платформах.
    <ol>
         <li>Модуль классов сущностей должен иметь зависимости от модуля Derby Client, а также от модуля EclipseLink. Правой кнопкой мыши щелкните модуль <tt>CustomerLibrary</tt>, выберите команду &quot;Свойства&quot;, а затем перейдите на вкладку &quot;Библиотеки&quot; для задания зависимостей от двух модулей, необходимых модулю <tt>CustomerLibrary</tt>.
        <p><li>Модуль <tt>CustomerViewer</tt> требует наличия зависимости от модуля EclipseLink, а также от модуля классов сущностей. Правой кнопкой мыши щелкните модуль <tt>CustomerViewer</tt>, выберите команду &quot;Свойства&quot;, а затем перейдите на вкладку &quot;Библиотеки&quot; для задания зависимостей от двух модулей, необходимых модулю <tt>CustomerViewer</tt>.
        <p><li>Откройте элемент <tt>CustomerTopComponent</tt> в представлении &quot;Исходный код&quot;, правой кнопкой мыши щелкните окно редактора и выберите команду &quot;Исправить выражения импорта&quot;. Среда IDE теперь может добавлять необходимые операторы импорта, так как для компонента <tt>CustomerTopComponent</tt> теперь доступны модули, содержащие необходимые классы.
    </ol>
        <p>Теперь между модулями приложения установлены соглашения, которые дают возможность управления зависимостями в отдельных частях кода.

    <h3 class="tutorial"><a name="running-prototype"></a>Запуск прототипа</h3>
    <p>В этом разделе вы выполните запуск приложения, которое поможет проверить, верно ли установлено соединение с базой данных.
    <ol>
        <li>Запустите сервер базы данных.
        <p><li>Запустите приложение. На экране должно отобразиться следующее изображение:

        <p><img alt="запуск прототипа" src="../images/tutorials/crud/68dbmanager-92.png" /></p>
    </ol>
        <p>Таким образом, создан простой прототип, состоящий из приложения платформы NetBeans, и выводящий данные из базы данных, который будет расширен в следующем разделе.

</div>

<br>
<h2><a name="integrating-crud"></a>Интеграция функциональности CRUD</h2>

<p>Чтобы создать функциональность CRUD, которая тесно интегрируется с платформой NetBeans, необходимо реализовать некоторые очень специфические приемы программирования этой платформы. В следующих разделах эти шаблоны рассматриваются более подробно.</p>

<div class="indent">
    
    <h3 class="tutorial"><a name="read"></a>Чтение</h3>
    <p>В этом разделе производится изменение введенного в предыдущем разделе элемента <tt>JTextArea</tt> для представления проводника платформы NetBeans. Представления проводника платформы NetBeans являются компонентами Swing, которые, по сравнению со стандартными компонентами Swing, лучше всего интегрируются с платформой NetBeans. Среди прочего поддерживается понятие контекста, позволяющее представлениям обладать чувствительностью к контексту.
    <p>Данные будут представлены в общей иерархической модели, предоставленной классом платформы NetBeans <tt>Node</tt>, который отображается во всех представлениях проводника платформы NetBeans. В конце данного раздела описан процесс синхронизации представления проводника с окном &quot;Properties&quot; платформы NetBeans.
    <ol>
        <li>В компоненте <tt>TopComponent</tt> удалите элемент <tt>JTextArea</tt> в представлении &quot;Design&quot; и закомментируйте связанный с ним код в представлении &quot;Source&quot;:

<pre class="examplecode">EntityManager entityManager =  Persistence.createEntityManagerFactory(&quot;CustomerLibraryPU&quot;).createEntityManager();
Query query = entityManager.createQuery(&quot;SELECT c FROM Customer c&quot;);
List&lt;Customer&gt; resultList = query.getResultList();
//for (Customer c : resultList) {
//    jTextArea1.append(c.getName() + &quot; (&quot; + c.getCity() + &quot;)&quot; + &quot;\n&quot;);
//}</pre>

<p><li>Правой кнопкой мыши щелкните модуль <tt>CustomerViewer</tt>, выберите команду &quot;Свойства&quot;, а затем перейдите на вкладку &quot;Библиотеки&quot; для задания зависимостей интерфейса API Nodes и интерфейса API Explorer &amp; Property Sheet.

<p><li>Затем измените подпись класса для реализации элемента <tt>ExplorerManager.Provider</tt>:

<pre class="examplecode">final class CustomerTopComponent extends TopComponent implements ExplorerManager.Provider</pre>

<p>Необходимо переопределить <tt>getExplorerManager()</tt>

<pre class="examplecode">@Override
public ExplorerManager getExplorerManager() {
    return em;
}</pre>

<p>В начале класса следует объявить и инициализировать <tt>ExplorerManager</tt>:

<pre class="examplecode">private static ExplorerManager em = new ExplorerManager();</pre>

<p class="tips"> Обратитесь к ролику <a href="https://platform.netbeans.org/tutorials/nbm-10-top-apis.html">10 лучших интерфейсов API NetBeans</a> для получения подробных сведений о приведенном выше коде, в особенности демо-ролик об интерфейсе Nodes API и интерфейсе Explorer &amp; Property Sheet API.

<p><li>Откройте представление &quot;Design&quot; для <tt>TopComponent</tt>, правой кнопкой щелкните палитру, выберите команду &quot;Palette Manager&quot; | &quot;Add from JAR&quot;. Затем перейдите к элементу <tt>org-openide-explorer.jar</tt>, который находится в папке <tt>platform11/modules</tt> внутри каталога установки среды IDE NetBeans. Выберите элемент BeanTreeView и завершите работу мастера. Теперь элемент <tt>BeanTreeView</tt> должен отображаться на палитре. Перетащите его с палитры в окно.
 
<p><li>Создайте класс фабрики, создающий новый экземпляр <a href="http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-db/org/netbeans/api/db/explorer/node/BaseNode.html">BeanNode</a> для каждого клиента в базе данных:

<pre class="examplecode">import demo.Customer;
import java.beans.IntrospectionException;
import java.util.List;
import org.openide.nodes.BeanNode;
import org.openide.nodes.ChildFactory;
import org.openide.nodes.Node;
import org.openide.util.Exceptions;

public class CustomerChildFactory extends ChildFactory&lt;Customer&gt; {

    private List&lt;Customer&gt; resultList;

    public CustomerChildFactory(List&lt;Customer&gt; resultList) {
        this.resultList = resultList;
    }

    @Override
    protected boolean createKeys(List&lt;Customer&gt; list) {
        for (Customer Customer : resultList) {
            list.add(Customer);
        }
        return true;
    }

    @Override
    protected Node createNodeForKey(Customer c) {
        try {
            return new BeanNode(c);
        } catch (IntrospectionException ex) {
            Exceptions.printStackTrace(ex);
            return null;
        }
    }

}</pre>
        <p><li>Повторно выберите компонент <tt>CustomerTopComponent</tt> и используйте <tt>ExplorerManager</tt> для передачи результата из запроса JPA в элемент <tt>Node</tt>:

<pre class="examplecode">EntityManager entityManager =  Persistence.createEntityManagerFactory(&quot;CustomerLibraryPU&quot;).createEntityManager();
Query query = entityManager.createQuery(&quot;SELECT c FROM Customer c&quot;);
List&lt;Customer&gt; resultList = query.getResultList();
<b>em.setRootContext(new AbstractNode(Children.create(new CustomerChildFactory(resultList), true)));</b>
//for (Customer c : resultList) {
//    jTextArea1.append(c.getName() + &quot; (&quot; + c.getCity() + &quot;)&quot; + &quot;\n&quot;);
//}</pre>

        <p><li>Запустите приложение. После запуска приложения откройте окно &quot;Properties&quot;. Обратите внимание на то, что, несмотря на доступность данных, отображаемых в <tt>BeanTreeView</tt>, элемент <tt>BeanTreeView</tt> не синхронизирован с окном &quot;Properties&quot;, которое открывается с помощью команды &quot;Window&quot; | &quot;Properties&quot;. Другими словами, при перемещении по древовидной иерархии в окне &quot;Свойства&quot; элементы не отображаются.

        <p><li>Синхронизация окна &quot;Properties&quot; с элементом <tt>BeanTreeView</tt> осуществляется путем добавления в конструктор элемента <tt>TopComponent</tt> следующего кода:

<pre class="examplecode">associateLookup(ExplorerUtils.createLookup(em, getActionMap()));</pre>

<p>Здесь элементы <tt>TopComponent</tt> <tt>ActionMap</tt> и <tt>ExplorerManager</tt> добавляются в элемент <tt>Lookup</tt> <tt>TopComponent</tt>. Это также приводит к тому, что в окне &quot;Properties&quot; появляется отображаемое имя и текст всплывающей подсказки выбранного элемента <tt>Node</tt>.

        <p><li>Повторно запустите приложение и обратите внимание на то, что окно &quot;Properties&quot; теперь синхронизировано с представлением проводника:

        <p><img alt="синхронизация:" src="../images/tutorials/crud/68dbmanager-95.png" />

    </ol>
    <p>Теперь данные можно просмотреть в древовидной иерархии, как и в случае с элементом <tt>JTree</tt>. В то же время возможен переход в другое представление проводника без изменения модели, так как <tt>ExplorerManager</tt> выполняет роль посредника между моделью и представлением. Кроме того, теперь будет возможна синхронизация представления с окном &quot;Properties&quot;.

    <h3 class="tutorial"><a name="update"></a>Обновление</h3>
    <p>В этом разделе вначале создается редактор. Редактор будет предоставлен новым модулем NetBeans. Таким образом, вначале будет создан новый модуль. Затем в этом модуле будет создан новый элемент <tt>TopComponent</tt>, содержащий два поля <tt>JTextFields</tt> (для каждого столбца, который доступен пользователю для редактирования). Модулю средства просмотра необходимо разрешить взаимодействие с модулем редактора. Каждый раз при выборе нового элемента <tt>Node</tt> в модуле средства просмотра текущий объект <tt>Customer</tt> будет добавлен в <tt>Lookup</tt>. В модуле редактора будет осуществляться прослушивание <tt>Lookup</tt> на появление объектов <tt>Customer</tt>. При появлении нового объекта <tt>Customer</tt> в <tt>Lookup</tt> будет выполнено обновление текстовых полей <tt>JTextField</tt> в редакторе.
    <p>Затем поля <tt>JTextFields</tt> будут синхронизированы с функциями платформы NetBeans &quot;Undo&quot;, &quot;Redo&quot; и &quot;Save&quot;. Другими словами, при внесении пользователем изменения в поле <tt>JTextField</tt> существующая функциональность платформы NetBeans должна быть доступной, чтобы обеспечивать поддержку платформы NetBeans, исключающую необходимость создания новых функций. Для этого необходимо использовать элемент <tt>UndoRedoManager</tt> наряду с элементом <tt>SaveCookie</tt>.
    <ol>
        <li>Создайте новый модуль с именем <tt>CustomerEditor</tt> и основой кодового имени <tt>org.shop.editor</tt>.
        <p><li>Правой кнопкой мыши щелкните модуль <tt>CustomerEditor</tt> и выберите команду &quot;Создать | Оконный компонент&quot;. Убедитесь в том, что в настройках указано отображать окно в положении<tt>editor</tt> и открывать его при запуске приложения. На последней панели мастера задайте префикс имени класса &quot;Editor&quot;.
        <p><li>Используйте палитру (Ctrl+Shift+8) для добавления двух меток <tt>JLabels</tt> и двух полей <tt>JTextFields</tt> в новое окно. Задайте тексты меток &quot;Имя&quot; и &quot;Город&quot;, а затем установите имена переменных полей <tt>JTextField</tt> равными <tt>jTextField1</tt> и <tt>jTextField2</tt>.

        <p>В GUI Builder окно теперь должно выглядеть следующим образом:</p>

        <p><img alt="проектирование пользовательского интерфейса" src="../images/tutorials/crud/68dbmanager-96.png" /></p>

        <p><li>Вернитесь к модулю <tt>CustomerViewer</tt> и измените его файл <tt>layer.xml</tt>, указав в нем, что окно <tt>CustomerTopComponent</tt> выводится в режиме <tt>explorer</tt>.

         <p class="tips"> Правой кнопкой мыши щелкните проект и выберите команду &quot;Clean&quot;, перейдя в файл <tt>layer.xml</tt>. Зачем это необходимо сделать? При каждом запуске приложения и его закрытии положения окон сохраняются в пользовательском каталоге. Таким образом, если элемент <tt>CustomerViewer</tt> изначально отображался в режиме <tt>editor</tt>, он останется в режиме <tt>editor</tt> до выполнения команды &quot;Очистить&quot;, которая сбрасывает пользовательский каталог (т.е. <i>удаляет</i> его) и позволяет отображать <tt>CustomerViewer</tt> в положении, установленном в настоящий момент в файле <tt>layer.xml</tt>.</p>


         <p>Следует также убедиться в том, что <tt>BeanTreeView</tt> в <tt>CustomerViewer</tt> будет растягиваться по горизонтали и вертикали при изменении размера приложения пользователем. Для проверки этого откройте окно, выберите элемент <tt>BeanTreeView</tt>, а затем нажмите кнопки со стрелками на панели инструментов GUI Builder.

         <li>Выполните приложение и проверьте, выводятся ли следующие данные при запуске приложения:

                      <p><img alt="запуск нового пользовательского интерфейса" src="../images/tutorials/crud/68dbmanager-97.png" /></p>


        <li>Теперь можно приступить к добавлению кода. Сначала необходимо открыть выбранный в настоящий момент объект Customer в редакторе:
        <ul>
         <li>Сначала настройте модуль <tt>CustomerViewer</tt> таким образом, чтобы текущий объект <tt>Customer</tt> добавлялся в окно средства просмотра <tt>Lookup</tt> при каждом выборе элемента <tt>Node</tt>. Для этого создайте <tt>AbstractNode</tt> вместо <tt>BeanNode</tt> в классе <tt>CustomerChildFactory</tt>. В этом случае текущий объект <tt>Customer</tt> можно будет добавить к <tt>Lookup</tt> узла следующим образом  (обратите внимание на текст, выделенный полужирным шрифтом):

<pre class="examplecode">@Override
protected Node createNodeForKey(Customer c) {
    Node node = new AbstractNode(Children.LEAF, Lookups.singleton(c));
    node.setDisplayName(c.getName());
    node.setShortDescription(c.getCity());
    return node;
//        try {
//            return new BeanNode(c);
//        } catch (IntrospectionException ex) {
//            Exceptions.printStackTrace(ex);
//            return null;
//        }
}</pre>

        <p>Теперь при каждом создании элемента <tt>Node</tt>, которое выполняется при выборе нового клиента в средстве просмотра, новый объект <tt>Customer</tt> добавляется в окно <tt>Lookup</tt> элемента <tt>Node</tt>.

         <p><li>Теперь следует изменить модуль редактора таким образом, чтобы его окно отслеживало объекты <tt>Customer</tt>, добавляемые в окно <tt>Lookup</tt>. Вначале установите в модуле редактора зависимость от модуля, который предоставляет класс сущностей, а также от модуля, предоставляющего файлы состояния JAR. 

         <p><li>Затем настройте подпись класса <tt>EditorTopComponent</tt> для внедрения <tt>LookupListener</tt>:

<pre class="examplecode">public final class EditorTopComponent extends TopComponent implements LookupListener</pre>

         <p><li>Переопределите <tt>resultChanged</tt> таким образом, чтобы текстовые поля <tt>JTextField</tt> обновлялись при вставке нового объекта <tt>Customer</tt> в окно <tt>Lookup</tt>:

<pre class="examplecode">@Override
public void resultChanged(LookupEvent lookupEvent) {
    Lookup.Result r = (Lookup.Result) lookupEvent.getSource();
    Collection&lt;Customer&gt; coll = r.allInstances();
    if (!coll.isEmpty()) {
        for (Customer cust : coll) {
            jTextField1.setText(cust.getName());
            jTextField2.setText(cust.getCity());
        }
    } else {
        jTextField1.setText(&quot;[no name]&quot;);
        jTextField2.setText(&quot;[no city]&quot;);
    }
}</pre>

        <p><li>После определения <tt>LookupListener</tt> необходимо добавить его к какому-либо элементу. В данном случае он добавляется к элементу <tt>Lookup.Result</tt>, полученному из глобального контекста. Глобальный контекст используется в качестве посредника для контекста выбранного элемента <tt>Node</tt>. Например, если в древовидной иерархии выбрано значение &quot;Ford Motor Co&quot;, то объект <tt>Customer</tt> для значения &quot;Ford Motor Co&quot; добавляется в окно <tt>Lookup</tt> элемента <tt>Node</tt>. Так как элемент <tt>Node</tt> является выбранным в настоящее время компонентом, объект <tt>Customer</tt> для значения &quot;Ford Motor Co&quot; становится доступным в глобальном контексте. Это передается в элемент <tt>resultChanged</tt> и приводит к заполнению текстовых полей.

         <p>Все описанные операции начинают выполняться, то есть элемент <tt>LookupListener</tt> становится активным при каждом открытии окна редактора, как показано ниже:</p>

<pre class="examplecode">@Override
public void componentOpened() {
    result = Utilities.actionsGlobalContext().lookupResult(Customer.class);
    result.addLookupListener(this);
    resultChanged(new LookupEvent(result));
}

@Override
public void componentClosed() {
    result.removeLookupListener(this);
    result = null;
}</pre>

<p>Так как редактор открывается при запуске приложения, элемент <tt>LookupListener</tt> также доступен при запуске приложения.

<p><li>Затем необходимо следующим образом объявить переменную result в начале класса:

<pre class="examplecode">private Lookup.Result result = null;</pre>

        <p><li>Запустите приложение повторно и обратите внимание на то, что окно редактора обновляется при выборе нового элемента <tt>Node</tt>:

                      <p><img alt="обновленное окно редактора" src="../images/tutorials/crud/68dbmanager-98.png" /></p>


<p>В то же время следует отметить операции, выполняемые при переходе в окно редактора:</p>

                      <p><img alt="переключение фокусировки" src="../images/tutorials/crud/68dbmanager-99.png" /></p>

<p>Так как элемент <tt>Node</tt> больше не является текущим, объект <tt>Customer</tt> покидает глобальный контекст. Как сказано выше, это происходит потому, что глобальный контекст выступает посредником для окна <tt>Lookup</tt> текущего элемента <tt>Node</tt>. Таким образом, в этом случае глобальный контекст не может использоваться. Вместо этого будет использоваться локальное окно <tt>Lookup</tt>, предоставленное окном Customer.</p>

<p>Замените строку

<pre class="examplecode">result = Utilities.actionsGlobalContext().lookupResult(Customer.class);</pre>

<p>следующей строкой

<pre class="examplecode">result = WindowManager.getDefault().findTopComponent(&quot;CustomerTopComponent&quot;).getLookup().lookupResult(Customer.class);</pre>

<p>Строка &quot;CustomerTopComponent&quot; является идентификатором <tt>CustomerTopComponent</tt>, который представляет собой строковую константу, находящуюся в исходном коде компонента <tt>CustomerTopComponent</tt>. Недостатком описанного выше подхода является то, что элемент <tt>EditorTopComponent</tt> при этом может работать только в том случае, если обнаруживается компонент <tt>TopComponent</tt> с идентификатором &quot;CustomerTopComponent&quot;. Это должно явным образом документироваться, чтобы информировать пользователей других редакторов о том, что идентификация <tt>TopComponent</tt> средства просмотра выполняется именно таким образом. Разработчик также может изменить модель выбора, <a href="http://weblogs.java.net/blog/timboudreau/archive/2007/01/how_to_replace.html">как описано здесь</a> Тимом Будро.

<p>При использовании описанных подходов контекст не будет потерян при переключении фокусировки на компонент <tt>EditorTopComponent</tt>, как показано ниже:</p>

                      <p><img alt="контекст не теряется" src="../images/tutorials/crud/68dbmanager-991.png" /></p>

<p class="tips"> Поскольку теперь вместо <tt>BeanNode</tt> используется <tt>AbstractNode</tt>, в окне &quot;Свойства&quot; нет свойств. Их придется задать вручную, в соответствии с описанием в документе <a href="https://platform.netbeans.org/tutorials/nbm-nodesapi2.html">Руководство по интерфейсу API для узлов</a>.
        </ul>
        <li>Теперь следует перейти к функциям &quot;Undo&quot; и &quot;Redo&quot;. Необходимо добиться того, чтобы при изменении пользователем одного из полей <tt>JTextFields</tt> стали доступны кнопки &quot;Undo&quot; и &quot;Redo&quot;, а также связанные с ними команды меню &quot;Edit&quot;. Для этого платформа NetBeans предоставляет <a href="http://bits.netbeans.org/dev/javadoc/org-openide-awt/org/openide/awt/UndoRedo.Manager.html">UndoRedo.Manager</a>.
        <ul>
        <li>Объявите новый элемент UndoRedoManager и создайте его экземпляр в начале элемента <tt>EditorTopComponent</tt>:

<pre class="examplecode">private UndoRedo.Manager manager = new UndoRedo.Manager();</pre>

        <p><li>Затем следует переопределить метод <tt>getUndoRedo()</tt> в компоненте <tt>EditorTopComponent</tt>:

<pre class="examplecode">@Override
public UndoRedo getUndoRedo() {
    return manager;
}</pre>

        <p><li>В конструкторе элемента <tt>EditorTopComponent</tt> следует добавить элемент <tt>KeyListener</tt> в поля <tt>JTextFields</tt>. Затем добавьте прослушиватели <tt>UndoRedoListeners</tt> в связанные методы, которые необходимо внедрить:

<pre class="examplecode">jTextField1.getDocument().addUndoableEditListener(manager);
jTextField2.getDocument().addUndoableEditListener(manager);
</pre>

        <p><li>Запустите приложение и проверьте функции &quot;Отменить&quot; и &quot;Вернуть&quot; в действии, а также кнопки и команды меню. Функции будут работать ожидаемым образом. Можно изменить прослушиватель <tt>KeyListener</tt> таким образом, чтобы не ВСЕ клавиши вызывали включение функций &quot;Undo&quot; и &quot;Redo&quot;. Например, при нажатии клавиши Enter включение функций &quot;Undo&quot; и &quot;Redo&quot;, скорее всего, не будет нужно. Следовательно, необходимо именить код, приведенный выше, чтобы он соответствовал требованиям предприятия.


        </ul>
        <li>Необходимо также выполнить интеграцию с функциональностью платформы NetBeans &quot;Save&quot;:
        <ul>
        <li>По умолчанию на панели инструментов платформы NetBeans доступна кнопка &quot;Save All&quot;. В рассматриваемой ситуации сохранение &quot;всех&quot; элементов не требуется, так как понятие &quot;все&quot; подразумевает наличие различных документов. Здесь имеется только один &quot;документ&quot;, то есть редактор, который используется для всех узлов древовидной иерархии. Удалите кнопку &quot;Сохранить все&quot; и добавьте кнопку &quot;Сохранить&quot;. Для этого добавьте следующий код в файл layer модуля <tt>CustomerEditor</tt>:

<pre class="examplecode">&lt;folder name=&quot;Toolbars&quot;&gt;
    &lt;folder name=&quot;File&quot;&gt;
        &lt;file name=&quot;org-openide-actions-SaveAction.shadow&quot;&gt;
            &lt;attr name=&quot;originalFile&quot; stringvalue=&quot;Actions/System/org-openide-actions-SaveAction.instance&quot;/&gt;
            &lt;attr name=&quot;position&quot; intvalue=&quot;444&quot;/&gt;
        &lt;/file&gt;
        &lt;file name=&quot;org-openide-actions-SaveAllAction.shadow_hidden&quot;/&gt;
    &lt;/folder&gt;
&lt;/folder&gt;</pre>

<p>При запуске приложения на панели инструментов отобразится другой значок. Вместо кнопки &quot;Save All&quot; будет доступна кнопка &quot;Save&quot;.

        <p><li>Установите зависимости от интерфейса API Dialogs и интерфейса API Nodes.

            <p><li>В конструкторе <tt>EditorTopCompontn</tt> добавьте вызов метода (определяемого на следующем этапе) при каждом обнаружении изменений:

<pre class="examplecode">public EditorTopComponent() {

        ...
        ...
        ...

        jTextField1.getDocument().addDocumentListener(new DocumentListener() {
            public void insertUpdate(DocumentEvent arg0) {
                fire(true);
            }
            public void removeUpdate(DocumentEvent arg0) {
                fire(true);
            }
            public void changedUpdate(DocumentEvent arg0) {
                fire(true);
            }
        });

        jTextField2.getDocument().addDocumentListener(new DocumentListener() {
            public void insertUpdate(DocumentEvent arg0) {
                fire(true);
            }
            public void removeUpdate(DocumentEvent arg0) {
                fire(true);
            }
            public void changedUpdate(DocumentEvent arg0) {
                fire(true);
            }
        });

        //Создание экземпляра реализации SaveCookie:
        impl = new SaveCookieImpl();

        //Создание экземпляра динамического объекта:
        content = new InstanceContent();

        //Добавление динамического объекта в верхнюю часть TopComponent Lookup:
        associateLookup(new AbstractLookup(content));

    }

    ...
    ...
    ...
</pre>

             <p><li>Здесь приведены два метода, упоминавшиеся выше. Первый метод вызывается при каждом обнаружении изменений. При обнаружении изменений к <tt>InstanceContent</tt>  добавляется реализация <tt>SaveCookie</tt> из интерфейса API узлов:

<pre class="examplecode">    public void fire(boolean modified) {
        if (modified) {
            //Если текст изменен,
            //добавить реализацию SaveCookie к Lookup:
            content.add(impl);
        } else {
            //В противном случае удалим реализацию SaveCookie из lookup:
            content.remove(impl);
        }
    }

    private class SaveCookieImpl implements SaveCookie {

        @Override
        public void save() throws IOException {

           Confirmation message = new NotifyDescriptor.Confirmation(&quot;Сохранить \&quot;&quot;
                    + jTextField1.getText() + &quot; (&quot; + jTextField2.getText() + &quot;)\&quot;?&quot;,
                    NotifyDescriptor.OK_CANCEL_OPTION,
                    NotifyDescriptor.QUESTION_MESSAGE);

            Object result = DialogDisplayer.getDefault().notify(message);
            //Если пользователь намерен сохранить, и нажимает &quot;Да&quot;,
            //необходимо отключить действие Save,
            //таким образом оно будет доступно только при наличии изменений
            //текстового поля:
            if (NotifyDescriptor.YES_OPTION.equals(result)) {
                fire(false);
                //Реализация функций сохранения.
            }
        }
    }
</pre>
        <p><li>Запустите приложение и обратите внимание на включение и отключение кнопки &quot;Save&quot;:

                      <p><img alt="включенная кнопка сохранения" src="../images/tutorials/crud/68dbmanager-992.png" /></p>

<p class="tips"> В настоящий момент при нажатии кнопки &quot;OK&quot; в приведенном выше диалоговом окне не происходит. На следующем этапе будет добавлен код JPA, обрабатывающий состояние изменений.

        <p><li>Затем следует добавить код JPA для сохранения изменений. Для этого замените комментарий &quot;//Реализация функций сохранения&quot;. Этот комментарий необходимо заменить следующим кодом.

<pre class="examplecode">EntityManager entityManager = Persistence.createEntityManagerFactory(&quot;CustomerLibraryPU&quot;).createEntityManager();
entityManager.getTransaction().begin();
Customer c = entityManager.find(Customer.class, customer.getCustomerId());
c.setName(jTextField1.getText());
c.setCity(jTextField2.getText());
entityManager.getTransaction().commit();</pre>

<p class="tips"> Значение &quot;customer&quot; в <tt>customer.getCustomerId()()</tt> в настоящее время не определено. Добавьте строку, выделенную жирным шрифтом, в <tt>resultChanged</tt> ниже, сразу после определения <tt>Customer customer;</tt> в верхней части класса, таким образом текущий объект <tt>Customer</tt> будет определять значение <tt>customer</tt>, которое затем используется в коде сохранения состояния, определенном выше, для получения идентификатора текущего объекта <tt>Customer</tt>.

<pre class="examplecode">@Override
public void resultChanged(LookupEvent lookupEvent) {
    Lookup.Result r = (Lookup.Result) lookupEvent.getSource();
    Collection&lt;Customer&gt; c = r.allInstances();
    if (!c.isEmpty()) {
        for (Customer customer : c) {
            <b>customer = cust;</b>
            jTextField1.setText(customer.getName());
            jTextField2.setText(customer.getCity());
        }
    } else {
        jTextField1.setText(&quot;[имя не указано]&quot;);
        jTextField2.setText(&quot;[город не указан]&quot;);
    }
}</pre>

 <p><li>Запустите приложение и измените данные. В настоящее время функциональность &quot;Обновить&quot; отсутствует (она будет добавлена на следующем этапе), поэтому для просмотра обновленной информации следует перезапустить приложение. Например, в данном случае древовидная иерархия отображает сохраненное имя клиента &quot;Toyota Motor Co&quot;:

                      <p><img alt="измененная база данных" src="../images/tutorials/crud/68dbmanager-993.png" /></p>

        </ul>


 <li>Затем следует добавить функцию для обновления средства просмотра Customer. Разработчик может добавить элемент <tt>Timer</tt>, который периодически обновляет средство просмотра. В этом примере в узел Root будет добавлена команда меню &quot;Refresh&quot;, позволяющая пользователю вручную обновить средство просмотра.
<ul>
        <li>В основном пакете модуля <tt>CustomerViewer</tt> необходимо создать новый элемент <tt>Node</tt>, заменяющий элемент <tt>AbstractNode</tt>, который в настоящее время используется в качестве корневого элемента нижестоящих элементов средства просмотра. Обратите внимание на то, что действие &quot;Refresh&quot; также привязывается к новому корневому узлу.

<pre class="examplecode">public class CustomerRootNode extends AbstractNode {

    public CustomerRootNode(Children kids) {
        super(kids);
        setDisplayName(&quot;Root&quot;);
    }

    @Override
    public Action[] getActions(boolean context) {
        Action[] result = new Action[]{
            new RefreshAction()};
        return result;
    }

    private final class RefreshAction extends AbstractAction {

        public RefreshAction() {
            putValue(Action.NAME, &quot;Обновить&quot;);
        }

        public void actionPerformed(ActionEvent e) {
            CustomerTopComponent.refreshNode();
        }
    }

}</pre>

<p><li>Добавьте этот метод в компонент <tt>CustomerTopComponent</tt> для обновления представления:

<pre class="examplecode">public static void refreshNode() {
    EntityManager entityManager = Persistence.createEntityManagerFactory(&quot;CustomerLibraryPU&quot;).createEntityManager();
    Query query = entityManager.createQuery(&quot;SELECT c FROM Customer c&quot;);
    List&lt;Customer&gt; resultList = query.getResultList();
    em.setRootContext(new <b>CustomerRootNode</b>(Children.create(new CustomerChildFactory(resultList), true)));
} </pre>


<p>Теперь следует заменить приведенный выше код в конструкторе <tt>CustomerTopComponent</tt> на вызов упомянутого элемента. Как видно из выделенной части кода, теперь вместо элемента <tt>AbstractNode</tt> используется элемент <tt>CustomerRootNode</tt>. Элемент <tt>CustomerRootNode</tt> содержит действие &quot;Обновить&quot;, вызывающее приведенный выше код.

<p><li>Добавьте к коду сохранения вызов привденного выше метода, чтобы при каждом сохранении данных происходило автоматическое обновление. Реализация этого расширения кода сохранения возможна несколькими разными способами. Например, можно создать новый модуль, содержащий действие обновления. Этот модуль затем будет совместно исползоваться модулем просмотра и модулем редактора, предоставляя общие функциональные возможности.

 <p><li>Повторно запустите приложение и обратите внимание на то, что появился новый корневой узел с действием &quot;Refresh&quot;:

                      <p><img alt="новый корневой узел" src="../images/tutorials/crud/68dbmanager-994.png" /></p>

 <p><li>Измените данные, сохраните их, выполните действие &quot;Refresh&quot; и убедитесь в том, что средство просмотра обновляется.

        </ul>
    </ol>
        <p>В этом разделе был рассмотрен способ обработки изменений полей <tt>JTextFields</tt> в платформе NetBeans. При изменении текста кнопки платформы NetBeans &quot;Undo&quot; и &quot;Redo&quot; будут включены или отключены. Кроме того, кнопка &quot;Save&quot; также корректно включается и отключается, что позволяет пользователю сохранять измененные данные в базу данных.

    <h3 class="tutorial"><a name="create"></a>Создание</h3>
    <p>В этом разделе пользователю предоставляется возможность создания новой записи базы данных.
    <ol>
        <li>Правой кнопкой мыши щелкните модуль <tt>CustomerEditor</tt> и выберите команду &quot;Создать действие&quot;. Используйте мастер &quot;New Action&quot; для создания нового действия &quot;Always Enabled&quot;. Новое действие должно отображаться в любом положении на панели инструментов и/или в строке меню. На следующем шаге мастера вызовите действие <tt>NewAction</tt>.

         <p class="tips">Убедитесь в наличии значка размером 16 на 16, который необходимо выбрать в мастере, если действие должно выбираться с панели инструментов.</p>
        <P><li>В действии &quot;New&quot; следует открыть компонент <tt>TopComponent</tt> вместе с пустыми полями <tt>JTextFields</tt>:

<pre class="examplecode">import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public final class NewAction implements ActionListener {

    public void actionPerformed(ActionEvent e) {
        EditorTopComponent tc = EditorTopComponent.getDefault();
        tc.resetFields();
        tc.open();
        tc.requestActive();
    }

}</pre>

         <p class="tips">Это действие внедряет класс <tt>ActionListener</tt>, который привязан к приложению через записи в файле layer. Эти записи создаются мастером &quot;New Action&quot;. Представьте себе легкость переноса существующего приложения Swing на платформу NetBeans при наличии возможности использования тех же классов <tt>Action</tt>, которые использовались в исходном приложении, без необходимости их изменения в соответствии с классами <tt>Action</tt>, предоставляемыми платформой NetBeans!</p>


<p>В компоненте <tt>EditorTopComponent</tt> необходимо добавить следующий метод для сброса полей текстовых полей <tt>JTextField</tt> и создания нового объекта <tt>Customer</tt>:

<pre class="examplecode">public void resetFields() {
    customer = new Customer();
    jTextField1.setText(&quot;&quot;);
    jTextField2.setText(&quot;&quot;);
}</pre>

        <p><li>В элементе <tt>SaveCookie</tt> следует убедиться в том, что возврат значения <tt>null</tt> указывает на сохранение новой записи, а не на обновление существующей записи:

<pre>public void save() throws IOException {

    Confirmation message = new NotifyDescriptor.Confirmation(&quot;Сохранить \&quot;&quot;
                    + jTextField1.getText() + &quot; (&quot; + jTextField2.getText() + &quot;)\&quot;?&quot;,
                    NotifyDescriptor.OK_CANCEL_OPTION,
                    NotifyDescriptor.QUESTION_MESSAGE);

    Object result = DialogDisplayer.getDefault().notify(msg);

    //Когда пользователь щелкает кнопку &quot;Yes&quot;, подтверждая сохранение,
            //следует отключить кнопку &quot;Сохранить&quot; и команду меню &quot;Сохранить&quot;,
            //чтобы они могли использоваться только при внесении следующего изменения 
            //в текстовое поле:
    if (NotifyDescriptor.YES_OPTION.equals(result)) {
        fire(false);
        EntityManager entityManager = Persistence.createEntityManagerFactory(&quot;CustomerLibraryPU&quot;).createEntityManager();
        entityManager.getTransaction().begin();
        <b>if (customer.getCustomerId() != null)</b> {
            Customer c = entityManager.find(Customer.class, cude.getCustomerId());
            c.setName(jTextField1.getText());
            c.setCity(jTextField2.getText());
            entityManager.getTransaction().commit();
        } else {
            <b>Query query = entityManager.createQuery(&quot;SELECT c FROM Customer c&quot;);
            List&lt;Customer&gt; resultList = query.getResultList();
            customer.setCustomerId(resultList.size()+1);
            customer.setName(jTextField1.getText());
            customer.setCity(jTextField2.getText());
            //Добавить дополнительные поля, заполняющие оставшиеся столбцы в таблице!
            entityManager.persist(customer);
            entityManager.getTransaction().commit();</b>
        }
    }

}</pre>

<p><li>Повторно запустите приложение и добавьте нового клиента в базу данных.

    </ol>

    <h3 class="tutorial"><a name="delete"></a>Удаление</h3>
    <p>В этом разделе пользователю предоставляется возможность удалять выбранную запись в базе данных. С помощью описанных выше приемов и кода внедрите действие &quot;Delete&quot; самостоятельно.
    <ol>
        <li>Создайте новое действие <tt>DeleteAction</tt>. Следует определить необходимость привязки действия к узлу Customer, к панели инструментов, к строке меню, к сочетанию клавиш или к комбинации этих вариантов. В зависимости от привязки следует использовать различные подходы к написанию кода. Повторно изучите учебный курс, обратив особое внимание на способ создания действия &quot;New&quot; в сравнении с действием корневого узла &quot;Refresh&quot;.
        <p><li>Получите текущий объект <tt>Customer</tt>, возвратите диалоговое окно &quot;Вы уверены?&quot; а затем удалите запись. Для получения дополнительных сведений повторно прочитайте учебный курс, в особенности ту часть, в которой реализуется функция &quot;Save&quot;. Вместо сохранения записи теперь производится ее удаление из базы данных.
    </ol>

</div>



    <!-- ======================================================================================== -->
    

    <h2><a name="nextsteps"></a>Дополнительная информация</h2>

    <p>На этом учебный курс по функциям CRUD в платформе NetBeans завершен. В этом документе описано создание нового приложения платформы NetBeans с функциональностью CRUD для определенной базы данных. Дополнительные сведения о создании и разработке приложений приведены в следующих ресурсах:
    <ul>
        <li><a href="https://netbeans.org/kb/trails/platform_ru.html">Учебная карта по платформе NetBeans</a></li>
        <li><a href="http://bits.netbeans.org/dev/javadoc/">Документация Javadoc по интерфейсам API в среде NetBeans</a></li>
    </ul>

    <!-- ======================================================================================== -->
    
</body>
</html>
