Разработка компонента соединительная линия

Стартовая страница Форумы Разработка и интеграция Разработка компонента соединительная линия

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)
  • Автор
    Записи
  • #10631
    Taw
    Участник

    Хочу разработать компонент Соединительная линия. В упрощенном виде Соединительня Линия является классом, который должен содержать поля: id соединяемых элементов и номера портов компонентов к которым присоединена линия. Для простоты расмотрим что каждый компонент имеет только по одному порту. По идентификаторам соединяемых компонентов, можно всю информацию получить о их расположении и размере. И соответственно изобразить соединительную линию. Обновление изображения линии (при перетаскивании компонентов) надо завязать на Update. Также отдельная задача по выбору портов или компонентов в редакторе схем.
    В свойствах каждого компонента имеется поле id, положение и размер.
    Вопросы.
    1. Как перебрать все компоненты в файле рендеринга по их id?
    2. Файл рендеринга написан на JQuery?

    #10634
    Mikhail
    Модератор

    Интересная задача.

    1. Список всех компонентов схемы хранится в классе scada.scheme.Scheme свойство this.componentMap. Однако из самого компонента к этому свойству нет доступа.
    Вы можете получить все компоненты с помощью jQuery. Они имеют класс comp. Чтобы получить доступные порты, можно, например, использовать тег data-* для компонентов, которые поддерживают привязку.

    2. На JavaScript с использованием jQuery.

    #10643
    Taw
    Участник

    Я сделал на основе компонента линию с использование css. Вручную пока задаются координаты конца и начала линии. Как сделать чтобы фон компонента был прозрачным (transparency). А то компонент линия накрывает другие компоненты.

    В рендеринге можно
    this.setBackColor(divComp, props.BackColor, true, цвет);
    Но какой цвет отвечает за прозрачность?
    Если transparent, то исчезает линия. Все становится прозрачным.
    this.setBackColor(divComp, props.BackColor, true, transparent);
    Может прозрачный цвет надо установить в каком то специальном месте?

    #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;
    }

    #10645
    Taw
    Участник

    #10646
    Taw
    Участник

    Все надо в отладчике браузера делать.

    #10647
    Taw
    Участник

    Прозрачную линию поверх любых компонентов с ручным указанием координат сделал.

    Но все еще очень сыро

    #10652
    Mikhail
    Модератор

    Каким образом в итоге удалось реализовать прозрачность?
    Выглядит интересно.

    #10655
    baur
    Участник

    этого нам как раз не хватало, вот было бы стрелки и компонент почти готов. Потом дашь прощупать?
    и что за LedT, LedP?

    • Ответ изменён 7 лет, 8 месяцев назад пользователем baur.
    #10660
    Taw
    Участник

    LedP и LedT это когда светодиод квадратной формы и статическая картинка прозрачная тоже. Потому что static picture вживлена в схему. А ее выделил и сделал прозрачной (картинка на прозрачном фоне). Еще налепил компонентов кнопок с разными узорами как на веб страницах. Стрелки легко добавить.

    #10665
    baur
    Участник

    LedP и LedT это когда светодиод квадратной формы

    это тоже мы уже спрашивали до этого, а есть планы по официальной публикации компонентов на GitHub? будем признательны …

    #10682
    Taw
    Участник

    Надо довести библиотеку до ума сначала. Просто по работе загружен, времени почти нет. А эти компоненты чисто Сss. Не хочется битую библиотеку на GitHub выкладывать. А прозрачность с помощью Css делается.

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)
  • Для ответа в этой теме необходимо авторизоваться.