Связывание атрибутов виджетов вручную
Автор |
Сообщение |
Сообщение создано: 21. 03. 2013 [14:44]
|
hyper_sonic
Роман Федоров
Создатель темы
Зарегистрирован(а) с: 13.09.2011
Сообщения: 13
|
День добрый.
У меня вопрос по VCA.
А вернее по связыванию виджетов...
Пытаюсь из панели управления передать значение аттрибута в аттрибут виджета страницы мнемокадра.
В виджете панели управления настраиваю связь:
atrrib1 wdg:a_attrib1 В свойствах аттрибута указал что обрабатывается и имеет полную связь
atrrib2 wdg:a_attrib2 В свойствах аттрибута указал что обрабатывается и имеет полную связь
Раньше использовал динамическое связывание все работало, но он мне не нравится потому что связывание происходило только с аттрибутами виджетов содержащихся на странице, но не с аттрибутами самой страницы.
Перешел на явное связывание но он не работает...
Смущает только, что записано он как тождественное выражение в примере и что не предназначено для установки пользователем:
""wdg:/ses_AGLKS/pg_so/pg_1/pg_ggraph/pg_1/a_bordColor ==ЇЇ" осуществляет доступ атрибута одного виджета к атрибуту другого. На данный момент этот тип связи не предназначен для установки пользователем вручную, а устанавливается автоматически в режиме динамического связывания!"
|
Сообщение создано: 21. 03. 2013 [17:58]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"hyper_sonic" wrote:
В виджете панели управления настраиваю связь:
atrrib1 wdg:a_attrib1 В свойствах аттрибута указал что обрабатывается и имеет полную связь
atrrib2 wdg:a_attrib2 В свойствах аттрибута указал что обрабатывается и имеет полную связь
В скрипте связь нужно устанавливать функцией: linkSet(), http://wiki.oscada.org/Doc/OpisanieProgrammy#h920-16
Связи у меня нормально ставились и работали, там-же смотрите пример этой функции.
"hyper_sonic" wrote:
Раньше использовал динамическое связывание все работало, но он мне не нравится потому что связывание происходило только с аттрибутами виджетов содержащихся на странице, но не с аттрибутами самой страницы.
А большего, по логике, от него и не требуется и мне всегда хватало!
"hyper_sonic" wrote:
Смущает только, что записано он как тождественное выражение в примере и что не предназначено для установки пользователем:
""wdg:/ses_AGLKS/pg_so/pg_1/pg_ggraph/pg_1/a_bordColor ==ЇЇ" осуществляет доступ атрибута одного виджета к атрибуту другого. На данный момент этот тип связи не предназначен для установки пользователем вручную, а устанавливается автоматически в режиме динамического связывания!"
Уже предназначено, но то что Вы читали это о режиме разработки, и вовсе не из исполнения. Кроме того читать нужно реализацию, а не концепцию, которая текущего состояния не отслеживает!
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 22. 03. 2013 [07:14]
|
hyper_sonic
Роман Федоров
Создатель темы
Зарегистрирован(а) с: 13.09.2011
Сообщения: 13
|
"roman" wrote:
"hyper_sonic" wrote:
В виджете панели управления настраиваю связь:
atrrib1 wdg:a_attrib1 В свойствах аттрибута указал что обрабатывается и имеет полную связь
atrrib2 wdg:a_attrib2 В свойствах аттрибута указал что обрабатывается и имеет полную связь
В скрипте связь нужно устанавливать функцией: linkSet(), http://wiki.oscada.org/Doc/OpisanieProgrammy#h920-16
Связи у меня нормально ставились и работали, там-же смотрите пример этой функции.
Да c linkSet работал, но я хочу не из скрипта эту связь настроить, а сконфигурировать в настройках закладки "Связи"
"roman" wrote:
"hyper_sonic" wrote:
Раньше использовал динамическое связывание все работало, но он мне не нравится потому что связывание происходило только с аттрибутами виджетов содержащихся на странице, но не с аттрибутами самой страницы.
А большего, по логике, от него и не требуется и мне всегда хватало!
Ну вот логика управления виджетами страницы находится в ней, что естественно. Теперь этой логике надо передавать параметры из панели управления, раньше я создавал дополнительный аттрибут в каком-нибудь виджете, а в панели управления настраивал динамическое связывание через <page>|attribute. Получается что параметры адресованные всей логике страницы получаю через аттрибут виджета, что мне кажется не очень естественно. Дальше стал изучать документацию, нашел возможность настраивать "связывание с динамикой" через prm: и wdg:.
"roman" wrote:
"hyper_sonic" wrote:
Смущает только, что записано он как тождественное выражение в примере и что не предназначено для установки пользователем:
""wdg:/ses_AGLKS/pg_so/pg_1/pg_ggraph/pg_1/a_bordColor ==ЇЇ" осуществляет доступ атрибута одного виджета к атрибуту другого. На данный момент этот тип связи не предназначен для установки пользователем вручную, а устанавливается автоматически в режиме динамического связывания!"
Уже предназначено, но то что Вы читали это о режиме разработки, и вовсе не из исполнения. Кроме того читать нужно реализацию, а не концепцию, которая текущего состояния не отслеживает!
Ну так я писал про режим разработки. Те хочу это настроить, а дальше скриптом из страницы в режиме исполнения эти данные ловить.
Вот тут прочитал тоже самое написано:
3.7. Связывание с динамикой.
...wdg: — Связь на атрибут другого виджета или виджет в целом для группы атрибутов. Например, связь "wdg:/ses_AGLKS/pg_so/pg_1/pg_ggraph/pg_1/a_bordColor" осуществляет доступ атрибута одного виджета к атрибуту другого. Поддерживаются как абсолютные, так и относительные пути связей. Точкой отсчёта адреса абсолютной связи выступает объект корня модуля "VCAEngine", а значит первым элементом абсолютного адреса является идентификатор сеанса или проекта. На стороне сеанса первый элемент опускается, поэтому связи установленные в проекте там работают. Относительные связи берут отсчёт от виджета где связь указана. Специальным элементом относительной связи является элемент вышестоящего узла "..".
Сейчас попробую относительную адресацию использовать.
|
Сообщение создано: 22. 03. 2013 [08:23]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"hyper_sonic" wrote:
Да c linkSet работал, но я хочу не из скрипта эту связь настроить, а сконфигурировать в настройках закладки "Связи"
Зачем тогда использовать термины из исполнения, подразумевая разработку? :)
"Динамическое связывание" это установка связей между виджетами при исполнении, в момент открытия кадра из виджета.
"Панели" это кадры режима исполнения справа.
"hyper_sonic" wrote:
Ну вот логика управления виджетами страницы находится в ней, что естественно. Теперь этой логике надо передавать параметры из панели управления, раньше я создавал дополнительный аттрибут в каком-нибудь виджете, а в панели управления настраивал динамическое связывание через <page>|attribute.
Нет в режиме разработки панелей, точнее это блоки с иконками, но никак не то, что Вы там имеете в виду.
"hyper_sonic" wrote:
Ну так я писал про режим разработки. Те хочу это настроить, а дальше скриптом из страницы в режиме исполнения эти данные ловить.
А использовали терминологию исполнения.
"hyper_sonic" wrote:
Вот тут прочитал тоже самое написано:
И что там тоже самое? Одинакового там четверть, даже не считая того, что замечание о ручном использовании я удалил из концепции вчера!
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 22. 03. 2013 [08:42]
|
hyper_sonic
Роман Федоров
Создатель темы
Зарегистрирован(а) с: 13.09.2011
Сообщения: 13
|
Да согласен есть такой грешок - не строго следовать принятой терминологии.
Вы же меня поняли?
Вопрос в том почему не передаются данные между виджетами, хотя в режиме разработки вроде бы все настроил, а может и нет...
Помогите разобраться.
|
Сообщение создано: 22. 03. 2013 [08:49]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"hyper_sonic" wrote:
Вы же меня поняли?
Это видно по тому, что я подумал про исполнение или по куче уточнений?
"hyper_sonic" wrote:
Вопрос в том почему не передаются данные между виджетами, хотя в режиме разработки вроде бы все настроил, а может и нет...
У меня передаётся.
Читайте документацию, где написано, что связи в значительной степени привязаны к структуре поекта-сеанса, а значит и указаны должны быть соответственно.
"hyper_sonic" wrote:
Помогите разобраться.
С особенностями конфигурации и локальными проблемами пользователей, в рамках форума, я не разбираюсь.
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 22. 03. 2013 [09:04]
|
hyper_sonic
Роман Федоров
Создатель темы
Зарегистрирован(а) с: 13.09.2011
Сообщения: 13
|
Все что ниже не актуально.
Разобрался. Проблема было в том что:
1. во-первых панель управления в проекте была изменена и все что я делал в библиотеке ни как на ней не сказывалось. После "Очистить изменения визуального элемента" исправилось. (Было бы хорошо если бы каким-нибудь символом на пиктограмме отмечалось что виджет в проекте изменен и актуальные изменения из библиотеки не буду применяться. Иногда с толку сбивает, т.к. не очевидно).
2. виджет панель управления, та что справа, живет в своем адресном пространстве, хотя отображается на той же странице. Соответственно относительно нее обращаться к виджетам страницы нельзя. Надо настраивать адресацию относительно корня проекта с учетом режима исполнения по-сути заменить пусть к виджету в режиме разработки с /prj_PROJECT/.../pg1, на ses_PROJECT/.../pg_1.
"roman" wrote:
...
"hyper_sonic" wrote:
Вопрос в том почему не передаются данные между виджетами, хотя в режиме разработки вроде бы все настроил, а может и нет...
У меня передаётся.
Читайте документацию, где написано, что связи в значительной степени привязаны к структуре поекта-сеанса, а значит и указаны должны быть соответственно.
Честно не очень понял предложения... "связи в значительной степени привязаны к структуре поекта-сеанса" естественно в каждом проекте они свои, но я же их явно и указываю, в пределах одного проекта все и использую.
"указаны должны быть соответственно" это как? Начиная от корня?
"roman" wrote:
"hyper_sonic" wrote:
Помогите разобраться.
С особенностями конфигурации и локальными проблемами пользователей, в рамках форума, я не разбираюсь.
Ок.
Я думаю что я все равно разберусь с этим, как и раньше самостоятельно. Просто по средствам форума это как мне кажется было бы сделать быстрее и проще, а к тому же полезнее остальным использующим Oscada. Т.к. даже самая полная документация не покрывает всех вариантов использования, тем более такого комплекса имеющего свою специфику.
[Сообщение редактировалось 4 раз(а), в последний раз 22.03.2013 в 09:43.]
|
Сообщение создано: 22. 03. 2013 [09:55]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"hyper_sonic" wrote:
1. во-первых панель управления в проекте была изменена и все что я делал в библиотеке ни как на ней не сказывалось. После "Очистить изменения визуального элемента" исправилось. (Было бы хорошо если бы каким-нибудь символом на пиктограмме отмечалось что виджет в проекте изменен и актуальные изменения из библиотеки не буду применяться. Иногда с толку сбивает, т.к. не очевидно).
Во-первых, если внимательно смотреть, то можно заметить, что изменённые атрибуты отмечаются синим цветом текста в инспекторе атрибутов (и никак опять не на панели)! А изменённость виджета, в целом, определяется именно изменённостью отдельных атрибутов.
"hyper_sonic" wrote:
2. виджет панель управления, та что справа, живет в своем адресном пространстве, хотя отображается на той же странице. Соответственно относительно нее обращаться к виджетам страницы нельзя. Надо настраивать адресацию относительно корня проекта с учетом режима исполнения по-сути заменить пусть к виджету в режиме разработки с /prj_PROJECT/.../pg1, на ses_PROJECT/.../pg_1.
Не на панели, опять, а в инспекторе библиотек виджетов. И именно об этом я говорил. Кроме того однострочный навигатор по установке связи это учитывает и если вы его решили обманывать то "Сам себе злобный буратино".
"hyper_sonic" wrote:
Честно не очень понял предложения... "связи в значительной степени привязаны к структуре поекта-сеанса" естественно в каждом проекте они свои, но я же их явно и указываю, в пределах одного проекта все и использую.
"указаны должны быть соответственно" это как? Начиная от корня?
Читаем про структуру: http://wiki.oscada.org/Doc/VCAEngine#h668-5
Learn, learn and learn better than work, work and work.
|
|
|