powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Zen + создание svg компонента
18 сообщений из 18, страница 1 из 1
Zen + создание svg компонента
    #34939234
yot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yot
Гость
Здравствуйте.
столкнулся с необходимость создания своего SVG компонента... но к сожалению пока не могу разобраться как из SVG картинки сделать zen-ий компонент.

Доку по Zen and SVG смотрел.. топики обсуждающие zen тоже... но увы ничего мне это не дало. буду очень благодарен за примеру или совет.
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #34939623
''
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
''
Гость
Выберите из существующих SVG-компонентов тот, который Вам ближе по функционалу и посмотрите его исходники (в области %SYS). Кстати исходники неплохо задокументированы.
Можно еще унаследовать свой компонент от стандартного.
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #34939760
yot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yot
Гость
вы имеети ввиду н/р %ZEN.SVGComponent.rect (как я понимаю это исходник четырехугольника) .. если да то я их смотрел... просто мне пока не очевидно как можно перегнать изображение из свг (пусть тогоже прямоугольника) в зен.
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #34939987
''
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
''
Гость
Не совсем понял, что значит авторперегнать изображение из свг (пусть тогоже прямоугольника) в зен.
В каталоге %CacheInstall%\CSP\ есть примеры svg-файлов, которые вполне себе автономно от ZEN отображаются в браузере. Вы можете сделать такие же и подключить их статически в свой ZEN-проект либо "нарисовать" то же самое динамически в своем классе-SVG компоненте при помощи xml-тэгов, javascript.

PS: для начала попробуйте создать svg-компонент в виде библиотеки javascript, а потом уже перенесите его в ZEN.
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #34941919
yot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yot
Гость
этим
авторперегнать изображение из свг (пусть тогоже прямоугольника) в зен.

я хотел сказать что пока не представляю как из svg рисунка сделть библиотеку javascript. не ужто придется каждую линию описывать в ручную.. и в темболее как описывать???

нашел пример:
http://groups.google.com/group/InterSystems-ZEN/web/component-custom-meters

в этом примере создан компонент часы:
и в коде есть строчки
Код: plaintext
c.setAttribute('d','M 25,45 l 27,-3 5,3 -5,3 z');

и как ее понимать я пока не знаю..

вот...
и еще разбирая этот пример..
я понял, что не представляю зачем нужен параметр DOMAIN... конечно в документации я прочитал что это: the localization domain used to localize text within the page. однаком понимания все равно не пришло
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #34942225
''
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
''
Гость
Код: plaintext
c.setAttribute('d','M 25,45 l 27,-3 5,3 -5,3 z');
Это программная установка значения атрибуту 'd'. Все равно как если бы Вы написали:
<какой-то_тэг d="M 25,45 l 27,-3 5,3 -5,3 z"/>

А вот, что это означает, это надо смотреть документацию по SVG. ZEN здесь ни при чем.

авторне представляю зачем нужен параметр DOMAIN...
Это всего лишь метка-индекс, которая используется для отделения локализованных сообщений одного ZEN-приложения/страницы от другого(ой). Все эти сообщения хранятся в глобале ^CacheMsg в таком формате:
Код: plaintext
1.
2.
^CacheMsg("MyApplicationDOMAIN")="ru"
^CacheMsg("MyApplicationDOMAIN","en",CRC- 32  текста)="текст на английском"
^CacheMsg("MyApplicationDOMAIN","ru",CRC- 32  текста)="текст на русском"

Подробнее про локализацию можно прочитать в документации:
http://localhost:?/csp/docbook/DocBook.UI.Page.cls?KEY=GCSP_localization
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #34954104
yot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yot
Гость
продолжая разбираться с SVG назрел следующий вопрос:

в стилях мы описываем следующие параметры, например
Код: plaintext
1.
2.
3.
4.
	.My_Cyr {
		fill: url(#myGrad);
		stroke: darkblue;
		stroke-width: 2px;
		filter: url(#dropShadow);
интуитивно понятно что значит fill,stroke... но эти стили не относятся ведь к css, вопрос в следующем... где можно посмотреть или прочитать что означает: filter, stroke-width... ну и т.д.
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #34954130
yot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yot
Гость
Извиняюсь за глупый вопрос... еще не проснулся наверно... это же есть в спецификации svg,
вот адрес спецификации... если кому надо:http://www.w3.org/TR/SVG11/painting.html#FillProperty
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #34959261
yot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yot
Гость
а вот еще вопросик назрел

есть созданый свг компонент (svgBoss) и есть страничка (testOdoWatchBoss).. вопрос в следующем.. как можно динамически создать svgBoss на страничке.

точнее как создавать я знаю...(смотрел пример в smples ZENTest.SVGTest)... просто если до этого компонент не отображен

Код: plaintext
1.
2.
3.
4.
5.
6.
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
...
<svgFrame id="svgFrame" height="350" width="350" backgroundStyle="fill: lightblue;" layout="horizontal" >
</svgFrame>
...

то выводится ошибка:

ZEN ERROR:
createComponentNS: Unable to find Component svgBoss

если же я в Contents определяю svgBoss
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
...
<svgFrame id="svgFrame" height="350" width="350" backgroundStyle="fill: lightblue;" layout="horizontal" >
<svgBoss id="Boss"/>
</svgFrame>
...

то все нормально.. все создается...
хмл с примером прикладываю
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #34960109
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал Ваш пример.
Да, действительно возникает ошибка, как Вы и написали. Это от того, что в генерируемом html нет ссылок на файлы "MyTest.js" и "MyTest_SVG.css". Посмотрите в браузере исходный текст страницы с компонентом и без и увидите разницу.

Чтобы работало, добавьте следующие строчки в код "MyTest.testOdoWatchBoss":

Код: plaintext
1.
2.
Parameter CSSINCLUDES As STRING = "MyTest_SVG.css";
Parameter JSINCLUDES As STRING="MyTest.js";

Единственное "но" . Не подхватываются стили для Вашего компонента. Я не смотрел почему, так как немного занят. Думаю Вы и сами разберетесь почему.

PS: кстати, Вы забыли
Код: plaintext
c.setAttribute('class','Boss-face');
поставить в первом тэге "circle" в методе "renderMeter()".
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #34960584
yot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yot
Гость
спасибо за ответ

со стилями вожусь второй час.. и что-то никак они не "подхватываются"
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #34969520
yot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yot
Гость
продолжая свою серию вопросов по svg компонентам наткнулся еще на один момент который не понимаю.
есть класс Class %ZEN.SVGComponent.sprite в самплесах каше
там есть

Код: plaintext
1.
2.
3.
4.
5.
/// Render the inner SVG contents of this sprite.
Method renderContents() [ Language = javascript ]
{
         ...
	this._svgShadowRect = rect;
так вот я не понимаю что значит запись _svgShadowRect ... поясните пожалуйста...
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #34969791
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Документация ZEN по этому вопросу молчит.
Думаю стоит смотреть в сторону самого SVG.
Попробуйте в google поискать по "this._svg","_svgPath".

PS: А еще лучше спросить в WRC, если у Вас есть возможность.
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #34973898
yot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yot
Гость
я кажется разобрался что это такое
this._svgShadowRect = rect;

это мы какбы создаем свойство и присваиваем ему какое-либо значение
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #35019935
yot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yot
Гость
Еще один вопросик...
А не подскажете какому пространству имен принадлежат созданные svgElement'ы, ну типиа (%ZEN.SVGComponent.smiley, %ZEN.SVGComponent.lightBar, и другие)... и какому пространству имен будут принадлежать созданные мной свг элементы.
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #35020027
yot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yot
Гость
посмотрел более внимательно и кажется понял.... сам объект непосредственно не создается, а создается просто группа элементов..
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #35021255
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По умолчанию NAMESPACE = "http://www.intersystems.com/zen".

А лучше всего посмотрите в инспекторе свойств Вашего класса.
...
Рейтинг: 0 / 0
Zen + создание svg компонента
    #35021256
yot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
yot
Гость
никак не могу разобраться с одним вопросом. может кто поможет )
мне необходимо создать свг компонент, допустим это будет цифровой спидометр.. (нет проблем...) но появляется дополнительная задача... я должен уметь вставлять в этот свг компонент любой другой произвольны свг компонент... до пустим это будет рисунок карандаша...(отдельно создать и отобразить этот компонент тоже могу без проблем)... а вот так чтобы один компонент отображался внутри другого нкак сделать не могу...

сначала я думал что указав в renderContents() создаваемого элемента какое-либо условие... которое берет значение из проперти и по значению этого условия создавать компонент..ну типа
if (this.element !=""){var rect = this.document.createElementNS(SVGNS,this.element);..} .. ну потом понял что мой элемент не зарегестирован в пространстве имен SVGNS, и что естественно я его таким образом создать не смогу.. и вот теперь не знаю как быть... из идей пока только мысли создать свое пространство имен... (правда пока не представляю как его создать).. и все.. мож кто-то с подобным сталкивался и может поделиться своими соображениями..

P.S.:"Прошу прощения за сумбурность и объемность вопроса"
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Zen + создание svg компонента
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]