Шаблон:Relation diagram usage: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
Строка 1: Строка 1:
Создание диаграммы отношений классов реализуется набором шаблонов:
Создание диаграммы отношений классов реализуется набором шаблонов:


# {{tl|relation_diagram|diagram{{=}}&lt;имя диаграммы&gt;|graph{{=}}&lt;имя графа&gt;|type=<тип изображения графа, см. ниже>|size=<размер_изображения графа, зависит от type>|content{{=}}&lt;описание классов и отношений&gt;}} - объявление диаграммы отношений с опциональными именами отношений (diagram) и графа (graph), а также обязательным наполнением, задаваемым нижеследующими шаблонами.
# {{tl|relation_diagram|diagram{{=}}&lt;имя диаграммы&gt;|graph{{=}}&lt;опциональное имя графа&gt;|type{{=}}&lt;опциональный тип изображения графа&gt;|border{{=}}&lt;опциональный тип границы изображения графа&gt;|format{{=}}&lt;опциональный формат файла изображения&gt;|size{{=}}&lt;опциональный размер изображения графа на странице&gt;|location{{=}}&lt;опциональная позиция изображения на странице&gt;|alignment{{=}}&lt;опциональное выравнивание изображения на странице&gt;|link{{=}}&lt;опциональная альтернативная ссылка на файл изображения&gt;|alt{{=}}&lt;опциональный текст, замещающий граф в случае неуспешности загрузки изображения&gt;|content{{=}}&lt;описание классов и отношений&gt;}} - объявление диаграммы отношений с опциональными именами отношений (diagram) и графа (graph), а также обязательным наполнением, задаваемым нижеследующими шаблонами.
# {{tl|relation_diagram addref|class{{=}}&lt;имя класса&gt;|ref{{=}}&lt;ссылка в [[mw:Help:Links|синтаксисе вики]]&gt;}} - опциональная ассоциация узла графа (т.е. класса диаграммы отношений) с внутренним или внешним ресурсом с помощью механизма [http://www.w3schools.com/tags/tag_map.asp HTML map].
# {{tl|relation_diagram addref|class{{=}}&lt;имя класса&gt;|ref{{=}}&lt;ссылка в [[mw:Help:Links|синтаксисе вики]]&gt;}} - опциональная ассоциация узла графа (т.е. класса диаграммы отношений) с внутренним или внешним ресурсом с помощью механизма [http://www.w3schools.com/tags/tag_map.asp HTML map].
# {{tl|relation_diagram add|&lt;тип отношения&gt;|&lt;имя класса, инициирующего отношение&gt;|&lt;имя класса, принимающего отношение&gt;}} - добавление двух классов и отношения между ними. Если класс с указанным именем уже существует на диаграмме, то новый узел не создается; тип отношения задается одним из ключевых слов:
# {{tl|relation_diagram add|&lt;тип отношения&gt;|&lt;имя класса, инициирующего отношение&gt;|&lt;имя класса, принимающего отношение&gt;}} - добавление двух классов и отношения между ними. Если класс с указанным именем уже существует на диаграмме, то новый узел не создается; тип отношения задается одним из ключевых слов:
Строка 12: Строка 12:
Диаграмма, описанная в данном синтаксисе интерпретируется в синтаксис [http://www.graphviz.org/Documentation/dotguide.pdf dot], который подается через расширение [[mw:Extension:GraphViz|GraphViz]] на вход интерпретатора [http://www.graphviz.org/ GraphViz]. Загружаемый на вики файл имеет имя, заданное именем статьи. Поэтому при использовании шаблона {{tl|relation_diagram}} внутри другого шаблона может возникать [[mw:Extension_talk:GraphViz#Polynomial_explosion_when_used_in_templates|проблема, связанная с большим количеством одинаковых диаграмм]].
Диаграмма, описанная в данном синтаксисе интерпретируется в синтаксис [http://www.graphviz.org/Documentation/dotguide.pdf dot], который подается через расширение [[mw:Extension:GraphViz|GraphViz]] на вход интерпретатора [http://www.graphviz.org/ GraphViz]. Загружаемый на вики файл имеет имя, заданное именем статьи. Поэтому при использовании шаблона {{tl|relation_diagram}} внутри другого шаблона может возникать [[mw:Extension_talk:GraphViz#Polynomial_explosion_when_used_in_templates|проблема, связанная с большим количеством одинаковых диаграмм]].


Однако можно без опасений использовать внутри шаблонов шаблоны, составляющие наполнение диаграммы - для естественного построения комплексных диаграмм отношений.
Использование дополнительных атрибутов и связанные с этим ограничения (например, на размеры) изображения графа <tt>type</tt>, <tt>border</tt>, <tt>size</tt>, <tt>format</tt>, <tt>location</tt>, <tt>alignment</tt>, <tt>link</tt> и <tt>alt</tt>: [[w:Wikipedia:Extended_image_syntax]].


Опциональный тип изображения задается константами: border, frameless, frame или thumb. Последний тип реализован в GraphViz с [https://www.mediawiki.org/wiki/Extension_talk:GraphViz#Incorrect_behavior_with_type.3D.27thumb.27 багом].
Поддерживаемые параметры атрибута <tt>format</tt>: png, gif, jpg, jpeg, svg.
 
Установка размера, также опциональная, имеет ограничения. При <tt>type="frame"</tt> атрибут игнорируется, см. [[mw:Help:Images#Size and frame]].


Использование:
Использование:


<pre>
<pre>
{{relation_diagram|diagram=Опциональное имя диаграммы|graph=OptionalGraphName|border=border|size=600|content=
{{relation_diagram|diagram=Опциональное имя диаграммы|graph=OptionalGraphName|type=frame|content=
{{relation_diagram addref|class=Interface1|ref=[[ImplementationClass interwiki reference]]}}
{{relation_diagram addref|class=Interface1|ref=[[ImplementationClass interwiki reference]]}}
{{relation_diagram addref|class=DerivedClass|ref=https://www.google.com}}
{{relation_diagram addref|class=DerivedClass|ref=https://www.google.com}}
{{relation_diagram add|implementation|ImplementationClass|Interface1}}
{{relation_diagram add|implementation|ImplementationClass|Interface1}}
{{relation_diagram add|implementation|ImplementationClass|Interface2}}
{{relation_diagram add|implementation|ImplementationClass|Interface2}}
Строка 38: Строка 35:
Результат:
Результат:


{{relation_diagram|diagram=Опциональное имя диаграммы|graph=OptionalGraphName|border=border|size=600|content=
{{relation_diagram|diagram=Опциональное имя диаграммы|graph=OptionalGraphName|type=frame|content=
{{relation_diagram addref|class=Interface1|ref=[[ImplementationClass interwiki reference]]}}
{{relation_diagram addref|class=Interface1|ref=[[ImplementationClass interwiki reference]]}}
{{relation_diagram addref|class=DerivedClass|ref=https://www.google.com}}
{{relation_diagram addref|class=DerivedClass|ref=https://www.google.com}}
{{relation_diagram add|implementation|ImplementationClass|Interface1}}
{{relation_diagram add|implementation|ImplementationClass|Interface1}}
{{relation_diagram add|implementation|ImplementationClass|Interface2}}
{{relation_diagram add|implementation|ImplementationClass|Interface2}}

Версия 16:36, 11 июня 2016

Создание диаграммы отношений классов реализуется набором шаблонов:

  1. {{relation_diagram|diagram=<имя диаграммы>|graph=<опциональное имя графа>|type=<опциональный тип изображения графа>|border=<опциональный тип границы изображения графа>|format=<опциональный формат файла изображения>|size=<опциональный размер изображения графа на странице>|location=<опциональная позиция изображения на странице>|alignment=<опциональное выравнивание изображения на странице>}} - объявление диаграммы отношений с опциональными именами отношений (diagram) и графа (graph), а также обязательным наполнением, задаваемым нижеследующими шаблонами.
  2. {{relation_diagram addref|class=<имя класса>|ref=<ссылка в синтаксисе вики>}} - опциональная ассоциация узла графа (т.е. класса диаграммы отношений) с внутренним или внешним ресурсом с помощью механизма HTML map.
  3. {{relation_diagram add|<тип отношения>|<имя класса, инициирующего отношение>|<имя класса, принимающего отношение>}} - добавление двух классов и отношения между ними. Если класс с указанным именем уже существует на диаграмме, то новый узел не создается; тип отношения задается одним из ключевых слов:
    1. implementation - реализация интерфейса;
    2. inheritance - наследование;
    3. aggregation - агрегирование;
    4. composition - композиция;
    5. association - ассоциация.

Диаграмма, описанная в данном синтаксисе интерпретируется в синтаксис dot, который подается через расширение GraphViz на вход интерпретатора GraphViz. Загружаемый на вики файл имеет имя, заданное именем статьи. Поэтому при использовании шаблона {{relation_diagram}} внутри другого шаблона может возникать проблема, связанная с большим количеством одинаковых диаграмм.

Использование дополнительных атрибутов и связанные с этим ограничения (например, на размеры) изображения графа type, border, size, format, location, alignment, link и alt: w:Wikipedia:Extended_image_syntax.

Поддерживаемые параметры атрибута format: png, gif, jpg, jpeg, svg.

Использование:

{{relation_diagram|diagram=Опциональное имя диаграммы|graph=OptionalGraphName|type=frame|content=
{{relation_diagram addref|class=Interface1|ref=[[ImplementationClass interwiki reference]]}}
{{relation_diagram addref|class=DerivedClass|ref=https://www.google.com}}
{{relation_diagram add|implementation|ImplementationClass|Interface1}}
{{relation_diagram add|implementation|ImplementationClass|Interface2}}
{{relation_diagram add|inheritance|DerivedClass|BaseClass}}
{{relation_diagram add|aggregation|Aggregate|Aggregatee}}
{{relation_diagram add|composition|Composition|Element}}
{{relation_diagram add|association|Association1|Association2}}
}}


Результат: