Проект

Общее

Профиль

Улучшение #17

Выдача предупреждения при попытке повторного определения метода

Добавил(а) LastDragon около 9 лет назад. Обновлено почти 9 года назад.

Статус:
Закрыт
Приоритет:
Нормальный
Назначена:
Версия:
Дата начала:
24.06.2009
Дата завершения:
Готовность:

100%


Описание

В отличие от #16 выдавать предупреждение не при валидации диаграммы, а при попытке повторного определения метода.


Связанные задачи

связана с PHP5Plugin - Улучшение #16: Проверка повторного определения методов Новый 24.06.2009
связана с PHP5Plugin - Действие #23: Для #15 и #17 добавление отслеживания переименовывания методов Назначен 29.08.2009

Связанные редакции

Редакция 29 (Разница(diff))
Добавил(а) LastDragon почти 9 года назад

Сделано #17 - при попытке добавления нового метода, с таким же именем как у одного из существующих методов, будет показано предупреждение с возможностью удалить новый метод. Из-за особенностей EA клонирование методов не отслеживается.

Добавлены интерфейсы событий: Broadcast Events (основные), Pre-New Events и Post-New Events.

Редакция 32 (Разница(diff))
Добавил(а) LastDragon почти 9 года назад

Добавлена возможность прерывать обработку текущего события (реализовать должен сам плагин).

Сделано #5 - отложенное сохранение настроек (выполняется при вызове EA_Disconnect).
Сделано #15 - отслеживание попыток переопределения финальных методов.

Для issue #15, #17 добавлена корректная обработка клонирования (копирования) методов.

История

#1 Обновлено LastDragon почти 9 года назад

  • Параметр Назначена изменился на LastDragon
  • Параметр Версия изменился с 1.1 на 1.0

#2 Обновлено LastDragon почти 9 года назад

  • Параметр Готовность изменился с 0 на 10
Не нашел способа определить при вызове EA_OnPreNewMethod параметры создаваемого метода (кроме типа, родителя и еще пары бесполезных свойств). Поэтому проверка перенесена в EA_OnPostNewMethod. Работать это будет так:
  1. Пользователь создает метод
  2. Если метод с таким же названием уже существует, то показывает диалог с вопросом удалить или оставить этот метод и информация о существующем методе.
  3. Если ответ ДА метод остается
  4. Если НЕТ - удаляется

Кроме это из-за невозможности отследить переименовывание метода остается вероятность получения некорректной модели. #16 частично решает эту проблему.

#3 Обновлено LastDragon почти 9 года назад

  • Параметр Готовность изменился с 10 на 80

В очередной раз поразился разработчикам EA - казалось бы EA_OnPostNewMethod должен вызываться уже после того как метод создан и добавлен, НО оказывается, что при клонировании у клона (с другим названием) при вызове EA_OnPostNewMethod имя еще НЕ изменено (т.е. оно такое же как у родителя).

Для определения клона можно использовать тот факт, что у него Pos=оригинал.Pos, а у нового метода Pos=1000 (справедливо для EA 7.5.846 и 7.5.847, в остальных надеюсь также...). Способ определения настоящего имени клона мне неизвестен.

В данный момент клоны НЕ считаются новыми методами.

Определить при вызове EA_OnPostNewMethod является ли метод новым можно с помощью EAApp.IsNewMethod().

#4 Обновлено LastDragon почти 9 года назад

  • Параметр Статус изменился с Новый на Решен
  • Параметр Готовность изменился с 80 на 100

Реализовано в r29 редакции.

#5 Обновлено LastDragon почти 9 года назад

  • Параметр Статус изменился с Решен на Закрыт

Экспортировать в Atom PDF