> G>Это никак. Как ты из двух версий соберешь итоговый объект?
>
> Спрошу у пользователя какую оставить.
В общем случае пользователь не может сравнить две версии и сказать, какая корректная. Форма может быть сложная, с неявными зависимостями. Поэтому открываешь записанный объект, который прошел все проверки при записи и корректно размещен в системе, а затем вносишь изменения в него.
Вот представь: открыл ты документ, поправил дату, сохраняешь — а она тебе: уважаемый пользователь, вот тут у меня образовались две версии документа, какую выберешь??? А документ — вторая часть гражданского кодекса
Поскольку такие случаи бывают, стандартное поведение должно их учитывать.
> G>Зачем нам устаревшая?
>
> Затем что понял — был не прав
Нет, не так. В момент возникновения конфликта у тебя может быть три варианта:
Версия по состоянию на момент чтения данных формы
Версия, записанная другим пользователем в момент редактирования данных формы (если мы не используем блокировки).
Версия отредактированная в текущей форме.
Более правильным является возможность выбора либо свей уже отредактированной версии, либо сохраненной другим пользователем. Но по результату записи документа другим пользователем, версия по состоянию на момент чтения данных формы, а как следствие и текущая отредактированная версия уже могут стать некорректными. Например — необратимые операции удаления объекта или операции удаления ссылок из текущего объекта и удаления зависящих объектов. поэтому собственно и остается один вариант — Обновить.
Это в общем случае. А конкретная реализаци логики работы может позволять и такое поведение, как у тебя. Может быть и так, что сейчас она позволяет так делать, а завтра логика потребует приведения к типовому поведению. Поэтому лучше не заморачиваться и делать стандартно.
>>> "OK" по сути своей плохое название. На кнопках надо писать глаголы. Лучше всего сделать кнопку Выход/Закрыть и спрашивать уже там, в диалоговом окне вида Yes/No/Cancel стоит ли записывать изменения.
>
> G>"ОК" соглашусь, не очень хорошо. Но альтернатив пока не нашел.
>
> "OK" это универсальное решение. Как и всякое чрезмерно универсальное решение — оно плохое. Скажем в диалоге переименования объекта кнопки Rename/Cancel смотрятся лучше, чем OK/Cancel. В диалоге удаления Delete/Cancel, в диалоге создания Create/Cancel и т.д.
Точно так. Примеры только вот натянутые. Create соглашусь, а удалить и переименовать отдельных форм обычно не требуют.
Posted via RSDN NNTP Server 2.1 beta