Новые возможности Сообщение DenisKoronchik » 20 дек 2011, 13:25 Смысл данной темы заключается в том, что хотелось бы описать все новые и старые возможности ядра пользовательских интерфейсов. При этом задача ветки начать обсуждение и дальнейшее развитие. Тут пожелания и идеи будут только приветствоваться!!! Для начала начнем с уже имеющихся возможностей. Речь будет идти о реализации на языке Python (pySUIT версии 0.4.0). Редактирование sc.g-конструкций в рамках главного окна: создание узла - клик правой клавиши мыши в пустом месте окна создание дуги - клик правой клавиши мыши на начальном элементе, клик правой клавишей мыши на конечном элементе выделение - клик левой клавишей мыши на выделяемом объекте, если при этом зажата клавиша Shift, то выделяемый объект добавляется к уже выделенным выделить все - Left Ctrl + A (если что-то было выделено снимает все выделение) установка текстового идентификатора - выделить объект нажать клавишу 'i', в появившемся диалоге вписать идентификатор и нажать клавишу Enter (или кнопку Ok) изменение типа элемента - выделить объект, нажать клавишу 't', в появившемся диалоге выбрать нужный тип (они поделены на группы в зависимости от объекта, во время выбора типа объект сразу меняется визуально), после чего нажать Ok, чтобы применить или Cancel, чтобы отменить изменения создание окна - выделить объект, нажать клавишу 'c', в появившемся диалоге выбрать формат с которым будет работать окно, и указать тип создаваемого окна (редактор/просмотщик), если это необходимо, по нажатии кнопки Ok окно будет создано отображение/скрутие содержимого - выделить множество узлов с содержимым, нажать клавишу 'h'. При этом для каждого выделенного узла, содержимое которое отображалось будет скрыто, а то которое было скрыто, отобразится Инициирование команд (в качестве аргументов могут выступать только те элементы отображаемые на экране, которые были показаны пользователю из база знаний или же погружены им в базу знаний. Созданные пользователем элементы, но еще не погруженные в базу знаний (фиолетовый цвет), не могут быть указаны как аргументы): указание аргумента - клик левой клавишей мыши на объекте с нажатой клавишей 'Left Alt' на клавиатуре сброс аргументов - нажатие клавиш 'Left Alt + C' на клавиатуре Работа с окнами: разворачивание окна - кнопка 'F' сворачивание окна - кнопка 'Backspace' добавление окна во множество окон для вывода - Left Control + Left button click на элементе обозначающем окно Другие возможности: погрузка конструкции в память - 'Right Control + Enter' (вызывает трансляцию текущего развернутого окна в память) отображение элементарных действий пользователя - 'F2' Теперь о перспективах сейчас идет работа над добавлением 6-го типа компонентов - системные, которые также взаимодействуя через память будут помогать в работе системы. По сути это будут произвольные компоненты, которые позволяют редактировать и просматривать память иным образом. Примером таких компонентов будут - компоненты отображающие текущие выбранные для вывода окна, текущий язык локализации, просмотра истории диалога, и т.д. Для этого идет работа над новым дизайном, который делается в серых тонах, с последующей возможностью изменения раксраски. Изображение (scifi2.png) Ниже приведены команды редактора геометрических чертежей. Создание точек и отрезков аналогично тому, как происходит создание узлов и дуг в редакторе sc.g-конструкций. Создание окружности может происходить двумя способами: выделить точку (центр) окружности, выделить точку, которая лежит на окружности и нажать клавишу "C"; выделить точку (центр) и отрезок, который будет радиусом и нажать клавишу "C"; Установка свойств объектов: длина отрезка - выделить отрезок, и начать клавишу "L". В появившемся диалоге ввести значение длины отрезка периметр - выделить объект, который может иметь периметр и нажать клавишу "P". В появившемся диалоге ввести значение площадь - выделить объект, который может иметь площадь и нажать клавишу "S". В появившемся диалоге ввести значение Установка конгруэнтности (равенства) между объектами: выделить два объекта (одного типа) и нажать клавишу "E". Отношение будет установлено только в том случае, если оба из этих объектов, или хотябы один из них, не связаны отношением конгруэнтности с другими объектами. Создание угла: выделить два отрезка и нажать клавишу "A". При этом угол будет создан с левой стороны по ходу движения от первого отрезка ко второму через общую точку. Переключение между системными компонентами будет осуществляться с помощью панели справа внизу, которая сама является таким компонентом. Таким образом у разработчика есть возможность применять любой дизайн и расширять функционал. Далее данная тема будет пополняться по мере появления новых возможностей. Хотелось бы услышать идеи и предложения! DenisKoronchik Сообщение DenisKoronchik » 08 янв 2012, 02:12 Вот пару дней работы и все это выглядит вот так: Изображение (clipboard01rsu.jpg) DenisKoronchik Сообщение DenisKoronchik » 26 янв 2012, 01:48 Сегодня закончил, с новой возможностью ПИ, когда он может показывать какие кнопки нажимает пользователь на мыши и клавиатуре. А также включил по умолчанию новый алгоритм размещения. Что получилось можно посмотреть, обновившись с SVN. А также на небольшом видео-ролике: http://www.youtube.com/watch?v=FnRhOf35FkI DenisKoronchik Сообщение DenisKoronchik » 30 янв 2012, 00:52 Проведен ряд доработок в компоненте редактирования геометрических чертежей: добавлены углы; добавлены окружности; добавлена возможность создания точек на отрезках и окружностях; переработаны команды создания объектов. Изображение (clipboard01ktc.jpg) Создание окружности может происходить двумя способами: выделить точку (центр) окружности, выделить точку, которая лежит на окружности и нажать клавишу "C"; выделить точку (центр) и отрезок, который будет радиусом и нажать клавишу "C"; Создание угла происходит через выделение двух отрезков и нажатия клавиши "A". При этом угол будет создан с левой стороны по ходу движения от первого отрезка ко второму через общую точку. Пример работы можно посмотреть по ссылке: видео (http://www.youtube.com/watch?v=lPAeHlrWQ90) DenisKoronchik Сообщение DenisKoronchik » 06 фев 2012, 21:39 Добавлена возможность указывать конгруэнтность между объектами. Описание команд в первом посте. Изображение (5f2ath.jpg) DenisKoronchik