Стартовая страница › Форумы › Разработка и интеграция › Разработка компонента соединительная линия
- В этой теме 11 ответов, 3 участника, последнее обновление 7 лет, 8 месяцев назад сделано
Taw.
-
АвторЗаписи
-
05.11.2018 в 06:34 #10631
TawУчастникХочу разработать компонент Соединительная линия. В упрощенном виде Соединительня Линия является классом, который должен содержать поля: id соединяемых элементов и номера портов компонентов к которым присоединена линия. Для простоты расмотрим что каждый компонент имеет только по одному порту. По идентификаторам соединяемых компонентов, можно всю информацию получить о их расположении и размере. И соответственно изобразить соединительную линию. Обновление изображения линии (при перетаскивании компонентов) надо завязать на Update. Также отдельная задача по выбору портов или компонентов в редакторе схем.
В свойствах каждого компонента имеется поле id, положение и размер.
Вопросы.
1. Как перебрать все компоненты в файле рендеринга по их id?
2. Файл рендеринга написан на JQuery?05.11.2018 в 18:05 #10634
MikhailМодераторИнтересная задача.
1. Список всех компонентов схемы хранится в классе scada.scheme.Scheme свойство this.componentMap. Однако из самого компонента к этому свойству нет доступа.
Вы можете получить все компоненты с помощью jQuery. Они имеют класс comp. Чтобы получить доступные порты, можно, например, использовать тег data-* для компонентов, которые поддерживают привязку.2. На JavaScript с использованием jQuery.
07.11.2018 в 06:14 #10643
TawУчастникЯ сделал на основе компонента линию с использование css. Вручную пока задаются координаты конца и начала линии. Как сделать чтобы фон компонента был прозрачным (transparency). А то компонент линия накрывает другие компоненты.

В рендеринге можно
this.setBackColor(divComp, props.BackColor, true, цвет);
Но какой цвет отвечает за прозрачность?
Если transparent, то исчезает линия. Все становится прозрачным.
this.setBackColor(divComp, props.BackColor, true, transparent);
Может прозрачный цвет надо установить в каком то специальном месте?07.11.2018 в 06:28 #10644
TawУчастникКогда устанавливаешь прозрачный цвет в конструкторе класса, то вообще никакой реакции.
public Line()
: base()
{
serBinder = PlgUtils.SerializationBinder;BackColor = «transparent»;
BorderColor = «transparent»;
BorderWidth = 3;
BorderOpacity = 30;
Action = Actions.None;
Conditions = new List<Condition>();
AddDefaultConditions();
InCnlNum = 0;
CtrlCnlNum = 0;
Size = DefaultSize;
}07.11.2018 в 10:19 #10645
TawУчастник?
07.11.2018 в 10:31 #10646
TawУчастникВсе надо в отладчике браузера делать.
07.11.2018 в 11:01 #10647
TawУчастникПрозрачную линию поверх любых компонентов с ручным указанием координат сделал.

Но все еще очень сыро07.11.2018 в 17:31 #10652
MikhailМодераторКаким образом в итоге удалось реализовать прозрачность?
Выглядит интересно.08.11.2018 в 06:57 #10655
baurУчастникэтого нам как раз не хватало, вот было бы стрелки и компонент почти готов. Потом дашь прощупать?
и что за LedT, LedP?-
Ответ изменён 7 лет, 8 месяцев назад пользователем
baur.
08.11.2018 в 09:14 #10660
TawУчастникLedP и LedT это когда светодиод квадратной формы и статическая картинка прозрачная тоже. Потому что static picture вживлена в схему. А ее выделил и сделал прозрачной (картинка на прозрачном фоне). Еще налепил компонентов кнопок с разными узорами как на веб страницах. Стрелки легко добавить.
08.11.2018 в 17:22 #10665
baurУчастникLedP и LedT это когда светодиод квадратной формы
это тоже мы уже спрашивали до этого, а есть планы по официальной публикации компонентов на GitHub? будем признательны …
09.11.2018 в 10:31 #10682
TawУчастникНадо довести библиотеку до ума сначала. Просто по работе загружен, времени почти нет. А эти компоненты чисто Сss. Не хочется битую библиотеку на GitHub выкладывать. А прозрачность с помощью Css делается.
-
Ответ изменён 7 лет, 8 месяцев назад пользователем
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.