Страница 1 из 43

Шаблон класса / Class Template

Добавлено: Пт ноя 18, 2016 6:41 pm
sergejey
Ещё одна очень экспериментальная и, как по мне, весьма интересная штука для разработчиков -- шаблон класса.

В настройках класса объектов появилась дополнительная закладка Template (Шаблон) -- туда можно вводить HTML/javascript код, который будет отвечать за визуальное представление и поведение всех объектов данного класса, если они будут добавлены в сцену.
Изображение

Код шаблона:

Код: Выделить всё

<div style='display:%.status|"none;block"%' onClick='callMethod("%.turnOff");'>Включено</div>
<div style='display:%.status|"block;none"%' onClick='callMethod("%.turnOn");'>Выключено</div> 
Как видно из примера, в шаблоне можно использовать HTML для отображения, а так же Javascript для поведения. В шаблоне не указывается конкретное имя объекта, а только свойства и методы, т.к. шаблон применяется ко всем объектам данного класса.

Соответственно, теперь в сцену можно добавить такой тип элемента, как Объект:
Изображение

И он будет выведен и вести себя на сцене в соответствии с шаблоном:
Изображение

Для чего эта возможность вводилась -- для того, чтобы можно было создавать модель взаимодействия с объектом и многократно её использовать в интерфейсе. Если не понятно, то, скорее всего, оно вам и не нужно :)

Re: Шаблон класса / Class Template

Добавлено: Пт ноя 18, 2016 8:07 pm
Rad81
невозможно редактировать Template

Re: Шаблон класса / Class Template

Добавлено: Пт ноя 18, 2016 10:00 pm
sergejey
Сорри, торопился загрузить и пропусти один файл. Теперь должно быть ок.

Re: Шаблон класса / Class Template

Добавлено: Пт ноя 18, 2016 11:06 pm
Rad81
Был бы хорош если можно было сделать так что бы Привязка была с Меню управления.
Сцена тоже хорош

Re: Шаблон класса / Class Template

Добавлено: Вс ноя 20, 2016 11:58 pm
sergejey
Rad81 писал(а):Был бы хорош если можно было сделать так что бы Привязка была с Меню управления.
Сцена тоже хорош
Да, я думал об этом. Пожалуй, следующим шагом будет добавление объектов в меню и чтобы оно работало одинаково и там и там.

Re: Шаблон класса / Class Template

Добавлено: Пн ноя 21, 2016 5:41 pm
sergejey
Теперь есть возможность добавления объектов в меню управления. Используется тот же механизм, что и в сценах. Теоретически, с помощью единого шаблона класса теперь можно вставлять элементы и в меню и на сцены. Дальше дело за рецептами красивых шаблонов для различных объектов. К примеру, вот так может выглядеть шаблон для термостата:
Изображение

Re: Шаблон класса / Class Template

Добавлено: Сб дек 03, 2016 4:38 pm
ivannag
Спасибо, Сергей за новую ооочеееньььь полезную фичу)
Теперь я так понимаю можно наделать готовых шаблончиков на подобие дизайна фибаро или вера для разных классов объектов и несколькими кликами вставлять их на сцены.

Помогите пожалуйста разобраться (гугление только запутало еще больше), если у меня свойство status принимает 4 значения (0,1,2,3) то как в коде организовать выбор варианта отображения?

Re: Шаблон класса / Class Template

Добавлено: Вс дек 04, 2016 5:18 pm
sergejey
ivannag писал(а):Спасибо, Сергей за новую ооочеееньььь полезную фичу)
Теперь я так понимаю можно наделать готовых шаблончиков на подобие дизайна фибаро или вера для разных классов объектов и несколькими кликами вставлять их на сцены.

Помогите пожалуйста разобраться (гугление только запутало еще больше), если у меня свойство status принимает 4 значения (0,1,2,3) то как в коде организовать выбор варианта отображения?
Такая конструкция заменит числовое значение на текст:
%.status|"zero;one;two;three"%

если хотите сделать так, что б определённый блок отображался только при каком-то значении, то можно сделать так:

Код: Выделить всё

<div style='display:%.status|"none;none;none;block"%'>...</div> 
и данный блок покажется только когда статус будет равен 3

Re: Шаблон класса / Class Template

Добавлено: Пн дек 05, 2016 12:23 am
ivannag
Спасибо. Теперь в несколько кликов удается привязать к объекту элемент управления с 4-ма состояниями, соответствующими им действиями и с СSS стилями в придачу))

Теперь возникают следующие вопросы)):
1. как при вызове метода передать ему параметры? делаю шаблон для LMS плееров и хочу слайдером устанавливать громкость.

Код: Выделить всё

 <input type="range" value="%.Volume%" oninput='callMethod("%.Volume", ????????);' min="0" max="100" step="5">
пробовал что-то вроде array("value"=>$value) (и в методе работать с переменной $value) но ничего не вышло... метод вызывается только если вообще не посылать параметры... очевидно что-то не так делаю... но ума не приложу что именно...(
Сражу скажу, что слайдеры через Menu Item пробовал... но на сценах они очень долго подгружаются и кривовато работают... да и геморно очень каждый раз все настраивать для новых объектов... а тут открываются совсем новые возможности))

2. реально ли для style='display:%.status обрабатывать логические выражения? чтобы можно было в шаблоны интегрировать что-то вроде информеров со сменой оформления для разных диапазонов значений?

п.с. прошу сильно не пинать, если хочу слишком многого... просто я только учусь и пока моя фантазия опережает мои умения))

Re: Шаблон класса / Class Template

Добавлено: Пн дек 05, 2016 10:33 am
nick7zmail
ivannag писал(а): пробовал что-то вроде array("value"=>$value) (и в методе работать с переменной $value) но ничего не вышло... метод вызывается только если вообще не посылать параметры... очевидно что-то не так делаю... но ума не приложу что именно...(
Сражу скажу, что слайдеры через Menu Item пробовал... но на сценах они очень долго подгружаются и кривовато работают... да и геморно очень каждый раз все настраивать для новых объектов... а тут открываются совсем новые возможности))
Передали параметр правильно, забираете неправильно)) Забирать надо то что переменной value в методе из $params['value'].

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