/**
  * {@inheritDoc}<br>
  * Обрабатываем лишь специфичные для детальной формы состояния.
  */
 @Override
 protected boolean isAcceptableWorkstate(WorkstateEnum workstate) {
   return SEARCH.equals(workstate)
       || CREATE.equals(workstate)
       || VIEW_DETAILS.equals(workstate)
       || EDIT.equals(workstate);
 }
 /**
  * Обработчик события Удалить.<br>
  * Метод вызывает диалог подтверждения удаления и, в обработчике ConfirmCallback, взывает
  * обработчик непосредственно удаления {@link #onDeleteConfirmation(Boolean, JepRecord)
  * onDeleteConfirmation}.
  *
  * @param event событие Удалить
  */
 public void onDoDelete(DoDeleteEvent event) {
   // Проверим состояние, чтобы обеспечить срабатывание данного обработчика только при активной
   // детальной форме.
   if (VIEW_DETAILS.equals(_workstate) || EDIT.equals(_workstate)) {
     messageBox.confirmDeletion(
         false,
         new ConfirmCallback() {
           public void onConfirm(Boolean yes) {
             onDeleteConfirmation(yes, currentRecord);
           }
         });
   }
 }
  protected void onChangeWorkstate(WorkstateEnum workstate) {
    fields.changeWorkstate(workstate);

    if (VIEW_DETAILS.equals(workstate)) {
      fields.setValues(currentRecord);
      updateScope(workstate);
    } else if (EDIT.equals(workstate)) {
      fields.setValues(currentRecord);
      updateScope(workstate);
    } else if (CREATE.equals(workstate)) {
      fields.clear();
      resetScope();
    } else if (SEARCH.equals(workstate)) {
      if (searchTemplate != null) {
        // Если есть сохраненные поисковые параметры, то восстановим их.
        fields.setValues(searchTemplate);
      } else {
        // Очистим поля, если сохраненные поисковые параметры отсутствуют.
        fields.clear();
      }

      resetScope();
    }
  }