<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<graphic-notation appVersion="0.8.0" version="0.8.0">
<properties>
<property name="type" short-description="element type" type="String" value="">
<tags>
<tag name="simple" value="simple"/>
<tag name="selected" value="selected"/>
</tags>
</property>
<property name="edgeType" short-description="edgeType" type="String" value="">
<tags>
<tag name="simple" value="simple"/>
<tag name="line" value="line"/>
<tag name="green" value="green"/>
<tag name="red" value="red"/>
</tags>
</property>
</properties>
<nodes>
<node icon="icon0" kernelType="biouml.standard.type.Substance" type="hormone">
<propertyRef name="type" value=""/>
</node>
<node icon="icon1" kernelType="biouml.standard.type.Protein" type="receptor">
<propertyRef name="type" value=""/>
</node>
<node icon="icon2" isCompartment="true" kernelType="biouml.standard.type.Cell" type="cell"/>
<node icon="icon3" type="loop"/>
</nodes>
<edges>
<edge icon="icon4" type="edge">
<propertyRef name="edgeType" value=""/>
</edge>
</edges>
<reactions/>
<viewOptions/>
<viewBuilder prototype="biouml.model.DefaultDiagramViewBuilder">
<nodeView type="edge"><![CDATA[function f(container, edge, options, g)
{
    var pen, brush, arrow;
    var type = edge.getValue("edgeType", "simple");
    if(type == "line")
    {
        brush = new Brush(new Color(0.2, 0.2, 0.8));
        pen = new Pen(1, new Color(0.2, 0.2, 0.8));
        arrow = new ArrowView(pen, brush, JSUtility.getPath(edge), null, null);
    }
    else if(type == "green")
    {
        brush = new Brush(new Color(0.2, 0.6, 0.2));
        pen = new Pen(1, new Color(0.2, 0.6, 0.2));
        arrow = new ArrowView(pen, brush, JSUtility.getPath(edge), null, ArrowView.createTriangleTip(pen, brush, 15, 5));
    }
    else if(type == "red")
    {
        brush = new Brush(new Color(0.9, 0.2, 0.2));
        pen = new Pen(1, new Color(0.9, 0.2, 0.2));
        arrow = new ArrowView(pen, brush, JSUtility.getPath(edge), ArrowView.createReverseTriangleTip(pen, brush, 15, 5), null);
    }
    else
    {
        brush = new Brush(new Color(0.2, 0.2, 0.8));
        pen = new Pen(1, new Color(0.2, 0.2, 0.8));
        arrow = new ArrowView(pen, brush, JSUtility.getPath(edge), null, ArrowView.createTriangleTip(pen, brush, 15, 5));
    }
    container.add(arrow);
    var middlePoint = arrow.getPathView().getMiddlePoint();
    //HACK: alignment in ComplexTextView doesn't work yet
    middlePoint.x = middlePoint.x+35;
    var title = ComplexTextView(edge.getValue('title', ''), middlePoint, 0,  options.getNodeTitleFont(), options.getFontRegistry(), ComplexTextView.TEXT_ALIGN_CENTER, 15, g);
    container.add(title);
    return false;
}]]></nodeView>
<nodeView type="receptor"><![CDATA[function f(container, node, options, g)
{
    var d, pen, brush;
    d = new Dimension(100,50);
    var type = node.getValue('type', '');
    if(type == "selected")
    {
        brush = new Brush(new Color(1.0, 0.4, 0.0));
    }
    else
    {
        brush = new Brush(new Color(0.2, 0.6, 0.2));
    }
    pen = options.getDefaultPen();
    var x = new Array (0,d.width/3,d.width*2/3,d.width,d.width,d.width*2/3,d.width/3,0);
    var y = new Array (d.height/3,0,0,d.height/3,d.height*2/3,d.height,d.height,d.height*2/3);
    var polygon = new PolygonView(pen, brush, x, y);
    container.add(polygon);
    var font = new ColorFont("Arial", Font.BOLD, 10, Color.white);
    var title = ComplexTextView(node.getValue('title', ''), font, options.getFontRegistry(), ComplexTextView.TEXT_ALIGN_CENTER, 15, g);
    container.add(title, CompositeView.X_CC | CompositeView.Y_CC);
    return false;
}]]></nodeView>
<nodeView type="cell"><![CDATA[function f(container, node, options, g)
{
    var d, pen, brush;
    d = node.getValue("shapeSize", null);
    if(d.width == 0 && d.height == 0)
    {
        d.width = 150;
        d.height = 150;
    }
    brush = new Brush(node.getValue("shapeColor", new Color(1.0, 1.0, 1.0)));
    pen = options.getDefaultPen();
    var box = new BoxView(pen, brush, 0, 0, d.width, d.height);
    container.add(box);
    var title = new TextView(node.getValue('title', ''), options.getNodeTitleFont(), g);
    var textPosition = new Point(10, 5);
    container.add(title, CompositeView.X_LL | CompositeView.Y_TT, textPosition);
    
    return false;
}]]></nodeView>
<nodeView type="loop"><![CDATA[function f(container, node, options, g)
{
    var d, pen, brush;
    d = new Dimension(5,5);
    brush = new Brush(new Color(0.2, 0.2, 0.8));
    pen = options.getDefaultPen();
    var ellipse = new EllipseView(pen, brush, 0, 0, d.width, d.height);
    container.add(ellipse);
    var title = ComplexTextView(node.getValue('title', ''), options.getNodeTitleFont(), options.getFontRegistry(), ComplexTextView.TEXT_ALIGN_CENTER, 15, g);
    container.add(title, CompositeView.X_CC | CompositeView.Y_BT);
    return false;
}]]></nodeView>
<nodeView type="hormone"><![CDATA[function f(container, node, options, g)
{
    var d, pen, brush;
    d = new Dimension(100,50);
    var type = node.getValue('type', '');
    if(type == "selected")
    {
        brush = new Brush(new Color(1.0, 0.4, 0.0));
    }
    else
    {
        brush = new Brush(new Color(0.2, 0.2, 0.8));
    }
    pen = options.getDefaultPen();
    var ellipse = new EllipseView(pen, brush, 0, 0, d.width, d.height);
    container.add(ellipse);
    var font = new ColorFont("Arial", Font.BOLD, 10, Color.white);
    var title = ComplexTextView(node.getValue('title', ''), font, options.getFontRegistry(), ComplexTextView.TEXT_ALIGN_CENTER, 15, g);
    container.add(title, CompositeView.X_CC | CompositeView.Y_CC);
    return false;
}]]></nodeView>
</viewBuilder>
<icons>
<icon name="icon4">iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAXElEQVR42mNgGAX0AY8e/fh///73/2QbsHbt6//a2qf/Z2ff+r927av/b9/+Qhh25syn/4TwhAmP/6uqnvyvqXnqv4bGyf9WVufAhu3a9e4/5QZQ7AW6BOIowA8ANLCQA4m2ol4AAAAASUVORK5CYII=</icon>
<icon name="icon0">iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABNElEQVR42u2Su2oCURCGz7t4Wa94rewsxE5QsLHURhAEBZ/C1gfYJp1YJIRsVrPK0aDsxTXGSAQhGCRlkDSWf2bXIiyBSHoHfs4wzDfM5TB2MYetVjt0OhyNxgTlMkcqdYV4XLT9en2CdnsMTdviF7jff6DZHCIUkuHxPMLv1xEIaAQvkUg8274V83qn9D6gUlGwXu9OhTabd6TTtwSqBJgEGCT9D80hCNZ7B85fwVqtEVwuFcnkOdApQTBQKg3AqtURtab9C7YUDJrI5WSw2WyLWEym2Qy7vfOwQbsyaeQ+er3laQ+6/oZ8/p6CQ2pNpQQDkYi1jwWN9oRodIFweA6fT4PbzZHNSpCkF+c1jscvdLtTOmEfxaJCSTIVuCHwGpmMhEJhgFpNgSiOcTh84vLpf+wbLnEPCcOnhN4AAAAASUVORK5CYII=</icon>
<icon name="icon1">iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA+UlEQVR42u2SsWrCUBiF8yC6iFEUQtSsAScV9CnM3L5DR92i0dAIIXUS7NIuHToU2ndRSgdLljp+elIopIKFzh44cDnn+3+43GsYF+W0/9qzfl3jJR7D5RBv6WXOzsdMnZiTwd3njtXbiv68T9WvUgtr1MN6zsrUiUleEjbvm+9FwWNAN+xi+ibWrYUTOWctpuyXcScu44cxRuGqQCNp/Dn42824SemmhFG8LtK6a/1/weh+hDt1MScmdmTjLM4MHjsxYn+uIG0/tsyeZrT9NhW/ghVZ2As7Z2XqxIjVzMlrpGlK/BwzmA/oTDv0gl5mnZWpE3P58HkdAAKF+UTBHz0lAAAAAElFTkSuQmCC</icon>
<icon name="icon2">iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAUklEQVR42mNgoBT8//nv///Pf8jDv//9Z/j/Cch4/OP//6ckYpCe73+BBoBMAgk8IxE/HTVg1ACqGgBKyk/ISMpPYAb8Amamr3/Iw3+AmYlSAABIfWSsqdh8hwAAAABJRU5ErkJggg==</icon>
<icon name="icon3">iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAPElEQVR42mNgGAWDHHz+/O4/CJOl+ePHt/9DQ6eAMYhNsgGXL5/7r6AwAYxBbLJccejQ0f8gPBqZgx0AAGUXJNFrLp9hAAAAAElFTkSuQmCC</icon>
</icons>
<semanticController prototype="biouml.model.DefaultSemanticController"/>
<examples>
<example name="test1">
<diagram diagramType="biouml.model.xml.XmlDiagramType" notation="">
<diagramInfo/>
<layouterInfo>
<o n="layouterInfo" t="ru.biosoft.graph.ForceDirectedLayouter">
<v>
<wi n="initialPlacement" v="1"/>
<wi n="edgeLength" v="150"/>
<wf n="repulsion" v="1.0"/>
<wi n="repulsionDistance" v="10"/>
<wf n="gravity" v="0.06"/>
<wi n="orientation" v="0"/>
<wi n="distanceMethod" v="0"/>
<wf n="attraction" v="1.0"/>
<wf n="magneticIntencity" v="0.0"/>
<wi n="iterationNumber" v="100"/>
<wf n="minTemperature" v="0.0"/>
<wf n="maxTemperature" v="0.0"/>
<o n="dpl" t="ru.biosoft.graph.DiagonalPathLayouter">
<v>
<wi n="lineDistance" v="10"/>
<o n="selfLoopLayouter" t="ru.biosoft.graph.SelfLoopLayouter">
<v>
<wi n="loopLength" v="30"/>
</v>
</o>
</v>
</o>
<wb n="horisontalMovementAllowed" v="true"/>
<wb n="verticalMovementAllowed" v="true"/>
<o n="pathWeighter" t="ru.biosoft.graph.PathWeighter">
<v>
<wi n="bendPenalty" v="500"/>
<wi n="confluencePenalty" v="5"/>
<wi n="lengthPenalty" v="1"/>
</v>
</o>
<o n="sl" t="ru.biosoft.graph.SubgraphLayouter">
<v>
<wi n="layerDeltaX" v="350"/>
<wi n="layerDeltaY" v="350"/>
</v>
</o>
</v>
</o>
</layouterInfo>
<compartmentInfo color="255,255,255" height="150" kernel="stub/test1" kernel_type="info-diagram" shape="0" width="150" x="0" y="0"/>
<nodes>
<node height="50" kernel="stub/Endocrine loop" kernel_type="loop" title="Endocrine loop" width="50" x="452" y="208"/>
<compartment>
<compartmentInfo color="255,153,153" height="87" kernel="stub/blood" kernel_type="cell" shape="0" title="Blood" width="124" x="344" y="355"/>
<nodes>
<node height="50" kernel="stub/h6" kernel_type="hormone" title="Some hormone in transport medium" width="50" x="356" y="386">
<property name="type" short-description="type" type="String" value="simple"/>
</node>
</nodes>
<edges/>
</compartment>
<compartment>
<compartmentInfo color="153,204,255" height="122" kernel="stub/c1" kernel_type="cell" shape="0" title="Some transport medium" width="151" x="546" y="9"/>
<nodes>
<node height="50" kernel="stub/h1" kernel_type="hormone" title="Hormone in substance medium" width="50" x="573" y="59">
<property name="type" short-description="type" type="String" value="simple"/>
</node>
</nodes>
<edges/>
</compartment>
<compartment>
<compartmentInfo color="255,204,204" height="220" kernel="stub/c2" kernel_type="cell" shape="0" width="125" x="343" y="102"/>
<nodes>
<node height="50" kernel="stub/h2" kernel_type="hormone" title="Some hormone" width="50" x="356" y="258">
<property name="type" short-description="type" type="String" value="simple"/>
</node>
<node height="50" kernel="stub/r1" kernel_type="receptor" title="Some receptor" width="50" x="356" y="122">
<property name="type" short-description="type" type="String" value="simple"/>
</node>
</nodes>
<edges>
<edge in="r1" kernel="stub/edge_0: $c2.r1 to $c2.h2" kernel_type="edge" out="h2" title=" ">
<path>
<segment segmentType="moveTo" x0="406" y0="173"/>
<segment segmentType="lineTo" x0="406" y0="257"/>
</path>
<property name="edgeType" short-description="edgeType" type="String" value="green"/>
</edge>
</edges>
</compartment>
<compartment>
<compartmentInfo color="255,204,204" height="225" kernel="stub/c3" kernel_type="cell" shape="0" width="123" x="189" y="217"/>
<nodes>
<node height="50" kernel="stub/h5" kernel_type="hormone" title="Hormone from which ..." width="50" x="201" y="375">
<property name="type" short-description="type" type="String" value="selected"/>
</node>
<node height="50" kernel="stub/r2" kernel_type="receptor" title="Some other receptor" width="50" x="202" y="238">
<property name="type" short-description="type" type="String" value="simple"/>
</node>
</nodes>
<edges>
<edge in="r2" kernel="stub/edge_0: $c3.r2 to $c3.h5" kernel_type="edge" out="h5" title="Simulation of secretion">
<path>
<segment segmentType="moveTo" x0="252" y0="289"/>
<segment segmentType="lineTo" x0="251" y0="374"/>
</path>
<property name="edgeType" short-description="edgeType" type="String" value="green"/>
</edge>
</edges>
</compartment>
<compartment>
<compartmentInfo color="255,255,204" height="81" kernel="stub/c4" kernel_type="cell" shape="0" title="Lymph" width="118" x="121" y="57"/>
<nodes>
<node height="50" kernel="stub/h4" kernel_type="hormone" title="Some other Hormone" width="50" x="130" y="82">
<property name="type" short-description="type" type="String" value="simple"/>
</node>
</nodes>
<edges/>
</compartment>
<compartment>
<compartmentInfo color="255,204,204" height="213" kernel="stub/c5" kernel_type="cell" shape="0" width="313" x="186" y="500"/>
<nodes>
<node height="50" kernel="stub/h14" kernel_type="hormone" title="Some other hormone" width="50" x="212" y="635">
<property name="type" short-description="type" type="String" value="simple"/>
</node>
<node height="50" kernel="stub/h15" kernel_type="hormone" title="Yet another hormone" width="50" x="366" y="633">
<property name="type" short-description="type" type="String" value="simple"/>
</node>
<node height="50" kernel="stub/r11" kernel_type="receptor" title="Receptor from which network..." width="50" x="368" y="521">
<property name="type" short-description="type" type="String" value="selected"/>
</node>
<node height="50" kernel="stub/r12" kernel_type="receptor" title="Yet another receptor" width="50" x="211" y="523">
<property name="type" short-description="type" type="String" value="simple"/>
</node>
</nodes>
<edges>
<edge in="h15" kernel="stub/edge_0: $&quot;c5.h15&quot; to $&quot;c5.r11&quot;" kernel_type="edge" out="r11" title="Inhibition of secretion">
<path>
<segment segmentType="moveTo" x0="416" y0="632"/>
<segment segmentType="lineTo" x0="418" y0="572"/>
</path>
<property name="edgeType" short-description="edgeType" type="String" value="red"/>
</edge>
<edge in="r11" kernel="stub/edge_0: $&quot;c5.r11&quot; to $&quot;c5.h14&quot;" kernel_type="edge" out="h14" title="Simulation of secretion">
<path>
<segment segmentType="moveTo" x0="407" y0="572"/>
<segment segmentType="lineTo" x0="273" y0="634"/>
</path>
<property name="edgeType" short-description="edgeType" type="String" value="green"/>
</edge>
</edges>
</compartment>
</nodes>
<edges>
<edge in="Endocrine loop" kernel="stub/edge_0: $&quot;Endocrine loop&quot; to $c2.r1" kernel_type="edge" out="c2/r1" title=" ">
<path>
<segment segmentType="moveTo" x0="485" y0="207"/>
<segment segmentType="lineTo" x0="414" y0="173"/>
</path>
<property name="edgeType" short-description="edgeType" type="String" value="simple"/>
</edge>
<edge in="c5/h14" kernel="stub/edge_0: $&quot;c5.h14&quot; to $c4.h4" kernel_type="edge" out="c4/h4" title="Secretion">
<path>
<segment segmentType="moveTo" x0="211" y0="660"/>
<segment segmentType="cubic" x0="107" y0="659"/>
<segment segmentType="lineTo" x0="128" y0="257"/>
<segment segmentType="lineTo" x0="180" y0="133"/>
</path>
</edge>
<edge in="c5/h15" kernel="stub/edge_0: $&quot;c5.h15&quot; to $c1.h1" kernel_type="edge" out="c1/h1" title="Secretion">
<path>
<segment segmentType="moveTo" x0="467" y0="658"/>
<segment segmentType="quadric" x0="609" y0="657"/>
<segment segmentType="lineTo" x0="623" y0="110"/>
</path>
<property name="edgeType" short-description="edgeType" type="String" value="simple"/>
</edge>
<edge in="blood/h6" kernel="stub/edge_0: $blood.h6 to $&quot;c5.r11&quot;" kernel_type="edge" out="c5/r11" title="Binding">
<path>
<segment segmentType="moveTo" x0="408" y0="437"/>
<segment segmentType="lineTo" x0="416" y0="520"/>
</path>
<property name="edgeType" short-description="edgeType" type="String" value="simple"/>
</edge>
<edge in="c1/h1" kernel="stub/edge_0: $c1.h1 to $c2.r1" kernel_type="edge" out="c2/r1" title="Binding">
<path>
<segment segmentType="moveTo" x0="610" y0="110"/>
<segment segmentType="lineTo" x0="419" y0="121"/>
</path>
<property name="edgeType" short-description="edgeType" type="String" value="simple"/>
</edge>
<edge in="c2/h2" kernel="stub/edge_0: $c2.h2 to $&quot;Endocrine loop&quot;" kernel_type="edge" out="Endocrine loop" title=" ">
<path>
<segment segmentType="moveTo" x0="414" y0="257"/>
<segment segmentType="lineTo" x0="485" y0="229"/>
</path>
<property name="edgeType" short-description="edgeType" type="String" value="line"/>
</edge>
<edge in="c2/h2" kernel="stub/edge_0: $c2.h2 to $blood.h6" kernel_type="edge" out="blood/h6" title="Secretion">
<path>
<segment segmentType="moveTo" x0="406" y0="309"/>
<segment segmentType="lineTo" x0="406" y0="385"/>
</path>
<property name="edgeType" short-description="edgeType" type="String" value="simple"/>
</edge>
<edge in="c3/h5" kernel="stub/edge_0: $c3.h5 to $&quot;c5.r12&quot;" kernel_type="edge" out="c5/r12" title="Secretion and binding">
<path>
<segment segmentType="moveTo" x0="252" y0="426"/>
<segment segmentType="lineTo" x0="260" y0="522"/>
</path>
<property name="edgeType" short-description="edgeType" type="String" value="simple"/>
</edge>
<edge in="c4/h4" kernel="stub/edge_0: $c4.h4 to $c3.r2" kernel_type="edge" out="c3/r2" title="Binding">
<path>
<segment segmentType="moveTo" x0="187" y0="133"/>
<segment segmentType="lineTo" x0="245" y0="237"/>
</path>
</edge>
</edges>
<filters>
<a n="filters" t="[Lbiouml.model.DiagramFilter;">
<v/>
</a>
</filters>
</diagram>
</example>
</examples>
</graphic-notation>
