стартуем проект. в нем есть вот такое замечательное требование:
61. Пользовательский интерфейс модуля «....» должен быть адаптирован к работе пользователя без мышки.
в связи с чем возникает вопрос какие есть способы этого добиться, сохраняя при этом максимльновозможное удобство UI?
понятно что tab и shift+tab никто не отменял, но при большом количесвтве элементов управления он не очень удобен.
есть мысль использовать шоткаты, размечаяя ими форму на "регионы". тогда у нас появляется возможность быстро навигироваться хотябы по "регионам". пусть это будут ctrl+1..9(0).
внутри региона тоже можно ввести навигацию по шоткатам, но уже по элементам управления. допустим alt+1..9(0). Если же внутри региона эл-тов управления больше 10, то можно метить не каждый, а скажем через 1(2..) на "непомеченные" попадаем через tab с ближайшего "помеченного"...
однако возникает вопрос как быть например с пользовательской настройкой сортировок наборов данных, с настройкой фильтрации и т.д. ???
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Здравствуйте, _MarlboroMan_, Вы писали:
_MM_>однако возникает вопрос как быть например с пользовательской настройкой сортировок наборов данных, с настройкой фильтрации и т.д. ???
сделать что-то вроде виртуальной консоли/командной строки. т.е. все что можно длеать через УИ, чтобы можно делать было отдавая команды. как в Риноцерусе к примеру. решение тяжелое конечно,но при сноровке (и достаточной частоте импользования диалоге), про мышку можно и забыть!
а еще, есть проги кокторые при зажатии определенной клавиши, к каждоум элементу диалога подрисовывают ярлычек с буквой ну и при нажатии соотв. буквы перекидывают на элемент фокус. Чертовский удобно! рекомендую попробовать для почерпания идей. правда ссылки не помню в одном из русских компутер-ориентед журналов была
Здравствуйте, IPv6, Вы писали:
IP>а еще, есть проги кокторые при зажатии определенной клавиши, к каждоум элементу диалога подрисовывают ярлычек с буквой ну и при нажатии соотв. буквы перекидывают на элемент фокус.
Здравствуйте, _MarlboroMan_, Вы писали:
_MM_>есть мысль использовать шоткаты, размечаяя ими форму на "регионы". тогда у нас появляется возможность быстро навигироваться хотябы по "регионам". пусть это будут ctrl+1..9(0). _MM_>внутри региона тоже можно ввести навигацию по шоткатам, но уже по элементам управления. допустим alt+1..9(0). Если же внутри региона эл-тов управления больше 10, то можно метить не каждый, а скажем через 1(2..) на "непомеченные" попадаем через tab с ближайшего "помеченного"...
Моё имхо — не надо делать такие громоздкие формы
_MM_>однако возникает вопрос как быть например с пользовательской настройкой сортировок наборов данных, с настройкой фильтрации и т.д. ???
У нас такая же фигня...
Сделали следующим образом
Ctrl+Enter — подтверждение, сохоранение, выбор
Shift+Esc — Отмена, отказ
Enter — переход к следующему контролу, если это поле ввода
F5 — печатные формы
Ну тогдалее. На самом деле можно сделать как хочешь — люди привыкают. Я видел как работаю на нашей програме профессионалы своего дела — так аж диву даюсь — они мышь не используют вообще (Используют что бы запустить программу).
_MM_>однако возникает вопрос как быть например с пользовательской настройкой сортировок наборов данных, с настройкой фильтрации и т.д. ???
Забыл сказать.
Сортировка и фильтрация — вызов окна горячей клавишей и дальше все просто.
Да и еще для очень важных полей ввода делаем горячие клавиши — из любого места формы можно прыгнуть туда.
Здравствуйте, IPv6, Вы писали:
IP>а еще, есть проги кокторые при зажатии определенной клавиши, к каждоум элементу диалога подрисовывают ярлычек с буквой ну и при нажатии соотв. буквы перекидывают на элемент фокус. Чертовский удобно!
+1. Если что, ярлычок == хинт.
Правда необходимо будет придерживаться некой системы значений шорткатов, чтоб одинаковые елементы на разных формах имели один и тот же шорткат.
_MM_>стартуем проект. в нем есть вот такое замечательное требование: _MM_>
_MM_>61. Пользовательский интерфейс модуля «....» должен быть адаптирован к работе пользователя без мышки.
Вполне логичное требование для тех модулей системы, которые отвечают за "быстрый" ввод данных. У нас в КИС — половина dll по этому принципу посроено.
Основные моменты:
минимум контролов на форме
если контролов много — разбиваем форму да две (вызов одной из другой — по хоткею)
переход по Enter
хоткеи на сохранение (ну отмена — по ESC)
Ну и дополнительные рюшечки — вроде грамотного расположения контролов и "правильного" taborder'а только приветствуются
PS: Без фидбека от пользователей будет трудновато...
Здравствуйте, _MarlboroMan_, Вы писали:
_MM_>61. Пользовательский интерфейс модуля «....» должен быть адаптирован к работе пользователя без мышки. _MM_>в связи с чем возникает вопрос какие есть способы этого добиться, сохраняя при этом максимльновозможное удобство UI?
Все-таки центральная задача при проектировании UI — обеспечить понятный (удобный) и адекватный (соответствующий задаче) интерфейс. Если решать задачу именно в такой постановке, держа при этом в уме, что нужно также обеспечить возможность чисто клавиатурной работы — то вполне можно что-нибудь придумать.
В частности, очевидно, что чем меньше элементов на экране — тем проще обеспечить клавиатурный интерфейс. Тут как раз вспоминаются принципы IUI/BBOP — в этих подходах каждый экран проще, а значит, меньше элементов.
Если же основной интерфейс должен быть сложным, а не простым — например, как в графическом редакторе — тут, вероятно, хорошим решением будет (уже предложенная) командная строка. Напомню, что в таких редакторах как AutoCAD (по крайней мере, ранних версий) и 3D Studio R4 была возможность вводить текстовые команды либо задавать координаты текстуально.
Здравствуйте, action_jackson711, Вы писали:
_>Вполне логичное требование для тех модулей системы, которые отвечают за "быстрый" ввод данных.
прикол-то как раз в том и состоит что основная задача не "быстрый ввод", а быстрый поиск.
и к сожалению "параметров поиска" много.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Здравствуйте, _MarlboroMan_, Вы писали:
_MM_>прикол-то как раз в том и состоит что основная задача не "быстрый ввод", а быстрый поиск. _MM_>и к сожалению "параметров поиска" много.
Злодейское решение: придумать язык запросов более простой чем SQL, естественно.
И пусть юзер вводит его в строку над листвьювом.
Например, у тебя есть 4 колонки, и ты хочешь отсортировать по второй и третьей: "2 3"
Здравствуйте, _MarlboroMan_, Вы писали:
_>>Вполне логичное требование для тех модулей системы, которые отвечают за "быстрый" ввод данных.
_MM_>прикол-то как раз в том и состоит что основная задача не "быстрый ввод", а быстрый поиск. _MM_>и к сожалению "параметров поиска" много.
Ну дай, подробностей, а?
Тайну фирмы можешь в попугаях выразить, но как-то задачку конкретизировать надо.
Здравствуйте, _MarlboroMan_, Вы писали:
_MM_>всем привет...
_MM_>стартуем проект. в нем есть вот такое замечательное требование: _MM_>
_MM_>61. Пользовательский интерфейс модуля «....» должен быть адаптирован к работе пользователя без мышки.
_MM_>в связи с чем возникает вопрос какие есть способы этого добиться, сохраняя при этом максимльновозможное удобство UI?
_MM_>понятно что tab и shift+tab никто не отменял, но при большом количесвтве элементов управления он не очень удобен.
_MM_>есть мысль использовать шоткаты, размечаяя ими форму на "регионы". тогда у нас появляется возможность быстро навигироваться хотябы по "регионам". пусть это будут ctrl+1..9(0). _MM_>внутри региона тоже можно ввести навигацию по шоткатам, но уже по элементам управления. допустим alt+1..9(0). Если же внутри региона эл-тов управления больше 10, то можно метить не каждый, а скажем через 1(2..) на "непомеченные" попадаем через tab с ближайшего "помеченного"...
_MM_>однако возникает вопрос как быть например с пользовательской настройкой сортировок наборов данных, с настройкой фильтрации и т.д. ???
Насколько я понял перед пользователем будет грид с данными.
Тогда ты можешь бегать по столбикам вправо-влево. Когда стоишь на столбе если нажать доспетим Ctrl+UP — то это сортировка по возрастанию. Хочешь изменить фильтр, то нажми кнопку Crtl+F и вывалится окно с фитром по столбцу. Тут главное чтобы юзверь не стал извращаться со сложными отборами типа если (столбец1=1 и столбец2!=3).
Здравствуйте, nzeemin, Вы писали:
N>... вероятно, хорошим решением будет (уже предложенная) командная строка. Напомню, что в таких редакторах как AutoCAD (по крайней мере, ранних версий) и 3D Studio R4 была возможность вводить текстовые команды либо задавать координаты текстуально.
Есть до сих пор и не собирается никуда деватся. Для клавиатурной работы я использую шорткаты, но главное они должны быть по возможности короткими, то есть без всяких Ctrl Shift, для самых частых операций, ну и при выборе шорткатов стоит учитывать раскладку клавиатуры, чтоб не нужно было сильно переносить руки, по этому для частых операций для меня плохим решением считается пользоватся F-клавишами, но в то же время шорткаты не должны нажиматся случайно, то есть рядом выключение програмы и закрытие страницы, как в Опере по дефолту Ctrl-Q и Ctrl-W, там спасает только то что я включил вывод диалога подтверждения выхода(в собственном приложении, это тоже неплохая идея, диалог подтверждения на критические операции). А вообще думаю стоит перенять опыт у других разработок, особенно консольных Far, Vim, думаю они дадут неплохие идеи.
Здравствуйте, _MarlboroMan_, Вы писали:
_MM_>в связи с чем возникает вопрос какие есть способы этого добиться, сохраняя при этом максимльновозможное удобство UI?
_MM_>понятно что tab и shift+tab никто не отменял, но при большом количесвтве элементов управления он не очень удобен.
_MM_>однако возникает вопрос как быть например с пользовательской настройкой сортировок наборов данных,
с настройкой фильтрации и т.д. ???
Конечно для полного ответа нужно детаьлное понимание поставленной задачи. Из твоих объяснений не очень понятно что за UI.
Могу посоветовать изучть IntelliJ IDEA вот, уже инструмент с которым за мышью тянутся совсем не охота.
Можно понатырить оттуда идей, вроде быстрой навигации по дереву. Например, когда в дереве набираешь текст — появляется field с текстом. А по введенному тексту selection устанавливается на наиболее подходящую ноду дерева. И подобных трюков у JetBrains навалом.
Здравствуйте, _MarlboroMan_, Вы писали:
_MM_>всем привет...
_MM_>стартуем проект. в нем есть вот такое замечательное требование: _MM_>
_MM_>61. Пользовательский интерфейс модуля «....» должен быть адаптирован к работе пользователя без мышки.
_MM_>в связи с чем возникает вопрос какие есть способы этого добиться, сохраняя при этом максимльновозможное удобство UI?
Мы проектируем одну программу для Дантистов, и у нас тоже есть требование — Чтобы Программу можно было использовать
на рабочем месте дантиста. т.е. сидя у кресла с пациентом, Врач должен иметь возможность работать с программой только с помощью клавиатуры .
Мы придумали такой режим — Chair-side mode. где можно работать с программой в сокращенном режиме (не все функции возможны) одной рукой.
При этом все команды даются через NumPad — 'цифровую клаву" на клаве (там где стрелки и цифры).
При этом программе появляется "летучая" подсказка которая показывает справку по кнопкам.
Далее после изучения команд эту справку можно отключить.
Удачи тебе. обязательно покажи что у тебя получится
Здравствуйте, shilon, Вы писали:
S>Мы проектируем одну программу для Дантистов, и у нас тоже есть требование — Чтобы Программу можно было использовать S>на рабочем месте дантиста. т.е. сидя у кресла с пациентом, Врач должен иметь возможность работать с программой только с помощью клавиатуры .
Если есть такая возможность, для дантистов более подошёл бы экран чувствительный к нажатию. Переключаться между экраном и клавиатурой здесь — огромная потеря времени, да и клавиатура — лишний девайс когда и так оборудования полно. Либо мини-клавиатура непосредственно под экраном.
Здравствуйте, ailurus, Вы писали:
A>Здравствуйте, IPv6, Вы писали:
IP>>а еще, есть проги кокторые при зажатии определенной клавиши, к каждоум элементу диалога подрисовывают ярлычек с буквой ну и при нажатии соотв. буквы перекидывают на элемент фокус.
A>В Lotus Notes 6.5 точно такое есть.
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, ailurus, Вы писали:
A>>Здравствуйте, IPv6, Вы писали:
IP>>>а еще, есть проги кокторые при зажатии определенной клавиши, к каждоум элементу диалога подрисовывают ярлычек с буквой ну и при нажатии соотв. буквы перекидывают на элемент фокус.
A>>В Lotus Notes 6.5 точно такое есть.
J>Есть, но глючит (как обычно в лотусе, впрочем)