поведение интерфейса проводника

Обсуждение возникших проблем, предложений и ошибок dbForge для MySQL
LSTemp
Сообщения: 51
Зарегистрирован: Вс 18 июл 2010 22:12

поведение интерфейса проводника

Сообщение LSTemp » Вс 25 июл 2010 00:04

Здравствуйте.

- делаю двойной щелчек но названию соединения - соединение устанавливается и открывается
- далее выбираю из контекстного меню этого соединения "закрыть" - соединение рвется
- все последующие двойные клики на этом закрытом в текущий момент соединении приводят лишь к раскрытию/закрытию дерева объектов.

Мне кажется, что действие по умолчанию на закрытом соединении в проводнике, должно быть реализовано как попытка установить это соединение.

Я что помнить должен обращался я уже хоть раз к БД, через указанное соединение? То ли двойной клик в проводнике, то ли на "обновление" тыкать, то ли ч/з контекстное меню лезть, чтоб соединение установить... Плохо... Ни в какие ворота... Одни и те же действия на одном и том же элементе интерфейса должны приводить к одному и тому же результату (как правило..., а в данном случае - совершенно точно).

PS
проще данной логики работы быть не может:
- соединение не установлено: открыть соединение
- соединение установлено: развернуть/свернуть список объектов в дереве

Duke
Devart Team
Сообщения: 93
Зарегистрирован: Пт 03 окт 2008 11:10
Контактная информация:

Сообщение Duke » Пн 26 июл 2010 09:25

Здесь не нужны никакие дополнительные действия.
Соединение автоматически откроется, как только понадобятся дополнительные данные с сервера, или будет отправлен запрос из SQL-документа.
Если бы мы реализовали предлагаемое Вами поведение, то при закрытии соединения приходилось бы закрывать всю ветку соединения в дереве. Некоторые программы так делают, однако мы не считаем такое поведение удобным.

LSTemp
Сообщения: 51
Зарегистрирован: Вс 18 июл 2010 22:12

Сообщение LSTemp » Пн 02 авг 2010 08:56

Хмм.. именно такое поведение на мой взгляд и удобно. Если соединение закрыто, то какой смысл отображать неактуальную информацию? Если в момент установленного соединения еще как-то можно отслеживать изменения БД, то при закрытом соединении смысл отображения подобной информации просто равен нулю (и даже ниже - ибо жрет интерфейсное пространство, необходимое для отображения актуальных в данный момент данных).

Смотрите:

- я открываю соединение с БД. дерево раскрывается - я визуально наблюдаю в проводнике, что я подключен. дерево объектов БД развернуто.

- я закрываю соединение, визуально наблюдаю в проводнике, что я отключен, дерево развернуто.

- я сворачиваю дерево (уже лишнее действие. у меня там 20-ть тестовых баз например, из которых я одновременно с 5-7-ю работаю - нафик мне это дерево отключенное в развернутом виде, если я ЯВНО сам работу завершил с БД? одна "польза" - лишний скролл по окну проводника).

- теперь чтоб вновь подключиться к БД я вместо одного действия (клика на нее) должен выполнить два: 1-й тырк будет разворачивать дерево этой БД (вот я дырявая голова - забыл ведь, что уже подключался к этой БД со времени последнего перезапуска клиента :shock: ), и только второй тырк на объекте самой БД (чтобы Ваш клиент догадался, что "пора бы подключиться и информацию обновить") приведет к желаемому результату.

Теперь вопрос. Еще раз. Я что должен помнить к какой из 20-ти БД я уже подключался, чтобы добиться нужного результата от интерфейса? Где-то один раз тыкать, а где-то два. А как на счет унификации отклика Вашего интерфейса на действия пользователя? Мне извините работать надо, а не в угадалки играть.

Вот когда тыкнул на БД - подключилась+развернулась, отключился - свернулась, то все просто, понятно и хорошо: вкл/выкл.
А когда я "щелкунчиком" по дереву интерфейса проводника работаю и не знаю к чему это приведет - это хреново.

Уважаемый Duke, поясните пожалуйста фразу "однако мы не считаем такое поведение удобным", если можете.

Duke
Devart Team
Сообщения: 93
Зарегистрирован: Пт 03 окт 2008 11:10
Контактная информация:

Сообщение Duke » Пн 02 авг 2010 09:39

Есть и обратная сторона медали. У пользователя может быть не двадцать, а одно-два соединения и он прекрасно знает, с какой базой работает и дерево сворачивать ему совсем не нужно. Но вот, если возникнет ошибка типа Lost Connection, которая приводит к тому, что соединение нужно закрыть, то дерево схлопнется, что вызовет у пользователя раздражение.

Логика интерфейса рассчитана на то, чтобы как можно меньше думать о том, открыто соединение или закрыто, просто работать с базой и всё. Если ветка дерева мне мешает, я просто ее закрываю. Лично я не совсем понимаю, с чем связана необходимость постоянно открывать и закрывать соединение (разве что с жестким ограничением ресурсов сервера).

LSTemp
Сообщения: 51
Зарегистрирован: Вс 18 июл 2010 22:12

Сообщение LSTemp » Пн 02 авг 2010 12:40

Duke писал(а):Есть и обратная сторона медали. У пользователя может быть не двадцать, а одно-два соединения и он прекрасно знает, с какой базой работает и дерево сворачивать ему совсем не нужно. Но вот, если возникнет ошибка типа Lost Connection, которая приводит к тому, что соединение нужно закрыть, то дерево схлопнется, что вызовет у пользователя раздражение.
1) Ваш проект имеет коммерческую составляющую. Стало быть говорить о 1-2 обслуживаемых БД - это просто ...

2) Это "раздражение" даст разработчику РЕАЛЬНУЮ информацию о состоянии соединения. Картинки пусть MS рисует - для нормального инструмента важно точно отображать текущую ситуацию.

3) Абсолютно не обязательно закрывать дерево объектов БД, если это вызвано ошибкой связи, а не действиями пользователя. И разумеется в этом случае он должен получить сообщение об ошибке, что является не стандартной ситуацией в работе программы и в данный момент не обсуждалось.
Duke писал(а):Логика интерфейса рассчитана на то, чтобы как можно меньше думать о том, открыто соединение или закрыто,...


Сейчас по щелчку на соединении (клиент .303.1) 3-и реакции аж!!! :
- открыть (если до этого не открывали),
- развернуть/свернуть дерево (если связь с БД уже открывали до этого)
- переименовать соединение (а тут вообще как повезет с двойным кликом :shock: ).

Странная логика. По меньшей мере. Тут Вы правы - думать смысла нет. Тут как повезет, когда на соединение кликнешь... Игрушка-угадайка, а не интерфейс.
Duke писал(а): Если ветка дерева мне мешает, я просто ее закрываю. Лично я не совсем понимаю, с чем связана необходимость постоянно открывать и закрывать соединение (разве что с жестким ограничением ресурсов сервера).


Связано в первую очередь с разработкой и обслуживание большого колличества БД. Как результат - большое количество соеденений, зарегестрированных в Вашем клиенте.

Попробуйте ради интереса хотя бы с 10-ком серверов поработать на каждом из которых не меньше 4-5 баз. Развернутая ветка одного сервака обеспечит Вам оочень долгий скролл. А на 2-х уже станет трудно работать, а на 5-и и больше - скролить можно весь день.

Спасибо за внимание.

PS
При хорошем коннекте, затраты времени на установку связи с БД практически незаметны, по сравнению со временем операций, которые над ней выполняются. Отсюда совсем непонятно попытка Ваших выдумок "интерактивной установки связи с БД", которая только осложняет ситуацию и приводит к неоднозначной реакции интерфейса на одинаковые действия.

Duke
Devart Team
Сообщения: 93
Зарегистрирован: Пт 03 окт 2008 11:10
Контактная информация:

Сообщение Duke » Пн 02 авг 2010 13:36

Если подсуммировать, все вышесказанное и учесть Ваши посты в другом топике. То напрашивается вывод о том, что Вам не хватает одной простой функции: закрыть текущее соединение из главного меню, чтобы при этом ветка соединения свернулась.
Если я правильно понял, то мы добавим это в список наших фич на новые версии.

P.S.
Поскольку мы тестируем нашу программу на разных версиях серверов, то мы представляем, что такое работать с десятком соединений.

LSTemp
Сообщения: 51
Зарегистрирован: Вс 18 июл 2010 22:12

Сообщение LSTemp » Пн 02 авг 2010 15:00

Duke писал(а): P.S.
Поскольку мы тестируем нашу программу на разных версиях серверов, то мы представляем, что такое работать с десятком соединений.
Тогда зачем был детсад про 1-2 соединения?

Я хочу, чтобы ОДИНАКРВЫЕ действия, на ОДНОМ И ТОМ ЖЕ элементе интерфейса, приводили к ОДНИМ И ТЕМ ЖЕ действиям Вашего клиента.

В частности я по моему подробно описал поведение окна проводника. Если Вы считаете , что 3-и непредсказуемых результата однотипного воздействия на элемент этого окна - это как раз то, чего пользователю не хватает, то моя :arrow: (где тут стрелка на север?).

Duke
Devart Team
Сообщения: 93
Зарегистрирован: Пт 03 окт 2008 11:10
Контактная информация:

Сообщение Duke » Ср 04 авг 2010 09:26

Извините, но не я не могу с Вами согласиться в том, что поведение UI непредсказуемое. Оно вполне предсказуемое, просто Вам оно не нравится.
Мы всегда стараемся учитывать мнения наших пользователей. Однако нередко бывает, что мы получаем прямо противоположные отзывы по поводу одной и той же функциональности.
Мы учтем Ваши пожелания в дальнейшей разработке, однако я не могу Вам гарантировать, что они будут полностью удовлетворены.

LSTemp
Сообщения: 51
Зарегистрирован: Вс 18 июл 2010 22:12

Сообщение LSTemp » Ср 11 авг 2010 18:04

Duke писал(а):Извините, но не я не могу с Вами согласиться в том, что поведение UI непредсказуемое. Оно вполне предсказуемое, просто Вам оно не нравится.
Мы всегда стараемся учитывать мнения наших пользователей. Однако нередко бывает, что мы получаем прямо противоположные отзывы по поводу одной и той же функциональности.
Мы учтем Ваши пожелания в дальнейшей разработке, однако я не могу Вам гарантировать, что они будут полностью удовлетворены.
замечательно! ответьте мне тогда КАК я могу предсказать в частности реакцию IF на двойной клик в проводнике на имени соединения?

PS
мне даже странно об этом спрашивать уже..
PSS
и стесняюсь спросить зачем разработчику или активному клиенту БД использовать Ваш продукт в оффлайн?? нормальная реакция на изменения БД без поддержки связи с сервером невозможна в принципе. нахрена мне картинки "НИ О ЧЕМ"?
PSSS
хоть на тот же IBExpert посмотмотрите в конце концов.
Последний раз редактировалось LSTemp Ср 11 авг 2010 19:08, всего редактировалось 4 раза.

LSTemp
Сообщения: 51
Зарегистрирован: Вс 18 июл 2010 22:12

Сообщение LSTemp » Ср 11 авг 2010 18:11

Duke писал(а):Если подсуммировать, все вышесказанное и учесть Ваши посты в другом топике.
не надо суммировать. я по ошибке не в тот топик ответ скопипастил (его по ходу удалили). давайте мухи от котлет отделять. если я создал отдельный топик - значит это отдельная проблема и разговор по ней.

С Уважением.

Duke
Devart Team
Сообщения: 93
Зарегистрирован: Пт 03 окт 2008 11:10
Контактная информация:

Сообщение Duke » Чт 12 авг 2010 08:51

LSTemp писал(а):замечательно! ответьте мне тогда КАК я могу предсказать в частности реакцию IF на двойной клик в проводнике на имени соединения?
Реакция стандарная для TreeView. Если ветка закрыта, то она открывается, если открыта - закрывается.
Если Вы думаете, что мне до сих пор непонятна Ваша точка зрения на этот вопрос, то Вы ошибаетесь.
Ранее я уже писал следующее.
Duke писал(а):Мы всегда стараемся учитывать мнения наших пользователей. Однако нередко бывает, что мы получаем прямо противоположные отзывы по поводу одной и той же функциональности.
Мы учтем Ваши пожелания в дальнейшей разработке, однако я не могу Вам гарантировать, что они будут полностью удовлетворены.

LSTemp
Сообщения: 51
Зарегистрирован: Вс 18 июл 2010 22:12

Сообщение LSTemp » Пт 20 авг 2010 01:46

Duke писал(а):
LSTemp писал(а):замечательно! ответьте мне тогда КАК я могу предсказать в частности реакцию IF на двойной клик в проводнике на имени соединения?
Реакция стандарная для TreeView. Если ветка закрыта, то она открывается, если открыта - закрывается.
Если Вы думаете, что мне до сих пор непонятна Ваша точка зрения на этот вопрос, то Вы ошибаетесь.
Ранее я уже писал следующее.
Duke писал(а):Мы всегда стараемся учитывать мнения наших пользователей. Однако нередко бывает, что мы получаем прямо противоположные отзывы по поводу одной и той же функциональности.
Мы учтем Ваши пожелания в дальнейшей разработке, однако я не могу Вам гарантировать, что они будут полностью удовлетворены.
мая уже плакать!

Ваша "стандарная для TreeView" не более чем картинка на экране. я же говорю о функционале, который к этой картинке привязан.

Вам русским по белому написали все возможные возможные реакции на клик:
- открыть дерево
- закрыть дерево
- открыть дерево + БД

Вам не кажется странным, что для узла TreeView, у которого только 2-а состояния (свернут/раскрыт) мы имеем 3-и действия?

Опять же банальное отсутствие кнопок на тулбаре: конект/дисконект. Я мля ч/з контекст должен лезть чтоб соединение закрыть? А чтоб открыть его кликом в проводнике, должен помнить открывал я его уже или нет? ЧТО ЗА БРЕД???!!!

1) Вы так и не ответили на мой вопрос: как я это должен "предсказать"
2) Вы видимо действительно не желаете вникнуть в суть проблемы - иначе бы не уходили от темы и не отделывались общими фразами
3) каким же образом Вы тогда собираетесь найти "возможное" решение?

С Уважением.

AlexZ
Devart Team
Сообщения: 146
Зарегистрирован: Пн 20 окт 2008 14:59
Контактная информация:

Сообщение AlexZ » Пт 20 авг 2010 06:58

LSTemp писал(а):Опять же банальное отсутствие кнопок на тулбаре: конект/дисконект. Я мля ч/з контекст должен лезть чтоб соединение закрыть? А чтоб открыть его кликом в проводнике, должен помнить открывал я его уже или нет? ЧТО ЗА БРЕД???!!!
По поводу кнопок, возможно Вы правы. Мы рассмотрим их добавление при работе над следующей версией продукта.
LSTemp писал(а): 1) Вы так и не ответили на мой вопрос: как я это должен "предсказать"
2) Вы видимо действительно не желаете вникнуть в суть проблемы - иначе бы не уходили от темы и не отделывались общими фразами
3) каким же образом Вы тогда собираетесь найти "возможное" решение?
На счет "предсказать", на данный момент в Database Explorer об открытом или закрытом соединении сигнализирует только иконка узла соединения. В целом, как говорил Duke, Проводник построен таким образом, чтобы пользователь не заботился о том, чтобы перед своими действиями открыть соединение - оно откроется автоматически по необходимости.
А вот в случае, когда Вам нужно понять, открыто соединение или нет - тут Вы правы.. Возможно присматриваться к иконке не совсем удобно. Поэтому мы подумаем над тем, как еще обозначить состояние соединения в Database Explorer (например, имя соединения выделить жирным или еще что-нибудь). Кстати, если будут кнопки на тулбаре, то они тоже будут сигнализировать о состоянии соединения, правда для этого нужно будет выделить узел в Проводнике :)

Спасибо за предложения.

LSTemp
Сообщения: 51
Зарегистрирован: Вс 18 июл 2010 22:12

Сообщение LSTemp » Пн 23 авг 2010 18:13

AlexZ писал(а): Проводник построен таким образом, чтобы пользователь не заботился о том, чтобы перед своими действиями открыть соединение - оно откроется автоматически по необходимости.
2AlexZ: спасибо за ответ

1) в том то и дело, что соединение автоматически не открывается, если перед этим было закрыто. происходит просто развертывание ветки проводника. соединение с БД не устанавливается и это значит, что я вижу отображение структуры БД на момент закрытия соединения.

2) ключевая фраза здесь "перед своими действиями". а как на счет нескольких разработчиков, которые параллельно вносят свои изменения в структуру БД?

моя работа диктует "необходимость" работать с достоверной версией данных, а не с теми, которые были получены с момента последнего закрытия БД.

3) предлагаю такую реализацию:

- клик на значке узла дерева ([+]/[-]) сворачивает/разворачивает ветку дерева, как это реализовано сейчас (с открытием соединения к БД, если оно до этого не было установлено)

- клик на ИМЕНИ соединения в узле дерева сворачивает/разворачивает ветку дерева, и при развертывании ВСЕГДА открывает соединение с БД, ели оно не установлено на ТЕКУЩИЙ момент.

- закрытие соединения производится ч/з:
* пункт главного меню
* контекстное меню соединения
* кнопка на тулбаре

при предложенной реализации имеем 4-ре варианта перехода из одного состояния в другое и 3-и конечных состояния.

при текущей реализации имеем варианта 2-а перехода из одного состояния в другое и 3-и конечных состояния.

очевидно, что текущая реализация контекстно-зависима (и звисима в первую очередь от разработчика ;)) и не позволяет пользователю получить в данный момент ИМЕННО то, что он желает.

PS
вопрос не о визуализации, а о реализации адекватного функционала интерфейса. но Ваша идея мне нравиться. жирного выделения имени соединения будет вполне достаточно. можно сделать это опционально. я точно знаю нескольких людей, которых бы это раздражало, но лично мне - нравиться :).

JayDi
Сообщения: 61
Зарегистрирован: Пт 28 ноя 2008 18:29
Откуда: Россия, г.Сызрань
Контактная информация:

Сообщение JayDi » Пн 23 авг 2010 20:01

:shock: Такой сыр-бор :shock: Из-за каких-то мелочей (не подходят картинки со статусом соединения, двойной клик не так работает) менять всю логику работы программы и жертвовать удобством и стабильностью работы? Ужас...

Сейчас логика работы проводника и в целом всей программы сделана так, чтобы мы не заботились о том, подключены сейчас к базе или нет -- связь с сервером устанавливается автоматически и только при надобности.

Особенно актуально при нестабильном соединении и работе с удаленными базами данных, которые могут легко прервать связь в самый неподходящий момент.

Такое ощущение, что автор топика даже не в курсе этих проблем: сворачивание всего дерева при разрыве соединения, показ сообщения с ошибкой при обрыве связи и т.п. -- это просто верх юзабилити, пользователи будут счастливы.

Закрыто