Sidebar-Sysml.js 214 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877
  1. (function()
  2. {
  3. Sidebar.prototype.addSysMLPalette = function()
  4. {
  5. this.setCurrentSearchEntryLibrary('sysml', 'sysmlModel Elements');
  6. this.addSysMLModelElementsPalette();
  7. this.setCurrentSearchEntryLibrary('sysml', 'sysmlBlocks');
  8. this.addSysMLBlocksPalette();
  9. this.setCurrentSearchEntryLibrary('sysml', 'sysmlPorts and Flows');
  10. this.addSysMLPortsAndFlowsPalette();
  11. this.setCurrentSearchEntryLibrary('sysml', 'sysmlConstraint Blocks');
  12. this.addSysMLConstraintBlocksPalette();
  13. this.setCurrentSearchEntryLibrary('sysml', 'sysmlActivities');
  14. this.addSysMLActivitiesPalette();
  15. this.setCurrentSearchEntryLibrary('sysml', 'sysmlInteractions');
  16. this.addSysMLInteractionsPalette();
  17. this.setCurrentSearchEntryLibrary('sysml', 'sysmlState Machines');
  18. this.addSysMLStateMachinesPalette();
  19. this.setCurrentSearchEntryLibrary('sysml', 'sysmlUse Cases');
  20. this.addSysMLUseCasesPalette();
  21. this.setCurrentSearchEntryLibrary('sysml', 'sysmlAllocations');
  22. this.addSysMLAllocationsPalette();
  23. this.setCurrentSearchEntryLibrary('sysml', 'sysmlRequirements');
  24. this.addSysMLRequirementsPalette();
  25. this.setCurrentSearchEntryLibrary('sysml', 'sysmlProfiles');
  26. this.addSysMLProfilesPalette();
  27. this.setCurrentSearchEntryLibrary('sysml', 'sysmlStereotypes');
  28. this.addSysMLStereotypesPalette();
  29. this.setCurrentSearchEntryLibrary();
  30. }
  31. /**
  32. * Adds the sysML palettes to the sidebar.
  33. */
  34. Sidebar.prototype.addSysMLModelElementsPalette = function(expand)
  35. {
  36. var gn = '';
  37. var dt = 'sysml model element ';
  38. var sb = this;
  39. var s = 'html=1;shape=mxgraph.sysml.';
  40. var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;';
  41. var fns = [
  42. this.addDataEntry(dt + 'comment', 180, 80, 'Comment',
  43. '1ZS7bsMgFIafhrXCOJGytk6bpZUqZWlHFE4NEgYLn8ROn74Hg5I4FylDlg6W///cgM8WrKyaYRVkqz+8AsvKV1ZWwXtMqhkqsJYJbhQrl0wITg8TbzeyxZjlrQzg8J4GkRp20m4hRSrfNLFZcIQBU7rDvc3pTss2SueRXi+d+Y2umJOW1tSOjIUfjKlWboyr30e3LDiFNDY2apK9NghrKontPZ2fYnkvEGjlm+cZQ/kwK/ANYNhTyT5lZ+m4vDcKdW6Y55gGU2uc1sku+fow6QiLROZ1nV15we6CFqga1tk67yIxcOo5BN+fRAaDX2T50yy77+hIK9lpUJnYCby0Thw+wdT5bdjA5MPeQW6KOoCVaHbTwdco5UGf3ow/S54izriiDDVgLjpDe9jDXbRnD6e9+Pe0i8WjcJM9Xjqp/PRO+gM='),
  44. this.addDataEntry(dt + 'constraint note', 180, 80, 'Constraint Note',
  45. '1ZQxb8IwEIV/jVcUO1BYIaUsVKrE0o4WvsaWHDtyDEn663uOLSAUJAaWDlHuPd8921+kkLyouo3jtXy3AjTJ1yQvnLU+VlVXgNaEZUqQ/JUwluFD2NudVTqsZjV3YPwjAywOHLk+QHTIfFVQki/RxXJLyRzdbE0nXXDYS4m5q+CwST+shfnG9zrNN5LXoTTW42vVqJ+g6AxrrlVpUGj4DiFNzffKlNtBvdIMLekrHWosW6k87LAljLcIaNh2OCw4D93dCw9Wuu0GbAXe9djSx9Vp5JG1SniZBmbJk6BK6cd9vIm6PCWdaWKRgN6Gm/+Fe00LRAm7JI01gRgYsXTOthdOp/wnymwyTeorKKwFbySIROwCXtwnhI8wNfbg9jD68g+QG6N2oLlXx3HwLUop6MMqzD+lsCuunrsSfGq6Qns6w0O0p0+nvfj3tOniWbhRnv9Ksf3yp/UL'),
  46. this.addDataEntry(dt + 'constraint textual note', 160, 60, 'Constraint Textual Note',
  47. 'lVNNb8MgDP01SNuNgtSel6TrZZMm9bAzTdyASiAidEn362cCaZV+SN0ByX72g+dnQXjeDBsnWvlpK9CErwnPnbU+Rs2Qg9aEUVURXhDGKB7C3h9UF2OVtsKB8c8QWCT8CH2EiKw1NEjGm5aE8QUlPHsR5oRNdVCpShH4BsW+Rm7nTzpxOynaEDoo8fWs884e4FtVXiLIENlb47epf4G59I1OYS+Vh20rylDr8SnEhFa1wbREQeAQSGrBeRgeTjxCadwN2Aa8C/L7pCN0LKMrVIKqZaJNmOhiXp+pF/8wSBbet5Pf2ElWWWkNOiEU6mMUhXuyKm6sm0bVsPdzY8K0wfW31NGoqgqsTIsd6C/bKa9sKLg4y5nwcVWfEzNRHmpnj6bKrbZobmGsgWlH6ndcUbIEJzC4UrGb1NKnFsHuL2K4WsIpefd//zG9fJWxNvtJfw=='),
  48. this.addDataEntry(dt + 'constraint textual note', 160, 0, 'Constraint Textual Note',
  49. 'lVNBbsIwEHyNj5WMI5UzCS2nSpU49GySJVg4XuQsNPD6rmNDSBskerDkHc+s7RlbZEXTrbw+7D6wAiuyN5EVHpHirOkKsFYoaSqRLYVSkodQ7w9WZ/2qPGgPjp4RqCg4aXuEiIh5XqJryWvDLZQk6EjMl5HX0tkm3gk8mVLbhTW1Y2iDRNiILN9Rw9dYzngKrlp4j99cOnQQkKqGdWqSIKs3YHNd7muPR1cVaNEPq1t0tDaXwJ9JrvlguIcvU9GOIcVIPFlo/NCDHkoGrAAbIH9migeryZzGOt3Gsr7xbtJPjJZcKS0efQkJvTf5SuxS51c57k3a10B/hDy5O98A9ZlN55dN5adduF0dHlVIqDeD7ZoI0UNrLnrTl3KcnU65Wtiyi/nvuAkP/84ubs+vy0FJadfbC5VhB+geZqimM0yCl6R4OtKR54PBXA6fL+Zx/zd/AA=='),
  50. this.createVertexTemplateEntry(s + 'composite;symbol0=folder;fontStyle=1;spacingTop=15;tabWidth=80;tabHeight=20;tabPosition=left;symbol1=triangle;symbol1Width=7;symbol1Height=10;symbol1Align=right;symbol1VerticalAlign=top;symbol1Spacing=8;symbol1VSpacing=25;symbol1Direction=north;strokeWidth=2;whiteSpace=wrap;align=center;',
  51. 160, 90, 'Model', 'Model', null, null, this.getTagsForStencil(gn, '', dt + 'model').join(' ')),
  52. this.addEntry(dt + 'package diagram', function()
  53. {
  54. var bg = new mxCell('<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;"><b>pkg</b> Name</p>', new mxGeometry(0, 0, 300, 120), s + 'package;xSize=90;align=left;spacingLeft=10;overflow=fill;recursiveResize=0;');
  55. bg.vertex = true;
  56. var cardCell2 = new mxCell('\nSubpackage1', new mxGeometry(15, 60, 100, 50), inh + 'shape=folder;spacingLeft=10;tabWidth=40;tabHeight=14;tabPosition=left;fontSize=10;html=1;whiteSpace=wrap;');
  57. cardCell2.vertex = true;
  58. bg.insert(cardCell2);
  59. var cardCell3 = new mxCell('\nSubpackage2', new mxGeometry(190, 20, 100, 50), inh + 'shape=folder;spacingLeft=10;tabWidth=40;tabHeight=14;tabPosition=left;fontSize=10;html=1;whiteSpace=wrap;');
  60. cardCell3.vertex = true;
  61. bg.insert(cardCell3);
  62. var assoc1 = new mxCell('&lt;&lt;import&gt;&gt;', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;endArrow=open;dashed=1;verticalAlign=top;labelBackgroundColor=none;endSize=12;html=1;');
  63. assoc1.geometry.relative = true;
  64. assoc1.edge = true;
  65. cardCell2.insertEdge(assoc1, true);
  66. cardCell3.insertEdge(assoc1, false);
  67. bg.insert(assoc1);
  68. return sb.createVertexTemplateFromCells([bg], 300, 120, 'Package Diagram');
  69. }),
  70. this.addEntry(dt + 'package tab', function()
  71. {
  72. var bg = new mxCell('Package1', new mxGeometry(0, 0, 300, 120), 'shape=folder;xSize=90;align=left;spacingLeft=10;align=left;verticalAlign=top;spacingLeft=5;spacingTop=-4;tabWidth=70;tabHeight=20;tabPosition=left;html=1;recursiveResize=0;');
  73. bg.vertex = true;
  74. var cardCell2 = new mxCell('\nSubpackage1', new mxGeometry(15, 60, 100, 50), inh + 'shape=folder;spacingLeft=10;tabWidth=40;tabHeight=14;tabPosition=left;fontSize=10;html=1;whiteSpace=wrap;');
  75. cardCell2.vertex = true;
  76. bg.insert(cardCell2);
  77. var cardCell3 = new mxCell('\nSubpackage2', new mxGeometry(190, 30, 100, 50), inh + 'shape=folder;spacingLeft=10;tabWidth=40;tabHeight=14;tabPosition=left;fontSize=10;html=1;whiteSpace=wrap;');
  78. cardCell3.vertex = true;
  79. bg.insert(cardCell3);
  80. var assoc1 = new mxCell('&lt;&lt;import&gt;&gt;', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;endArrow=open;dashed=1;verticalAlign=top;labelBackgroundColor=none;endSize=12;html=1;');
  81. assoc1.geometry.relative = true;
  82. assoc1.edge = true;
  83. cardCell2.insertEdge(assoc1, true);
  84. cardCell3.insertEdge(assoc1, false);
  85. bg.insert(assoc1);
  86. return sb.createVertexTemplateFromCells([bg], 300, 120, 'Package (Tab)');
  87. }),
  88. this.createVertexTemplateEntry('shape=folder;tabWidth=80;tabHeight=20;tabPosition=left;strokeWidth=2;html=1;whiteSpace=wrap;align=center;',
  89. 160, 90, 'Package1', 'Package (Name)', null, null, this.getTagsForStencil(gn, '', dt + 'package name').join(' ')),
  90. this.createVertexTemplateEntry('shape=note;size=15;align=left;spacingLeft=10;html=1;whiteSpace=wrap;',
  91. 160, 60, '&lt;&lt;problem&gt;&gt;\nDescription', 'Problem', null, null, this.getTagsForStencil(gn, '', dt + 'problem').join(' ')),
  92. this.createVertexTemplateEntry('shape=note;size=15;align=left;spacingLeft=10;html=1;whiteSpace=wrap;',
  93. 160, 60, '&lt;&lt;rationale&gt;&gt;\nDescription', 'Rationale', null, null, this.getTagsForStencil(gn, '', dt + 'rationale').join(' ')),
  94. this.createVertexTemplateEntry('shape=folder;tabWidth=80;tabHeight=20;tabPosition=left;html=1;whiteSpace=wrap;align=center;',
  95. 160, 80, '\n&lt;&lt;view&gt;&gt;\n{viewpoint = View name}\nName', 'View (Name)', null, null, this.getTagsForStencil(gn, '', dt + 'view name').join(' ')),
  96. this.createVertexTemplateEntry('shape=folder;html=1;tabWidth=80;tabHeight=40;tabPosition=left;align=left;verticalAlign=top;spacingLeft=10;whiteSpace=wrap;',
  97. 160, 120, '&lt;&lt;view&gt;&gt;\nName', 'View', null, null, this.getTagsForStencil(gn, '', dt + 'view').join(' ')),
  98. this.addEntry(dt + 'viewpoint', function()
  99. {
  100. var cell1 = new mxCell('', new mxGeometry(0, 0, 120, 160), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  101. cell1.vertex = true;
  102. var cell2 = new mxCell('&lt;&lt;viewpoint&gt;&gt;', new mxGeometry(0, 0, 140, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  103. cell2.vertex = true;
  104. cell1.insert(cell2);
  105. var cell3 = new mxCell('Name', new mxGeometry(0, 0, 140, 14), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  106. cell3.vertex = true;
  107. cell1.insert(cell3);
  108. var divider = new mxCell('', new mxGeometry(0, 0, 40, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  109. divider.vertex = true;
  110. cell1.insert(divider);
  111. var cell4 = new mxCell('stakeholders="..."', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  112. cell4.vertex = true;
  113. cell1.insert(cell4);
  114. var cell5 = new mxCell('purpose="..."', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  115. cell5.vertex = true;
  116. cell1.insert(cell5);
  117. var cell6 = new mxCell('concerns="..."', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  118. cell6.vertex = true;
  119. cell1.insert(cell6);
  120. var cell7 = new mxCell('languages="..."', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  121. cell7.vertex = true;
  122. cell1.insert(cell7);
  123. var cell8 = new mxCell('methods="..."', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  124. cell8.vertex = true;
  125. cell1.insert(cell8);
  126. var cell9 = new mxCell('', new mxGeometry(0, 0, 140, 20), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  127. cell9.vertex = true;
  128. cell1.insert(cell9);
  129. return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Viewpoint');
  130. }),
  131. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;',
  132. 160, 0, '&lt;&lt;conform&gt;&gt;', 'Conform', null, this.getTagsForStencil(gn, '', dt + 'conform').join(' ')),
  133. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;',
  134. 160, 0, '&lt;&lt;stereotype1&gt;&gt;\ndependency1', 'Dependency', null, this.getTagsForStencil(gn, '', dt + 'dependency').join(' ')),
  135. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;',
  136. 160, 0, '&lt;&lt;import&gt;&gt;', 'Public Package Import', null, this.getTagsForStencil(gn, '', dt + 'public package import').join(' ')),
  137. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;',
  138. 160, 0, '&lt;&lt;access&gt;&gt;', 'Private Package Import', null, this.getTagsForStencil(gn, '', dt + 'private package import').join(' ')),
  139. this.createEdgeTemplateEntry('edgeStyle=none;html=1;' + mxConstants.STYLE_STARTARROW + '=sysMLPackCont;startSize=12;' + mxConstants.STYLE_ENDARROW + '=none;',
  140. 160, 0, '', 'Package Containment', null, this.getTagsForStencil(gn, '', dt + 'package containment').join(' ')),
  141. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endSize=12;endArrow=block;endFill=0;dashed=1;',
  142. 160, 0, '', 'Realization', null, this.getTagsForStencil(gn, '', dt + 'realization').join(' ')),
  143. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;',
  144. 160, 0, '&lt;&lt;refine&gt;&gt;', 'Refine', null, this.getTagsForStencil(gn, '', dt + 'refine').join(' ')),
  145. this.createVertexTemplateEntry('shape=triangle;fillColor=strokeColor;',
  146. 10, 10, '', 'Flow Direction', null, null, this.getTagsForStencil(gn, '', dt + 'flow direction').join(' ')),
  147. this.createVertexTemplateEntry('shape=triangle;fillColor=strokeColor;direction=south;',
  148. 10, 10, '', 'Flow Direction', null, null, this.getTagsForStencil(gn, '', dt + 'flow direction').join(' '))
  149. ];
  150. this.addPalette('sysmlModel Elements', 'SysML / Model Elements', expand || false, mxUtils.bind(this, function(content)
  151. {
  152. for (var i = 0; i < fns.length; i++)
  153. {
  154. content.appendChild(fns[i](content));
  155. }
  156. }));
  157. };
  158. Sidebar.prototype.addSysMLBlocksPalette = function(expand)
  159. {
  160. var gn = '';
  161. var dt = 'sysml block ';
  162. var sb = this;
  163. var s = 'html=1;shape=mxgraph.sysml.';
  164. var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;';
  165. var fns =
  166. [
  167. this.addEntry(dt + 'block definition diagram', function()
  168. {
  169. var bg = new mxCell('<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;"><b>bdd</b> Namespace1</p>', new mxGeometry(0, 0, 300, 100), s + 'package;labelX=120;align=left;spacingLeft=10;overflow=fill;recursiveResize=0;');
  170. bg.vertex = true;
  171. var cardCell2 = new mxCell('Block1', new mxGeometry(15, 30, 100, 50), inh + 'shape=rect;fontStyle=1;html=1;whiteSpace=wrap;align=center;');
  172. cardCell2.vertex = true;
  173. bg.insert(cardCell2);
  174. var cardCell3 = new mxCell('Block2', new mxGeometry(190, 30, 100, 50), inh + 'shape=rect;fontStyle=1;html=1;whiteSpace=wrap;align=center;');
  175. cardCell3.vertex = true;
  176. bg.insert(cardCell3);
  177. var assoc = new mxCell('part1', new mxGeometry(0, 0, 0, 0), inh + 'align=right;html=1;verticalAlign=bottom;endArrow=none;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=none;endFill=0;labelBackgroundColor=none;');
  178. assoc.geometry.relative = true;
  179. assoc.geometry.x=1;
  180. assoc.edge = true;
  181. bg.insert(assoc);
  182. var sourceLabel = new mxCell('1', new mxGeometry(-1, 0, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=none;fontSize=10');
  183. sourceLabel.geometry.relative = true;
  184. sourceLabel.setConnectable(false);
  185. sourceLabel.vertex = true;
  186. assoc.insert(sourceLabel);
  187. var targetLabel = new mxCell('0..*', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=none;fontSize=10');
  188. targetLabel.geometry.relative = true;
  189. targetLabel.setConnectable(false);
  190. targetLabel.vertex = true;
  191. assoc.insert(targetLabel);
  192. cardCell2.insertEdge(assoc, true);
  193. cardCell3.insertEdge(assoc, false);
  194. return sb.createVertexTemplateFromCells([bg], 300, 100, 'Block Definition Diagram');
  195. }),
  196. this.addDataEntry(dt + 'relation', 160, 0, 'Relation',
  197. 'zVRNb8IwDP01vUwaCi3aHcrgNGkS+wOhMW20NEapYYVfP9MmLVVh2qYddqjkPNvPHy9NlKRlvXZyX7ygAhMlz1GSOkRqrbJOwZgoFlpFyTKKY8FfFK/ueKeNV+ylA0vfSYjbhKM0B2gRziVPU9HJeFQanVs2nc4LJl4UVHKvyymbR3CkM2nmPmSLRFiyA6yaO4cfjFm0TLSoiMkDprQs0aq3Qtvg2ujzpd50FoCVNqEMqBw2viFP13Z5cdydvoH86GvAEsidOKQeJDgwkvRxyCKr9ph3WR3RK2rm70MqPLgMPHq97BAYyj2JITePmAONEtm46raHGu1u65iMdBxr6KDSZ7ltjmKoYZDXwI5uSEq4Z9TILZiFzN5zhwerUjToejF2aDv9/JgZWgsZ+ZLdXRQXeqjvahZ/qdnjT0UbbPWLFc5GKxSTycNvthh+kv+8xj/aIh/7x6q9t9dv2Sc='),
  198. this.addEntry(dt + 'block', function()
  199. {
  200. var cell1 = new mxCell('', new mxGeometry(0, 0, 220, 340), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  201. cell1.vertex = true;
  202. var cell2 = new mxCell('&lt;&lt;block&gt;&gt;', new mxGeometry(0, 0, 140, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  203. cell2.vertex = true;
  204. cell1.insert(cell2);
  205. var cell2 = new mxCell('{encapsulated}', new mxGeometry(0, 0, 140, 14), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  206. cell2.vertex = true;
  207. cell1.insert(cell2);
  208. var cell3 = new mxCell('Block1', new mxGeometry(0, 0, 140, 14), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  209. cell3.vertex = true;
  210. cell1.insert(cell3);
  211. var divider = new mxCell('', new mxGeometry(0, 0, 40, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  212. divider.vertex = true;
  213. cell1.insert(divider);
  214. var cell4 = new mxCell('constraints', new mxGeometry(0, 0, 140, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=2;fontSize=10;');
  215. cell4.vertex = true;
  216. cell1.insert(cell4);
  217. var cell5 = new mxCell('{x > y}', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  218. cell5.vertex = true;
  219. cell1.insert(cell5);
  220. cell1.insert(divider.clone());
  221. var cell6 = new mxCell('operations', new mxGeometry(0, 0, 140, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=2;fontSize=10;');
  222. cell6.vertex = true;
  223. cell1.insert(cell6);
  224. var cell7 = new mxCell('operation1 (p1 : Type1) : Type2', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  225. cell7.vertex = true;
  226. cell1.insert(cell7);
  227. cell1.insert(divider.clone());
  228. var cell8 = new mxCell('parts', new mxGeometry(0, 0, 140, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=2;fontSize=10;');
  229. cell8.vertex = true;
  230. cell1.insert(cell8);
  231. var cell9 = new mxCell('property1 : Block2', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  232. cell9.vertex = true;
  233. cell1.insert(cell9);
  234. cell1.insert(divider.clone());
  235. var cell10 = new mxCell('references', new mxGeometry(0, 0, 140, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=2;fontSize=10;');
  236. cell10.vertex = true;
  237. cell1.insert(cell10);
  238. var cell11 = new mxCell('property2 : Block3 [0..*] {ordered}', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  239. cell11.vertex = true;
  240. cell1.insert(cell11);
  241. cell1.insert(divider.clone());
  242. var cell12 = new mxCell('values', new mxGeometry(0, 0, 140, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=2;fontSize=10;');
  243. cell12.vertex = true;
  244. cell1.insert(cell12);
  245. var cell13 = new mxCell('property3 : Integer = 99 {readOnly}', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  246. cell13.vertex = true;
  247. cell1.insert(cell13);
  248. var cell14 = new mxCell('property4 : Real = 10.0', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  249. cell14.vertex = true;
  250. cell1.insert(cell14);
  251. cell1.insert(divider.clone());
  252. var cell15 = new mxCell('properties', new mxGeometry(0, 0, 140, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=2;fontSize=10;');
  253. cell15.vertex = true;
  254. cell1.insert(cell15);
  255. var cell16 = new mxCell('property5 : Type1', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  256. cell16.vertex = true;
  257. cell1.insert(cell16);
  258. var cell17 = new mxCell('', new mxGeometry(0, 0, 140, 36), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  259. cell17.vertex = true;
  260. cell1.insert(cell17);
  261. return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Block');
  262. }),
  263. this.createVertexTemplateEntry('shape=umlActor;html=1;verticalLabelPosition=bottom;verticalAlign=top;align=center;',
  264. 30, 60, 'ActorName', 'Actor', null, null, this.getTagsForStencil(gn, '', dt + 'actor').join(' ')),
  265. this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 160, 80,
  266. '<p>&lt;&lt;actor&gt;&gt;<br/><b>ActorName</b></p>',
  267. 'Actor', null, null, this.getTagsForStencil(gn, '', dt + 'actor').join(' ')),
  268. this.addEntry(dt + 'value type valuetype', function()
  269. {
  270. var cell1 = new mxCell('', new mxGeometry(0, 0, 200, 180), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  271. cell1.vertex = true;
  272. var cell2 = new mxCell('&lt;&lt;valueType&gt;&gt;', new mxGeometry(0, 0, 140, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  273. cell2.vertex = true;
  274. cell1.insert(cell2);
  275. var cell3 = new mxCell('ValueType1', new mxGeometry(0, 0, 140, 14), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  276. cell3.vertex = true;
  277. cell1.insert(cell3);
  278. var divider = new mxCell('', new mxGeometry(0, 0, 40, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  279. divider.vertex = true;
  280. cell1.insert(divider);
  281. var cell4 = new mxCell('operations', new mxGeometry(0, 0, 140, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=2;fontSize=10;');
  282. cell4.vertex = true;
  283. cell1.insert(cell4);
  284. var cell5 = new mxCell('operation1 (p1 : Type1) : Type2', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  285. cell5.vertex = true;
  286. cell1.insert(cell5);
  287. cell1.insert(divider.clone());
  288. var cell6 = new mxCell('properties', new mxGeometry(0, 0, 140, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=2;fontSize=10;');
  289. cell6.vertex = true;
  290. cell1.insert(cell6);
  291. var cell7 = new mxCell('property1 : Type3', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  292. cell7.vertex = true;
  293. cell1.insert(cell7);
  294. cell1.insert(divider.clone());
  295. var cell8 = new mxCell('&lt;&lt;valueType&gt;&gt;', new mxGeometry(0, 0, 140, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  296. cell8.vertex = true;
  297. cell1.insert(cell8);
  298. var cell9 = new mxCell('unit = UnitName', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  299. cell9.vertex = true;
  300. cell1.insert(cell9);
  301. var cell10 = new mxCell('', new mxGeometry(0, 0, 140, 26), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  302. cell10.vertex = true;
  303. cell1.insert(cell10);
  304. return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'ValueType');
  305. }),
  306. this.addEntry(dt + 'enumeration', function()
  307. {
  308. var cell1 = new mxCell('', new mxGeometry(0, 0, 200, 80), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  309. cell1.vertex = true;
  310. var cell2 = new mxCell('&lt;&lt;enumeration&gt;&gt;', new mxGeometry(0, 0, 140, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  311. cell2.vertex = true;
  312. cell1.insert(cell2);
  313. var cell3 = new mxCell('Enumeration1', new mxGeometry(0, 0, 140, 14), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  314. cell3.vertex = true;
  315. cell1.insert(cell3);
  316. var divider = new mxCell('', new mxGeometry(0, 0, 40, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  317. divider.vertex = true;
  318. cell1.insert(divider);
  319. var cell4 = new mxCell('literalName1', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  320. cell4.vertex = true;
  321. cell1.insert(cell4);
  322. var cell5 = new mxCell('literalName2', new mxGeometry(0, 0, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  323. cell5.vertex = true;
  324. cell1.insert(cell5);
  325. var cell6 = new mxCell('', new mxGeometry(0, 0, 140, 6), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  326. cell6.vertex = true;
  327. cell1.insert(cell6);
  328. return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Enumeration');
  329. }),
  330. this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 80, 40,
  331. '<p style="margin:13px;"><b><i>Name</i></b></p>',
  332. 'Abstract Definition', null, null, this.getTagsForStencil(gn, '', dt + 'abstract definition').join(' ')),
  333. this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 80, 40,
  334. '<p style="margin:5px;">{abstract}<br/><b><i>Name</i></b></p>',
  335. 'Abstract Definition', null, null, this.getTagsForStencil(gn, '', dt + 'abstract definition').join(' ')),
  336. this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 80, 40,
  337. '<p style="margin:5px;"><b><i>Name</i></b><br/>{abstract}</p>',
  338. 'Abstract Definition', null, null, this.getTagsForStencil(gn, '', dt + 'abstract definition').join(' ')),
  339. this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 200, 80,
  340. '<p style="margin:0px;margin-top:4px;text-align:center;">' +
  341. '&lt;&lt;stereotype1&gt;&gt;<br/>' +
  342. '<b>Block1</b></p><hr/>' +
  343. '<p style="margin:0px;margin-left:8px;text-align:center;">&lt;&lt;stereotype1&gt;&gt;</p>' +
  344. '<p style="margin:0px;margin-left:8px;text-align:left;">property1 = value</p>',
  345. 'Stereotype Property Compartment', null, null, this.getTagsForStencil(gn, '', dt + 'stereotype property compartment').join(' ')),
  346. this.addEntry(dt + 'namespace compartment', function()
  347. {
  348. var bg = new mxCell(
  349. '<p style="margin:0px;margin-top:4px;text-align:center;">' +
  350. '<b>Block1</b></p><hr/>' +
  351. '<p style="font-size:10px;margin:0px;text-align:center;"><i>namespace</i></p>',
  352. new mxGeometry(0, 0, 300, 120), 'shape=rect;align=left;html=1;overflow=fill;whiteSpace=wrap;recursiveResize=0;');
  353. bg.vertex = true;
  354. var cardCell2 = new mxCell('Block2', new mxGeometry(15, 60, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
  355. cardCell2.vertex = true;
  356. bg.insert(cardCell2);
  357. var cardCell3 = new mxCell('Block3', new mxGeometry(190, 60, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
  358. cardCell3.vertex = true;
  359. bg.insert(cardCell3);
  360. var assoc = new mxCell('part1', new mxGeometry(0, 0, 0, 0), inh + 'align=right;verticalAlign=bottom;endArrow=none;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=none;html=1;labelBackgroundColor=none;');
  361. assoc.geometry.relative = true;
  362. assoc.geometry.x=1;
  363. assoc.edge = true;
  364. bg.insert(assoc);
  365. var sourceLabel = new mxCell('1', new mxGeometry(-1, 0, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=top;labelBackgroundColor=none;fontSize=10');
  366. sourceLabel.geometry.relative = true;
  367. sourceLabel.setConnectable(false);
  368. sourceLabel.vertex = true;
  369. assoc.insert(sourceLabel);
  370. var targetLabel = new mxCell('0..*', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=none;fontSize=10');
  371. targetLabel.geometry.relative = true;
  372. targetLabel.setConnectable(false);
  373. targetLabel.vertex = true;
  374. assoc.insert(targetLabel);
  375. cardCell2.insertEdge(assoc, true);
  376. cardCell3.insertEdge(assoc, false);
  377. return sb.createVertexTemplateFromCells([bg], 300, 100, 'Namespace Compartment');
  378. }),
  379. this.addEntry(dt + 'block', function()
  380. {
  381. var cell1 = new mxCell('', new mxGeometry(0, 0, 250, 80), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  382. cell1.vertex = true;
  383. var cell2 = new mxCell('Block1', new mxGeometry(0, 0, 140, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  384. cell2.vertex = true;
  385. cell1.insert(cell2);
  386. var divider = new mxCell('', new mxGeometry(0, 0, 40, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  387. divider.vertex = true;
  388. cell1.insert(divider);
  389. var cell3 = new mxCell('namespace', new mxGeometry(0, 0, 140, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=2;fontSize=10;');
  390. cell3.vertex = true;
  391. cell1.insert(cell3);
  392. var cell4 = new mxCell('', new mxGeometry(0, 0, 140, 56), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  393. cell4.vertex = true;
  394. cell1.insert(cell4);
  395. return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Block');
  396. }),
  397. this.addEntry(dt + 'structure compartment', function()
  398. {
  399. var bg = new mxCell(
  400. '<p style="margin:0px;margin-top:4px;text-align:center;">' +
  401. '<b>Block1</b></p><hr/>' +
  402. '<p style="font-size:10px;margin:0px;text-align:center;"><i>structure</i></p>',
  403. new mxGeometry(0, 0, 300, 120), 'shape=rect;align=left;html=1;overflow=fill;whiteSpace=wrap;recursiveResize=0;');
  404. bg.vertex = true;
  405. var cardCell2 = new mxCell('Block2', new mxGeometry(15, 60, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
  406. cardCell2.vertex = true;
  407. bg.insert(cardCell2);
  408. var cardCell3 = new mxCell('Block3', new mxGeometry(190, 60, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
  409. cardCell3.vertex = true;
  410. bg.insert(cardCell3);
  411. var assoc = new mxCell('c1:', new mxGeometry(0, 0, 0, 0), inh + 'verticalAlign=bottom;html=1;endArrow=none;edgeStyle=none;labelBackgroundColor=none;');
  412. assoc.geometry.relative = true;
  413. assoc.edge = true;
  414. bg.insert(assoc);
  415. var targetLabel = new mxCell('e1', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=none;fontSize=10');
  416. targetLabel.geometry.relative = true;
  417. targetLabel.setConnectable(false);
  418. targetLabel.vertex = true;
  419. assoc.insert(targetLabel);
  420. var targetLabel2 = new mxCell('1', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=10');
  421. targetLabel2.geometry.relative = true;
  422. targetLabel2.setConnectable(false);
  423. targetLabel2.vertex = true;
  424. assoc.insert(targetLabel2);
  425. cardCell2.insertEdge(assoc, true);
  426. cardCell3.insertEdge(assoc, false);
  427. return sb.createVertexTemplateFromCells([bg], 300, 100, 'Structure Compartment');
  428. }),
  429. this.addDataEntry(dt + 'relation', 160, 0, 'Relation',
  430. '3VTLboMwEPwa3x2Ieg/kcapUKV/gwNZYNV60bFKSr68BB4IIVQ499YDkHe+MvTMWIk7L5kCqKt4xByvinYhTQuR+VTYpWCsiaXIRb0UUSf+JaL+wu+p2ZaUIHL9CiHrCRdkz9EgWNGq+2gBdgNhkym6s0c5DJ2TGUsRJwaW/8Xbll+DyDRF++9Kh88SkZkX8DDuaWyu8Wt+BvbGtjGxlcg3HcDISF6jRKbsb0aS/Xdu3OHIHhXkPgCUwXX0LgVVsLlOeqvtSD30D9QONVxxbajxTBgF99PTe2ATlNznV9jNq4BnRLx7uN0JdRM/jimdxzdMiqM1NnbpSTkNSIUAyuvBeJYvBWnUCm6jsSxOeXZ6iRRpT/EQ3hBhGzdA5yDgcOzw72Z4AzWJS0fOkpoSXc5sY+4uL65mL8Kc2Mlb/zUNfjj+l/uE+/rN+AA=='),
  431. this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 60,
  432. '<p style="margin:0px;margin-top:10px;text-align:center;">' +
  433. '&lt;&lt;unit&gt;&gt;<br/>' +
  434. '<p style="margin:0px;margin-left:8px;text-align:center;">{quantityKind = QuantityKind1}<br/>' +
  435. '<b>Unit1</b></p>',
  436. 'Unit', null, null, this.getTagsForStencil(gn, '', dt + 'unit').join(' ')),
  437. this.addEntry(dt + 'unit', function()
  438. {
  439. var cell1 = new mxCell('', new mxGeometry(0, 0, 200, 80), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  440. cell1.vertex = true;
  441. var cell2 = new mxCell('Unit1', new mxGeometry(0, 0, 200, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  442. cell2.vertex = true;
  443. cell1.insert(cell2);
  444. var divider = new mxCell('', new mxGeometry(0, 0, 200, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  445. divider.vertex = true;
  446. cell1.insert(divider);
  447. var cell3 = new mxCell('&lt;&lt;unit&gt;&gt;', new mxGeometry(0, 0, 200, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  448. cell3.vertex = true;
  449. cell1.insert(cell3);
  450. var cell4 = new mxCell('{quantityKind = QuantityKind1}', new mxGeometry(0, 0, 200, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  451. cell4.vertex = true;
  452. cell1.insert(cell4);
  453. var cell5 = new mxCell('', new mxGeometry(0, 0, 200, 20), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  454. cell5.vertex = true;
  455. cell1.insert(cell5);
  456. return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Unit');
  457. }),
  458. this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 200, 60,
  459. '<p style="margin:0px;margin-top:10px;text-align:center;">' +
  460. '&lt;&lt;quantityKind&gt;&gt;<br/>' +
  461. '<p style="margin:0px;margin-left:8px;text-align:center;"><b>QuantityKind1</b></p>',
  462. 'Quantity Kind', null, null, this.getTagsForStencil(gn, '', dt + 'quantity kind').join(' ')),
  463. this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;fontSize=15;whiteSpace=wrap;', 70, 30,
  464. '<p style="margin:0px;margin-top:4px;text-align:center;text-decoration:underline;">' +
  465. '<B>i1: Type1</b><br/>',
  466. 'Instance Specification', null, null, this.getTagsForStencil(gn, '', dt + 'instance specification').join(' ')),
  467. this.addDataEntry(dt + 'instance specification', 280, 30, 'Instance Specification',
  468. '3VVNj5swEP01HFcCk416DWG7p5VWSv+AgQlYNR7XOF/76zvGBkLYtDmt1B6ieJ7nDeP3PBCl2/b8arhu3rACGaUvUbo1iNav2vMWpIxYLKoozSPGYvpF7Pud3aTfjTU3oOwjBOYJRy4P4JGIrSVRM01wZy/Sw+tfB9dS1nJTCxWlm1ifx/DJoiZo1UMWzvaJS1G7rJLaADOgFZRouBXotg6qAiOFovrZVJ9WdfjvuxgBkRCHWvpx0ZAMu3Su4pZRGHfaEWSzY7Cu4dotDZRuv7EtSZ5T7QyPYPYSTxTuBWmUZntUdic+XHryTPGpERZ2mpcOOZFl4wOISge8a0EPBf1fAVuw5kIpJ1HZxmd88y7FDYi6Caw0YLzzcT0yJz9pESz93N70n7GXTfay/8PeQGBx8PEL7F4t7N4kC43caUTJ5cabmBdoLbZztUBVG2N6tVCD8sggFnNhVcMu1ERjG6xRcfkyoUE6lzcTrsODKWH28rF0y8DOLuwD8hqQdNeO8+qfiReo7yio4pTiGwno9RtySBwMX98Y49tdEHtvxv4esut5YZdOF3YZ6MQHL/ownrsUxjA3/hZlt872c5tJXoDMePmzNkhTuUWJNLK5wn42r6cgHLREpWh+wjPHT8jfxmD1xzEIhIddu3PlKZw+jl7y62/nbw=='),
  469. this.addDataEntry(dt + 'relation', 160, 0, 'Relation',
  470. 'jVPBbsIwDP2a3Esi7U4L4zRpEl8QWi+NlsaV60Lh65c2gdIBEodK9rP9Er/XCFU0w450W39hBU6orVAFIXKMmqEA54TMbCXURkiZhU/IzxfV1VTNWk3g+Z0BGQeO2vUQkXXi6PjsEnQEYltqt3bW+AAdkBkbofKam3DjzSqE4Ks1EZ5Cii34iOztZaRYyTGtDOwTJxLXaNBrt53RPJ479r1cZoLSJjvABpjOoYXAabbH5ZzuYmpufbfRb7SBcW7psKcSEnqv1rVxSMwf2ZKbNRngh8EQ3N1vhibxnxuhHoxo1YMRBJ296MOUZkv9dfKGrKmDWPl/zxjbgDp9AJfr8tcQ9r4q0CGFokc/GvCDnq+WpUVL9B5KTmfefqdspIfhpU/yuU/LgbddW8g6axjS+aFEye/f0R8='),
  471. this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 120, 60,
  472. '<p style="margin:0px;margin-top:10px;text-align:center;text-decoration:underline;">' +
  473. 'instance1: Type1<br/></p>' +
  474. '<p style="margin:0px;margin-top:4px;text-align:center;">value1</p>',
  475. 'Instance Specification', null, null, this.getTagsForStencil(gn, '', dt + 'instance specification').join(' ')),
  476. this.addEntry(dt + 'instance specification', function()
  477. {
  478. var bg = new mxCell(
  479. '<p style="margin:0px;margin-top:5px;text-align:center;text-decoration:underline;">' +
  480. ': Type1<hr/></p>',
  481. new mxGeometry(0, 0, 200, 180), 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;recursiveResize=0;');
  482. bg.vertex = true;
  483. var cardCell2 = new mxCell(
  484. '<p style="margin:0px;margin-top:5px;text-align:center;text-decoration:underline;">' +
  485. 'instance1 / property1: Type2<hr/></p>',
  486. new mxGeometry(10, 30, 180, 140), inh + 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;');
  487. cardCell2.vertex = true;
  488. bg.insert(cardCell2);
  489. var cell1 = new mxCell('', new mxGeometry(10, 30, 160, 100), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  490. cell1.vertex = true;
  491. cardCell2.insert(cell1);
  492. var cell2 = new mxCell('instance2 / property2: Type3', new mxGeometry(0, 0, 160, 36), 'html=1;align=center;spacing=0;spacingLeft=10;spacingRight=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=4;');
  493. cell2.vertex = true;
  494. cell1.insert(cell2);
  495. var divider = new mxCell('', new mxGeometry(0, 36, 160, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  496. divider.vertex = true;
  497. cell1.insert(divider);
  498. var cell3 = new mxCell('property1 = 10', new mxGeometry(0, 44, 160, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  499. cell3.vertex = true;
  500. cell1.insert(cell3);
  501. var cell4 = new mxCell('property2 = "value"', new mxGeometry(0, 60, 160, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  502. cell4.vertex = true;
  503. cell1.insert(cell4);
  504. var cell5 = new mxCell('', new mxGeometry(0, 76, 160, 24), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  505. cell5.vertex = true;
  506. cell1.insert(cell5);
  507. return sb.createVertexTemplateFromCells([bg], 200, 180, 'Instance Specification');
  508. }),
  509. this.addEntry(dt + 'instance specification', function()
  510. {
  511. var cell1 = new mxCell('', new mxGeometry(10, 30, 200, 160), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  512. cell1.vertex = true;
  513. var cell2 = new mxCell(': Type1', new mxGeometry(0, 0, 160, 20), 'html=1;align=center;spacing=0;spacingLeft=10;spacingRight=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=4;');
  514. cell2.vertex = true;
  515. cell1.insert(cell2);
  516. var divider = new mxCell('', new mxGeometry(0, 36, 160, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  517. divider.vertex = true;
  518. cell1.insert(divider);
  519. var cell3 = new mxCell('', new mxGeometry(0, 76, 160, 132), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  520. cell3.vertex = true;
  521. cell1.insert(cell3);
  522. return sb.createVertexTemplateFromCells([cell1], 200, 180, 'Instance Specification');
  523. }),
  524. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;',
  525. 160, 0, '&lt;&lt;stereotype&gt;&gt;\ndependency1', 'Dependency', null, null, this.getTagsForStencil(gn, '', dt + 'dependency').join(' ')),
  526. this.addDataEntry(dt + 'reference association', 250, 0, 'Reference Association',
  527. '3VRRa4MwEP41eRlMoq6UPda269Ng0F+Q6lXDYk7OtLP99Yuaap11jMJg7EHIfXffJfm+eCxc5tWGRJG9YgKKhWsWLgnRtKu8WoJSLOAyYeGKBQG3HwteJrJ+k+WFINDmJ4SgJRyFOkCLiLLEWAojUbtupTkplzwCGRkLtVAy1RbaoTGYszDKTG7PvvLtEnSyIMIPG2IBukW28ly38IM6TFLYup5IJsMUtVDrHo3afeu6yWs1kLvTBjAHQydbQqDs0Y9DnijbMO3qOuobStuxLynxQDE49Fq3S2HldJvxYW8jKAUzItrF1fl6qLHhtiXhyBLueWMrCEp5Frsm5EMHhHNHwd6qFX01zWBhUSV2oCIRv6eEB50sUSHZpEZdO7BHbS6euZvGqDXExm3ZvSxet4dq0qjgtlGO8OgYP/ZtIOw3Kj6NVGTzCCkBgoTNbcx9z3u4R1WSafbXZeXe8y/pOhvpWpD9zcmc7nqiU2J2g+Wf6WnDfri3w+F69n8C'),
  528. this.addDataEntry(dt + 'reference association', 250, 0, 'Reference Association',
  529. '3ZVRb4IwEMc/TV+WzFSYM3sUdD4tWeInqHBis9IjR3Xop1+BDmTIYoxLzB5Iete74/r7H5T5YVosSWTbN4xBMX/B/JAQTb1KixCUYh6XMfPnzPO4fZj3OrA7rnZ5Jgi0uSTBqxP2Qu2g9og8x0gKI1G7ark5KLe5BzIyEmqmZKKta43GYMr8YGtS2/t8bJeg4xkRflpTo4bSEyewckWQzBYT1EItWm9Qv6iMGzxH5XKHWAKmYOhgQwiU7XXfzRN5bSZNXJP6jtJWbENy3FEEznsK6juwcKAmvFvbCErA9BLt4qS/1lVxP6+B39OgD54gl0exrkze5S2cFgo2FlXwUyKDmfUqsQYViOgjIdzpOESF1Aq0QW1W8lgWH7tjRqg1RMa9spkjXpaHYlAl77xKLuHRZVwsWofqLwifeggzwsy2evBuiLKZ9n9Oc9KjyaYBUgwEMZtam/PR6OEasCST7b0PKR+9/BHX58EpveqDH4J5Z2N6M57WbC/G+j97em9+AQ=='),
  530. this.addDataEntry(dt + 'part association', 250, 0, 'Part Association',
  531. '3VXLasMwEPwaXQo1st0QeozzOhUK6Q8o1sYWlbVmraRJvr6yrThO3ZQQKJQeDNrZ3Vlpxkgsnhb7JYkyf0EJmsVzFk8J0barYj8FrVnElWTxjEURdx+LFleyYZPlpSAw9paGqG3YCb2FFhFVhakSVqHxbJU9aJ/cAVmVCj3RKjMOWqO1WLA4yW3h9j4L3RKMnBDhhwuxBNMiK3WsKcKoDmUGK8+JZHPM0Ag9P6NJZQXZhdInyibuUzTAaYpUokAj33JVD2v3XM+4KkkDeT2WgAVYOrgSAu2OvbvsE1UbZl1d1/qKyjGeSyrcUgoe7Wt+Ktx7zUf8ktsdJgM7aHSL3v7OUGPh93bGAzt5EAxtJKjUUaybkF+6J7yzGjZOreSr4RZLh2qxBp2I9D0j3Bo5RY3kkgZN7d4GTWeWP2mKxkBq/cjur+Q1PeyvGhV9b5RveOTBc9tzs3MX0v6g49NARzZOkCQQSDZ2MQ+D4OEeXUll+V8X9vd0HQ10LcldEmQPd/2k18TsrqV/pqcLz09Dez30X45P'),
  532. this.addDataEntry(dt + 'part association', 250, 0, 'Part Association',
  533. '3VXLbsIwEPwaXyoVmaQU9Uh4nSpVoj9g4iWx6nijjaHA19ckJoGmqRCiEuohkne8s17P2DELx9l2TiJPX1GCZuGUhWNCtNUo245BaxZwJVk4YUHA3ceCWcdsv5zluSAw9hJCUBE2Qq+hQkRRYKyEVWh8tcLutJ/cAFkVCz3SKjEOWqK1mLEwSm3mep/03RCMHBHhpwsNGjggMoGFL4JkU0zQCD1t0KiwguxM6WONMl6o/YHRD47AsaxUIkMj31PleoiqJg9rdGpQQl6AOWAGlnYuhUC7fW7OeaKowqTOq6lvqFzFJqXANcXg0VORj4lbL/KAn9d2m0nAtohucNJfA5We/exf2PKvbRpBofZiWYb83CvhfdSwclJF3+21mDtUiyXoSMQfCeHayDFqpMbcFZraKb/NGI2B2Pol6zPID+Vh2+lS8LNLnvDIey8V52LbznT9RcSnlog5Ye6a3QU3FLO+K/9ez0FLTzaMkCQQSDZ0Mee93sM10pJK0ns/qH+n63PnOb3q0neJeWcH9WZ6urB5WKt/7em7+wU='),
  534. this.addDataEntry(dt + 'shared association', 250, 0, 'Shared Association',
  535. '3VXLasMwEPwaXQo1st0QeozzOhUK6Q8o1sYWlbVmraRJvr6yrThO3ZQQKJQeDNrZ3Vlpxkgsnhb7JYkyf0EJmsVzFk8J0barYj8FrVnElWTxjEURdx+LFleyYZPlpSAw9paGqG3YCb2FFhFVhakSVqHxbJU9aJ/cAVmVCj3RKjMOWqO1WLA4yW3h9j4L3RKMnBDhhwuxBNMiK3WsKcKoDmUGK8+JZHPM0Ag9P6NJZQXZhdI1JT/FfYoGOE2RShRo5Fuu6mHtnusZVyVpIK/HErAASwdXQqDdsXeXfaJqw6yr61pfUTnGc0mFW0rBo33NT4V7r/mIX3K7w2RgB41u0dvfGWos/N7OeGAnD4KhjQSVOop1E/JL94R3VsPGqZV8Ndxi6VAt1qATkb5nhFsjp6iRXNKgqd3boOnM8idN0RhIrR/Z/ZW8pof9VaOi743yDY88eG57bnbuQtofdHwa6MjGCZIEAsnGLuZhEDzcoyupLP/rwv6erqOBriW5S4Ls4a6f9JqY3bX0z/R04flpaK+H/svxCQ=='),
  536. this.addDataEntry(dt + 'shared association', 250, 0, 'Shared Association',
  537. '3VXLbsIwEPwaXyoVmaQU9Uh4nSpVoj9g4iWx6nijjaHA19chJoGmqRCiEuohkne8s17P2DELx9l2TiJPX1GCZuGUhWNCtNUo245BaxZwJVk4YUHA3ceCWcds/zDLc0Fg7CWEoCJshF5DhYiiwFgJq9D4aoXdaT+5AbIqFnqkVWIctERrMWNhlNrM9T7puyEYOSLCTxcaNFAiMoGFL4JkU0zQCD1t0KiwguxM6bIGP8YLtS8Z/eAIHMtKJTI08j1VroeoarJco1ODA+QFmANmYGnnUgi02+fmnCeKKkzqvJr6hspVbFIKXFMMHj0V+Zi49SIP+Hltt5kEbIvoBif9NdDBs5/9C1v+tU0jKNReLA8hP/dKeB81rJxU0Xd7LeYO1WIJOhLxR0K4NnKMGqkxd4WmdspvM0ZjILZ+yfoM8rI8bDtdCn52yRMeee+l4lxs25muv4j41BIxJ8xds7vghmLWd+Xf6zlo6cmGEZIEAsmGLua813u4RlpSSXrvB/XvdH3uPKdXXfouMe/soN5MTxc2D2v1rz19d78A'),
  538. this.addDataEntry(dt + 'multibranch part association', 250, 50, 'Multibranch Part Association',
  539. '7VfBbtswDP0aX3YoHCtptmOdNt1lwIDuBxSbsYXKoiEraZyvH23JTlzHqNO0azfsYEAkRYoiHx9kjy2y3b3mefoDY5Aeu/PYQiMau8p2C5DSC3wRe+zWCwKfPi9YDlgntdXPuQZlxjgE1mHL5QashhcFRoIbgcpFK0wpnXEL2oiIyxspEkWqFRqDmcfC1GSU++2ElnSAyAtyCNdCygVK1GQpjMZHcFK4RmWWPBOyJNN3kFuowjrDg9hXx00mTm5CxLDmG0nXCl3SlAzsBi9eq9yt7wEzMLqkLY1DwKzLk4hNanVTq0lBJKnpqHhhxaSNc6gpLVxZT5eY9Uqca8wp97JfX4gTeHAiyBU+3R0U3RqTjdYparGnEnEyhNw1Rdv0w8FmgYpvtK4DKFRVaI0bFUOVsE+S5CuQIY8ek1rf1N/tvbB3heG63TatFCnPKyFCpSAyNT5sYapqdNpb4EZH0EHuGR23DhokgXvbDXyqvy7QTxQUv40SzOxA+WUnjSYAXS4B43yeYaRNaRRspj3Y+FdXX3qI0VCIPV/Vot8FyUt4MJiPanbTrAuhcQoKR5xAl2GMLZeMPWOO52PvcOLu3DLcS3TA3hQcY4d/Njj8wcXD3/Tz/+h/zOhP56Nmn+rNy6NtebWhGD5m8u3kMQfA2YCv5ZXrT8krn5k5Zh/CHPNB5mDvwRwS1mOJIxY8QxX/SoXq8QdtWwrZnqfipsnBu5PL38ElZz0bzqWO61Nvk7cijq89QPbfryNYYwBo/xppzP8EaZB4+FW0LT3+k/wN'),
  540. this.addDataEntry(dt + 'multibranch shared association', 250, 50, 'Multibranch Shared Association',
  541. '7VbLbtswEPwaXXoIZNKu22PkPE4FCqQ/QEtriQjFFUjasfz1XYmUbUUWojRNmwI9GODucofrGQ7EiK/K/b0RVfENM1ARv434yiA6vyr3K1AqYrHMIn4TMRbTL2J3I9VZW40rYUC7KQ3MN+yE2oLPCGsxlcJJ1AHNulqF4g6Mk6lQ10rmmlJrdA7LiCeFK2n2mxkt6QBZWWpINlKpFSo0VLHO4COEKAmnEhrsRydvU2Hse8ASnKlpS9fAuG95kpkrfG7uMwXIvHC9lLA+zI84J1JoEXi5zBEfcFQZrGj2ekgQZDk8hBDUGp9uT4k+SVSjdYFGHlA7QYVEBFaNHz8ZZRt0dm1MC6BRN9AGtzqDZuCYIiXWoBKRPuZtvtMg7PVDN5P2qLe4NSn0rsUr1PANBhTdnF0f+BL3Aeg7SsI/orCFv61x3RujA3DC5OBCzzP9jiNNknQ+kDS+uvo0UNOAlQexbsP4gkBngj7XymH1ohAbEv5BHhr02VTZUtQaUheGOvr7JS/x36reVOcsRp3D3uycjvD/vhn6Zr6cZBziQtRn26pmgx0/Zvb14jGny+ABf9WUnz+gKd/iucVf8dxy1HP8PTynYDPVcpkUJersRyH1wHm07U42/6mLOgnYv2jL9/58fRloPHyJjNkkCPZhXLL8Ey6h8PSm9oSfP7l/Ag=='),
  542. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endSize=12;endArrow=block;endFill=0;',
  543. 160, 0, '', 'Generalization', null, this.getTagsForStencil(gn, '', dt + 'generalization').join(' ')),
  544. this.addDataEntry(dt + 'multibranch generalization', 140, 50, 'Multibranch Generalization',
  545. '7VbbTsMwDP2avqLeYPC4bmy8ICHxBVnrtdHcuErTbeXrcZvs0sFgAoSExKRJ8bF94stpVS+alNu5FlXxSBmgF9170UQTGXsqtxNA9EJfZl409cLQ578Xzs54g97rV0KDMpckhDZhLbABi1igNi06YA3ayFTgGGWuGFqQMVR6UVKYkuudBnxkUlnVnJAsJeKEkDR7aqNpBc5KlqTMTJQSW3Y9AK6ho3WOZ/nSXRcEzt5RZLAUDXIriSuUi4Ht2WZ7yHU6ByrB6JZDXMLNrc1oXe+RNTcyM4WFYosUIPPCDCBRWzPfsx6mygc32PeHHH0+ZMhyeHYm4II29wdgMGiV7UYVWnOsNW26tSClKwvNZFfK1O8Xs+i9BWn5wnMV7Eg0NSqDzIWgWAAmIl3lPf528t9cXF2IqgtJSSlITa8F23/X9GCVNTU6hYEyL9+u49CAwsj1kPi97TmiJ5LMv2cZ+cMMI3QOxgWdrHxfw0UqiH9QBW6ru0eTobNP6ZFEFCn4/fXzBPdh8Z/TQxD7g5dGfHd1d/wbXSQX3oBoj8KqLqD+4NZgeGt4fSI+S/hVKV7/S/EvSfFXpRf9pPLYPHzL2PDjT51X'),
  546. this.addDataEntry(dt + 'generalization set', 140, 50, 'Generalization Set',
  547. '7VbbbuIwEP2avOcCy742ULoPu1KlfoGJh8TF8US2uaRf33FsQgK0Qm13pUr7gOQ5c2ZszzlGibJ5fXjQrKn+IAcZZfdRNteI1q/qwxykjNJY8ChbRGka0y9Kl29kky4bN0yDsrcUpL5gx+QWPBLNci7MMwpqMFv4tLGtDGkqF42hIK9sTcddJLRcCynnKFFTbKzGDYQol2wF8hGNsAIVZQs6F7gEk6IcAWtUdslqIVtCf4HcgRUFC4kn8eL2T5IQHzfjsGZbSTfNd6AdX96FvhabAfr77BgrtBZrIoTrEw0Ob46wg8L8HgBrsLolSij48dNXtGGimQ/3gtvKQxOPVCDKyo4gZnxY9l1PWtEiyHVduuxSuguxeAlPIQS5wv39CRjqB4ofJ5z68E5r3LtBSSw2HloKd5RF7CLXi9YVavFCcjBK5Bq3igMPlE74nBWbssMvBfuk3qZijaMUqBQUtjObv7+79EhKg1tdwMjvt6sbemiQzIrduPE19UKjx+799F1m8bjCMl2CDaQzyfsz3OSCyRe6IKh6fDRXXlX/bgYWUajg38tPE+xpk2/nh2QSj/40prf5g0bO2gGtcQTzzjbJeJt0euY23/Cj3pv+99538t7f9Vr2lVaj8PQN5OnDT6RX'),
  548. this.addDataEntry(dt + 'generalization set', 150, 80, 'Generalization Set',
  549. '5ZXBboMwDIafJncITPQ6YO1pUqU+QVo8iGYSFFIGe/oFErUwilYxqZceEPlt/5blT1FIkJTtTrGqeJcZIAneSJAoKbU9lW0CiIR6PCNBSij1zEfodiHrD1mvYgqEvsdAraFheAYbsYFad+gCkOVwcFJIYX5xoUszaeqbI4jsVSn5ZeQR5enThrYc+wLPqgP/7s0+NdK273suTjyE3Lg7kCVo1ZkSBcg0b6Y+VluZX+ou1r3kpiP1Wmfwpg7NVA7aFY03tODrrNz8alPLszrBrI05jIa/hob130YRPA2KcCWK8FEowqdBEa1EET0KxcscRRTLBhSyquIiJ1G6no1LZqwuIHNpZEfAvay55lKYmOJ5YRDEDHnea4QP/S9i7cSwll93+yotLH7GbzPld+eN/JufkdfHy5aP37Yf'),
  550. this.addDataEntry(dt + 'block namespace containment', 140, 70, 'Block Namespace Containment',
  551. '7VXLbsIwEPwa3/Oi7ZUEyqVISHyBwUti4WSRYx7h67uJ3YApqDlQqYceInnHu+PRTCyzOCtPM813xRwFKBZPWZxpRGNX5SkDpVgUSMHiCYuigD4WvT/YDbvdYMc1VGbIQGQHDlztwSIWqE2jHHAAbeSaq7GSeUXQCo3BksVpYUrSOwlpSaRyV9NAupFKZahQ005tNG7BVak7idjg9FBtBzmpM8ASjG6oxQ28vNmJxol3Yo9SmMJCiUUKkHlhPIjXtsx71osttHDO3Hcp/tklEDksXQlqhcfpBfCcqsRSntuuMLLlWGs8tm419fxjwdfbDFs30o6F8AK1PBPEiSLVuK8EtLICqriLRMGmnbhNqpRC0Pmd1Faf53qNe70G7y8YHoTj0KC4kQef+J7RjmiBkvh7ltfAnzBc52Bc0006vYZBgSVPDMzF8GXuHZ/7G3GVZoUVfMvr70YRJoF3tUbJb0Uz+o9mYDTPjoLKy8Ni26/fnU8='),
  552. this.addDataEntry(dt + 'participant property', 400, 140, 'Participant Property',
  553. '5ZfbbtswDEC/xi8DWviS2x7tZOvLBhTrFyg2YwuVLU9WmmRfP+qW1LfBRdKhQB+aiqTpkEekqHjRujw+CFIXP3kGzIu+edFacC7NqjyugTEv9GnmRRsvDH3888LvI9ZAW/2aCKjkFIfQOLwQtgejSRhPn626kSdm1U1BarUUkOKLk0KWGOsmwOWOV/LJPqjkQ0ElPNUkVYoDZoY6wmheoZhiWCBQYb8WhITjaOhaZeN+AF6CFCd85EAzWZgn5iY7vwCaF9bLZuyTxsj52fPCARcWxTCWaBhL8JGxWIfIMfkPmGY9TF64YApE3cK0+L1XBZ2UROQUE479+ngW7yRHFvFMqzBveWexxK+wuDfgKrf/9fdsnSJuGp5SIimvAmfE8Lddh0Ko7DpKVNVd3VsyYLBDY7x6awqkVFXA+hJut6QprQnuuTO0nazke8sEqkwtVJh+LXiN1aPqIfCWWhNoY4yfuoa1xdHrwHjXeEIbT9iLJxzeh8mtxrFhdowfUNxRVayDzXaD3nJ9dDLiot9pkT/QaqsbtNq812rtiu/AgiwHd/pUvII2MNyhWAgNzBoVFpoSFtsTacul5OWZmnpdi1nD9yKF1gyR2AsgW+fnBLICGKbw0n77NaAWPVCuBgeGGlYIrfIfun03URuSO5xNc48TYmQL7JE3VO2Eqk+z8UafkPQ5F3xfZWvOuLgA1+OB/tHTwZZHyqsKa5tsXXj+pJKd/7Nk76zHzTkve5wHpuMVfPVU+KxwV6NFPAr5lz1vRig7cJPL2G7LxwD9Xpy/9i8wy4SLDARkZlz59/dfbox8uLI/BW8XdOvGeOXoykhTQGbNE8bV7Pazybo+cqruRw5i6LevC0HnGmAGpnXqMDxHMYQVxcsvRPP46x+QfwE='),
  554. this.addEntry(dt + 'participant property', function()
  555. {
  556. var cardCell = new mxCell('Block2', new mxGeometry(0, 0, 50, 20), 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
  557. cardCell.vertex = true;
  558. var cardCell2 = new mxCell('Block1', new mxGeometry(350, 0, 50, 20), 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
  559. cardCell2.vertex = true;
  560. var bg = new mxCell(
  561. '<p style="margin:0px;margin-top:4px;text-align:center;">' +
  562. '<b>Association1</b></p><hr/>' +
  563. '<p style="margin:0px;text-align:center;"><i>structure</i></p>',
  564. new mxGeometry(20, 60, 360, 150), 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;recursiveResize=0;');
  565. bg.vertex = true;
  566. var cardCell4 = new mxCell(
  567. '<p style="margin:0px;margin-top:4px;text-align:center;">' +
  568. '&lt;&lt;participant&gt;&gt;<br/>' +
  569. '{end = property 2}<br/><br/>' +
  570. '<b>p2 : Block 2</b></p>',
  571. new mxGeometry(20, 50, 150, 80), inh + 'shape=rect;html=1;overflow=fill;dashed=1;whiteSpace=wrap;');
  572. cardCell4.vertex = true;
  573. bg.insert(cardCell4);
  574. var cardCell5 = new mxCell(
  575. '<p style="margin:0px;margin-top:4px;text-align:center;">' +
  576. '&lt;&lt;participant&gt;&gt;<br/>' +
  577. '{end = property 1}<br/><br/>' +
  578. '<b>p1 : Block 1</b></p>',
  579. new mxGeometry(190, 50, 150, 80), inh + 'shape=rect;html=1;overflow=fill;dashed=1;whiteSpace=wrap;');
  580. cardCell5.vertex = true;
  581. bg.insert(cardCell5);
  582. var edge1 = new mxCell('Association1', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;endArrow=none;verticalAlign=bottom;');
  583. edge1.geometry.relative = true;
  584. edge1.edge = true;
  585. cardCell.insertEdge(edge1, true);
  586. cardCell2.insertEdge(edge1, false);
  587. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;endArrow=none;dashed=1;');
  588. edge2.geometry.setTerminalPoint(new mxPoint(200, 10), false);
  589. edge2.geometry.relative = true;
  590. edge2.edge = true;
  591. bg.insertEdge(edge2, true);
  592. var label1 = new mxCell('property2', new mxGeometry(-1, 0, 0, 0), 'spacingLeft=3;html=1;align=left;verticalAlign=bottom;labelPosition=right;labelBackgroundColor=none;fontSize=10');
  593. label1.geometry.relative = true;
  594. label1.setConnectable(false);
  595. label1.vertex = true;
  596. edge1.insert(label1);
  597. var label2 = new mxCell('1', new mxGeometry(-1, 0, 0, 0), 'spacingLeft=3;html=1;align=left;verticalAlign=top;labelPosition=right;labelBackgroundColor=none;fontSize=10');
  598. label2.geometry.relative = true;
  599. label2.setConnectable(false);
  600. label2.vertex = true;
  601. edge1.insert(label2);
  602. var label3 = new mxCell('property1', new mxGeometry(1, 0, 0, 0), 'spacingRight=3;html=1;align=right;verticalAlign=bottom;labelPosition=left;labelBackgroundColor=none;fontSize=10');
  603. label3.geometry.relative = true;
  604. label3.setConnectable(false);
  605. label3.vertex = true;
  606. edge1.insert(label3);
  607. var label4 = new mxCell('{ordered} 0..*', new mxGeometry(1, 0, 0, 0), 'spacingRight=3;html=1;align=right;verticalAlign=top;labelPosition=left;labelBackgroundColor=none;fontSize=10');
  608. label4.geometry.relative = true;
  609. label4.setConnectable(false);
  610. label4.vertex = true;
  611. edge1.insert(label4);
  612. return sb.createVertexTemplateFromCells([cardCell, cardCell2, bg, edge1, edge2], 400, 260, 'Participant Property');
  613. }),
  614. this.addDataEntry(dt + 'participant property', 400, 80, 'Participant Property',
  615. '5ZZRb9sgEMc/jV8mrcJ20myPcbr1ZZOq9RMQfLVRMWdh0iT79DsMTuLantI1nSr1IQp3cPj48YcjSlfV7tbwuvyJOago/RalK4NofavarUCpKGEyj9KbKEkY/aLk+0Rv3PaymhvQ9pyAxAc8cbUB78kUisfgbuxeBXdT8to1DQiaOCttRbnexNR8QG3vw0Bnb0tp4b7mwjm2tDLycSULTaagtMCQI3wWjIXdZOqtK+R9C1iBNXsaspW5Lf2IuV8dK0EWZYgKK2a88XZxiDxyoEZAMY4lHccSv2csISDtmPwHTLMBpmXToJDcStQvgTUG5wIs4llY5N7b10M0cfJGbOYDNgMekBfQSUSjpr8MdL40BrdHzwklgxudg5ufHfi4OXp0GtwYAb3TbbkpwPaUfQZDA4r28ak/+2uIXA+I1AZr2t/9yHVDWpC6+AEPLsm0z6E7NqrtzZxEpOBqGdxrtBYr6lB8DeoOG+nk6HTnd9j7My4ei5boChWaI/D24Mrf7bkNOhCoNWmWr7v02FninP9VnJ9DxMU5LwacR47iK/harD8u3C+TIp6E/CtcLBOUO3Bnyzhsy/sA/Vacvw6vz0WGJgdDF+CCbMaurj5dGPm4sj8E7y7pF9arE7jD0pXzpmzL1T8Vr9nlK1UIvUNJMx6QkpR6r4T4WfX35TMEPSN6yGIMMpnHl7wffvrQ/wM='),
  616. this.addEntry(dt + 'association', function()
  617. {
  618. var cell1 = new mxCell('', new mxGeometry(0, 0, 300, 80), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  619. cell1.vertex = true;
  620. var cell2 = new mxCell('Association1', new mxGeometry(0, 0, 300, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  621. cell2.vertex = true;
  622. cell1.insert(cell2);
  623. var divider = new mxCell('', new mxGeometry(0, 0, 300, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  624. divider.vertex = true;
  625. cell1.insert(divider);
  626. var cell3 = new mxCell('&lt;&lt;participant&gt;&gt; {{end = property 1} p1 : Block 1', new mxGeometry(0, 0, 300, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  627. cell3.vertex = true;
  628. cell1.insert(cell3);
  629. var cell4 = new mxCell('&lt;&lt;participant&gt;&gt; {{end = property 2} p2 : Block 2', new mxGeometry(0, 0, 300, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  630. cell4.vertex = true;
  631. cell1.insert(cell4);
  632. var cell5 = new mxCell('', new mxGeometry(0, 0, 300, 20), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  633. cell5.vertex = true;
  634. cell1.insert(cell5);
  635. return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Association');
  636. }),
  637. this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;', 300, 80,
  638. '<p style="margin:0px;margin-top:4px;text-align:center;">' +
  639. '<b>Association1</b></p><hr/>' +
  640. '<p style="margin:0px;text-align:center;"><i>structure</i></p>',
  641. 'Association', null, null, this.getTagsForStencil(gn, '', dt + 'association').join(' ')),
  642. this.addEntry(dt + 'association', function()
  643. {
  644. var cell1 = new mxCell('', new mxGeometry(0, 0, 300, 80), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  645. cell1.vertex = true;
  646. var cell2 = new mxCell('Association1', new mxGeometry(0, 0, 300, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  647. cell2.vertex = true;
  648. cell1.insert(cell2);
  649. var divider = new mxCell('', new mxGeometry(0, 0, 300, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  650. divider.vertex = true;
  651. cell1.insert(divider);
  652. var cell3 = new mxCell('structure', new mxGeometry(0, 0, 300, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=2;');
  653. cell3.vertex = true;
  654. cell1.insert(cell3);
  655. var cell4 = new mxCell('', new mxGeometry(0, 0, 300, 36), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  656. cell4.vertex = true;
  657. cell1.insert(cell4);
  658. return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Association');
  659. }),
  660. this.addEntry(dt + 'participant', function()
  661. {
  662. var cell1 = new mxCell('', new mxGeometry(0, 0, 150, 80), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;dashed=1;');
  663. cell1.vertex = true;
  664. var cell2 = new mxCell('&lt;&lt;participant&gt;&gt;', new mxGeometry(0, 0, 150, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  665. cell2.vertex = true;
  666. cell1.insert(cell2);
  667. var cell3 = new mxCell('{end = property 1}', new mxGeometry(0, 0, 150, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  668. cell3.vertex = true;
  669. cell1.insert(cell3);
  670. var cell3 = new mxCell('', new mxGeometry(0, 0, 150, 14), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  671. cell3.vertex = true;
  672. cell1.insert(cell3);
  673. var cell3 = new mxCell('p1 : Block 1', new mxGeometry(0, 0, 150, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  674. cell3.vertex = true;
  675. cell1.insert(cell3);
  676. var cell5 = new mxCell('', new mxGeometry(0, 0, 150, 18), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  677. cell5.vertex = true;
  678. cell1.insert(cell5);
  679. return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Participant');
  680. }),
  681. this.addEntry(dt + 'connector property', function()
  682. {
  683. var bg = new mxCell(
  684. '<p style="margin:0px;margin-top:4px;text-align:center;">' +
  685. '<b>Block1</b><hr/></p>' +
  686. '<p style="margin:0px;margin-top:-6px;margin-left:10px;text-align:left;">' +
  687. '&lt;&lt;connector&gt;&gt; c1 : Association1<br/>' +
  688. '&lt;&lt;connector&gt;&gt; c2 : Association2<hr/></p>' +
  689. '<p style="margin:0px;margin-top:-6px;text-align:center;font-size:10px;">' +
  690. '<i>structure</i></p>',
  691. new mxGeometry(0, 0, 400, 250), 'shape=rect;html=1;overflow=fill;whiteSpace=wrap; recursiveResize=0;');
  692. bg.vertex = true;
  693. var cardCell2 = new mxCell('p1:\nType1', new mxGeometry(20, 100, 80, 40), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
  694. cardCell2.vertex = true;
  695. bg.insert(cardCell2);
  696. var cardCell3 = new mxCell('p2:\nType2', new mxGeometry(300, 100, 80, 40), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
  697. cardCell3.vertex = true;
  698. bg.insert(cardCell3);
  699. var edge1 = new mxCell('c1: Association1', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;endArrow=none;verticalAlign=bottom;labelBackgroundColor=none;');
  700. edge1.geometry.relative = true;
  701. edge1.edge = true;
  702. cardCell2.insertEdge(edge1, true);
  703. cardCell3.insertEdge(edge1, false);
  704. bg.insert(edge1);
  705. var label1 = new mxCell('1', new mxGeometry(1, 0, 0, 0), 'spacingRight=3;html=1;align=right;verticalAlign=bottom;labelPosition=left;labelBackgroundColor=none;fontSize=10');
  706. label1.geometry.relative = true;
  707. label1.setConnectable(false);
  708. label1.vertex = true;
  709. edge1.insert(label1);
  710. var label2 = new mxCell('e1', new mxGeometry(1, 0, 0, 0), 'spacingRight=3;html=1;align=right;verticalAlign=top;labelPosition=left;labelBackgroundColor=none;fontSize=10');
  711. label2.geometry.relative = true;
  712. label2.setConnectable(false);
  713. label2.vertex = true;
  714. edge1.insert(label2);
  715. var cardCell4 = new mxCell('p3:\nType3', new mxGeometry(20, 160, 80, 40), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
  716. cardCell4.vertex = true;
  717. bg.insert(cardCell4);
  718. var cardCell5 = new mxCell('p4:\nType4', new mxGeometry(300, 160, 80, 40), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
  719. cardCell5.vertex = true;
  720. bg.insert(cardCell5);
  721. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;endArrow=none;');
  722. edge2.geometry.relative = true;
  723. edge2.edge = true;
  724. cardCell4.insertEdge(edge2, true);
  725. cardCell5.insertEdge(edge2, false);
  726. bg.insert(edge2);
  727. var label3 = new mxCell('1', new mxGeometry(1, 0, 0, 0), 'spacingRight=3;html=1;align=right;verticalAlign=bottom;labelPosition=left;labelBackgroundColor=none;fontSize=10');
  728. label3.geometry.relative = true;
  729. label3.setConnectable(false);
  730. label3.vertex = true;
  731. edge2.insert(label3);
  732. var label4 = new mxCell('e1', new mxGeometry(1, 0, 0, 0), 'spacingRight=3;html=1;align=right;verticalAlign=top;labelPosition=left;labelBackgroundColor=none;fontSize=10');
  733. label4.geometry.relative = true;
  734. label4.setConnectable(false);
  735. label4.vertex = true;
  736. edge2.insert(label4);
  737. var cardCell6 = new mxCell('c2: Association2', new mxGeometry(140, 210, 120, 20), inh + 'shape=rect;html=1;align=center;whiteSpace=wrap;');
  738. cardCell6.vertex = true;
  739. bg.insert(cardCell6);
  740. var edge3 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;endArrow=none;dashed=1;');
  741. edge3.geometry.setTerminalPoint(new mxPoint(200, 180), false);
  742. edge3.geometry.relative = true;
  743. edge3.edge = true;
  744. cardCell6.insertEdge(edge3, true);
  745. bg.insert(edge3);
  746. return sb.createVertexTemplateFromCells([bg], 400, 250, 'Connector Property');
  747. }),
  748. this.addEntry(dt + 'connector property', function()
  749. {
  750. var cell1 = new mxCell('', new mxGeometry(0, 0, 200, 120), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  751. cell1.vertex = true;
  752. var cell2 = new mxCell('Block1', new mxGeometry(0, 0, 200, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  753. cell2.vertex = true;
  754. cell1.insert(cell2);
  755. var divider = new mxCell('', new mxGeometry(0, 0, 200, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  756. divider.vertex = true;
  757. cell1.insert(divider);
  758. var cell3 = new mxCell('&lt;&lt;connector&gt;&gt; c1 : Association1', new mxGeometry(0, 0, 200, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  759. cell3.vertex = true;
  760. cell1.insert(cell3);
  761. var cell4 = new mxCell('&lt;&lt;connector&gt;&gt; c2 : Association2', new mxGeometry(0, 0, 200, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  762. cell4.vertex = true;
  763. cell1.insert(cell4);
  764. cell1.insert(divider.clone());
  765. var cell5 = new mxCell('', new mxGeometry(0, 0, 200, 52), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  766. cell5.vertex = true;
  767. cell1.insert(cell5);
  768. return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Connector Property');
  769. }),
  770. this.addEntry(dt + 'internal block diagram', function()
  771. {
  772. var bg = new mxCell('<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;"><b>ibd</b> Block1</p>', new mxGeometry(0, 0, 300, 100), s + 'package;labelX=100;align=left;spacingLeft=10;html=1;overflow=fill;whiteSpace=wrap;recursiveResize=0;');
  773. bg.vertex = true;
  774. var cardCell2 = new mxCell('p1:\nType1', new mxGeometry(15, 30, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
  775. cardCell2.vertex = true;
  776. bg.insert(cardCell2);
  777. var cardCell3 = new mxCell('p2:\nType2', new mxGeometry(190, 30, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
  778. cardCell3.vertex = true;
  779. bg.insert(cardCell3);
  780. var assoc = new mxCell('c1:a1', new mxGeometry(0, 0, 0, 0), inh + 'verticalAlign=bottom;html=1;endArrow=none;edgeStyle=none;labelBackgroundColor=none;');
  781. assoc.geometry.relative = true;
  782. assoc.edge = true;
  783. var sourceLabel = new mxCell('1', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=bottom;labelBackgroundColor=none;fontSize=10');
  784. sourceLabel.geometry.relative = true;
  785. sourceLabel.setConnectable(false);
  786. sourceLabel.vertex = true;
  787. assoc.insert(sourceLabel);
  788. var targetLabel = new mxCell('p3', new mxGeometry(1, 0, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=top;labelBackgroundColor=none;fontSize=10');
  789. targetLabel.geometry.relative = true;
  790. targetLabel.setConnectable(false);
  791. targetLabel.vertex = true;
  792. assoc.insert(targetLabel);
  793. cardCell2.insertEdge(assoc, true);
  794. cardCell3.insertEdge(assoc, false);
  795. bg.insert(assoc);
  796. return sb.createVertexTemplateFromCells([bg], 300, 100, 'Internal Block Diagram');
  797. }),
  798. this.addEntry(dt + 'property', function()
  799. {
  800. var bg = new mxCell('', new mxGeometry(0, 0, 300, 120), 'shape=rect;html=1;strokeWidth=2;whiteSpace=wrap;recursiveResize=0;');
  801. bg.vertex = true;
  802. var cardCell2 = new mxCell(
  803. '<p style="margin:0px;margin-top:4px;margin-right:4px;text-align:right;font-size:10px;">' +
  804. '0..*</p>' +
  805. '<p style="margin:0px;text-align:center;">' +
  806. '<b>p1 : Type1</b><hr/>' +
  807. 'x : Integer = 4</p>',
  808. new mxGeometry(20, 20, 140, 80), inh + 'shape=rect;html=1;overflow=fill;strokeWidth=2;whiteSpace=wrap;align=center;');
  809. cardCell2.vertex = true;
  810. bg.insert(cardCell2);
  811. var cardCell3 = new mxCell(
  812. 'r1: Type2',
  813. new mxGeometry(180, 30, 100, 50), inh + 'shape=rect;html=1;fontStyle=1;dashed=1;strokeWidth=2;whiteSpace=wrap;align=center;');
  814. cardCell3.vertex = true;
  815. bg.insert(cardCell3);
  816. return sb.createVertexTemplateFromCells([bg], 300, 120, 'Property');
  817. }),
  818. this.createVertexTemplateEntry(s + 'package;html=1;overflow=fill;whiteSpace=wrap;', 300, 135,
  819. '<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;"><b>idb</b> Block1</p>',
  820. 'Package', null, null, this.getTagsForStencil(gn, '', dt + 'package').join(' ')),
  821. this.addEntry(dt + 'property', function()
  822. {
  823. var cell1 = new mxCell('', new mxGeometry(0, 0, 100, 80), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  824. cell1.vertex = true;
  825. var cell2 = new mxCell('0..*', new mxGeometry(0, 0, 100, 16), 'html=1;align=right;spacing=0;spacingRight=3;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  826. cell2.vertex = true;
  827. cell1.insert(cell2);
  828. var cell3 = new mxCell('p1 : Type1', new mxGeometry(0, 0, 100, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  829. cell3.vertex = true;
  830. cell1.insert(cell3);
  831. var divider = new mxCell('', new mxGeometry(0, 0, 100, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  832. divider.vertex = true;
  833. cell1.insert(divider);
  834. var cell4 = new mxCell('x : Integer = 4', new mxGeometry(0, 0, 100, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  835. cell4.vertex = true;
  836. cell1.insert(cell4);
  837. var cell5 = new mxCell('', new mxGeometry(0, 0, 100, 20), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  838. cell5.vertex = true;
  839. cell1.insert(cell5);
  840. return sb.createVertexTemplateFromCells([cell1], cell1.geometry.width, cell1.geometry.height, 'Property');
  841. }),
  842. this.addEntry(dt + 'property', function()
  843. {
  844. var bg = new mxCell(
  845. '<p style="margin:0px;margin-top:4px;margin-right:4px;text-align:right;font-size:10px;">' +
  846. '0..*</p>' +
  847. '<p style="margin:0px;text-align:center;">' +
  848. 'p1 : Type1<hr/></p>',
  849. new mxGeometry(0, 0, 250, 160), 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;recursiveResize=0;');
  850. bg.vertex = true;
  851. var cell1 = new mxCell('', new mxGeometry(30, 50, 140, 100), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  852. cell1.vertex = true;
  853. bg.insert(cell1);
  854. var cell2 = new mxCell('p3 : Type3', new mxGeometry(0, 0, 140, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  855. cell2.vertex = true;
  856. cell1.insert(cell2);
  857. var divider = new mxCell('', new mxGeometry(0, 20, 140, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  858. divider.vertex = true;
  859. cell1.insert(divider);
  860. var cell3 = new mxCell('initialValues', new mxGeometry(0, 28, 140, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontSize=10;fontStyle=2;');
  861. cell3.vertex = true;
  862. cell1.insert(cell3);
  863. var cell4 = new mxCell('x1 = 5.0', new mxGeometry(0, 44, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  864. cell4.vertex = true;
  865. cell1.insert(cell4);
  866. var cell5 = new mxCell('x2 = "today"', new mxGeometry(0, 60, 140, 16), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  867. cell5.vertex = true;
  868. cell1.insert(cell5);
  869. var cell6 = new mxCell('', new mxGeometry(0, 76, 140, 20), 'html=1;align=left;spacing=0;spacingLeft=8;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  870. cell6.vertex = true;
  871. cell1.insert(cell6);
  872. return sb.createVertexTemplateFromCells([bg], 250, 160, 'Property');
  873. }),
  874. this.addEntry(dt + 'property', function()
  875. {
  876. var cell1 = new mxCell('', new mxGeometry(0, 0, 100, 100), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  877. cell1.vertex = true;
  878. var cell2 = new mxCell('p3 : Type3', new mxGeometry(0, 0, 100, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  879. cell2.vertex = true;
  880. cell1.insert(cell2);
  881. var divider = new mxCell('', new mxGeometry(0, 20, 100, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  882. divider.vertex = true;
  883. cell1.insert(divider);
  884. var cell3 = new mxCell('initialValues', new mxGeometry(0, 28, 100, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontSize=10;fontStyle=2;');
  885. cell3.vertex = true;
  886. cell1.insert(cell3);
  887. var cell4 = new mxCell('x1 = 5.0', new mxGeometry(0, 44, 100, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  888. cell4.vertex = true;
  889. cell1.insert(cell4);
  890. var cell5 = new mxCell('x2 = "today"', new mxGeometry(0, 60, 100, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  891. cell5.vertex = true;
  892. cell1.insert(cell5);
  893. var cell6 = new mxCell('', new mxGeometry(0, 76, 100, 24), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  894. cell6.vertex = true;
  895. cell1.insert(cell6);
  896. return sb.createVertexTemplateFromCells([cell1], 100, 100, 'Property');
  897. }),
  898. this.addEntry(dt + 'property specific type', function()
  899. {
  900. var cell1 = new mxCell('', new mxGeometry(0, 0, 300, 70), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  901. cell1.vertex = true;
  902. var cell2 = new mxCell('p1 : [Type1]', new mxGeometry(0, 0, 300, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  903. cell2.vertex = true;
  904. cell1.insert(cell2);
  905. var divider = new mxCell('', new mxGeometry(0, 20, 300, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  906. divider.vertex = true;
  907. cell1.insert(divider);
  908. var cell3 = new mxCell('values', new mxGeometry(0, 28, 300, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontSize=10;fontStyle=2;');
  909. cell3.vertex = true;
  910. cell1.insert(cell3);
  911. var cell4 = new mxCell('&lt;&lt;normal&gt;&gt; {mean = 2, stdDeviation = 0.1} x : Real', new mxGeometry(0, 44, 300, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  912. cell4.vertex = true;
  913. cell1.insert(cell4);
  914. var cell6 = new mxCell('', new mxGeometry(0, 76, 300, 10), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  915. cell6.vertex = true;
  916. cell1.insert(cell6);
  917. return sb.createVertexTemplateFromCells([cell1], 300, 70, 'Property Specific Type');
  918. }),
  919. this.addEntry(dt + 'property specific type', function()
  920. {
  921. var cell1 = new mxCell('', new mxGeometry(0, 0, 100, 70), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  922. cell1.vertex = true;
  923. var cell2 = new mxCell('p2', new mxGeometry(0, 0, 100, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  924. cell2.vertex = true;
  925. cell1.insert(cell2);
  926. var divider = new mxCell('', new mxGeometry(0, 20, 100, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  927. divider.vertex = true;
  928. cell1.insert(divider);
  929. var cell3 = new mxCell('values', new mxGeometry(0, 28, 100, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontSize=10;fontStyle=2;');
  930. cell3.vertex = true;
  931. cell1.insert(cell3);
  932. var cell4 = new mxCell('y : Integer = 5', new mxGeometry(0, 44, 100, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  933. cell4.vertex = true;
  934. cell1.insert(cell4);
  935. var cell6 = new mxCell('', new mxGeometry(0, 76, 100, 10), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  936. cell6.vertex = true;
  937. cell1.insert(cell6);
  938. return sb.createVertexTemplateFromCells([cell1], 100, 70, 'Property Specific Type');
  939. }),
  940. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;',
  941. 160, 0, '&lt;&lt;stereotype1&gt;&gt;\ndependency1', 'Dependency', null, null, this.getTagsForStencil(gn, '', dt + 'dependency').join(' ')),
  942. this.addDataEntry(dt + 'property', 160, 0, 'Property',
  943. 'zVTBboMwDP2aXCatgjDtXmjX06RJPeycggtRQ4yM29F+/QJkpYx2qqYddohkv/g58XtRRJSUzYpUVbxiBkZESxElhMh9VDYJGCNkoDMRLYSUgVtCvtzYDbvdoFIElu8hyJ5wUGYPPdIDNR+NBw5ArFNl5kbn1kEbZMZSRHHBpbvvInQh2GxOhB8utWihRbIc1r4JEheYo1VmOaBxzYQ7eNcZF65GOqQ/umXenKaD/CgrwBKYjq6EwCjWhzFP1X2an+vO1DfUruNQUuOeUvDopVxfhY3v/ByMe7OiHHhCdMHF/QaoU/+6E9HEiXBiBUGtT2rTpcHYAeXdMbB1UsXfTWOsHGrUBkys0l1OuLdZggZpsGyLltf61DYP/ZgpWgsp+yPPrylo20Nz0yV53SVPePSMu00bqfqDhE8TCYPZ7OE3KpLOi/8u4x+p6NLhu+nf7eVv9Ak='),
  944. this.addDataEntry(dt + 'binding connector', 160, 0, 'Binding Connector',
  945. 'zVSxboMwEP0aj5XAVNlDknaqVClDZwcuxorxpceRknx9DbgQmqTKkKEDku/53jN+72SRLMrmldS+eMMcrEhWIlkQIverslmAtUJGJhfJUkgZ+U/Ilxu7cbcb7RWB43sIsicclK2hR4ScqXIvktR6gXRawWet7ADpSUOoWrWKjzaoHYDYZMrOrdHOQxtkxtJ3Flz6yy7jVtXlcyL88qVDBy2Sa1gHESQuUKNTdjWiacWEO/gwORe+Rw5Ht8ybVnRQ8OEVsASmo28hsIrNYcpTVV/qoW+gvqPximNLhTVlENBzr38am6A8i6barEgDXxD94uz/RqiL7nqMyUWM8UUUBJU5qU1XRtMEVEjHwrZN8XdojN0EqA3YVGU7TVi7fIEWaYxsi47X5tSKx+GaGToHGYcjh1GMWnlobqYkr6cUCE+BcXdoE1f/sPD5MRaS0cV/9/BBFvpyfKj6oT1/x74B'),
  946. this.addDataEntry(dt + 'bidirectional connector', 160, 0, 'Bidirectional Connector',
  947. '3VXBboMwDP2aXCatCrD1XmjX06RJ/YIUXIgWYhRMR/v1C5BBGe1UTZ1U7QCKH89O/J5FWBDl9dqIInvFBBQLViyIDCJ1q7yOQCnmc5mwYMl8n9uH+S8XvnrtV14IA5quSfC7hL1QFXRIbGtwFizsW5QlxlKQRN3RSjooR9uDIRkLtVAy1RbaIhHmLAgzym0XS88uQScLY/DDhho1NEiSwsYVQUMZpqiFWg1o2G3U8C521EKunTVgDmQOlmJA2aPux3mi7MK05/WpbyhtxYFSYmVicOipZF/E2lWe83FtEiYFmiTaxcn5Bqh14LwbwcQNPpt5E+0NlPIotm3Ix5ILZ4eCnVUr/O4SYWFRJbagQhG/pwYrnUSo0Awe7VDTRh6b4p7rNEatISa3ZT9UvCkP9UWj/PNGuYRHl3G1byNhf1DxaaJicUsN+0n/5zI+nxvGh98IaWSa3fs0/pWK8+kw+rfU8M6m8UYy2nC4A7sf6ekV+Qk='),
  948. this.addDataEntry(dt + 'unidirectional connector', 160, 0, 'Unidirectional Connector',
  949. '3VXBboMwDP2aXCatCrD1XmjX06RJ/YIUXIgWYhRMR/v1C5BBGe1UTZ1U7QCKH89O/J5FWBDl9dqIInvFBBQLViyIDCJ1q7yOQCnmc5mwYMl8n9uH+S8XvnrtV14IA5quSfC7hL1QFXRIbGtwFizsW5QlxlKQRN3RSjooR9uDIRkLtVAy1RbaIhHmLAgzym0XS88uQScLY/DDhho1NEiSwsYVQUMZpqiFWg1o2G3U8C521EKunTVgDmQOlmJA2aPux3mi7MK05/WpbyhtxYFSYmVicOipZF/E2lWe83FtEiYFmiTaxcn5Bqh14LwbwcQNPpt5E+0NlPIotm3Ix5ILZ4eCnVUr/O4SYWFRJbagQhG/pwYrnUSo0Awe7VDTRh6b4p7rNEatISa3ZT9UvCkP9UWj/PNGuYRHl3G1byNhf1DxaaJicUsN+0n/5zI+nxvGh98IaWSa3fs0/pWK8+kw+rfU8M6m8UYy2nC4A7sf6ekV+Qk=')
  950. ];
  951. this.addPalette('sysmlBlocks', 'SysML / Blocks', expand || false, mxUtils.bind(this, function(content)
  952. {
  953. for (var i = 0; i < fns.length; i++)
  954. {
  955. content.appendChild(fns[i](content));
  956. }
  957. }));
  958. };
  959. Sidebar.prototype.addSysMLPortsAndFlowsPalette = function(expand)
  960. {
  961. var gn = '';
  962. var dt = 'sysml port flow ';
  963. var sb = this;
  964. var s = 'html=1;shape=mxgraph.sysml.';
  965. var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;';
  966. var fns = [
  967. this.addEntry(dt + 'port', function()
  968. {
  969. var s = 'html=1;shape=mxgraph.sysml.';
  970. var cardCell = new mxCell('Transmission', new mxGeometry(0, 0, 160, 60), s + 'port1;fontStyle=1;whiteSpace=wrap;align=center;points=[[0,0.5,0],[1,0.5,0]];');
  971. cardCell.vertex = true;
  972. var label1 = new mxCell('p1', new mxGeometry(0, 20, 20, 20), inh + 'shape=rect;points=[[0,0.5,0]];html=1;resizable=1;align=right;verticalAlign=bottom;labelPosition=left;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10;part=1;');
  973. label1.geometry.relative = false;
  974. label1.vertex = true;
  975. cardCell.insert(label1);
  976. var label2 = new mxCell('p2', new mxGeometry(140, 20, 20, 20), inh + 'shape=rect;points=[[1,0.5,0]];html=1;resizable=1;labelBackgroundColor=none;fontSize=10;part=1;');
  977. label2.geometry.relative = false;
  978. label2.vertex = true;
  979. cardCell.insert(label2);
  980. return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Port');
  981. }),
  982. this.addEntry(dt + 'port conjugated', function()
  983. {
  984. var cardCell = new mxCell('Transmission', new mxGeometry(0, 0, 200, 60), s + 'port2;fontStyle=1;spacingRight=20;whiteSpace=wrap;align=center;');
  985. cardCell.vertex = true;
  986. var label1 = new mxCell('p1 : ~T1', new mxGeometry(0, 20, 20, 20), inh + 'shape=rect;points=[[0,0.5,0]];html=1;resizable=1;align=right;verticalAlign=bottom;labelPositin=left;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10;part=1;');
  987. label1.geometry.relative = false;
  988. label1.vertex = true;
  989. cardCell.insert(label1);
  990. var label2 = new mxCell('p2 : ~T2', new mxGeometry(140, 20, 60, 20), inh + 'shape=rect;points=[[1,0.5,0]];html=1;resizable=1;labelBackgroundColor=none;fontSize=10;part=1;');
  991. label2.geometry.relative = false;
  992. label2.vertex = true;
  993. cardCell.insert(label2);
  994. return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Port (Conjugated Ports)');
  995. }),
  996. this.addDataEntry(dt + 'port flow property', 160, 80, 'Ports with Flow Properties',
  997. '7ZTLboMwEEW/xtuI4KbqtoE2m1aqlP6AAxOwanuQPWkgX18DJi9S9aFI3XSBZN87V5o5g8x4ouuFFVX5jDkoxh8YTywi9SddJ6AUiyOZM56yOI78x+LHT9xp50aVsGDoO4G4D7wLtYFeebXCOC2dk2h601GjglmS9i2mU8bnrhRVq+q6aLufuMZpNanQEvfuGg0tQ66t3paSYFmJrBW2PuA1oWRh/DXzvYL1QugFLEH96TydFIZZAGog2/iSrcypDBW3/cxRCbIoQ+wuaML192IfPdDxhwDoMiw+glVNR4gsOLkTq+4a+aGOkA0D276teTupzIS6D/oKiVB7Q4kVqBd0ktol8FTB+rj+6cwmrIbQXGRvhcWNyRNU6KGmBg0MC5G7bh8BRYbGQEah1/2v8tUC4ssLaELgCpxvxpzjf86nnGdX4Dwbc+a/4XyG7TLmvyM2BIZnIRDkPyfor4enufNOXu4P'),
  998. this.addEntry(dt + 'property specific type', function()
  999. {
  1000. var cell1 = new mxCell('', new mxGeometry(0, 0, 160, 70), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  1001. cell1.vertex = true;
  1002. var cell2 = new mxCell('Transmission', new mxGeometry(0, 0, 160, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  1003. cell2.vertex = true;
  1004. cell1.insert(cell2);
  1005. var divider = new mxCell('', new mxGeometry(0, 20, 160, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  1006. divider.vertex = true;
  1007. cell1.insert(divider);
  1008. var cell3 = new mxCell('ports', new mxGeometry(0, 28, 160, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontSize=10;fontStyle=2;');
  1009. cell3.vertex = true;
  1010. cell1.insert(cell3);
  1011. var cell4 = new mxCell('p1 : ITransCmd', new mxGeometry(0, 44, 160, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1012. cell4.vertex = true;
  1013. cell1.insert(cell4);
  1014. var cell6 = new mxCell('', new mxGeometry(0, 76, 160, 10), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1015. cell6.vertex = true;
  1016. cell1.insert(cell6);
  1017. return sb.createVertexTemplateFromCells([cell1], 160, 70, 'Port (Compartment Notation)');
  1018. }),
  1019. this.addDataEntry(dt + 'nested port', 160, 60, 'Nested Port',
  1020. '7ZXLboMwEEW/xtsIcJp9gTabVoqU/oADE7DqB7KdBvL1tbHJk6iPdFVlgeS54yvPnLEwwhlv54o09assgSH8hHCmpDR+xdsMGENJREuEc5Qkkf1Q8nwlG/fZqCEKhPmOIfGGD8I24JU3RYTmVGsqhU9q07GQrA23JeYxwqmuSeNU3lau+onuNGcTAdpAuZDKnp6upTDLYHaWbU0NLBtSOGFrXVYjjFbChoUtGJQVQkGgDLRXm+ql0NEcJAejOrtlS0tThx0z33hUA63qYBs0on1c7a0HRHYRKI0TwxfEmngSX5BSoOmOrPowsm0dkRtaVr6w1PVKC8Ieg85pWTpfysgK2EJqatwscM5gfbz/5SxtZDOYUlK8V0puRJlJJi3WXEgBw0jorp9IgFFIIaAwodb9jflqBMn4CLpgmN5OejpGOrmTPiWN/+BOP4yRxnfSp6Sns9tJz0ZI/4bzGbZ/gTkYhjdp+JP8/H7b8PCC9rmTB/YT'),
  1021. this.addEntry(dt + 'proxy port', function()
  1022. {
  1023. var cardCell = new mxCell('Transmission', new mxGeometry(0, 0, 160, 60), s + 'port1;fontStyle=1;whiteSpace=wrap;align=center;');
  1024. cardCell.vertex = true;
  1025. var label1 = new mxCell('&lt;&lt;proxy&gt;&gt;\np1', new mxGeometry(0, 20, 20, 20), inh + 'shape=rect;points=[[0,0.5,0]];html=1;resizable=1;align=right;verticalAlign=bottom;labelPosition=left;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10;part=1;');
  1026. label1.geometry.relative = false;
  1027. label1.vertex = true;
  1028. cardCell.insert(label1);
  1029. return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Proxy Port');
  1030. }),
  1031. this.addEntry(dt + 'full port', function()
  1032. {
  1033. var cardCell = new mxCell('Transmission', new mxGeometry(0, 0, 160, 60), s + 'port1;fontStyle=1;whiteSpace=wrap;align=center;');
  1034. cardCell.vertex = true;
  1035. var label1 = new mxCell('&lt;&lt;full&gt;&gt;\np1', new mxGeometry(0, 20, 20, 20), inh + 'shape=rect;points=[[0,0.5,0]];html=1;resizable=1;align=right;verticalAlign=bottom;labelPosition=left;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10;paart=1;');
  1036. label1.geometry.relative = false;
  1037. label1.vertex = true;
  1038. cardCell.insert(label1);
  1039. return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Full Port');
  1040. }),
  1041. this.addEntry(dt + 'flow property', function()
  1042. {
  1043. var cell1 = new mxCell('', new mxGeometry(0, 0, 200, 70), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  1044. cell1.vertex = true;
  1045. var cell2 = new mxCell('Transmission', new mxGeometry(0, 0, 200, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  1046. cell2.vertex = true;
  1047. cell1.insert(cell2);
  1048. var divider = new mxCell('', new mxGeometry(0, 20, 200, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  1049. divider.vertex = true;
  1050. cell1.insert(divider);
  1051. var cell3 = new mxCell('flow properties', new mxGeometry(0, 28, 200, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontSize=10;fontStyle=2;');
  1052. cell3.vertex = true;
  1053. cell1.insert(cell3);
  1054. var cell4 = new mxCell('in gearSelect: Gear', new mxGeometry(0, 44, 200, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1055. cell4.vertex = true;
  1056. cell1.insert(cell4);
  1057. var cell5 = new mxCell('in engineTorque: Torque', new mxGeometry(0, 44, 200, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1058. cell5.vertex = true;
  1059. cell1.insert(cell5);
  1060. var cell6 = new mxCell('out wheelsTorque: Torque', new mxGeometry(0, 44, 200, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1061. cell6.vertex = true;
  1062. cell1.insert(cell6);
  1063. var cell7 = new mxCell('', new mxGeometry(0, 76, 200, 8), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1064. cell7.vertex = true;
  1065. cell1.insert(cell7);
  1066. return sb.createVertexTemplateFromCells([cell1], 200, 70, 'Flow Property');
  1067. }),
  1068. this.addEntry(dt + 'required provided feature', function()
  1069. {
  1070. var cell1 = new mxCell('', new mxGeometry(0, 0, 250, 150), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  1071. cell1.vertex = true;
  1072. var cell2 = new mxCell('Transmission', new mxGeometry(0, 0, 250, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  1073. cell2.vertex = true;
  1074. cell1.insert(cell2);
  1075. var divider = new mxCell('', new mxGeometry(0, 20, 250, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  1076. divider.vertex = true;
  1077. cell1.insert(divider);
  1078. var cell3 = new mxCell('operations', new mxGeometry(0, 28, 250, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontSize=10;fontStyle=2;');
  1079. cell3.vertex = true;
  1080. cell1.insert(cell3);
  1081. var cell4 = new mxCell('prov Boolean selectGear(g : Gear)', new mxGeometry(0, 44, 250, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1082. cell4.vertex = true;
  1083. cell1.insert(cell4);
  1084. var cell5 = new mxCell('reqd Torque getTorque()', new mxGeometry(0, 44, 250, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1085. cell5.vertex = true;
  1086. cell1.insert(cell5);
  1087. cell1.insert(divider.clone());
  1088. var cell6 = new mxCell('properties', new mxGeometry(0, 28, 250, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontSize=10;fontStyle=2;');
  1089. cell6.vertex = true;
  1090. cell1.insert(cell6);
  1091. var cell7 = new mxCell('prov temperature : Integer', new mxGeometry(0, 44, 250, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1092. cell7.vertex = true;
  1093. cell1.insert(cell7);
  1094. var cell8 = new mxCell('reqd geometry : Spline', new mxGeometry(0, 44, 250, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1095. cell8.vertex = true;
  1096. cell1.insert(cell8);
  1097. var cell9 = new mxCell('', new mxGeometry(0, 76, 250, 18), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1098. cell9.vertex = true;
  1099. cell1.insert(cell9);
  1100. return sb.createVertexTemplateFromCells([cell1], 200, 70, 'Required and Provided Features');
  1101. }),
  1102. this.addEntry(dt + 'interface block', function()
  1103. {
  1104. var cell1 = new mxCell('', new mxGeometry(0, 0, 200, 80), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  1105. cell1.vertex = true;
  1106. var cell2 = new mxCell('&lt;&lt;InterfaceBlock&gt;&gt;', new mxGeometry(0, 0, 200, 18), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1107. cell2.vertex = true;
  1108. cell1.insert(cell2);
  1109. var cell3 = new mxCell('ISpeedObserver', new mxGeometry(0, 0, 200, 18), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  1110. cell3.vertex = true;
  1111. cell1.insert(cell3);
  1112. var divider = new mxCell('', new mxGeometry(0, 20, 200, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  1113. divider.vertex = true;
  1114. cell1.insert(divider);
  1115. var cell4 = new mxCell('notifySpeedChange(): void', new mxGeometry(0, 44, 200, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1116. cell4.vertex = true;
  1117. cell1.insert(cell4);
  1118. var cell5 = new mxCell('', new mxGeometry(0, 76, 200, 20), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1119. cell5.vertex = true;
  1120. cell1.insert(cell5);
  1121. return sb.createVertexTemplateFromCells([cell1], 200, 70, 'Interface Block');
  1122. }),
  1123. this.addDataEntry(dt + 'item flow', 120, 180, 'Item Flow',
  1124. '1ZXBbtswDIafRscFjt0Gu8bJ2ks3DEgO21GxGVuYLHkUk9h9+lG2nMRNuhVYVmAHA+JPUhY/UrZIFlXziLIuP9sctEg+iWSB1lK/qpoFaC3iSOUiWYo4jvgR8cMr3mnnjWqJYOgtCXGfsJd6B70CphDJnDVeKAMinok4mUYiSftQR60OoSVVfODllH2ulLVXq6bwtUxc6yo9UQTVg7YHDthaQ6uQ6hO2LC8VsrUK1rrtdrA7Pnh6KDl3VcvMSwfekjWpVWHYzLg2wOOB9oAEzav1d1Io/hFsBYQth4SEgCc6qJzKXvoYpBJUUYZNZkGTrreL40YntrwIeK+jTi5Qn7ElNK7HvkZpXKWcU9b8I+JfxsSVeQ/gbfBeIX7Ubo387gL52uJPXr/kCnkBAytjeeqT9Az1wAH706Vg8jmihzwEQ6PoG5vR5D5Y30MuY8H2zOVN7ztdKP/uEUxnd5jB6H6SxAJoNEdvQI6gJan9ePe/4Xl/wbO+QIng1LPcdGZ0naOGrcfoeNqUKZ46a9ldAz9aKpN6HiLJ+jnUcgP6q3WK/J045g/BTy/cG0tkqyEvldmPAu3O5AurLZ561t0P9Qz9u7syMmsMZBROf/x4/mni7377ifkQMm7ejdl7d2MM9r9tyI36webpP935Rr/xXw=='),
  1125. this.addDataEntry(dt + 'item flow property', 140, 180, 'Item Flow (Item Property)',
  1126. '1ZXfb5swEMf/Gj8uIpBGew3J2pdumpQ+bI8OXMCqsZl9SaB//c7YkFDardLSSntA8n3vB/bnfMCSddXcGV6XX3UOkiVfWLI2WqNfVc0apGRxJHKWbFgcR/Sw+PYV77zzRjU3oPAtCbFPOHJ5AK+AKliyIo0WQgGLlyxO5hFLUh9qsZUhtMSKNryZk8+WvHZq1RTuLDPb2krOBEJ1K/WJAvZa4TakuoQ9yRthyNoG66HtKugDbTw9lZS7rXnmpBOVJI1LUSgyMzobmGFDRzAIzavn76Rw+DvQFaBpKSQkLDye6CRyLL30OUgliKIMRZZB49bbxVDozJYWAe/LqJMJ6gu2aJT12B8MV7YS1gqt3on4tzFxoT4QeLiPURuC42kDBu3aHVhMOoDa/HLrDrxfP0cOeQE9RqVpIJL0ogs9IuN3moLKV8Y4/n0wNAJ/kBnNboL1M+QSMdNeuJzpfOdZc+8ecbb6YDIYjS5yUwCOrtgbumFAchTHcfV/YXszYVtPUBqw4onvOjN6maOEvcNo6SIKVdx31qabEHfrRMblKkSidldU8h3I79oKdOMy5PfB98/cO42oqz4v5dljYfRB5WsttTn3rBsd8QT+3d0xMq0UZBh2P3xX/zYMiz8Ow6eQcfVuLD+6G2Ow/21DrtQPMs+/8M43+sP/Bg=='),
  1127. this.createVertexTemplateEntry(s + 'itemFlow;fontStyle=1;flowDir=n;flowType=in;whiteSpace=wrap;align=center;',
  1128. 200, 80, 'eng:Engine', 'Item Flow North In', null, null, this.getTagsForStencil(gn, '', dt + 'item flow north in').join(' ')),
  1129. this.createVertexTemplateEntry(s + 'itemFlow;fontStyle=1;flowDir=e;flowType=out;whiteSpace=wrap;align=center;',
  1130. 200, 80, 'eng:Engine', 'Item Flow East Out', null, null, this.getTagsForStencil(gn, '', dt + 'item flow east out').join(' ')),
  1131. this.addEntry(dt + 'item flow', function()
  1132. {
  1133. var cardCell = new mxCell('eng: engine', new mxGeometry(40, 0, 100, 60), s + 'itemFlow;fontStyle=1;flowDir=e;flowType=none;spacingRight=20;whiteSpace=wrap;align=center;');
  1134. cardCell.vertex = true;
  1135. var cardCell2 = new mxCell('trns: Translation', new mxGeometry(260, 0, 140, 60), s + 'itemFlow;fontStyle=1;flowDir=w;flowType=none;spacingLeft=15;whiteSpace=wrap;align=center;');
  1136. cardCell2.vertex = true;
  1137. var assoc1 = new mxCell('Torque', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;align=left;verticalAlign=top;endArrow=none;exitX=1;exitY=0.5;entryX=0;entryY=0.5;');
  1138. assoc1.geometry.relative = true;
  1139. assoc1.edge = true;
  1140. var label1 = new mxCell('ep:EP', new mxGeometry(0, 0, 0, 0), 'resizable=0;html=1;align=left;spacingLeft=5;verticalAlign=bottom;labelPosition=left;verticalLabelPosition=bottom;labelBackgroundColor=none;fontSize=10');
  1141. label1.geometry.relative = true;
  1142. label1.geometry.x = -1;
  1143. label1.setConnectable(false);
  1144. label1.vertex = true;
  1145. assoc1.insert(label1);
  1146. var label2 = new mxCell('tp:TP', new mxGeometry(0, 0, 0, 0), 'resizable=0;html=1;align=right;spacingRight=5;verticalAlign=bottom;labelPosition=left;verticalLabelPosition=bottom;labelBackgroundColor=none;fontSize=10');
  1147. label2.geometry.relative = true;
  1148. label2.geometry.x = 1;
  1149. label2.setConnectable(false);
  1150. label2.vertex = true;
  1151. assoc1.insert(label2);
  1152. cardCell.insertEdge(assoc1, true);
  1153. cardCell2.insertEdge(assoc1, false);
  1154. var bg = new mxCell(
  1155. '<p style="margin:0px;margin-top:4px;text-align:center;">' +
  1156. '<b>c1: Association-1</b></p><hr/>' +
  1157. '<p style="margin:0px;margin-left:4px;text-align:left;font-size:0.9em;">' +
  1158. '&lt;&lt;participant&gt;&gt;{end = ep} epInLink : EP[1]<br/>' +
  1159. '&lt;&lt;participant&gt;&gt;{end = tp} etInLink : TP[1]<hr/></p>' +
  1160. '<p style="margin:0px;text-align:center;font-size:0.9em;">' +
  1161. 'structure</p>',
  1162. new mxGeometry(0, 120, 470, 250), 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;recursiveResize=0;');
  1163. bg.vertex = true;
  1164. var assoc2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;html=1;edgeStyle=elbowEdgeStyle;elbow=horizontal;dashed=1;');
  1165. assoc2.geometry.relative = true;
  1166. assoc2.geometry.setTerminalPoint(new mxPoint(160, 30), true);
  1167. assoc2.edge = true;
  1168. bg.insertEdge(assoc2, false);
  1169. var cardCell4 = new mxCell('epInLink : EP', new mxGeometry(30, 100, 160, 120), inh + s + 'itemFlowRight;fontStyle=1;spacingRight=40;whiteSpace=wrap;align=center;');
  1170. cardCell4.vertex = true;
  1171. bg.insert(cardCell4);
  1172. var label3 = new mxCell('ep.1', new mxGeometry(160, 30, 0, 0), 'resizable=0;html=1;align=right;spacingRight=22;verticalAlign=middle;labelPosition=right;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10');
  1173. label3.geometry.relative = false;
  1174. label3.setConnectable(false);
  1175. label3.vertex = true;
  1176. cardCell4.insert(label3);
  1177. var label4 = new mxCell('ep.2', new mxGeometry(160, 60, 0, 0), 'resizable=0;html=1;align=right;spacingRight=22;verticalAlign=middle;labelPosition=right;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10');
  1178. label4.geometry.relative = false;
  1179. label4.setConnectable(false);
  1180. label4.vertex = true;
  1181. cardCell4.insert(label4);
  1182. var label5 = new mxCell('ep.3', new mxGeometry(160, 90, 0, 0), 'resizable=0;html=1;align=right;spacingRight=22;verticalAlign=middle;labelPosition=right;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10');
  1183. label5.geometry.relative = false;
  1184. label5.setConnectable(false);
  1185. label5.vertex = true;
  1186. cardCell4.insert(label5);
  1187. var cardCell5 = new mxCell('tpInLink : TP', new mxGeometry(280, 100, 160, 120), inh + s + 'itemFlowLeft;fontStyle=1;spacingLeft=40;whiteSpace=wrap;align=center;');
  1188. cardCell5.vertex = true;
  1189. bg.insert(cardCell5);
  1190. var label6 = new mxCell('tp.1', new mxGeometry(0, 30, 0, 0), 'resizable=0;html=1;align=left;spacingLeft=22;verticalAlign=middle;labelPosition=left;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10');
  1191. label6.geometry.relative = false;
  1192. label6.setConnectable(false);
  1193. label6.vertex = true;
  1194. cardCell5.insert(label6);
  1195. var label7 = new mxCell('tp.2', new mxGeometry(0, 60, 0, 0), 'resizable=0;html=1;align=left;spacingLeft=22;verticalAlign=middle;labelPosition=left;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10');
  1196. label7.geometry.relative = false;
  1197. label7.setConnectable(false);
  1198. label7.vertex = true;
  1199. cardCell5.insert(label7);
  1200. var label8 = new mxCell('tp.3', new mxGeometry(0, 90, 0, 0), 'resizable=0;html=1;align=left;spacingLeft=22;verticalAlign=middle;labelPosition=left;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10');
  1201. label8.geometry.relative = false;
  1202. label8.setConnectable(false);
  1203. label8.vertex = true;
  1204. cardCell5.insert(label8);
  1205. var assoc3 = new mxCell('Vibration', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;verticalAlign=bottom;endArrow=none;exitX=1;exitY=0.25;entryX=0;entryY=0.25;labelBackgroundColor=none;');
  1206. assoc3.geometry.relative = true;
  1207. assoc3.edge = true;
  1208. cardCell4.insertEdge(assoc3, true);
  1209. cardCell5.insertEdge(assoc3, false);
  1210. bg.insert(assoc3);
  1211. var assoc4 = new mxCell('Heat', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;verticalAlign=bottom;endArrow=none;exitX=1;exitY=0.5;entryX=0;entryY=0.5;labelBackgroundColor=none;');
  1212. assoc4.geometry.relative = true;
  1213. assoc4.edge = true;
  1214. cardCell4.insertEdge(assoc4, true);
  1215. cardCell5.insertEdge(assoc4, false);
  1216. bg.insert(assoc4);
  1217. var assoc5 = new mxCell('Current', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;verticalAlign=bottom;endArrow=none;exitX=1;exitY=0.75;entryX=0;entryY=0.75;labelBackgroundColor=none;');
  1218. assoc5.geometry.relative = true;
  1219. assoc5.edge = true;
  1220. cardCell4.insertEdge(assoc5, true);
  1221. cardCell5.insertEdge(assoc5, false);
  1222. bg.insert(assoc5);
  1223. return sb.createVertexTemplateFromCells([cardCell, cardCell2, assoc1, bg, assoc2], 470, 370, 'Item Flow');
  1224. }),
  1225. this.addDataEntry(dt + 'item flow', 200, 120, 'Item Flow',
  1226. '7ZXfasIwFMafJrdSm22wS1unDBwI7gVie2yD+VOSuLY+/U6bVN1WcYNdetGQfOd84ZzfKYTQVDZLw6ryTecgCH0hNDVaO7+TTQpCkDjiOaFzEscRfiReXIlO+2hUMQPK/cYQe8MHEwfwiqte1YqrPaqEznB9X/sc61oRckonsdL5lNDElqzqVNkUXRMT21opJtyBXAhdr2CHZSQ7rdwm2DtTXWLCpmJZJ9ToQ40JXig8Zlg5GBRCZWAcNFe766XQ2hK0BGdaTKl57srQYeQJRCXwohxsAUvErBeKk/cMCzeB1zg7OsJuMv0By4DlR7btj4g0uYA39Cw8JotEuCo8tHnXWNK1zzMmZiFT8jzvbkoE24JYa8sd1xdXDPmrb2Gnq8GUsGxfGH1QeaqFRtJzpRUMU+LHfkgBT6aVgsyF6k9/062pxONTaQO3f2D/MMY+vrO/xf7pH9g/jrGnd/a32D//nT0ez29BH/vyVHwC'),
  1227. this.addDataEntry(dt + 'item flow', 200, 120, 'Item Flow',
  1228. '7ZVdb4IwFIZ/TW8N0m3JLgXULHGJmb+gwhk09oO0dYC/fgco6hxmH/HSC0j79rzNOc9LAqGxrJeGlcWrzkAQOic0Nlq7fiXrGIQgYcAzQhMShgE+JFxcOZ12p0HJDCj3G0PYGz6Y2EOvQPmiVlztUCV0hu/5uq+xrhG+pnASO02mhEa2YGWryjpvh5jYxkox4Q7kQujqjecF9hG9a+U23t+6qgIrNiVLW6FCI2pM8FzhNsXWwaDgWwPjoL46Xif52ZagJTjTYEnFM1f4EYMeQVBA301n81wCZnshP3pPtHDhgY3DoyPwJtNvtAxYfmDbbotMozN6w8zGc7KIhKvcY0va0aIWAE+ZmPlaybOsvSsSbAtirS13XJ9fMhhWF+dOl4MrYukuN3qvslgLjbATpRUMQfFDl5MnlGqlIHV+gOMX9VMw4Xgw9UUojUd5gzgexuII73H8I46nG8TxOBYHvcfxjzie/x4Hbk9/ke7sy0/mEw=='),
  1229. this.addEntry(dt + 'interface', function()
  1230. {
  1231. var cell1 = new mxCell('', new mxGeometry(0, 0, 200, 80), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  1232. cell1.vertex = true;
  1233. var cell2 = new mxCell('&lt;&lt;Interface&gt;&gt;', new mxGeometry(0, 0, 200, 18), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1234. cell2.vertex = true;
  1235. cell1.insert(cell2);
  1236. var cell3 = new mxCell('ISpeedObserver', new mxGeometry(0, 0, 200, 18), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  1237. cell3.vertex = true;
  1238. cell1.insert(cell3);
  1239. var divider = new mxCell('', new mxGeometry(0, 20, 200, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  1240. divider.vertex = true;
  1241. cell1.insert(divider);
  1242. var cell4 = new mxCell('notifySpeedChange(): void', new mxGeometry(0, 44, 200, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1243. cell4.vertex = true;
  1244. cell1.insert(cell4);
  1245. var cell5 = new mxCell('', new mxGeometry(0, 76, 200, 20), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1246. cell5.vertex = true;
  1247. cell1.insert(cell5);
  1248. return sb.createVertexTemplateFromCells([cell1], 200, 70, 'Interface');
  1249. }),
  1250. this.addEntry(dt + 'required interface', function()
  1251. {
  1252. var cardCell = new mxCell('Transmission', new mxGeometry(90, 0, 160, 60), s + 'port4;fontStyle=1;whiteSpace=wrap;align=center;');
  1253. cardCell.vertex = true;
  1254. var label1 = new mxCell('p1', new mxGeometry(0, 20, 20, 20), inh + 'shape=rect;html=1;resizable=0;align=left;verticalAlign=bottom;labelPosition=right;verticalLabelPosition=top;labelBackgroundColor=none;fontSize=10;');
  1255. label1.geometry.relative = false;
  1256. label1.setConnectable(false);
  1257. label1.vertex = true;
  1258. cardCell.insert(label1);
  1259. var assoc1 = new mxCell('ITransCmd', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;align=left;verticalAlign=bottom;endArrow=sysMLReqInt;endSize=8;exitX=0;exitY=0.5;');
  1260. assoc1.geometry.setTerminalPoint(new mxPoint(0, 0), false);
  1261. assoc1.geometry.relative = true;
  1262. assoc1.geometry.x = 1;
  1263. assoc1.edge = true;
  1264. cardCell.insertEdge(assoc1, true);
  1265. var assoc2 = new mxCell('ITransData', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;align=left;verticalAlign=top;endArrow=sysMLProvInt;endSize=12;exitX=0;exitY=0.5;');
  1266. assoc2.geometry.setTerminalPoint(new mxPoint(0, 60), false);
  1267. assoc2.geometry.relative = true;
  1268. assoc2.geometry.x = 1;
  1269. assoc2.edge = true;
  1270. cardCell.insertEdge(assoc2, true);
  1271. return sb.createVertexTemplateFromCells([cardCell, assoc1, assoc2], 250, 60, 'Required Interface');
  1272. }),
  1273. this.addEntry(dt + 'provided interface', function()
  1274. {
  1275. var cardCell = new mxCell('Transmission', new mxGeometry(90, 0, 160, 60), s + 'port4;fontStyle=1;whiteSpace=wrap;align=center;');
  1276. cardCell.vertex = true;
  1277. var label1 = new mxCell('p1', new mxGeometry(0, 20, 20, 20), inh + 'shape=rect;html=1;resizable=0;labelBackgroundColor=none;fontSize=10;');
  1278. label1.geometry.relative = false;
  1279. label1.setConnectable(false);
  1280. label1.vertex = true;
  1281. cardCell.insert(label1);
  1282. var assoc1 = new mxCell('ITransCmd', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;align=left;verticalAlign=bottom;endArrow=sysMLReqInt;endSize=8;exitX=0;exitY=0.5;');
  1283. assoc1.geometry.setTerminalPoint(new mxPoint(0, 0), false);
  1284. assoc1.geometry.relative = true;
  1285. assoc1.geometry.x = 1;
  1286. assoc1.edge = true;
  1287. cardCell.insertEdge(assoc1, true);
  1288. var assoc2 = new mxCell('ITransData', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;align=left;verticalAlign=top;endArrow=sysMLProvInt;endSize=12;exitX=0;exitY=0.5;');
  1289. assoc2.geometry.setTerminalPoint(new mxPoint(0, 60), false);
  1290. assoc2.geometry.relative = true;
  1291. assoc2.geometry.x = 1;
  1292. assoc2.edge = true;
  1293. cardCell.insertEdge(assoc2, true);
  1294. return sb.createVertexTemplateFromCells([cardCell, assoc1, assoc2], 250, 60, 'Provided Interface');
  1295. }),
  1296. this.createVertexTemplateEntry(s + 'port;sysMLPortType=flowN;',
  1297. 20, 20, '', 'Port, Flow North', null, null, this.getTagsForStencil(gn, '', dt + 'item flow north').join(' ')),
  1298. this.createVertexTemplateEntry(s + 'port;sysMLPortType=doubleH;',
  1299. 20, 20, '', 'Port, Double Flow, Horizontal', null, null, this.getTagsForStencil(gn, '', dt + 'item double flow horizontal').join(' ')),
  1300. this.addEntry(dt + 'ports', function()
  1301. {
  1302. var mainShape = new mxCell('', new mxGeometry(0, 0, 200, 140), 'whiteSpace=wrap;align=center;html=1;');
  1303. mainShape.vertex = true;
  1304. var port1 = new mxCell('port1', new mxGeometry(0, 0, 20, 20), s + 'port;html=1;resizable=0;sysMLPortType=flowS;labelPosition=center;verticalLabelPosition=bottom;align=center;verticalAlign=top;');
  1305. port1.geometry.relative = true;
  1306. port1.vertex = true;
  1307. port1.geometry.offset = new mxPoint(50, -10);
  1308. mainShape.insert(port1);
  1309. var port2 = new mxCell('port2', new mxGeometry(1, 0, 20, 20), s + 'port;html=1;resizable=0;sysMLPortType=empty;labelPosition=center;verticalLabelPosition=bottom;align=center;verticalAlign=top;');
  1310. port2.geometry.relative = true;
  1311. port2.vertex = true;
  1312. port2.geometry.offset = new mxPoint(-70, -10);
  1313. mainShape.insert(port2);
  1314. var port3 = new mxCell('port3', new mxGeometry(0, 0, 20, 20), s + 'port;html=1;resizable=0;sysMLPortType=flowE;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;');
  1315. port3.geometry.relative = true;
  1316. port3.vertex = true;
  1317. port3.geometry.offset = new mxPoint(-10, 30);
  1318. mainShape.insert(port3);
  1319. var port4 = new mxCell('port4', new mxGeometry(0, 1, 20, 20), s + 'port;html=1;resizable=0;sysMLPortType=doubleH;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;');
  1320. port4.geometry.relative = true;
  1321. port4.vertex = true;
  1322. port4.geometry.offset = new mxPoint(-10, -50);
  1323. mainShape.insert(port4);
  1324. var port5 = new mxCell('port5', new mxGeometry(1, 0, 20, 20), s + 'port;html=1;resizable=0;sysMLPortType=flowE;labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;');
  1325. port5.geometry.relative = true;
  1326. port5.vertex = true;
  1327. port5.geometry.offset = new mxPoint(-10, 30);
  1328. mainShape.insert(port5);
  1329. var port6 = new mxCell('port6', new mxGeometry(1, 1, 20, 20), s + 'port;html=1;resizable=0;sysMLPortType=doubleH;labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;');
  1330. port6.geometry.relative = true;
  1331. port6.vertex = true;
  1332. port6.geometry.offset = new mxPoint(-10, -50);
  1333. mainShape.insert(port6);
  1334. var port7 = new mxCell('port7', new mxGeometry(0, 1, 20, 20), s + 'port;html=1;resizable=0;sysMLPortType=flowN;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;');
  1335. port7.geometry.relative = true;
  1336. port7.vertex = true;
  1337. port7.geometry.offset = new mxPoint(50, -10);
  1338. mainShape.insert(port7);
  1339. var port8 = new mxCell('port8', new mxGeometry(1, 1, 20, 20), s + 'port;html=1;resizable=0;sysMLPortType=doubleV;labelPosition=center;verticalLabelPosition=top;align=center;verticalAlign=bottom;');
  1340. port8.geometry.relative = true;
  1341. port8.vertex = true;
  1342. port8.geometry.offset = new mxPoint(-70, -10);
  1343. mainShape.insert(port8);
  1344. return sb.createVertexTemplateFromCells([mainShape], 220, 160, 'Ports');
  1345. })
  1346. ];
  1347. this.addPalette('sysmlPorts and Flows', 'SysML / Ports and Flows', expand || false, mxUtils.bind(this, function(content)
  1348. {
  1349. for (var i = 0; i < fns.length; i++)
  1350. {
  1351. content.appendChild(fns[i](content));
  1352. }
  1353. }));
  1354. };
  1355. Sidebar.prototype.addSysMLConstraintBlocksPalette = function(expand)
  1356. {
  1357. var s = 'html=1;shape=mxgraph.sysml.';
  1358. var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;';
  1359. var gn = '';
  1360. var dt = 'sysml constraint block ';
  1361. var sb = this;
  1362. var fns = [
  1363. this.addEntry(dt + 'interface', function()
  1364. {
  1365. var cell1 = new mxCell('', new mxGeometry(0, 0, 200, 180), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  1366. cell1.vertex = true;
  1367. var cell2 = new mxCell('&lt;&lt;constraint&gt;&gt;', new mxGeometry(0, 0, 200, 18), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1368. cell2.vertex = true;
  1369. cell1.insert(cell2);
  1370. var cell3 = new mxCell('ConstraintBlock1', new mxGeometry(0, 0, 200, 18), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1;');
  1371. cell3.vertex = true;
  1372. cell1.insert(cell3);
  1373. var divider = new mxCell('', new mxGeometry(0, 20, 200, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  1374. divider.vertex = true;
  1375. cell1.insert(divider);
  1376. var cell4 = new mxCell('constraints', new mxGeometry(0, 44, 200, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=2;fontSize=10;');
  1377. cell4.vertex = true;
  1378. cell1.insert(cell4);
  1379. var cell5 = new mxCell('{{L1} x > y }', new mxGeometry(0, 44, 200, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1380. cell5.vertex = true;
  1381. cell1.insert(cell5);
  1382. var cell6 = new mxCell('nested: ConstraintBlock2', new mxGeometry(0, 44, 200, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1383. cell6.vertex = true;
  1384. cell1.insert(cell6);
  1385. cell1.insert(divider.clone());
  1386. var cell7 = new mxCell('parameters', new mxGeometry(0, 44, 200, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=2;fontSize=10;');
  1387. cell7.vertex = true;
  1388. cell1.insert(cell7);
  1389. var cell8 = new mxCell('x: Real', new mxGeometry(0, 44, 200, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1390. cell8.vertex = true;
  1391. cell1.insert(cell8);
  1392. var cell9 = new mxCell('y: Real', new mxGeometry(0, 44, 200, 16), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1393. cell9.vertex = true;
  1394. cell1.insert(cell9);
  1395. var cell10 = new mxCell('', new mxGeometry(0, 76, 200, 32), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1396. cell10.vertex = true;
  1397. cell1.insert(cell10);
  1398. return sb.createVertexTemplateFromCells([cell1], 200, 70, 'Constraint Block');
  1399. }),
  1400. this.addEntry(dt + 'parametric diagram', function()
  1401. {
  1402. var bg = new mxCell('<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;"><b>par</b> Block1</p>', new mxGeometry(0, 0, 300, 170), s + 'package;labelX=120;align=left;spacingLeft=10;overflow=fill;whiteSpace=wrap;recursiveResize=0;');
  1403. bg.vertex = true;
  1404. var cardCell2 = new mxCell('C1: Constraint', new mxGeometry(130, 50, 150, 100), inh + s + 'paramDgm;fontStyle=1;whiteSpace=wrap;align=center;');
  1405. cardCell2.vertex = true;
  1406. bg.insert(cardCell2);
  1407. var label1 = new mxCell('x:', new mxGeometry(0, 25, 0, 0), 'html=1;resizable=0;align=left;verticalAlign=middle;labelPosition=left;verticalLabelPosition=middle;labelBackgroundColor=none;fontSize=10;spacingLeft=22;fontStyle=1;');
  1408. label1.geometry.relative = false;
  1409. label1.setConnectable(false);
  1410. label1.vertex = true;
  1411. cardCell2.insert(label1);
  1412. var label2 = new mxCell('y:', new mxGeometry(0, 75, 0, 0), 'html=1;resizable=0;align=left;verticalAlign=middle;labelPosition=left;verticalLabelPosition=middle;labelBackgroundColor=none;fontSize=10;spacingLeft=22;fontStyle=1;');
  1413. label2.geometry.relative = false;
  1414. label2.setConnectable(false);
  1415. label2.vertex = true;
  1416. cardCell2.insert(label2);
  1417. var cardCell3 = new mxCell('length: Real', new mxGeometry(30, 65, 20, 20), inh + 'shape=rect;html=1;fontSize=10;verticalLabelPosition=top;verticalAlign=bottom;');
  1418. cardCell3.vertex = true;
  1419. bg.insert(cardCell3);
  1420. var cardCell4 = new mxCell('width: Real', new mxGeometry(30, 115, 20, 20), inh + 'shape=rect;html=1;fontSize=10;verticalLabelPosition=top;verticalAlign=bottom;');
  1421. cardCell4.vertex = true;
  1422. bg.insert(cardCell4);
  1423. var assoc1 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=none;html=1;edgeStyle=none;exitY=0.25;exitX=0;entryY=0.5;entryX=1;');
  1424. assoc1.geometry.relative = true;
  1425. assoc1.geometry.x=1;
  1426. assoc1.edge = true;
  1427. cardCell2.insertEdge(assoc1, true);
  1428. cardCell3.insertEdge(assoc1, false);
  1429. bg.insert(assoc1);
  1430. var assoc2 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=none;html=1;edgeStyle=none;exitY=0.75;exitX=0;entryY=0.5;entryX=1;');
  1431. assoc2.geometry.relative = true;
  1432. assoc2.geometry.x=1;
  1433. assoc2.edge = true;
  1434. cardCell2.insertEdge(assoc2, true);
  1435. cardCell4.insertEdge(assoc2, false);
  1436. bg.insert(assoc2);
  1437. return sb.createVertexTemplateFromCells([bg], 300, 170, 'Parametric Diagram');
  1438. }),
  1439. this.addDataEntry(dt + 'constraint property', 150, 100, 'Constraint Property',
  1440. '7VTLbsIwEPwaX1FIinrOo+VCpap8gUkW26ofkW1Kwtd3nRgoDaituPYQyZ7dsXdmIpOsVN3S0pa/mAYkyZ5IVlpj/LhSXQlSkjQRDckqkqYJfiR9vlGdD9WkpRa0/w0hHQkfVO5gRMo5yfLSaOctFdrHE53vZWzgXuGYFbYVjtM2oKpjQcHM9U7JGd5OVcUUNmyN9utIDYQ9Fx7WLa0DsEcOYlQKpnFb48hgEYgjgfXQ3ZQ1QFHTEowCb3ts2YvG89ixGKUnHATjR1oSQepGgJ24Z5dwEY26blo2MQ3nzBF5Ayonfllw4kA3wzZBeV/8O0qXsMX5iiBZ1FTmEVaiaQKtkHQD8tU44YW50r/6Vr7kFbR+Z9bsdFMaadDgShsNx3DEYcgmDOYwF6HZaji8CvZO8hvF1UZrqH3UdPrHfoosvR5ZH6uL+4N5mATT/wdzbzCPfw8Gt+cnbKhdvHCf'),
  1441. this.addDataEntry(dt + 'constraint property', 150, 120, 'Constraint Property',
  1442. '3VTLboMwEPwaHxMRk0a9xtDmkkpR0x9wwAGrflDbSUi/vmswIPJQK/VS9YDwzu7Y3pkFFCeyXhlalS86ZwLFTyhOjNauXck6YUIgHPEcxSnCOIIH4ec72VmTjSpqmHI/IeCWcKTiwFoE4YUAKqkAtu4sWnjxcfBXIpKagisUL6Oq7sOJ0xVA8wZyrHYTKnjhqzK4BjOADjvAqghvKoFGxHWUaWWdoRx66PAxp4ua6p3x/Q3btmAHJDO4B/SS9HvOuhqg7S55gFWXWDk+AI+UwaWTYFsKxxBb0sqjsi68o1N7tlJMfTcb4yUi+sjMXugT1Ow5GBGTU8kd21Y087wTsPojoBS0vOtrAwVTV0xL5swZSk48d2WoeGi9j0rGi7KjhYGIqG2BoucOYwKLMCm3pya+mpq6FfmVUXElkGGWf9JdE0ZezkGwMCepYHuvrW+ZZ1QsAyx5nnsaEXTHxEZb7ri+Ub++SI95hGbvhdEHlSdaaJjGVGnlsxZk56pYN5ulXs4OevNupV6rmOy1ctvQzax3B0xVLHOhrf47+841fNu135gxvzLj/C/NePyDZkA4/Kub3OhX/gU=')
  1443. ];
  1444. this.addPalette('sysmlConstraint Blocks', 'SysML / Constraint Blocks', expand || false, mxUtils.bind(this, function(content)
  1445. {
  1446. for (var i = 0; i < fns.length; i++)
  1447. {
  1448. content.appendChild(fns[i](content));
  1449. }
  1450. }));
  1451. };
  1452. Sidebar.prototype.addSysMLActivitiesPalette = function(expand)
  1453. {
  1454. var s = 'html=1;shape=mxgraph.sysml.';
  1455. var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;';
  1456. var gn = '';
  1457. var dt = 'sysml activity ';
  1458. var sb = this;
  1459. var fns = [
  1460. this.createVertexTemplateEntry('shape=rect;html=1;rounded=1;whiteSpace=wrap;align=center;',
  1461. 160, 80, 'Action', 'Action', null, null, this.getTagsForStencil(gn, '', dt + 'action').join(' ')),
  1462. this.createVertexTemplateEntry(s + 'callBehAct;whiteSpace=wrap;align=center;',
  1463. 160, 80, 'action name:\nbehavior name', 'Call Behavior Action', null, null, this.getTagsForStencil(gn, 'callBehAct', dt + 'call behavior action').join(' ')),
  1464. this.createVertexTemplateEntry(s + 'accEvent;strokeWidth=2;whiteSpace=wrap;align=center;',
  1465. 100, 60, 'Event', 'Accept Event Action', null, null, this.getTagsForStencil(gn, 'accEvent', dt + 'accept event action').join(' ')),
  1466. this.createVertexTemplateEntry(s + 'timeEvent;strokeWidth=2;verticalLabelPosition=bottom;verticalAlignment=top;',
  1467. 35, 40, '', 'Time Event', null, null, this.getTagsForStencil(gn, 'timeEvent', dt + 'time event').join(' ')),
  1468. this.createVertexTemplateEntry(s + 'sendSigAct;strokeWidth=2;whiteSpace=wrap;align=center;',
  1469. 100, 60, 'Signal', 'Send Signal Action', null, null, this.getTagsForStencil(gn, 'sendSigAct', dt + 'send signal action').join(' ')),
  1470. this.createVertexTemplateEntry(s + 'actFinal;strokeWidth=2;verticalLabelPosition=bottom;verticalAlignment=top;',
  1471. 40, 40, '', 'Activity Final', null, null, this.getTagsForStencil(gn, 'actFinal', dt + 'activity final').join(' ')),
  1472. this.createVertexTemplateEntry(s + 'actParamNode;align=left;spacingLeft=15;verticalAlign=top;spacingTop=-3;',
  1473. 300, 135, 'act', 'Activity Parameter Node', null, null, this.getTagsForStencil(gn, 'act', dt + 'activity parameter node').join(' ')),
  1474. this.createVertexTemplateEntry('shape=rect;rounded=1;html=1;whiteSpace=wrap;align=center;',
  1475. 160, 80, '&lt;&lt;controlOperator&gt;&gt;\nCallBehaviorAction', 'Control Operator', null, null, this.getTagsForStencil(gn, '', dt + 'control operator').join(' ')),
  1476. this.createVertexTemplateEntry(s + 'package;align=left;spacingLeft=5;verticalAlign=top;spacingTop=-3;labelX=135;html=1;overflow=fill;',
  1477. 250, 120, '<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;"><b>act</b> [ControlOperator]</p>', 'Control Operator',
  1478. null, null, this.getTagsForStencil(gn, 'package', dt + 'control operator').join(' ')),
  1479. this.addDataEntry(dt + 'decision node', 200, 80, 'Decision Node',
  1480. '7ZXJboMwEIafxneWpOo1kDSXVoqUJzBhBFaNB5kh29PXYIclTVS6ST30gDTzz+JhPpBZGBfHteZl/oIpSBauWBhrRLJWcYxBShZ4ImXhkgWBZx4WPN2J+m3UK7kGRVMKAluw57IGq1ihopN0QpXzsjF1jkVSVyyMcirMoEvfmHvQJHZcPvME5AYrQQKViSVIhMUgYSFFpgo7FWFpIu5kE4fj3elbyY2+BiyA9MmkuIJH+3Leyboz5x5ESvlYykFkOY01Xlk/6/r2izKG29XtvYUf7w3SDLbOBZngYdULwxW2MWPnqMUZFXETiHizrmbpduzxGof7BZUutG4bKFRNa421SqGZ0zOebMBEfPeatXqMEnWfWxHXdKnHEtRF24pzM7cfdKCa1xlhqrDWOxh9RhPIaZCcxH7c6hYJV7pBYTp2xH3vCp4ZNgNyWVf8umMnIZ29RzqPsprrlM2X36Z7ATiRpWPxGZam+q9SC7zxj/rwaxDntyCCrOCf4VcZ/jQz4/b3m00fXn9v'),
  1481. this.createVertexTemplateEntry(s + 'flowFinal;strokeWidth=2;verticalLabelPosition=bottom;verticalAlignment=top;',
  1482. 40, 40, '', 'Flow Final', null, null, this.getTagsForStencil(gn, 'flowFinal', dt + 'flow final').join(' ')),
  1483. this.addDataEntry(dt + 'fork node', 200, 80, 'Fork Node',
  1484. '7ZZNb8IwDIZ/Te8l5WNXKIzLJiFx2DlQr42WxlVqPn/90sZ8tAINIZB24IBkv7ZT532K1CCK8+3UyiL7xAR0EE2CKLaI5KN8G4PWgQhVEkTjQIjQ/QLxfqXaqathIS0YumVA+IG11CvwihdK2mkWykwWVWhh6Y4cZZS7LccdF34rrWPUaF1eksUf4Gy0BktqKfWHXICeYalIoXFdCyTC/KxhqFVqcr8sYeEqvJCrw/bqpWqJbzQFzIHszrXwQN/fOdyohDIvdb2SgUozPuONu2Tp8/R4zskvF7Bll+2L/rYPkhTmnIJe4GZyEs7NrGsuztCqPRqSuhJNMrS21g2aasLiyiRQPT50WUnS0qEDCzC1VpH44rtHh6652lcrdMTR42qzhsMlruwSGi/GDaZb0JLUunnUJVN5dIbKnSjCHZNpYXC7pkDc1CJxfOpNcLqPh3N4bZto2Pg2mjYGN/HvIPA/RoRMgaF0ngal94JyL5ToaVD6Lyj3Quk9DcrgBeVeKINHQXHp6VvMt59/qv0C'),
  1485. this.createVertexTemplateEntry('shape=ellipse;html=1;fillColor=strokeColor;strokeWidth=2;verticalLabelPosition=bottom;verticalAlignment=top;perimeter=ellipsePerimeter;',
  1486. 40, 40, '', 'Initial Node', null, null, this.getTagsForStencil(gn, '', dt + 'initial node').join(' ')),
  1487. this.addDataEntry(dt + 'join node', 200, 80, 'Join Node',
  1488. '7ZbJbsIwEIafxleUxC302kDLpZWQOPRskmni4mQiZ9j69J3EhrC0EhIg9UCkSLPb/j8fLOSwWI+tqvJ3TMEI+SLk0CKSs4r1EIwRUaBTIUciigL+RfT6RzZss0GlLJR0TkPkGpbKLMBFxCD+Ql3WFSQc6PV6YjByRTVtjC+qc1U1poWEl4lzKnjno5DNT23MEA1a9muyOAfvxUuwpBNl3tQMzARrTRpLrpohERZcYJpErJJ5ZnFRptspIpKf7bc349norOklrDjqz8A5WP+pQxvyIowBCyC74ZJtg+y7lpVOKXexBxfJQWe5H/Lk1AxU7fxsN6jTmA0v8++Sy1PJj+WFNIOpd8HMcPXSBfbFbnNs52j1N5akOBG34kGzWNCUlOmztW0VVsCaxY7Khz+ndDVT/d0sFkY7OZs9HIhZ48ImcHBtztDXglGkl4ejfpPPt0747lHHJQq84hvP5AgAKZsB+aYjBrtdnIXl4fpYtre1FV1ZOgKxh6bEEk7QnYJqp/w7VB5NeDM0j3c0l6GRN0PTv6O5DM3jzdAM7mguQzO4Fhp2uxedK99/8P0A'),
  1489. this.addDataEntry(dt + 'is control', 300, 60, 'Is Control',
  1490. 'zVTLboMwEPwaXyMCbaMeA0lzqlQpl/bowApbMjYymwD5+q7BQEgTKYdW6gFpd/bh8Qwyi5Ki2VleineTgWLRlkWJNQb7qGgSUIqFgcxYtGFhGNDHwrc71WVXDUpuQeMjA2E/cOLqCD2yTlEa3cMVtsrDAgsit1myKK4ELx1aNLnjvajaqlALWSVGozXUFddCIuxLnrq2mpoI40rmmtKUmIElwJ8MFqG5y76DPPUdmALQttTiB177ywW1zFD4AX/hQIDMhd/y4jFe9Xk+bpqkocCrc1up6IdSbBWn/sqrzQ/BIMth71NQB1NvJyC+ULOrUSyMlWdax52AFXKLa2u7iimBhIutOeoMHJvAjelsqGuj3U6npEy5WnuhDwbRFK61kfg5jFH85eLF83DMXp4dx2U4euKozxypzNGmMPtjHjDJguIoT/NVtyzwox9G0sYwaL3gV6YR1xzQN135Np76kJVPf2zl4MTcpps23jeN2LSjay6ZbKOl/860ZjDNu/bbJlI6vYp9++Wj+Q0='),
  1491. this.addDataEntry(dt + 'is stream', 300, 60, 'Is Stream',
  1492. 'zVTLboMwEPwaXyMCbaMeA0lzqlQpl/bowAos2RjZmwD5+q7BQEgTKYdW6gFpd/bhYQbMokQ1O8Or4l1nIFm0ZVFitMY+Uk0CUrIwEBmLNiwMA3pY+HanuuyqQcUNlPjIQNgPnLg8Qo+sUxS67GGLrfRwgYrIbZYsim3BK4eqJne8F7a1Si6ETXSJRlNXXBcCYV/x1LXV1EQYlyIvKU2JGRgC/MlgEJq77DvIU9+BVoCmpRY/8Nq/XFCLDAs/4F84KEDkhd/y4jFu+zwfN03SUODVua1U9EMptootGuCKrTY/9IIsh71PQR50vZ2A+ELMrkZxoY04k4Dc6WeRG1wb01V0BaRbbPSxzMCRCdxYmQ31UpdupxNSpFyuvc4HjaiVa20Efg5jFH+5ePE8HLMXZ8dxGY6WOOozQ6w+mhRmH8wDHhmQHMVpvuqWA370QwvaGAat1/vKM+KaA/qmK9vGUx9y8ulvnRyMmLt008X7ntGf1I6muWRyjZb+O8+awTNv2m97SOl0J/btl1fmNw=='),
  1493. this.addDataEntry(dt + 'is stream', 300, 60, 'Is Stream',
  1494. 'zVTJboMwEP0aXyMCbaUes58qVeKSHl0YYUtekJkEyNd3DCaQTcohhx6QZt4sfn7PgiUr3ewcL8WXzUGxZMOSlbMW+0g3K1CKxZHMWbJmcRzRx+Ltg+q8q0Yld2DwmYG4HzhydYAeWWQorenhClsVYIGayK3nLFlWgpce1U3hec+qttJqJqsUHXBNDbWQCGnJM99VUw9hXMnCUJoRMXAEhIPBITQPyXdQYL4DqwFdSy1h4LO/W1TLHEUYCPeNBMhChC0fAeNVnxfnTaMyFARx7guV3Ah1IxHkBaQhBfVr680ILCf6dTWKhXXyZA1y5UVF7nDhXFexJZBWS2cPJgdPIPJjJh/qxhq/ExqJ+6FK8Y+PZ+/DtlSePJV5fFbbM7zQurIHl8HFU3hCfgeKozxerronbhj9tpI2xlEbpLyyg7gWgKHpypHzqU+Z9PZ6k/wDlVln0cSABwYR0f00GQ2h2X9nRzPYEfx4tT2Ujj+yvn36n/sD'),
  1495. this.addEntry(dt + 'is stream', function()
  1496. {
  1497. var cardCell = new mxCell('act', new mxGeometry(0, 0, 200, 100), s + 'isActStream;align=left;spacingLeft=5;verticalAlign=top;spacingTop=-3;whiteSpace=wrap;');
  1498. cardCell.vertex = true;
  1499. var label1 = new mxCell('{stream}', new mxGeometry(200, 50, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=top;labelPosition=left;verticalLabelPosition=middle;labelBackgroundColor=none;fontSize=10;spacingTop=5;');
  1500. label1.geometry.relative = false;
  1501. label1.setConnectable(false);
  1502. label1.vertex = true;
  1503. cardCell.insert(label1);
  1504. return sb.createVertexTemplateFromCells([cardCell], 250, 100, 'Is Stream');
  1505. }),
  1506. this.addDataEntry(dt + 'local pre precondition post postcondition', 150, 180, 'Local Pre- and Postconditions',
  1507. '5ZVNb4MwDIZ/Te6QtL33a71s0qQeds7Ag2ghQcEtbX/9HEhbEEWqtHWatAPCfp03kCeGMLEsDhsny/zFpqCZWDOxdNZiGxWHJWjNeKRSJlaM84guxp9GqnFTjUrpwOA9Bt4a9lLvoFW0TaR+dZBYkypU1jA+Y1zEERML0ip0UtHcja3Cow62KpelD41Fui1yLGgtq5jCSp18IZ76GJ39hDeVYk4SJ0VqlRmKNXygH1DKRJnsuclW3lLnCmFLsp+kJlAdU0KrBEdCWAU4hMMoiUYKGDZgC0B3pCF1eBs/ItCKclBZHmyToMmqzbOL9cqVgoD2NmYxwDxPWrYjGIk/9jE6uzMppGeoA5AP53Q2BBzHNp1N27RLMbpBcfoDFCcjzWor/DfdGgy8vwvxuUm72yAe1MzTwTYM+EKawTakoN9tvb4KXdpNjeLcOnWyBqXudbrfRTDp3LlmlLEGLvj8I3rwKrtzCfR+ayhdBtj7BO9A7EBLVPv+7N8BNvv7wMQQ2OTXgFF6PfGaWu9A/AI='),
  1508. this.addDataEntry(dt + 'merge node', 200, 80, 'Merge Node',
  1509. '7ZXPboMwDMafJncInbRrS7teNqlSnyAUC6KFGAXTf0+/hKQUunbrpE7aYQck53PsON8PKSxJq/3SiLp8wxwUSxYsSQ0i+ajap6AU45HMWTJnnEf2Y/zlRjbuslEtDGi6p4D7gq1QLXjFCw0dVBCaUtQuNCVWWduwZFZSZQedxzbcgiG5EepVZKBW2EiSqG2OsB5kp0oWuvIjZUiElU2Gk+0W2N+cvpPC6EvACsgc7JZQ8OwvF+1kTqWXJkEqQRYljTXR+HXRNzo7Y4NgznWjku+NgryAdViCynC3OAtDz7qcjUs08oiahE3MhLPIuezHHls3tM1gq3NwU0V2pZzvM7F5Lzo9RYXGpjRqdyjofGpMdxjWoL2ylkc3Ycx7Bm7wEYEGW7OB0R9yBxQDSpDcjltd8zyUrlDajj3MOAqYDmO4pw4kTAEUii7A9VPcxXLyeJYnXF+Ra+wN6DOPkxKY/YRv1/Gv8uQXPPmv8Xz65/mbPB/Nzy7PD5zfPnz/PgA='),
  1510. this.addDataEntry(dt + 'no buffer', 300, 60, 'No Buffer',
  1511. 'zZTBboMwDIafJteKwlZpx9JuPU2a1Mt2TMGFSCFGwW2hTz8HApSulXrYoQck+4/t2P4AEa2KemNlmX9iClpE7yJaWUTqrKJegdYiDFQqorUIw4AfEX7cOZ23p0EpLRh6JCHsEo5SH6BTlgkpNJ1cUaO9nFPBza3nIoqrXJZOLerM9T2rmqrQM1Wt0JBFjopPuSLYljJxYScOYk1qlRl2E+4MLAv+ZrAE9d3uW8m3vgEsgGzDIT7hrRsuOKmUcp/gBw5yUFnuqyy8JqvOz4ZK42rY8Nu5vanoz6ZEuJCFG01TO86lZzA+7Pc8Z69mkxjvXe0Y0gy23gW9w9P7KMQXANoztnO06sxLl27nFUlLS2vbEyyBdx1bPJgU3ACBSzNpf27QuJpu+SqReunZ7JAICxdaK/ru09j+cfbstb9mq86ux3k4TOFan0Cs8GATmLxkD3C1oCWp47TULWo+9QsVVwyDxjO64sy9ZkA+6Ar1cOtD9F+ej34Pb0r2Jvn7nPmLbQbQzhlJc9Gn41z3nD3o/+bO7vjv7cIvf82/'),
  1512. this.createVertexTemplateEntry('shape=rect;html=1;whiteSpace=wrap;align=center;',
  1513. 160, 80, 'object node name:\n type name\n[state, state ...]', 'Object Node', null, null, this.getTagsForStencil(gn, '', dt + 'object node').join(' ')),
  1514. this.addEntry(dt + 'object node', function()
  1515. {
  1516. var cardCell = new mxCell('Action', new mxGeometry(0, 0, 120, 60), s + 'isControl;whiteSpace=wrap;align=center;');
  1517. cardCell.vertex = true;
  1518. var label1 = new mxCell('pin name: type name\n[state, state ...]', new mxGeometry(0, 30, 0, 0), 'resizable=0;html=1;align=right;verticalAlign=middle;labelPosition=left;verticalLabelPosition=middle;labelBackgroundColor=none;spacingRight=5;');
  1519. label1.geometry.relative = false;
  1520. label1.setConnectable(false);
  1521. label1.vertex = true;
  1522. cardCell.insert(label1);
  1523. return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Object Node');
  1524. }),
  1525. this.addDataEntry(dt + 'optional', 300, 60, 'Optional',
  1526. 'zZTBboMwDIafJteKwlZpx9J2PU2a1Mt2TMGCSAlGwS3Qp58DAUrXSj3ssAOS/cd2bH+AiDam2VtZ5h+YghbRTkQbi0i9ZZoNaC3CQKUi2oowDPgR4fuD02V3GpTSQkHPJIR9wlnqE/TKOiGFRS9X1Gov52S4ue1SRHGVy9Kppslc34uqrYxeqGqDBVnkqLjOFcGhlIkLqzmINalVVrCbcGdgWfA3gyVoHnbfSb71PaABsi2H+IS3frigVinlPsEPHOSgstxXWXlNVr2fjZWm1bDht3N/U9GvTYlwJY0bTVM3zrWHpdui1KOazWK8d7NjSDM4eBf0EevdJMRXALoztnO06sJLl27nFUlLa2u7EyyBdx1bPBUpuAECl1akw3mBhavplq8SqdeezRGJ0LjQRtHXkMb2t7MXr8M1B3VxPS7DcQrX+gxihSebwOwle4KrBS1Jneel7lHzqZ+ouGIYtJ7RDWfuNQPyQTeox1ufov/y/+gP8OZk75J/zJm/2HYE7ZyJNBf9d5ybgbMH/dfc2Z3+vX349a/5Bw=='),
  1527. this.addEntry(dt + 'optional', function()
  1528. {
  1529. var cardCell = new mxCell('act', new mxGeometry(0, 0, 200, 100), s + 'isActStream;align=left;spacingLeft=5;verticalAlign=top;spacingTop=-3;fontStyle=1;');
  1530. cardCell.vertex = true;
  1531. var label1 = new mxCell('&lt;&lt;optional&gt;&gt;', new mxGeometry(200, 50, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=top;labelPosition=left;verticalLabelPosition=middle;labelBackgroundColor=none;fontSize=10;spacingTop=5;');
  1532. label1.geometry.relative = false;
  1533. label1.setConnectable(false);
  1534. label1.vertex = true;
  1535. cardCell.insert(label1);
  1536. return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Optional');
  1537. }),
  1538. this.addDataEntry(dt + 'overwrite', 300, 60, 'Overwrite',
  1539. 'zZTBboMwDIafJteKwlZpx9J2PU2a1Mt2TMGCSCFGwS3Qp58DAUrXSj3ssAOS/cd2bH+AiDZFs7eyzD8wBS2inYg2FpF6q2g2oLUIA5WKaCvCMOBHhO8PTpfdaVBKC4aeSQj7hLPUJ+iVdUIKTS9X1Gov51Rwc9uliOIql6VTiyZzfS+qtir0QlUbNGSRo+I6VwSHUiYurOYg1qRWmWE34c7AsuBvBkvQPOy+k3zre8ACyLYc4hPe+uGCWqWU+wQ/cJCDynJfZeU1WfV+NlaaVsOG3879TUW/NiXClSzcaJq6ca495Llqy1sY5WwW5L2bJUOawcG7oI9Y7yYhviLQnbGdo1UX3rp0S69IWlpb251gCbzs2OLJpOAmCFyaSYdzg8bVdNtXidRrD+eIRFi40EbR15DG9rezF6/DNQd1cT0uw3EK1/qMYoUnm8DsLXsCrAUtSZ3npe5h86mfqLhiGLQe0g1o7jUD8kE3rMdbn8L/8g/xD/TmaO+ifwyav9l2JO2cCTUX/XegmwG0J/3X4Nmd/r59+PXP+Qc='),
  1540. this.createVertexTemplateEntry(s + 'paramSet;whiteSpace=wrap;align=center;',
  1541. 160, 100, 'Action', 'Parameter Set', null, null, this.getTagsForStencil(gn, 'paramSet', dt + 'parameter set').join(' ')),
  1542. this.createVertexTemplateEntry(s + 'paramActSet;align=left;spacingLeft=15;verticalAlign=top;spacingTop=-3;fontStyle=1;',
  1543. 250, 120, 'act', 'Parameter Set', null, null, this.getTagsForStencil(gn, 'paramActSet', dt + 'parameter set').join(' ')),
  1544. this.addDataEntry(dt + 'probability', 120, 160, 'Probability',
  1545. 'zVTLboMwEPwaXyNi2uQcoM2llSqlP2DMBqwaG9lOA/n6rsEhb7WRqqoHJO/sjj2eQSZxWrdLw5rqVRcgSfxE4tRo7YZV3aYgJaGRKEicEUoj/Ah9vtGd9t2oYQaU+wmBDoRPJjcwIAvuhFYDbF0nA1y5GsVlUxIntmKNR+u29LontrO1nDRG5ywXUrgOZ7aVcLBqGPeDWxxDjElRKiw5agODQDgbjIP2pv4eCuKXoGtwpsORrShcFSbCHaMKRFntabMAMjsA5cg92IGL4Mh1d+ILd8g88fqO7oqH+86M0HiKy6QfXjXAxVpwNngZkXl24agBK3Ys70tPPHJ475SEtfNbokO4l1wEONfO6RobkuUg37QV/TEX8y9n7VNewvhHafRGFamWGvPIlFYoJllr5VZi53X1N7IYo1BlEtgZfRyz41op4C7cYvzbvsuUXs+0PcuzG+qHX0jy4X8m6XRzf4xHpHszfPfUPw9wrO9IEMvDK9j3Th7JLw=='),
  1546. this.addDataEntry(dt + 'probability', 120, 160, 'Probability',
  1547. 'zVRdb4MgFP01PK6x0I/nqVtfuqRJ9wdQqZIh1yDttL9+gFRb22Zrsix7MOGec0+4nCMgEpXNStGqeIOMCUReEIkUgO5WZRMxIRAOeIZIjDAOzIfw6x126tigoopJ/RMB7gQHKvasQ2iqO6zWrfBYoUszWTxFJKwLWlm0bHI79KRu61JMjGijIDE8FTyXhhdsp217RVMu87Wr4rlBDkxpnlLx7Bs1VEPfuy3iJ2KQHUi99SPYjf2gRs2au4d1kD/pikHJtGpNyyfPdOE7vCFBwXhenGQLD9K6A/JeO3hnFt6+21aSKyvRMrTzGWNowgXXdhTHLBAm08CaYZu3FUv5zniiOUjbsoyvElCs5keauNIKzxIZOT72NwGtoTSEoAkTG6i52+aqfz2iL3UhTT9yBXuZRSBAGV6CZKeY+NGlFAxBhl4d43mfXQpSslT7U/S/5neZ4tuZNqM8266e/UKSs/+ZZHdTHozxTPRoht1l/OsA+/qBBE05PJmOu3hRvwA='),
  1548. this.addEntry(dt + 'rate', function()
  1549. {
  1550. var cell1 = new mxCell('', new mxGeometry(0, 0, 120, 60), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  1551. cell1.vertex = true;
  1552. var cell2 = new mxCell('', new mxGeometry(0, 76, 200, 12), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1553. cell2.vertex = true;
  1554. cell1.insert(cell2);
  1555. var cell3 = new mxCell('&lt;&lt;continuous&gt;&gt;', new mxGeometry(0, 0, 200, 18), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1556. cell3.vertex = true;
  1557. cell1.insert(cell3);
  1558. var cell4 = new mxCell('Object Node', new mxGeometry(0, 0, 200, 18), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1559. cell4.vertex = true;
  1560. cell1.insert(cell4);
  1561. var cell5 = new mxCell('', new mxGeometry(0, 76, 200, 12), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1562. cell5.vertex = true;
  1563. cell1.insert(cell5);
  1564. return sb.createVertexTemplateFromCells([cell1], 120, 60, 'Rate');
  1565. }),
  1566. this.addEntry(dt + 'rate', function()
  1567. {
  1568. var cell1 = new mxCell('', new mxGeometry(0, 0, 120, 60), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  1569. cell1.vertex = true;
  1570. var cell2 = new mxCell('', new mxGeometry(0, 76, 200, 12), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1571. cell2.vertex = true;
  1572. cell1.insert(cell2);
  1573. var cell3 = new mxCell('&lt;&lt;discrete&gt;&gt;', new mxGeometry(0, 0, 200, 18), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1574. cell3.vertex = true;
  1575. cell1.insert(cell3);
  1576. var cell4 = new mxCell('Object Node', new mxGeometry(0, 0, 200, 18), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1577. cell4.vertex = true;
  1578. cell1.insert(cell4);
  1579. var cell5 = new mxCell('', new mxGeometry(0, 76, 200, 12), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1580. cell5.vertex = true;
  1581. cell1.insert(cell5);
  1582. return sb.createVertexTemplateFromCells([cell1], 120, 60, 'Rate');
  1583. }),
  1584. this.addEntry(dt + 'rate', function()
  1585. {
  1586. var cell1 = new mxCell('', new mxGeometry(0, 0, 140, 120), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  1587. cell1.vertex = true;
  1588. var cell2 = new mxCell('', new mxGeometry(0, 76, 140, 25), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1589. cell2.vertex = true;
  1590. cell1.insert(cell2);
  1591. var cell3 = new mxCell('{ rate = constant }', new mxGeometry(0, 0, 140, 14), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1592. cell3.vertex = true;
  1593. cell1.insert(cell3);
  1594. var cell4 = new mxCell('{ rate = distribution }', new mxGeometry(0, 0, 140, 14), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1595. cell4.vertex = true;
  1596. cell1.insert(cell4);
  1597. var cell5 = new mxCell('&lt;&lt;continuous&gt;&gt;', new mxGeometry(0, 0, 140, 14), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1598. cell5.vertex = true;
  1599. cell1.insert(cell5);
  1600. var cell6 = new mxCell('&lt;&lt;discrete&gt;&gt;', new mxGeometry(0, 0, 140, 14), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1601. cell6.vertex = true;
  1602. cell1.insert(cell6);
  1603. var cell7 = new mxCell('Object Node', new mxGeometry(0, 0, 140, 14), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1604. cell7.vertex = true;
  1605. cell1.insert(cell7);
  1606. var cell8 = new mxCell('', new mxGeometry(0, 76, 140, 25), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1607. cell8.vertex = true;
  1608. cell1.insert(cell8);
  1609. return sb.createVertexTemplateFromCells([cell1], 140, 120, 'Rate');
  1610. }),
  1611. this.addEntry(dt + 'rate', function()
  1612. {
  1613. var cell1 = new mxCell('', new mxGeometry(0, 0, 140, 120), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  1614. cell1.vertex = true;
  1615. var cell2 = new mxCell('Object Node', new mxGeometry(0, 0, 140, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1616. cell2.vertex = true;
  1617. cell1.insert(cell2);
  1618. var divider = new mxCell('', new mxGeometry(0, 0, 40, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  1619. divider.vertex = true;
  1620. cell1.insert(divider);
  1621. var cell3 = new mxCell('&lt;&lt;rate&gt;&gt;', new mxGeometry(0, 0, 140, 14), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1622. cell3.vertex = true;
  1623. cell1.insert(cell3);
  1624. var cell4 = new mxCell('rate = constant', new mxGeometry(0, 0, 140, 14), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1625. cell4.vertex = true;
  1626. cell1.insert(cell4);
  1627. var cell5 = new mxCell('rate = distribution', new mxGeometry(0, 0, 140, 14), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1628. cell5.vertex = true;
  1629. cell1.insert(cell5);
  1630. var cell6 = new mxCell('', new mxGeometry(0, 76, 140, 10), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1631. cell6.vertex = true;
  1632. cell1.insert(cell6);
  1633. return sb.createVertexTemplateFromCells([cell1], 140, 120, 'Rate');
  1634. }),
  1635. this.addEntry(dt + 'rate', function()
  1636. {
  1637. var cardCell = new mxCell('act', new mxGeometry(0, 0, 200, 100), s + 'isActStream;align=left;spacingLeft=5;verticalAlign=top;spacingTop=-3;fontStyle=1;');
  1638. cardCell.vertex = true;
  1639. var label1 = new mxCell(
  1640. '{ rate = constant }\n{ rate = distributuion}\n&lt;&lt;continuous&gt;&gt;\n&lt;&lt;discrete&gt;&gt;',
  1641. new mxGeometry(200, 50, 0, 0), 'resizable=0;html=1;align=left;verticalAlign=top;labelPosition=left;verticalLabelPosition=middle;labelBackgroundColor=none;fontSize=10;spacingTop=5;');
  1642. label1.geometry.relative = false;
  1643. label1.setConnectable(false);
  1644. label1.vertex = true;
  1645. cardCell.insert(label1);
  1646. return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Rate');
  1647. }),
  1648. this.addDataEntry(dt + 'rate', 300, 60, 'Rate',
  1649. '7ZVNj5swEIZ/ja8RgTarHgO73dNKK+XSHh0YgbXGg+xhA/vrOwZDlnxUqOqhhx5QPK/H43dGD0EkWd09W9lUL1iAFsmTSDKLSOOq7jLQWsSRKkTyKOI44kfE3+/sbofdqJEWDK05EI8H3qVuYVT2OSk0o+yo10GuqGZzj1uRpK6SjVfrrvS+N653td4ol6Ehi5yVnipFcGhk7tNOnMSa1Ko0HObsDCwL4WawBN1d94MUrD8D1kC255Rw4NvYXHRSBVXhQGg4qkCVVaiyC5p0Y1zOlc6j4UWYzu1JJVeTEg/cQ2QlAf8MUpSjcSTZPAsPLOxEnGwj3+x1bqEcWXVsqfXzXmbHO1n7oWm6ivgKUqbF1s16uciaojXF2ENuwZv6XakLFKAo4RBC0Ec8PZ2F9BMnwx6vK7Tqg11LjwaPx9Le2mEHG2AkUoutKcDP2fsFU0z7Bo2v6RlRudT7gBChNwedoh/TGV7/9OvNV9+aPIJOZf5WDpUz1GjP1QYHB/Xh7W/juUHf1QJDh63NYfGarCDTgpak3pelbnEXjr6iGnDpA2UXpLLXEigkXcA637qK3y//+f1Dfif8lmzeZPcOqfy/2M+o+mAtq3zfP0dqN5EaUP3b5HJ4/v6N6Z8/j78A'),
  1650. this.addEntry(dt + 'control flow', function()
  1651. {
  1652. var cardCell = new mxCell('', new mxGeometry(0, 0, 60, 40), 'shape=rect;html=1;rounded=1;whiteSpace=wrap;');
  1653. cardCell.vertex = true;
  1654. var cardCell2 = new mxCell('', new mxGeometry(100, 0, 60, 40), 'shape=rect;html=1;rounded=1;whiteSpace=wrap;');
  1655. cardCell2.vertex = true;
  1656. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;html=1;elbow=horizontal;endArrow=open;labelBackgroundColor=none;endSize=12;');
  1657. edge1.geometry.relative = true;
  1658. edge1.edge = true;
  1659. cardCell.insertEdge(edge1, true);
  1660. cardCell2.insertEdge(edge1, false);
  1661. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 160, 60, 'Control Flow');
  1662. }),
  1663. this.addDataEntry(dt + 'control flow', 160, 60, 'Control Flow',
  1664. 'zVNNb4MwDP01ufNR7d7Srqed+AUpsUi0ECMTCu2vnyEZDGnVusu0QyT72c/4PRKRF814JtnqN1RgRX4SeUGIPkTNWIC1IkuMEvlRZFnCR2SvD6rpXE1aSeD8M4QsEK7S9hCQAHT+ZiPQadlOIUHFIw/aN7zlMeWQsHcKVMwGbTyUraym5oEVMRanA3kYH244Q3G9M2ADnm7cMhjldeh4CSISDabWkbWLmOxCXi/MVS4HUfH36vP/q/6TkESZf+DG7mc3QNVQxhTsBYfTCnz1Zq5xrJHMHZ2XdgKd2hPNOLbgGLHyAvYgq/d6NrNAi8RVh26ap2SnF3+ZXJr79N00W6yd1tkY22FPFWyutpdUg9/87yfsJ7DSm+t2+i/M5XR9xHNt88Y/AA=='),
  1665. this.addDataEntry(dt + 'object flow', 260, 60, 'Object Flow',
  1666. '3ZVNb8IwDIZ/Te4lZdxHYZw49bBzaKwmIo0rN1Dg189tM1g10JDQkLZDJft1X8d5+hGRZtVhRao2a9TgRLoUaUaIYYiqQwbOCZlYLdKFkDLhS8i3G9VJX01qReDDPQY5GPbK7WBQBqEJRxeFxqi6CwkKbjk3oeIpFxMOCXdeg45ZEwi38G51MKxIVlpjA+S1Kjp7y3tkLa4HFOBwc+ZeigOvACsIdORb2tibq7NhW4kBW5romkZNNUNenp0XABxEBtd5pI/w+H0Cn4YkbvUJRKZ/6Q2JBvlEPi8/8wFdQh5TcBtslxfhK62+xrFBsif0QblO9PqVqNexBs+KUxtwc1Vsyx5vhg6Jqx49XIXMHXJ76hafyDPfbqYR3QZ3VMDorxAUlRBGH8Ydz4DAqWD34+6PEJ79Q8Lpd8LTpxHm9HLC9LXRAfQB'),
  1667. this.addEntry(dt + 'object flow', function()
  1668. {
  1669. var cardCell = new mxCell('', new mxGeometry(0, 0, 60, 40), s + 'objFlowR;strokeWidth=2;whiteSpace=wrap;');
  1670. cardCell.vertex = true;
  1671. var cardCell2 = new mxCell('', new mxGeometry(140, 0, 60, 40), s + 'objFlowL;strokeWidth=2;whiteSpace=wrap;');
  1672. cardCell2.vertex = true;
  1673. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;html=1;elbow=horizontal;endArrow=open;labelBackgroundColor=none;strokeWidth=2;endSize=12;');
  1674. edge1.geometry.relative = true;
  1675. edge1.edge = true;
  1676. cardCell.insertEdge(edge1, true);
  1677. cardCell2.insertEdge(edge1, false);
  1678. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 200, 60, 'Object Flow');
  1679. }),
  1680. this.createVertexTemplateEntry(s + 'objFlowR;whiteSpace=wrap;',
  1681. 120, 60, '', 'Object Flow', null, null, this.getTagsForStencil(gn, 'objFlowR', dt + 'object flow').join(' ')),
  1682. this.createVertexTemplateEntry(s + 'objFlowL;whiteSpace=wrap;',
  1683. 120, 60, '', 'Object Flow', null, null, this.getTagsForStencil(gn, 'objFlowL', dt + 'object flow').join(' ')),
  1684. this.addDataEntry(dt + 'probability', 350, 80, 'Probability',
  1685. '7ZXbboMwDIafhnsKZb3uabvZpEp9ggAeiRZiFExPTz+H0FK2Vuu0TdvFLpCc3wdsf0EE8bzcPVhRySfMQQfxMojnFpG8Ve7moHUQhSoP4kUQRSE/QXR/xTtqvWElLBi6JSHyCRuhG/CKF2ra606opaicaSWWaVMH8UxSyY0uRmxupSJYVyJzEVseg7UNWFKZ0I8iBb3CWpFCw+4UibA8C5hqVZjSd0roUrtu2A+7qxO1UjfOA2AJZPccckxIEp+y9+exX0C4VTnJoSRBFZKGmqj9uTgV7rfHRrfAy8uMP14m5AWsuyPoFLfLXjjfa+tjW6JVBzQk2DETbl+OhG97uMfzBYPJp9a2BQwaV9piY3JwfYZ80o7MTGQvRavPUaPtY2sSlo75WIE5amt1cH2PohMpN86AU42NzWBwt25AZ0ELUpthqUskutQVKq7YI58kwxRutgDqot7wO732JqTj90gnMzeUxVSkSity/bceH7SuIFPPTKW99OyaLL58CY6cb0TeIfsMcs7+q3DjJBx8z3fhT7FO/ln/FuvvZsvH/h/qw89/sa8='),
  1686. this.addDataEntry(dt + 'probability', 250, 60, 'Probability',
  1687. '7VRNb4MwDP01uVYU1vVc6NrTpGlctmMAF7IFjEJaYL9+Dkk/aJlU7bTDkBD284t5PIewICq7reJ18YwZSBY8sSBSiNpGZReBlMz3RMaCNfN9j27mb36ozoeqV3MFlb5ngW8XHLjcg0VWqRZYWbjRvXRwoUsSt56zIGwKXhu07HKje9b0TSlnmHxsJLavRGgLoSGueWpYLXEI41LkFaUpCQNFgHsxKA3dj+IHyCnfApagVU+UVmS6cIxH+4FeASIv3LIjxhub56elZysocG5MOxPcOMOWoZGnMOGJkEIbJUPFkuIaUrETKbf+eWy5vnERshxil1ZY0SO8MPbGI+MONZQrV0hQayypAFW2UgpbwrCGyiKx+DJ9575JO6HfXFsTv1PszRaU7YSUEUpUg6JgN1yES56ADHn6mSvcV9mR4lTaLzHyR7NqcK9SGG2lO8Y3nrcCSZYdxo2nJucavaCg/qcu/uJq2JqrHLRjXc37JOKuLfDwB7eAxvp//pPz76f//V9vB0rP57ClXx7T3w=='),
  1688. this.addDataEntry(dt + 'probability', 250, 60, 'Probability',
  1689. '5VRNb8IwDP01vU6l3cYZysZpH1Iv2zFtTZstjavU0LJfP6cJsA6QEKdJQ0Kynz/6/GwliJO6XxrRVE9YgArihyBODCI5q+4TUCqIQlkE8SKIopD/QfR4JjoZomEjDGi6pCByBRuh1uCQl+wDcmLsmfm4aEtb5aNtJRprGpsTz7tKEqSNyC3W8RSMCSVLzW7OFMAwUFHNcy0mbPqvgSHozzIeIE93CVgDmS2ndLKgymfcu6nCCmRZ+bIdJlrnl/vSw/xseAlOyxEfyRFM55aewUxkUkmyTIaIS0obyOVK5oIkahuaLo40g6KE1LsaNYwlOZLLqsMN1cwHMiTCmgOgi5kx2DGGDWiHpPLL9p1E1u0lvfm21n5nO7yJ2VtJpRJUaAZG8Wr4Ma5EBmou8s/S4FoXuxTPcsDAShPud2eHGW2uxbXJYXRNFyxzvH0DigXcjBuf2qNv9IpS06FLdPdr9SRMCeSzfm1/T+Kig7j9gwdB2Fx/DdP/cw3b0+/C1cfB7uFhduk/3+1v'),
  1690. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;verticalAlign=top;labelBackgroundColor=none;', 160, 0,
  1691. '{ rate = constant }\n{rate = distribution}\n&lt;&lt;continuous&gt;&gt;\n&lt;&lt;discrete&gt;&gt;',
  1692. 'Rate', null, null, this.getTagsForStencil(gn, '', dt + 'rate').join(' ')),
  1693. this.addEntry(dt + 'in block definition diagram activity association', function()
  1694. {
  1695. var bg = new mxCell('bdd', new mxGeometry(0, 0, 330, 250), s + 'package;labelX=45;align=left;spacingLeft=5;verticalAlign=top;spacingTop=-3;fontStyle=1;strokeWidth=1;recursiveResize=0;');
  1696. bg.vertex = true;
  1697. var cardCell2 = new mxCell('&lt;&lt;activity&gt;&gt;\nactivity name', new mxGeometry(30, 40, 120, 60), inh + 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  1698. cardCell2.vertex = true;
  1699. bg.insert(cardCell2);
  1700. var cardCell3 = new mxCell('&lt;&lt;activity&gt;&gt;\nactivity name', new mxGeometry(30, 160, 120, 60), inh + 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  1701. cardCell3.vertex = true;
  1702. bg.insert(cardCell3);
  1703. var assoc1 = new mxCell('action\nname', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=none;html=1;edgeStyle=none;endFill=0;startArrow=diamondThin;startFill=1;startSize=12;align=left;verticalAlign=bottom;labelBackgroundColor=none;');
  1704. assoc1.geometry.relative = true;
  1705. assoc1.geometry.x=1;
  1706. assoc1.edge = true;
  1707. cardCell2.insertEdge(assoc1, true);
  1708. cardCell3.insertEdge(assoc1, false);
  1709. bg.insert(assoc1);
  1710. var cardCell4 = new mxCell('&lt;&lt;activity&gt;&gt;\nactivity name', new mxGeometry(180, 40, 120, 60), inh + 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  1711. cardCell4.vertex = true;
  1712. bg.insert(cardCell4);
  1713. var cardCell5 = new mxCell('&lt;&lt;block&gt;&gt;\nblock name', new mxGeometry(180, 160, 120, 60), inh + 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  1714. cardCell5.vertex = true;
  1715. bg.insert(cardCell5);
  1716. var assoc2 = new mxCell('object\nnode\nname', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=none;html=1;edgeStyle=none;endFill=0;startFill=1;startSize=12;align=left;verticalAlign=bottom;labelBackgroundColor=none;');
  1717. assoc2.geometry.relative = true;
  1718. assoc2.geometry.x=1;
  1719. assoc2.edge = true;
  1720. cardCell4.insertEdge(assoc2, true);
  1721. cardCell5.insertEdge(assoc2, false);
  1722. bg.insert(assoc2);
  1723. return sb.createVertexTemplateFromCells([bg], 400, 250, 'In Block Definition Diagrams, Activity, Association');
  1724. }),
  1725. this.createVertexTemplateEntry(s + 'actPart;strokeWidth=3;verticalAlign=top;rotation=-90;whiteSpace=wrap;',
  1726. 100, 100, 'Partition Name', 'Activity Partition', null, null, this.getTagsForStencil(gn, 'actPart', dt + 'activity partition').join(' ')),
  1727. this.createVertexTemplateEntry('shape=rect;html=1;rounded=1;strokeWidth=2;verticalAlign=top;whiteSpace=wrap;align=center;',
  1728. 140, 50, '(Partition Name)\nAction', 'Activity Partition', null, null, this.getTagsForStencil(gn, '', dt + 'activity partition').join(' ')),
  1729. this.addEntry(dt + 'interruptible activity region', function()
  1730. {
  1731. var cardCell = new mxCell('region name', new mxGeometry(0, 0, 160, 60), 'shape=rect;html=1;rounded=1;verticalAlign=top;dashed=1;strokeWidth=2;whiteSpace=wrap;align=center;');
  1732. cardCell.vertex = true;
  1733. var assoc1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'shape=mxgraph.lean_mapping.electronic_info_flow_edge;html=1;edgeStyle=none;align=center;verticalAlign=bottom;exitX=1;exitY=0.5;fillColor=#ffffff;');
  1734. assoc1.geometry.setTerminalPoint(new mxPoint(250, 30), false);
  1735. assoc1.geometry.relative = true;
  1736. assoc1.geometry.x = 1;
  1737. assoc1.edge = true;
  1738. cardCell.insertEdge(assoc1, true);
  1739. return sb.createVertexTemplateFromCells([cardCell, assoc1], 250, 60, 'Interruptible Activity Region');
  1740. }),
  1741. this.createVertexTemplateEntry('shape=rect;html=1;rounded=1;dashed=1;strokeWidth=2;verticalAlign=top;whiteSpace=wrap;align=center;',
  1742. 160, 60, '&lt;&lt;structured&gt;&gt; node name', 'Structured Activity Node', null, null, this.getTagsForStencil(gn, '', dt + 'structured activity node').join(' '))
  1743. ];
  1744. this.addPalette('sysmlActivities', 'SysML / Activities', expand || false, mxUtils.bind(this, function(content)
  1745. {
  1746. for (var i = 0; i < fns.length; i++)
  1747. {
  1748. content.appendChild(fns[i](content));
  1749. }
  1750. }));
  1751. };
  1752. Sidebar.prototype.addSysMLInteractionsPalette = function(expand)
  1753. {
  1754. var s = 'html=1;shape=mxgraph.sysml.';
  1755. var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;';
  1756. var gn = '';
  1757. var dt = 'sysml interaction ';
  1758. var sb = this;
  1759. var fns = [
  1760. this.createVertexTemplateEntry(s + 'package;overflow=fill;labelX=95;align=left;spacingLeft=5;verticalAlign=top;spacingTop=-3;', 160, 80,
  1761. '<p style="margin:0px;margin-top:4px;margin-left:5px;text-align:left;"><b>sd</b> Interaction1</p>',
  1762. 'Sequence Diagram', null, null, this.getTagsForStencil(gn, 'package', dt + 'sequence diagram').join(' ')),
  1763. this.addEntry(dt + 'lifeline', function()
  1764. {
  1765. var cardCell = new mxCell('b1:Block1', new mxGeometry(0, 0, 160, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  1766. cardCell.vertex = true;
  1767. var assoc1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;html=1;dashed=1;endArrow=none;align=center;verticalAlign=bottom;exitX=0.5;exitY=1;');
  1768. assoc1.geometry.setTerminalPoint(new mxPoint(80, 150), false);
  1769. assoc1.geometry.relative = true;
  1770. assoc1.geometry.x = 1;
  1771. assoc1.edge = true;
  1772. cardCell.insertEdge(assoc1, true);
  1773. return sb.createVertexTemplateFromCells([cardCell, assoc1], 160, 150, 'Lifeline');
  1774. }),
  1775. this.addDataEntry(dt + 'execution specification', 160, 220, 'Execution Specification',
  1776. 'xZTbboMwDIafJveU7NDbQrdeTZrUJ8iIR6IFgkJa6NvPJS40W6sxddKQkOLTj/1hhfG86jdONOrFSjCMPzGeO2t9OFV9DsawNNGS8TVL0wRflj5fiS6GaNIIB7WfU5CGgr0wOwietwXjq8zY4oPEWn8wFGuVaI5HBwWqZ8pX2PAaC7JOaQ/bRhTHcIfjoE8YXdZoFtgLOHTQt8B56K/2O7io2Q3YCrw7YEqnpVeU8RBmShToUlHZySfaYJdj6TQ9HgjAZRj8G4xfEHjXxuTWWDckchieG4emgkea7UDJCdlnTNILSJZ/gOTuZyQgS9iSWdsaYixStAokGVDLlXO2mzKD2lEiYtPanSsgWlEvXAk++lEzCDowwut9rH4LkPv/BzJ/+njhZrMgoVerUX9UWcZbOK7cSSH8ICr6AnTs6RJjNKcLL6Sf34ef'),
  1777. this.addDataEntry(dt + 'execution specification', 160, 220, 'Execution Specification',
  1778. 'zZTNbsIwDMefJvfSbBNXKBsnpEl9giyxmmhpU6WBlrefIaaQUaRKm7QdKsVf/9q/WGG8qIetF63eOQWW8VfGC+9ciKd6KMBalmdGMb5heZ7hx/K3B9HFOZq1wkMT5hTkseAg7B6i52PB+GptnfwksS4cLcU6LdrT0YNE9bUONTa8wYJ1r02AshXyFO5xHPQJa6oGTYm9gEcH/Qt8gOFhv2cXNbsFV0PwR0zpjQqaMl7iTJkGU2kqu/hEF+1qLL1OjwcCMA2D38GAAWTZgvxPJKiALjY7UnJG9i2ofALU8hdAPd2BugMEqoKSzMY1kEJSotOgyIBGrbx3/TUzqp0kEjid23sJyeIG4SsIyfXNQOjBimAOqfpPgDz/PZD506cbN5sFCb07g/qjyjJdw3EtLwrxgqjoG9CxpynGaF6fwZh++0p+AQ=='),
  1779. this.addEntry(dt + 'use', function()
  1780. {
  1781. var cardCell = new mxCell('Interaction3', new mxGeometry(0, 0, 160, 60), s + 'package;labelX=40;whiteSpace=wrap;align=center;');
  1782. cardCell.vertex = true;
  1783. var label1 = new mxCell('ref', new mxGeometry(0, 0, 0, 0), 'html=1;align=left;verticalAlign=top;labelPosition=left;verticalLabelPosition=top;labelBackgroundColor=none;spacingLeft=5;spacingTop=-2;fontStyle=1;');
  1784. label1.geometry.relative = false;
  1785. label1.setConnectable(false);
  1786. label1.vertex = true;
  1787. cardCell.insert(label1);
  1788. return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Interaction Use');
  1789. }),
  1790. this.addEntry(dt + 'combined fragment', function()
  1791. {
  1792. var bg = new mxCell('<p style="margin:0px;margin-top:4px;margin-left:10px;text-align:left;"><b>sd</b> Interaction1</p>', new mxGeometry(0, 0, 350, 320), s + 'package;labelX=100;html=1;overflow=fill;strokeWidth=1;recursiveResize=0;');
  1793. bg.vertex = true;
  1794. var cardCell2 = new mxCell('b1: Block1', new mxGeometry(30, 40, 80, 30), inh + 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  1795. cardCell2.vertex = true;
  1796. bg.insert(cardCell2);
  1797. var cardCell3 = new mxCell('b2: Block2', new mxGeometry(140, 40, 80, 30), inh + 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  1798. cardCell3.vertex = true;
  1799. bg.insert(cardCell3);
  1800. var cardCell4 = new mxCell('b3: Block3', new mxGeometry(250, 40, 80, 30), inh + 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  1801. cardCell4.vertex = true;
  1802. bg.insert(cardCell4);
  1803. var cardCell5 = new mxCell('alt', new mxGeometry(20, 90, 200, 160), inh + s + 'package;labelX=35;fontStyle=1;align=left;verticalAlign=top;spacingLeft=5;spacingTop=-3;');
  1804. cardCell5.vertex = true;
  1805. bg.insert(cardCell5);
  1806. var assoc1 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=none;html=1;edgeStyle=none;dashed=1;');
  1807. assoc1.geometry.setTerminalPoint(new mxPoint(70, 300), false);
  1808. assoc1.geometry.relative = true;
  1809. assoc1.edge = true;
  1810. cardCell2.insertEdge(assoc1, true);
  1811. bg.insert(assoc1);
  1812. var assoc2 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=none;html=1;edgeStyle=none;dashed=1;');
  1813. assoc2.geometry.setTerminalPoint(new mxPoint(180, 300), false);
  1814. assoc2.geometry.relative = true;
  1815. assoc2.edge = true;
  1816. bg.insert(assoc2);
  1817. cardCell3.insertEdge(assoc2, true);
  1818. var assoc3 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=none;html=1;edgeStyle=none;dashed=1;');
  1819. assoc3.geometry.setTerminalPoint(new mxPoint(290, 300), false);
  1820. assoc3.geometry.relative = true;
  1821. assoc3.edge = true;
  1822. bg.insert(assoc3);
  1823. cardCell4.insertEdge(assoc3, true);
  1824. var assoc4 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=none;html=1;edgeStyle=none;dashed=1;');
  1825. assoc4.geometry.setTerminalPoint(new mxPoint(20, 170), false);
  1826. assoc4.geometry.setTerminalPoint(new mxPoint(220, 170), true);
  1827. assoc4.geometry.relative = true;
  1828. assoc4.edge = true;
  1829. bg.insert(assoc4);
  1830. var assoc5 = new mxCell('[if x < 10]', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=open;html=1;edgeStyle=none;verticalAlign=bottom;labelBackgroundColor=none;endSize=12;');
  1831. assoc5.geometry.setTerminalPoint(new mxPoint(70, 150), true);
  1832. assoc5.geometry.setTerminalPoint(new mxPoint(180, 150), false);
  1833. assoc5.geometry.relative = true;
  1834. assoc5.geometry.x = -1;
  1835. assoc5.edge = true;
  1836. bg.insert(assoc5);
  1837. var label1 = new mxCell('msg1', new mxGeometry(1, 0, 0, 0), 'align=right;html=1;verticalAlign=bottom;labelBackgroundColor=none;');
  1838. label1.geometry.relative = true;
  1839. label1.setConnectable(false);
  1840. label1.vertex = true;
  1841. assoc5.insert(label1);
  1842. var assoc6 = new mxCell('[else]', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=open;html=1;edgeStyle=none;verticalAlign=bottom;labelBackgroundColor=none;align=right;endSize=12;');
  1843. assoc6.geometry.setTerminalPoint(new mxPoint(70, 230), true);
  1844. assoc6.geometry.setTerminalPoint(new mxPoint(180, 230), false);
  1845. assoc6.geometry.relative = true;
  1846. assoc6.geometry.x = -1;
  1847. assoc6.edge = true;
  1848. bg.insert(assoc6);
  1849. var label2 = new mxCell('msg2', new mxGeometry(1, 0, 0, 0), 'align=right;html=1;verticalAlign=bottom;labelBackgroundColor=none;');
  1850. label2.geometry.relative = true;
  1851. label2.setConnectable(false);
  1852. label2.vertex = true;
  1853. assoc6.insert(label2);
  1854. bg.insert(assoc6);
  1855. var assoc7 = new mxCell('msg3', new mxGeometry(0, 0, 0, 0), inh + 'endArrow=open;html=1;edgeStyle=none;verticalAlign=bottom;labelBackgroundColor=none;endSize=12;');
  1856. assoc7.geometry.setTerminalPoint(new mxPoint(70, 290), true);
  1857. assoc7.geometry.setTerminalPoint(new mxPoint(290, 290), false);
  1858. assoc7.geometry.relative = true;
  1859. assoc7.edge = true;
  1860. bg.insert(assoc7);
  1861. return sb.createVertexTemplateFromCells([bg], 350, 320, 'Combined Fragment');
  1862. }),
  1863. this.addDataEntry(dt + 'state invariant configuration', 120, 220, 'State Invariant / Continuations',
  1864. 'xVTLboMwEPwaXyMCpfeEtDlFqpRTjxbeYksGI9sJ8Pdd4gVCHhJSpfSAvM9hZ7wyS7Ky3Vtey4MRoFnywZLMGuODVbYZaM3iSAmW7FgcR/ix+PNJdn3JRjW3UPklDXFoOHN9ghBhyeY7BJ3vNAWd5HVvWsgRdit9iZPu1mg2Unk41jzv0w3ywBjXqqjQzXEIsBign4D10D4d9BKiKfdgSvC2w5JGCS+pgshEElQhqS2lGHfBL8bWiTYaxPyxCsmdCnV/IMP0Toor7oMqZVv0F7hynSv1Kjc9o+0PHkdqe4lQHWUjEuQVwr3dr8+tXiAKGHSoTAXz9RHcSRDkQCU21ppmqgxoPcRMDWdONofZBntuC/Cz61ygmQXNvTrP0f8iSPr/gixnP1+xxVoQ0JdRiD+ivNM60RoOD8+IEC6Imm4EHWd6pDG603sYyq+fy18='),
  1865. this.addDataEntry(dt + 'coregion', 250, 220, 'Coregion',
  1866. '1ZbJbsIwEEC/xleUtdAjkJZTpUocenaTaWLVyUS22fr1dbATSAIqKkvpAcmzZuaNbUz8ab6eCVpmL5gAJ/4T8acCUZlVvp4C58RzWEL8iHieo3/Eez5idbdWp6QCCnVKgGcClpQvwGgkCScLEkbEH0+MUaoNr40ZLaulgFinn2Qq1xVHrl6uMqZgXtK4Mq90P1pHOUsLLca6GBBaYT8GQsH6aMFbla12BpiDEhvtsmKJyqyHY5pyMmBpZsNCq6PSyGkTumtfLyyBwzT8Ho0egb2Waxj5Oq3mN5AbmfNBjAJShkXloAR+wpst3D8TgA0IbJ+bDos9Pt4BPMML4Al+xlMz0YGslNDeIx+M8yly1FshMmysdBEuozYXd9TjEvSxBOdTCf8TleBWVB5+pgJJCnMrFlh0sCRUZpBYAYpkLASudp4CF0WytTsNqSphi5PEhYihddMpKlJot3kCTQGcKrZsZz8Hz/De8AR9POHf4RndG54rsLChr8h0xubAhu3rvbnL6wxmQDaoA7Sp4iTGjz3GuX9ZylIXq2odllD9J1a3GYspH9u3wTsqhXntPGdf1Zdc74wtfP0ZdYfkXm9IrtOf0oXPwo2ndLOT1JtS94X46ylpcfdCN+77D/hv'),
  1867. this.addDataEntry(dt + 'creation destruction event', 250, 220, 'Creation/Destruction Event',
  1868. '1ZfdcqMgFICfxnsFTdvLJO32ZjvTmTwB0bPKFMUBUpM+/aKgCZJO7ean2cxkhvMr5zsIEuBluX0WpC5eeAYswE8BXgrOlRmV2yUwFqCQZgF+DBAK9T9Avz6xRp01rImASk0JQCbgnbANGM06CvB8wXj6ZpNJtWPWJgtSt0MBqc6+KFSpJ/yoAxZNQRWsapK25kaXo3WE0bzSYqrnAkIr7LNAKNh+Ot9OZSf7DLwEJXbapaGZKqxHaGoKC6B5YcOw1RFp5HwI3VevBxbAcRjYh4F6GOiWYPQBiS16Z+TYitdgFXusvgL0hzK25IyLzoqh+7ngzsHkwWVy5zNBR5AMnE5hkkxnogNpLWGERSrB38BKZwYT3ztcEuxxiX0s8elQZv8RlKiXL07l7msqkOWwsmLFqxZLRmQBmS0fqmwuBG/25gM2gm+qrHMNB1JtQoeT5BuRgnMQKCJyUM5ynkBTACOKvrvZT8Fzf2t4Eh/P7OfwPNwanguwsKGvnOqMwws7OvGGvbzPYBpkg0ZAh1lMYhyFHuRUAFEwBfUBXV6DPvcX7TZFU8Lm9jtgzZXipXFd0Y82NkLnX6T4Wo0Zdya6YGei7y1/YGvePO0VR7rTuWix79J5+zLz+xL/WF+Sy/XFv0x8812RO/nye+vAbwtzd65TOnE97OFooxp/X/4zdi3ur4fG/fD2+Bc='),
  1869. this.addDataEntry(dt + 'duration constraint', 250, 250, 'Duration Constraint',
  1870. 'zZbNjpswEMefxpdKQXwsjXoMod1DVW2ltA/g4hFYMhjZzibp03ccuwnBREFbVO0himfsGWZ+/5GBZNv2+Kxo33yTDATJPpNsq6Q0btUetyAESWPOSFaSNI3xR9Ivd3aT827cUwWdmROQuoBXKvbgPCTb/NSgnF+bk/B+3dDeLhVUmLloTIvFlgkuDw03sOtpZbcP2Ar6qOB1h2aFdWCyrPDPAWXgeLfWs8sX+gyyBaNOeOTAmWn8idj1EzfA68aH5d5HtbPrS+i1c1z45qdBZCGIdcGiKPvAyLoMaAza/wumPdZWxkifdCsixlvoNJcIoVDSUHNelqtPMTosBl5RsfGUjLTMNCLkXf3DGuUq/xdiPmDl1Y9PI3qPiD4tQPQpJDqmCKyGnTc72eFfwahugHm00LGNUvJw3R5wd9lsihs6Wu5VBTfTPQOYAoESvd6mmureh36XHDNeQOe3nIOJNFTVYHzQCOGlillU84DqFu8N9Nh9tldu0GaAHpAcYJY9dBMD+ksaI1t3dMd/2zRJel+D/w58PeLthiDgHaR5lGc53T6GulHFXva2GLxp4ihKsqmLZjHl/O1SeLvM36+ayUwZHsoZJLozF2/Qcx3o+fJ1cfEm3gvvWLY0Xkq28evnzbKhef2WcseHn1p/AA=='),
  1871. this.addDataEntry(dt + 'duration constraint', 250, 200, 'Time Constraint',
  1872. '3ZbbUoMwEIafJpcyHFq5LqC9cJw6U18gJStkDIQJoQef3kBiQZFprVSrF0yzm/13tv9HMiAvzLZzgYv0nhNgyLtBXig4l3qVbUNgDLk2JciLkOva6kHu7cCu0+zaBRaQy2MErhasMatAZ3SilDtmEkASWJow57n6CVKZqUkjRy0JLlMgJoCczITgm7ZSd6tbDA7YpMx0c+AZSLFTJQIYlnT9XodLHSb7ur30gVPV0bW35o/Z7xUlr0QMpqhryIBu9xZ+6COxSED2+qhFZ/o21dj9ufXev7XeO9V778fMn/TMD7Egi6qeBvmBbVmOh/zoi0Q6EHgBucqsQUgaYzZjNFFxtOJS8kxtlAWOaZ4EJo6mWr6kL3Vrx72Es2MwOJPjMBzk2Ws08GKcwHPa47m4Gx2e5EVL7rEOLhqbPxY252zYrvt3oB9Iy1J9g++dP7OJDTpBk1SZHzC8Ahbg+DkRvMpJyBkXY1yZxroro/htkkPC8cj5PXKy8XEzGjIGT3+I2KGr7ujDNz3XnanC9rtSl3c/O18B'),
  1873. this.addDataEntry(dt + 'message', 250, 250, 'Message',
  1874. 'zZbfboIwFMafhmS7gzJ1t4LTqyVLeIIKJ9CsUFKqyJ5+B1tUQDNHCHpB6L/zcc7vowXL9dPDRtI8+RQRcMv9sFxfCqF0Kz34wLlFbBZZ7soixMbLIusbs85x1s6phEzdE0B0wJ7yHeiRrWO5S4+L8NuIFariZq5IaF43JYSo7iUqxYRXGOCVCVMQ5DSsp0ssB8coZ3GG3RBzAYkD5lkgFRxu5nscMsluQKSgZIVLShapxKywdU12AixOTJhrxmih+/Ep9Fw9NgyA6zDcPgzSwCDPBKMJmJmip4Dz1oPTIwJRDIHpZiLDmxfRIoHIcLlABFm0lFKU55VarZZo0SjETobQelnvACSBU8X2balr1ZvQL8FQ8QS24VqZ5846/BSVMSgT1EF4yuIuqrPHU3WnokrsybDOe1hpUWVhgHuQ8nsIX4cqcsA97NWbloWUL82e3gqlRKqXBuynlnHIbfiTv7+LDmftfo/zn4Z1dcbza9Hzq7bLp5y/IC2avg73bFuf3v8wDbtrxhuhZ7HQmY/kYU9oPBPfB51lo+y0tmmt4/FhDvaOO3ughd2vUVdnsIPYPf9p6uWXP6K/'),
  1875. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=sysMLLost;endSize=12;verticalAlign=bottom;',
  1876. 160, 0, 'lost', 'Lost Message', null, this.getTagsForStencil(gn, '', dt + 'lost message').join(' ')),
  1877. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;verticalAlign=bottom;startArrow=sysMLFound;startSize=12;',
  1878. 160, 0, 'found', 'Found Message', null, this.getTagsForStencil(gn, '', dt + 'found message').join(' ')),
  1879. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=none;verticalAlign=bottom;dashed=1;strokeWidth=2;',
  1880. 160, 0, '', 'General Ordering', null, this.getTagsForStencil(gn, '', dt + 'general ordering').join(' '))
  1881. ];
  1882. this.addPalette('sysmlInteractions', 'SysML / Interactions', expand || false, mxUtils.bind(this, function(content)
  1883. {
  1884. for (var i = 0; i < fns.length; i++)
  1885. {
  1886. content.appendChild(fns[i](content));
  1887. }
  1888. }));
  1889. };
  1890. Sidebar.prototype.addSysMLStateMachinesPalette = function(expand)
  1891. {
  1892. var s = 'shape=mxgraph.sysml.';
  1893. var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;';
  1894. var gn = '';
  1895. var dt = 'sysml state machine ';
  1896. var sb = this;
  1897. var fns = [
  1898. this.addDataEntry(dt + 'choice pseudo state', 150, 100, 'Choice Pseudo State',
  1899. 'zZXbcoIwEIafJvcctPeC1ulFZ5zxCYLZQqaBZUJQ9OmbkKCgMqVjnfaCmd1/k+zyfxxIGOfNWtIye0cGgoQrEsYSUdkob2IQggQeZyRckiDw9EWC15Gq31a9kkoo1JQNgd2wp6IGq1ihUkfhhCqjpQllhnlSVySMMpXrQZe+DgVNQGyw4opjYRbxNNONIyp4anIBHybdg1R8R8XCyTlnTJ9ve+saNKPzt5Ibfg2Yg5JHveTo5re35x04U5mVZk7KwM7S12hl8/R80MUbHTh77lsVfm8VsBS2LgWR4GF1EfqutTUdZyj5CQtFRc+yzsJrzxJUCnNdkFgXDMxUXkcgorvPtNVjFCh1qcDCNIWCLaRsm2EJhVW2/GQm9LWvkb0HM/iAgKIyBTV4RiZAkSCo4vvhUfc8d1s3yPWJgdcMYXY7KqzlDtyiK1DnrpPYzW7ZzaM3RoIXYaw2ZnhkvnwYaMfsDs5bEj/kOIGaNeyPqLk30veuKNpH6TcozkcppsbhpyF0H7HHCI6+zv8YrT9/FludXn5ydnn/H/gF'),
  1900. this.addEntry(dt + 'composite state', function()
  1901. {
  1902. var bg = new mxCell('CompositeState1', new mxGeometry(0, 0, 220, 190), s + 'compState;align=left;verticalAlign=top;spacingTop=-3;spacingLeft=18;strokeWidth=1;recursiveResize=0;html=1;');
  1903. bg.vertex = true;
  1904. var cardCell2 = new mxCell('', new mxGeometry(20, 50, 20, 20), 'shape=ellipse;html=1;fillColor=strokeColor;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;');
  1905. cardCell2.vertex = true;
  1906. bg.insert(cardCell2);
  1907. var cardCell3 = new mxCell('State1', new mxGeometry(80, 60, 100, 40), inh + 'shape=rect;html=1;rounded=1;whiteSpace=wrap;align=center;');
  1908. cardCell3.vertex = true;
  1909. bg.insert(cardCell3);
  1910. var cardCell4 = new mxCell('State2', new mxGeometry(80, 130, 100, 40), inh + 'shape=rect;html=1;rounded=1;whiteSpace=wrap;align=center;');
  1911. cardCell4.vertex = true;
  1912. bg.insert(cardCell4);
  1913. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;endArrow=open;endSize=12;');
  1914. edge1.geometry.relative = true;
  1915. edge1.edge = true;
  1916. cardCell2.insertEdge(edge1, true);
  1917. cardCell3.insertEdge(edge1, false);
  1918. bg.insert(edge1);
  1919. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), inh + 'edgeStyle=none;html=1;endArrow=open;endSize=12;');
  1920. edge2.geometry.relative = true;
  1921. edge2.edge = true;
  1922. cardCell3.insertEdge(edge2, true);
  1923. cardCell4.insertEdge(edge2, false);
  1924. bg.insert(edge2);
  1925. return sb.createVertexTemplateFromCells([bg], 220, 190, 'Composite State');
  1926. }),
  1927. this.createVertexTemplateEntry(s + 'compState;html=1;align=left;verticalAlign=top;spacingTop=-3;spacingLeft=18;',
  1928. 200, 160, 'CompositeState1', 'Composite State', null, null, this.getTagsForStencil(gn, 'compState', dt + 'composite state').join(' ')),
  1929. this.createVertexTemplateEntry('ellipse;html=1;labelPosition=left;verticalLabelPosition=bottom;spacingBottom=10;align=right;verticalAlign=bottom;resizable=0;',
  1930. 20, 20, 'again', 'Entry Point', null, null, this.getTagsForStencil(gn, 'compState', dt + 'entry point').join(' ')),
  1931. this.addEntry(dt + 'exit point', function()
  1932. {
  1933. var cardCell = new mxCell('aborted', new mxGeometry(0, 10, 20, 20), s + 'flowFinal;labelPosition=right;verticalLabelPosition=top;spacingTop=5;spacingLeft=3;align=left;verticalAlign=top;resizable=0;html=1;');
  1934. cardCell.vertex = true;
  1935. return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Exit Point');
  1936. }),
  1937. this.createVertexTemplateEntry(s + 'actFinal;html=1;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;',
  1938. 40, 40, '', 'Final State', null, null, this.getTagsForStencil(gn, 'actFinal', dt + 'final state').join(' ')),
  1939. this.createVertexTemplateEntry('shape=ellipse;html=1;fontSize=18;align=center;',
  1940. 40, 40, 'H*', 'History, Deep Pseudo State', null, null, this.getTagsForStencil(gn, '', dt + 'history deep pseudo state').join(' ')),
  1941. this.createVertexTemplateEntry('shape=ellipse;html=1;fontSize=18;align=center;',
  1942. 40, 40, 'H', 'History, Shallow Pseudo State', null, null, this.getTagsForStencil(gn, '', dt + 'history shallow pseudo state').join(' ')),
  1943. this.createVertexTemplateEntry('shape=ellipse;html=1;fillColor=strokeColor;fontSize=18;fontColor=#ffffff;',
  1944. 40, 40, '', 'Initial Pseudo State', null, null, this.getTagsForStencil(gn, '', dt + 'initial pseudo state').join(' ')),
  1945. this.createVertexTemplateEntry('shape=ellipse;html=1;fillColor=strokeColor;fontSize=18;fontColor=#ffffff;',
  1946. 40, 40, '', 'Junction Pseudo State', null, null, this.getTagsForStencil(gn, '', dt + 'junction pseudo state').join(' ')),
  1947. this.createVertexTemplateEntry(s + 'accEvent;flipH=1;whiteSpace=wrap;align=center;html=1;',
  1948. 140, 40, 'Req(Id)', 'Receive Signal Action', null, null, this.getTagsForStencil(gn, 'accEvent', dt + 'receive signal action').join(' ')),
  1949. this.createVertexTemplateEntry(s + 'sendSigAct;whiteSpace=wrap;align=center;html=1;',
  1950. 140, 40, 'TurnOn', 'Send Signal Action', null, null, this.getTagsForStencil(gn, 'sendSigAct', dt + 'send signal action').join(' ')),
  1951. this.createVertexTemplateEntry('shape=rect;html=1;whiteSpace=wrap;align=center;',
  1952. 140, 40, 'MinorReq := Id;', 'Action', null, null, this.getTagsForStencil(gn, '', dt + 'action').join(' ')),
  1953. this.createVertexTemplateEntry(s + 'region;align=left;verticalAlign=top;spacingTop=-3;spacingLeft=25;html=1;',
  1954. 200, 160, 'S', 'Region', null, null, this.getTagsForStencil(gn, '', dt + 'region').join(' ')),
  1955. this.createVertexTemplateEntry('shape=rect;rounded=1;html=1;whiteSpace=wrap;align=center;',
  1956. 100, 40, 'State1', 'Simple State', null, null, this.getTagsForStencil(gn, '', dt + 'simple state').join(' ')),
  1957. this.addEntry(dt + 'simple state', function()
  1958. {
  1959. var cell1 = new mxCell('', new mxGeometry(0, 0, 200, 100), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;rounded=1;absoluteArcSize=1;arcSize=22;');
  1960. cell1.vertex = true;
  1961. var cell2 = new mxCell('State2', new mxGeometry(0, 0, 200, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1962. cell2.vertex = true;
  1963. cell1.insert(cell2);
  1964. var divider = new mxCell('', new mxGeometry(0, 0, 200, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  1965. divider.vertex = true;
  1966. cell1.insert(divider);
  1967. var cell6 = new mxCell('', new mxGeometry(0, 76, 200, 10), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1968. cell6.vertex = true;
  1969. cell1.insert(cell6);
  1970. var cell3 = new mxCell('entry / entryActivity', new mxGeometry(0, 0, 200, 14), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1971. cell3.vertex = true;
  1972. cell1.insert(cell3);
  1973. var cell4 = new mxCell('do / doActivity', new mxGeometry(0, 0, 200, 14), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1974. cell4.vertex = true;
  1975. cell1.insert(cell4);
  1976. var cell5 = new mxCell('exit / exitActivity', new mxGeometry(0, 0, 200, 14), 'html=1;align=left;spacingLeft=10;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1977. cell5.vertex = true;
  1978. cell1.insert(cell5);
  1979. var cell6 = new mxCell('', new mxGeometry(0, 76, 200, 20), 'html=1;align=left;spacing=0;spacingLeft=10;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  1980. cell6.vertex = true;
  1981. cell1.insert(cell6);
  1982. return sb.createVertexTemplateFromCells([cell1], 200, 100, 'Simple State');
  1983. }),
  1984. this.createVertexTemplateEntry('shape=rect;rounded=1;html=1;whiteSpace=wrap;align=center;',
  1985. 120, 40, 'State1, State2', 'State List', null, null, this.getTagsForStencil(gn, '', dt + 'state list').join(' ')),
  1986. this.addEntry(dt + 'state machine', function()
  1987. {
  1988. var cardCell = new mxCell('ReadAmountSM', new mxGeometry(0, 0, 160, 120), s + 'stateMachine;verticalAlign=top;whiteSpace=wrap;align=center;');
  1989. cardCell.vertex = true;
  1990. var label1 = new mxCell('aborted', new mxGeometry(160, 60, 0, 0), 'resizable=0;html=1;verticalAlign=top;align=left;labelBackgroundColor=none;spacingLeft=5;spacingTop=-2;');
  1991. label1.geometry.relative = false;
  1992. label1.setConnectable(false);
  1993. label1.vertex = true;
  1994. cardCell.insert(label1);
  1995. return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'State Machine');
  1996. }),
  1997. this.createVertexTemplateEntry(s + 'x;',
  1998. 40, 40, '', 'Terminate Node', null, null, this.getTagsForStencil(gn, 'x', dt + 'terminate node').join(' ')),
  1999. this.addEntry(dt + 'submachine state', function()
  2000. {
  2001. var cardCell = new mxCell('ReadAmount :\nReadAmountSM', new mxGeometry(0, 0, 160, 120), s + 'submState;whiteSpace=wrap;align=center;');
  2002. cardCell.vertex = true;
  2003. var label1 = new mxCell('aborted', new mxGeometry(160, 60, 0, 0), 'resizable=0;html=1;verticalAlign=bottom;align=left;labelBackgroundColor=none;spacingLeft=5;spacingBottom=2;');
  2004. label1.geometry.relative = false;
  2005. label1.setConnectable(false);
  2006. label1.vertex = true;
  2007. cardCell.insert(label1);
  2008. return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Submachine State');
  2009. }),
  2010. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;strokeWidth=3;verticalAlign=bottom;',
  2011. 160, 0, 'trigger[guard]/activity', 'Transition', null, this.getTagsForStencil(gn, '', dt + 'transition').join(' '))
  2012. ];
  2013. this.addPalette('sysmlState Machines', 'SysML / State Machines', expand || false, mxUtils.bind(this, function(content)
  2014. {
  2015. for (var i = 0; i < fns.length; i++)
  2016. {
  2017. content.appendChild(fns[i](content));
  2018. }
  2019. }));
  2020. };
  2021. Sidebar.prototype.addSysMLUseCasesPalette = function(expand)
  2022. {
  2023. var s = 'html=1;shape=mxgraph.sysml.';
  2024. var gn = '';
  2025. var dt = 'sysml use case ';
  2026. var sb = this;
  2027. var fns = [
  2028. this.createVertexTemplateEntry('shape=ellipse;html=1;strokeWidth=3;fontStyle=1;whiteSpace=wrap;align=center;perimeter=ellipsePerimeter;',
  2029. 120, 60, 'UseCaseName', 'Use Case', null, null, this.getTagsForStencil(gn, '', dt + 'use case').join(' ')),
  2030. this.addEntry(dt + '', function()
  2031. {
  2032. var cardCell = new mxCell('\nextension points\np1, p2', new mxGeometry(0, 0, 160, 80), s + 'useCaseExtPt;whiteSpace=wrap;align=center;');
  2033. cardCell.vertex = true;
  2034. var label1 = new mxCell('UseCaseName', new mxGeometry(80, 17, 0, 0), 'resizable=0;html=1;verticalAlign=middle;align=center;labelBackgroundColor=none;fontStyle=1;');
  2035. label1.geometry.relative = false;
  2036. label1.setConnectable(false);
  2037. label1.vertex = true;
  2038. cardCell.insert(label1);
  2039. return sb.createVertexTemplateFromCells([cardCell], cardCell.geometry.width, cardCell.geometry.height, 'Use Case');
  2040. }),
  2041. this.createVertexTemplateEntry('shape=umlActor;html=1;verticalLabelPosition=bottom;verticalAlign=top;align=center;',
  2042. 30, 60, 'ActorName', 'Actor', null, null, this.getTagsForStencil(gn, 'umlActor', dt + '').join(' ')),
  2043. this.addEntry(dt + 'actor', function()
  2044. {
  2045. var cell1 = new mxCell('', new mxGeometry(0, 0, 80, 40), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  2046. cell1.vertex = true;
  2047. var cell2 = new mxCell('&lt;&lt;actor&gt;&gt;', new mxGeometry(0, 0, 80, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;spacingTop=3;');
  2048. cell2.vertex = true;
  2049. cell1.insert(cell2);
  2050. var cell3 = new mxCell('ActorName', new mxGeometry(0, 0, 80, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;spacingBottom=4;fontStyle=1');
  2051. cell3.vertex = true;
  2052. cell1.insert(cell3);
  2053. return sb.createVertexTemplateFromCells([cell1], 80, 40, 'Actor');
  2054. }),
  2055. this.createVertexTemplateEntry('shape=rect;html=1;verticalAlign=top;fontStyle=1;whiteSpace=wrap;align=center;',
  2056. 120, 60, 'SubjectName', 'Subject', null, null, this.getTagsForStencil(gn, '', dt + 'subject').join(' ')),
  2057. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=none;verticalAlign=bottom;',
  2058. 160, 0, '', 'Communication Path', null, this.getTagsForStencil(gn, '', dt + 'communication path').join(' ')),
  2059. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;verticalAlign=bottom;dashed=1;labelBackgroundColor=none;',
  2060. 160, 0, '&lt;&lt;include&gt;&gt;', 'Include', null, this.getTagsForStencil(gn, '', dt + 'include').join(' ')),
  2061. this.createEdgeTemplateEntry('edgeStyle=none;html=1;startArrow=open;endArrow=none;startSize=12;verticalAlign=bottom;dashed=1;labelBackgroundColor=none;',
  2062. 160, 0, '&lt;&lt;extend&gt;&gt;', 'Extend', null, this.getTagsForStencil(gn, '', dt + 'extend').join(' ')),
  2063. this.addDataEntry(dt + 'extend condition', 250, 80, 'Extend with Condition',
  2064. 'tVTLjtswDPwaXQvH2kevsbfdSwsUyKU9KjFrC5VFQ1Y2Tr++pMRknWyyj0MPgcUhh6JmFCld99NjMEP3HRtwSn9Rug6IMa/6qQbnVFnYRukHVZYF/VT59Up2kbLFYAL4+B5CmQlPxm0hIzX6xkaLXuklZdR9tUZ0YDwFMA0BxpGT91R7p0q9KJSuYIrgE0x7o+WtmTvQODV/ZZcx7p3sMnZm4KXHSJ9qtH85WtzyejAb69tv8JtPwIhxtqVxHlyCql1nI6yoiik7ko4wOQaECNNVKRIkOjwC9hDDnkqEIEoVO9vETiAtWAe27aTLjWBmzHF77PSsMy1E6suy6xeyk5qm55O4mI4zj5K8zRFrTyokOtP3IFnIc1dd7B0LTEsWyW6MW0rJGmPEnhIBt74BnpA9dWYNrjKbP23Ca3QYkmGeDaN5liHgjhAcwGdkJS6SyFVjxi71WhzHg6aFj3oTwJlon055l5QX6o90+8pinys+n3kVTWghStH8b3HgHS7PnRCv9BlxGzbwok+y/Tj9u27CzYWbcOYl67aSUOSf2TlzQpIf8fHEJphs/Mm0T7cS/XrdwCzDyUvyHz09eFO87s0Vj9/2hsLnhzeXz9/lfw=='),
  2065. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=block;endFill=0;endSize=12;verticalAlign=bottom;',
  2066. 160, 0, '', 'Generalization', null, this.getTagsForStencil(gn, '', dt + 'generalization').join(' '))
  2067. ];
  2068. this.addPalette('sysmlUse Cases', 'SysML / UseCases', expand || false, mxUtils.bind(this, function(content)
  2069. {
  2070. for (var i = 0; i < fns.length; i++)
  2071. {
  2072. content.appendChild(fns[i](content));
  2073. }
  2074. }));
  2075. };
  2076. Sidebar.prototype.addSysMLAllocationsPalette = function(expand)
  2077. {
  2078. var s = 'html=1;shape=mxgraph.sysml.';
  2079. var inh = 'strokeColor=inherit;fillColor=inherit;gradientColor=inherit;';
  2080. var gn = '';
  2081. var dt = 'sysml allocation ';
  2082. var sb = this;
  2083. var fns = [
  2084. this.addEntry(dt + 'allocated stereotype', function()
  2085. {
  2086. var cell1 = new mxCell('', new mxGeometry(0, 0, 120, 60), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  2087. cell1.vertex = true;
  2088. var cell2 = new mxCell('&lt;&lt;allocated&gt;&gt;', new mxGeometry(0, 0, 120, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;spacingTop=3;');
  2089. cell2.vertex = true;
  2090. cell1.insert(cell2);
  2091. var cell3 = new mxCell('Named\nElement', new mxGeometry(0, 0, 120, 30), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1');
  2092. cell3.vertex = true;
  2093. cell1.insert(cell3);
  2094. var cell4 = new mxCell('', new mxGeometry(0, 0, 120, 10), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  2095. cell4.vertex = true;
  2096. cell1.insert(cell4);
  2097. return sb.createVertexTemplateFromCells([cell1], 120, 60, 'Allocated Stereotype');
  2098. }),
  2099. this.addEntry(dt + 'derived property block', function()
  2100. {
  2101. var cell1 = new mxCell('', new mxGeometry(0, 0, 200, 120), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;strokeWidth=2;');
  2102. cell1.vertex = true;
  2103. var cell2 = new mxCell('BlockName', new mxGeometry(0, 0, 200, 20), 'html=1;align=center;spacing=0;verticalAlign=top;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1');
  2104. cell2.vertex = true;
  2105. cell1.insert(cell2);
  2106. var divider = new mxCell('', new mxGeometry(0, 0, 200, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  2107. divider.vertex = true;
  2108. cell1.insert(divider);
  2109. var cell3 = new mxCell('allocatedFrom', new mxGeometry(0, 0, 200, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontSize=10;fontStyle=2;');
  2110. cell3.vertex = true;
  2111. cell1.insert(cell3);
  2112. var cell4 = new mxCell('&lt;&lt;elementType&gt;&gt; ElementName', new mxGeometry(0, 0, 200, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  2113. cell4.vertex = true;
  2114. cell1.insert(cell4);
  2115. cell1.insert(divider.clone());
  2116. var cell5 = new mxCell('allocatedTo', new mxGeometry(0, 0, 200, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontSize=10;fontStyle=2;');
  2117. cell5.vertex = true;
  2118. cell1.insert(cell5);
  2119. var cell6 = new mxCell('&lt;&lt;elementType&gt;&gt; ElementName', new mxGeometry(0, 0, 200, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  2120. cell6.vertex = true;
  2121. cell1.insert(cell6);
  2122. var cell7 = new mxCell('', new mxGeometry(0, 0, 200, 20), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  2123. cell7.vertex = true;
  2124. cell1.insert(cell7);
  2125. return sb.createVertexTemplateFromCells([cell1], 200, 120, 'Allocation derived properties (Block)');
  2126. }),
  2127. this.addDataEntry(dt + 'derived property comment', 270, 140, 'Allocation derived properties (Comment)',
  2128. 'xVRNb+MgEP01HCPZOK16rZO2l3Yv6R8g9sRGHQzF5Ku/fgdM7bKJpVZa7R4sz7xhhuHxGFas1OnJCtO+6BqQFQ+sWFmt3WCp0woQGc9kzYo14zyjj/HHmWgeopkRFjr3nQQ+JBwE7mFAGL9FSi0Nwb074wDfvu99S6UStpEdK+4zcxrdhdOGoDzBEHZuAh2c3EKgbHzuECqnqmQ18R/23n4CAlFXwkH9aLX6jNJpthcZ1p9xAoWijkq89ABBETevZwNjIE2KXvYwrPwlFMztMtPsq/7/rdIeZtqEJ5fJ+1YYb3ba0a9snSLhrXMye/nhA/mNt42oZNc8h9ta34QThgtcxwv8kqcPYHeoj+TuJCmsKI+tdLChEr7ekQT+Jb+iZsGOnVEu6WNWwQGK8n0CrcDZMy2JCctB4NlR1q6Noi4i1oJs2ljlLmKiH/xmrDQ9DzLiC7n+WoqL15IwP8OyhcqztdOd28Ro/i8IOsdodslQzq8wtPwLDC2vzJM/aLF639Xg12ephlBsAUtRvTVhyUqjtkGknRcpdPW9tUFhEalF34Y6+UgU1A0kNPV6bytIZp2j+QQuudBvkGkBhZOHtPoPmCJ3muohlgz93w=='),
  2129. this.addEntry(dt + 'derived property internal block diagram', function()
  2130. {
  2131. var bg = new mxCell(
  2132. '<p style="margin:0px;margin-top:4px;text-align:center;">' +
  2133. '&lt;&lt;block&gt;&gt;<br/>' +
  2134. '<b>BlockName</b></p><hr/>',
  2135. new mxGeometry(0, 0, 250, 160), 'shape=rect;html=1;overflow=fill;strokeWidth=2;whiteSpace=wrap;align=center;verticalAlign=top;recursiveResize=0;');
  2136. bg.vertex = true;
  2137. var cardCell2 = new mxCell(
  2138. '<p style="margin:0px;margin-top:4px;text-align:center;">' +
  2139. '<b>PartName</b><hr/></p>' +
  2140. '<p style="font-size:10px;margin:0px;text-align:center;"><i>allocatedFrom</i></p>' +
  2141. '<p style="margin:0px;margin-left:8px;text-align:left;">&lt;&lt;elementType&gt;&gt; ElementName</p>',
  2142. new mxGeometry(20, 60, 210, 80), inh + 'shape=rect;html=1;overflow=fill;strokeWidth=2;whiteSpace=wrap;align=center;');
  2143. cardCell2.vertex = true;
  2144. bg.insert(cardCell2);
  2145. return sb.createVertexTemplateFromCells([bg], 250, 160, 'Allocation derived properties (Internal Block Diagram)');
  2146. }),
  2147. this.addEntry(dt + 'derived property activity diagram', function()
  2148. {
  2149. var cell1 = new mxCell('', new mxGeometry(0, 0, 200, 100), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;rounded=1;absoluteArcSize=1;arcSize=20;');
  2150. cell1.vertex = true;
  2151. var cell2 = new mxCell('ActivityName', new mxGeometry(0, 0, 200, 20), 'html=1;align=center;spacing=0;verticalAlign=top;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1');
  2152. cell2.vertex = true;
  2153. cell1.insert(cell2);
  2154. var divider = new mxCell('', new mxGeometry(0, 0, 200, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  2155. divider.vertex = true;
  2156. cell1.insert(divider);
  2157. var cell3 = new mxCell('allocatedTo', new mxGeometry(0, 0, 200, 22), 'html=1;align=center;spacing=0;verticalAlign=bottom;strokeColor=none;fillColor=none;whiteSpace=wrap;fontSize=10;fontStyle=2;spacingBottom=2;');
  2158. cell3.vertex = true;
  2159. cell1.insert(cell3);
  2160. var cell4 = new mxCell('&lt;&lt;elementType&gt;&gt; ElementName', new mxGeometry(0, 0, 200, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  2161. cell4.vertex = true;
  2162. cell1.insert(cell4);
  2163. var cell4 = new mxCell('', new mxGeometry(0, 0, 200, 34), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  2164. cell4.vertex = true;
  2165. cell1.insert(cell4);
  2166. return sb.createVertexTemplateFromCells([cell1], 200, 100, 'Allocation Derived Properties (Activity Diagram)');
  2167. }),
  2168. this.addEntry(dt + 'activity partition', function()
  2169. {
  2170. var cardCell = new mxCell(
  2171. '<p style="margin:0px;margin-top:4px;text-align:center;">' +
  2172. '&lt;&lt;allocate&gt;&gt;<br/>:ElementName<hr/></p>',
  2173. new mxGeometry(0, 0, 250, 160), 'shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;verticalAlign=top;');
  2174. cardCell.vertex = true;
  2175. var cardCell2 = new mxCell('ActionName', new mxGeometry(65, 70, 120, 60), s + 'cont;fontStyle=1;whiteSpace=wrap;align=center;');
  2176. cardCell2.vertex = true;
  2177. return sb.createVertexTemplateFromCells([cardCell, cardCell2], 250, 160, 'Allocation Activity Partition');
  2178. }),
  2179. this.addEntry(dt + 'general', function()
  2180. {
  2181. var cardCell = new mxCell('Client', new mxGeometry(0, 0, 100, 60), 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
  2182. cardCell.vertex = true;
  2183. var cardCell2 = new mxCell('Supplier', new mxGeometry(200, 0, 100, 60), 'shape=rect;html=1;fontStyle=1;whiteSpace=wrap;align=center;');
  2184. cardCell2.vertex = true;
  2185. var edge1 = new mxCell('&lt;&lt;allocate&gt;&gt;', new mxGeometry(0, 0, 0, 0), 'rounded=0;html=1;verticalAlign=top;labelBackgroundColor=none;endArrow=open;dashed=1;endSize=12;');
  2186. edge1.geometry.relative = true;
  2187. edge1.edge = true;
  2188. cardCell.insertEdge(edge1, true);
  2189. cardCell2.insertEdge(edge1, false);
  2190. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 300, 60, 'Allocation (General)');
  2191. })
  2192. ];
  2193. this.addPalette('sysmlAllocations', 'SysML / Allocations', expand || false, mxUtils.bind(this, function(content)
  2194. {
  2195. for (var i = 0; i < fns.length; i++)
  2196. {
  2197. content.appendChild(fns[i](content));
  2198. }
  2199. }));
  2200. };
  2201. Sidebar.prototype.addSysMLRequirementsPalette = function(expand)
  2202. {
  2203. var s = 'html=1;shape=mxgraph.sysml.';
  2204. var gn = '';
  2205. var dt = 'sysml requirement ';
  2206. var sb = this;
  2207. var fns = [
  2208. this.createVertexTemplateEntry(s + 'package;overflow=fill;labelX=110;strokeWidth=2;align=center;', 160, 80,
  2209. '<p style="margin:0px;margin-top:4px;margin-left:7px;text-align:left;"><b>req</b> ReqDiagram</p>',
  2210. 'Requirement Diagram', null, null, this.getTagsForStencil(gn, 'package', dt + 'diagram').join(' ')),
  2211. this.addEntry(dt + '', function()
  2212. {
  2213. var cell1 = new mxCell('', new mxGeometry(0, 0, 200, 100), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  2214. cell1.vertex = true;
  2215. var cell2 = new mxCell('&lt;&lt;requirement&gt;&gt;', new mxGeometry(0, 0, 200, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;spacingTop=3;');
  2216. cell2.vertex = true;
  2217. cell1.insert(cell2);
  2218. var cell3 = new mxCell('Requirement Name', new mxGeometry(0, 0, 200, 18), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1');
  2219. cell3.vertex = true;
  2220. cell1.insert(cell3);
  2221. var divider = new mxCell('', new mxGeometry(0, 0, 200, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  2222. divider.vertex = true;
  2223. cell1.insert(divider);
  2224. var cell4 = new mxCell('text="The system shall do"', new mxGeometry(0, 0, 200, 16), 'html=1;align=left;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;spacingLeft=10;');
  2225. cell4.vertex = true;
  2226. cell1.insert(cell4);
  2227. var cell5 = new mxCell('Id="62j32."', new mxGeometry(0, 0, 200, 16), 'html=1;align=left;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;spacingLeft=10;');
  2228. cell5.vertex = true;
  2229. cell1.insert(cell5);
  2230. var cell6 = new mxCell('', new mxGeometry(0, 0, 200, 26), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  2231. cell6.vertex = true;
  2232. cell1.insert(cell6);
  2233. return sb.createVertexTemplateFromCells([cell1], 200, 100, 'Requirement');
  2234. }),
  2235. this.addEntry(dt + 'test case', function()
  2236. {
  2237. var cell1 = new mxCell('', new mxGeometry(0, 0, 200, 100), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  2238. cell1.vertex = true;
  2239. var cell2 = new mxCell('&lt;&lt;testCase&gt;&gt;', new mxGeometry(0, 0, 200, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;spacingTop=3;');
  2240. cell2.vertex = true;
  2241. cell1.insert(cell2);
  2242. var cell3 = new mxCell('TestCaseName', new mxGeometry(0, 0, 200, 18), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1');
  2243. cell3.vertex = true;
  2244. cell1.insert(cell3);
  2245. var divider = new mxCell('', new mxGeometry(0, 0, 200, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  2246. divider.vertex = true;
  2247. cell1.insert(divider);
  2248. var cell4 = new mxCell('', new mxGeometry(0, 0, 200, 58), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  2249. cell4.vertex = true;
  2250. cell1.insert(cell4);
  2251. return sb.createVertexTemplateFromCells([cell1], 200, 100, 'Test Case');
  2252. }),
  2253. this.addDataEntry(dt + 'containment relationship', 300, 180, 'Requirement Containment Relationship',
  2254. '5ZXfboIwFMafpvdQnNkuB27ezMTEJ6hwQpsVykoR2dPvtBRdjSYmy5zJLkjOn37fob8GSpKs2i81a/hKFSBJ8kKSTCtlxqjaZyAloZEoSLIglEb4EPp6oRu7btQwDbW5RkBHwY7JDsYKoXNWNSRJJRqkYabhoxMaKms+Ncpg2ZQRmsQRhuvxTdyQ1gzSD2k5a2yoIbcCbirc+SLGsOfCwKZhuW33yAVrTIqyxjRHK9BugHtp0Ab2FzfuSn7XS1AVGD3gEi94GrlEvSgM9wLPKuIgSu5d5r7G2jEvD05Hqhh4sOchJ78MOeNCFvE9QR5OiN6C8uwWlOk9UZ4Ej57eX1B/OEP9hJBWXV2AXR+FgCTbgkxZ/l66JZmSCpEsalWjMoW6eNZa9d8qRQkb7wtyq/qXYyF1BWxYlCJnOCNtDdNm8miHdvW2xmGZsljH5kZ8WrOYHk7CzgjOoVWdziH4W6KyBBN821eclgbJjNiF7j9BP//n6Gc3Q4/p8Up2veDG/gI='),
  2255. this.addEntry(dt + 'copy dependency', function()
  2256. {
  2257. var cardCell = new mxCell('&lt;&lt;requirement&gt;&gt;\nSlave', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2258. cardCell.vertex = true;
  2259. var cardCell2 = new mxCell('&lt;&lt;requirement&gt;&gt;\nMaster', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2260. cardCell2.vertex = true;
  2261. var edge1 = new mxCell('&lt;&lt;copy&gt;&gt;', new mxGeometry(0, 0, 0, 0), 'endArrow=open;edgeStyle=none;endSize=12;dashed=1;html=1;');
  2262. edge1.geometry.relative = true;
  2263. edge1.edge = true;
  2264. cardCell.insertEdge(edge1, true);
  2265. cardCell2.insertEdge(edge1, false);
  2266. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Copy Dependency');
  2267. }),
  2268. this.addEntry(dt + 'master callout', function()
  2269. {
  2270. var cardCell = new mxCell('Master\n&lt;&lt;requirement&gt;&gt; Master', new mxGeometry(0, 0, 160, 60), 'shape=note;html=1;size=15;align=left;spacingLeft=5;whiteSpace=wrap;align=center;');
  2271. cardCell.vertex = true;
  2272. var cardCell2 = new mxCell('&lt;&lt;requirement&gt;&gt; Slave', new mxGeometry(200, 0, 160, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2273. cardCell2.vertex = true;
  2274. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;html=1;edgeStyle=none;dashed=1;');
  2275. edge1.geometry.relative = true;
  2276. edge1.edge = true;
  2277. cardCell.insertEdge(edge1, true);
  2278. cardCell2.insertEdge(edge1, false);
  2279. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Master Callout');
  2280. }),
  2281. this.addEntry(dt + 'derive dependency', function()
  2282. {
  2283. var cardCell = new mxCell('&lt;&lt;requirement&gt;&gt;\nClient', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2284. cardCell.vertex = true;
  2285. var cardCell2 = new mxCell('&lt;&lt;requirement&gt;&gt;\nSupplier', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2286. cardCell2.vertex = true;
  2287. var edge1 = new mxCell('&lt;&lt;deriveReq&gt;&gt;', new mxGeometry(0, 0, 0, 0), 'endArrow=open;html=1;edgeStyle=none;endSize=12;dashed=1;');
  2288. edge1.geometry.relative = true;
  2289. edge1.edge = true;
  2290. cardCell.insertEdge(edge1, true);
  2291. cardCell2.insertEdge(edge1, false);
  2292. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Derive Dependency');
  2293. }),
  2294. this.addEntry(dt + 'derive callout', function()
  2295. {
  2296. var cardCell = new mxCell('&lt;&lt;requirement&gt;&gt;\nReqA', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2297. cardCell.vertex = true;
  2298. var cardCell2 = new mxCell('Derived\n&lt;&lt;requirement&gt;&gt; ReqB', new mxGeometry(200, 0, 160, 60), 'shape=note;html=1;size=15;align=left;spacingLeft=5;whiteSpace=wrap;align=center;');
  2299. cardCell2.vertex = true;
  2300. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;html=1;edgeStyle=none;dashed=1;');
  2301. edge1.geometry.relative = true;
  2302. edge1.edge = true;
  2303. cardCell.insertEdge(edge1, true);
  2304. cardCell2.insertEdge(edge1, false);
  2305. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Derive Callout');
  2306. }),
  2307. this.addEntry(dt + 'derive callout', function()
  2308. {
  2309. var cardCell = new mxCell('DerivedFrom\n&lt;&lt;requirement&gt;&gt; ReqA', new mxGeometry(0, 0, 160, 60), 'shape=note;html=1;size=15;align=left;spacingLeft=5;whiteSpace=wrap;align=center;');
  2310. cardCell.vertex = true;
  2311. var cardCell2 = new mxCell('&lt;&lt;requirement&gt;&gt;\nReqB', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2312. cardCell2.vertex = true;
  2313. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;');
  2314. edge1.geometry.relative = true;
  2315. edge1.edge = true;
  2316. cardCell.insertEdge(edge1, true);
  2317. cardCell2.insertEdge(edge1, false);
  2318. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Derive Callout');
  2319. }),
  2320. this.addEntry(dt + 'satisfy dependency', function()
  2321. {
  2322. var cardCell = new mxCell('NamedElement', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2323. cardCell.vertex = true;
  2324. var cardCell2 = new mxCell('&lt;&lt;requirement&gt;&gt;\nSupplier', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2325. cardCell2.vertex = true;
  2326. var edge1 = new mxCell('&lt;&lt;satisfy&gt;&gt;', new mxGeometry(0, 0, 0, 0), 'endArrow=open;edgeStyle=none;endSize=12;dashed=1;html=1;');
  2327. edge1.geometry.relative = true;
  2328. edge1.edge = true;
  2329. cardCell.insertEdge(edge1, true);
  2330. cardCell2.insertEdge(edge1, false);
  2331. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Satisfy Dependency');
  2332. }),
  2333. this.addEntry(dt + 'satisfy callout', function()
  2334. {
  2335. var cardCell = new mxCell('NamedElement', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2336. cardCell.vertex = true;
  2337. var cardCell2 = new mxCell('Satisfies\n&lt;&lt;requirement&gt;&gt; ReqA', new mxGeometry(200, 0, 160, 60), 'shape=note;size=15;align=left;spacingLeft=5;html=1;whiteSpace=wrap;align=center;');
  2338. cardCell2.vertex = true;
  2339. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;');
  2340. edge1.geometry.relative = true;
  2341. edge1.edge = true;
  2342. cardCell.insertEdge(edge1, true);
  2343. cardCell2.insertEdge(edge1, false);
  2344. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Satisfy Callout');
  2345. }),
  2346. this.addEntry(dt + 'satisfy callout', function()
  2347. {
  2348. var cardCell = new mxCell('SatisfiedBy\nNamedElement', new mxGeometry(0, 0, 160, 60), 'shape=note;size=15;align=left;spacingLeft=5;html=1;whiteSpace=wrap;align=center;');
  2349. cardCell.vertex = true;
  2350. var cardCell2 = new mxCell('&lt;&lt;requirement&gt;&gt;\nReqA', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2351. cardCell2.vertex = true;
  2352. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;');
  2353. edge1.geometry.relative = true;
  2354. edge1.edge = true;
  2355. cardCell.insertEdge(edge1, true);
  2356. cardCell2.insertEdge(edge1, false);
  2357. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Satisfy Callout');
  2358. }),
  2359. this.addEntry(dt + 'verify dependency', function()
  2360. {
  2361. var cardCell = new mxCell('NamedElement', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2362. cardCell.vertex = true;
  2363. var cardCell2 = new mxCell('&lt;&lt;requirement&gt;&gt;\nSupplier', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2364. cardCell2.vertex = true;
  2365. var edge1 = new mxCell('&lt;&lt;verify&gt;&gt;', new mxGeometry(0, 0, 0, 0), 'endArrow=open;edgeStyle=none;endSize=12;dashed=1;html=1;');
  2366. edge1.geometry.relative = true;
  2367. edge1.edge = true;
  2368. cardCell.insertEdge(edge1, true);
  2369. cardCell2.insertEdge(edge1, false);
  2370. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Verify Dependency');
  2371. }),
  2372. this.addEntry(dt + 'verify callout', function()
  2373. {
  2374. var cardCell = new mxCell('NamedElement', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2375. cardCell.vertex = true;
  2376. var cardCell2 = new mxCell('Verifies\n&lt;&lt;requirement&gt;&gt; ReqA', new mxGeometry(200, 0, 160, 60), 'shape=note;size=15;align=left;spacingLeft=5;html=1;whiteSpace=wrap;align=center;');
  2377. cardCell2.vertex = true;
  2378. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;');
  2379. edge1.geometry.relative = true;
  2380. edge1.edge = true;
  2381. cardCell.insertEdge(edge1, true);
  2382. cardCell2.insertEdge(edge1, false);
  2383. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Verify Callout');
  2384. }),
  2385. this.addEntry(dt + 'verify callout', function()
  2386. {
  2387. var cardCell = new mxCell('VerifiedBy\nNamedElement', new mxGeometry(0, 0, 160, 60), 'shape=note;size=15;align=left;spacingLeft=5;html=1;whiteSpace=wrap;align=center;');
  2388. cardCell.vertex = true;
  2389. var cardCell2 = new mxCell('&lt;&lt;requirement&gt;&gt;\nReqA', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2390. cardCell2.vertex = true;
  2391. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;');
  2392. edge1.geometry.relative = true;
  2393. edge1.edge = true;
  2394. cardCell.insertEdge(edge1, true);
  2395. cardCell2.insertEdge(edge1, false);
  2396. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Verify Callout');
  2397. }),
  2398. this.addEntry(dt + 'refine dependency', function()
  2399. {
  2400. var cardCell = new mxCell('NamedElement', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2401. cardCell.vertex = true;
  2402. var cardCell2 = new mxCell('&lt;&lt;requirement&gt;&gt;\nClient', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2403. cardCell2.vertex = true;
  2404. var edge1 = new mxCell('&lt;&lt;refine&gt;&gt;', new mxGeometry(0, 0, 0, 0), 'endArrow=open;edgeStyle=none;endSize=12;dashed=1;html=1;');
  2405. edge1.geometry.relative = true;
  2406. edge1.edge = true;
  2407. cardCell.insertEdge(edge1, true);
  2408. cardCell2.insertEdge(edge1, false);
  2409. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Refine Dependency');
  2410. }),
  2411. this.addEntry(dt + 'refine dependency', function()
  2412. {
  2413. var cardCell = new mxCell('NamedElement', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2414. cardCell.vertex = true;
  2415. var cardCell2 = new mxCell('Refines\n&lt;&lt;requirement&gt;&gt; ReqA', new mxGeometry(200, 0, 160, 60), 'shape=note;size=15;align=left;spacingLeft=5;html=1;whiteSpace=wrap;align=center;');
  2416. cardCell2.vertex = true;
  2417. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;');
  2418. edge1.geometry.relative = true;
  2419. edge1.edge = true;
  2420. cardCell.insertEdge(edge1, true);
  2421. cardCell2.insertEdge(edge1, false);
  2422. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Refine Callout');
  2423. }),
  2424. this.addEntry(dt + 'refine dependency', function()
  2425. {
  2426. var cardCell = new mxCell('RefinedBy\nNamedElement', new mxGeometry(0, 0, 160, 60), 'shape=note;size=15;align=left;spacingLeft=5;html=1;whiteSpace=wrap;align=center;');
  2427. cardCell.vertex = true;
  2428. var cardCell2 = new mxCell('&lt;&lt;requirement&gt;&gt;\nReqA', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2429. cardCell2.vertex = true;
  2430. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;');
  2431. edge1.geometry.relative = true;
  2432. edge1.edge = true;
  2433. cardCell.insertEdge(edge1, true);
  2434. cardCell2.insertEdge(edge1, false);
  2435. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Refine Callout');
  2436. }),
  2437. this.addEntry(dt + 'trace dependency', function()
  2438. {
  2439. var cardCell = new mxCell('&lt;&lt;requirement&gt;&gt;\nClient', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2440. cardCell.vertex = true;
  2441. var cardCell2 = new mxCell('&lt;&lt;requirement&gt;&gt;\nSupplier', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2442. cardCell2.vertex = true;
  2443. var edge1 = new mxCell('&lt;&lt;trace&gt;&gt;', new mxGeometry(0, 0, 0, 0), 'endArrow=open;edgeStyle=none;endSize=12;dashed=1;html=1;');
  2444. edge1.geometry.relative = true;
  2445. edge1.edge = true;
  2446. cardCell.insertEdge(edge1, true);
  2447. cardCell2.insertEdge(edge1, false);
  2448. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Trace Dependency');
  2449. }),
  2450. this.addEntry(dt + 'refine callout', function()
  2451. {
  2452. var cardCell = new mxCell('NamedElement', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2453. cardCell.vertex = true;
  2454. var cardCell2 = new mxCell('TracedFrom\n&lt;&lt;requirement&gt;&gt; ReqA', new mxGeometry(200, 0, 160, 60), 'shape=note;size=15;align=left;spacingLeft=5;html=1;whiteSpace=wrap;align=center;');
  2455. cardCell2.vertex = true;
  2456. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;');
  2457. edge1.geometry.relative = true;
  2458. edge1.edge = true;
  2459. cardCell.insertEdge(edge1, true);
  2460. cardCell2.insertEdge(edge1, false);
  2461. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Refine Callout');
  2462. }),
  2463. this.addEntry(dt + 'trace callout', function()
  2464. {
  2465. var cardCell = new mxCell('TracedTo\nNamedElement', new mxGeometry(0, 0, 160, 60), 'shape=note;size=15;align=left;spacingLeft=5;html=1;whiteSpace=wrap;align=center;');
  2466. cardCell.vertex = true;
  2467. var cardCell2 = new mxCell('&lt;&lt;requirement&gt;&gt;\nReqA', new mxGeometry(240, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2468. cardCell2.vertex = true;
  2469. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;edgeStyle=none;dashed=1;html=1;');
  2470. edge1.geometry.relative = true;
  2471. edge1.edge = true;
  2472. cardCell.insertEdge(edge1, true);
  2473. cardCell2.insertEdge(edge1, false);
  2474. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 360, 60, 'Trace Callout');
  2475. })
  2476. ];
  2477. this.addPalette('sysmlRequirements', 'SysML / Requirements', expand || false, mxUtils.bind(this, function(content)
  2478. {
  2479. for (var i = 0; i < fns.length; i++)
  2480. {
  2481. content.appendChild(fns[i](content));
  2482. }
  2483. }));
  2484. };
  2485. Sidebar.prototype.addSysMLProfilesPalette = function(expand)
  2486. {
  2487. var s = 'shape=mxgraph.sysml.';
  2488. var gn = '';
  2489. var dt = 'sysml profile ';
  2490. var sb = this;
  2491. var fns = [
  2492. this.createVertexTemplateEntry('shape=rect;html=1;whiteSpace=wrap;align=center;',
  2493. 160, 80, '&lt;&lt;stereotype&gt;&gt;\nStereotypeName', 'Stereotype', null, null, this.getTagsForStencil(gn, '', dt + 'stereotype').join(' ')),
  2494. this.createVertexTemplateEntry('shape=rect;html=1;whiteSpace=wrap;align=center;',
  2495. 160, 80, '&lt;&lt;metaclass&gt;&gt;\nMetaClassName', 'Metaclass', null, null, this.getTagsForStencil(gn, '', dt + 'metaclass').join(' ')),
  2496. this.createVertexTemplateEntry('shape=folder;tabWidth=80;tabHeight=20;tabPosition=left;html=1;whiteSpace=wrap;align=center;',
  2497. 160, 100, '&lt;&lt;profile&gt;&gt;\nProfileName', 'Profile', null, null, this.getTagsForStencil(gn, '', dt + 'profile').join(' ')),
  2498. this.createVertexTemplateEntry('shape=folder;tabWidth=80;tabHeight=20;tabPosition=left;html=1;whiteSpace=wrap;align=center;',
  2499. 160, 100, '&lt;&lt;modelLibrary&gt;&gt;\nLibraryName', 'Model Library', null, null, this.getTagsForStencil(gn, '', dt + 'model library').join(' ')),
  2500. this.addEntry(dt + 'extension', function()
  2501. {
  2502. var cardCell = new mxCell('&lt;&lt;metaclass&gt;&gt;\nMetaClassName', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2503. cardCell.vertex = true;
  2504. var cardCell2 = new mxCell('&lt;&lt;stereotype&gt;&gt;\nStereotypeName', new mxGeometry(0, 120, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2505. cardCell2.vertex = true;
  2506. var edge1 = new mxCell('{required}', new mxGeometry(0, 0, 0, 0), 'endArrow=block;html=1;endFill=1;edgeStyle=none;endSize=12;labelBackgroundColor=none;align=left;');
  2507. edge1.geometry.relative = true;
  2508. edge1.edge = true;
  2509. cardCell.insertEdge(edge1, false);
  2510. cardCell2.insertEdge(edge1, true);
  2511. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 120, 180, 'Extension');
  2512. }),
  2513. this.addEntry(dt + 'generalization', function()
  2514. {
  2515. var cardCell = new mxCell('&lt;&lt;stereotype&gt;&gt;\nStereotypeName', new mxGeometry(0, 0, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2516. cardCell.vertex = true;
  2517. var cardCell2 = new mxCell('&lt;&lt;stereotype&gt;&gt;\nStereotypeName', new mxGeometry(0, 120, 120, 60), 'shape=rect;html=1;whiteSpace=wrap;align=center;');
  2518. cardCell2.vertex = true;
  2519. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=block;html=1;endFill=0;edgeStyle=none;endSize=12;labelBackgroundColor=none;align=left;');
  2520. edge1.geometry.relative = true;
  2521. edge1.edge = true;
  2522. cardCell.insertEdge(edge1, false);
  2523. cardCell2.insertEdge(edge1, true);
  2524. return sb.createVertexTemplateFromCells([cardCell, cardCell2, edge1], 120, 180, 'Generalization');
  2525. }),
  2526. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=bottom;',
  2527. 160, 0, '&lt;&lt;apply&gt;&gt;{strict}', 'Profile Application', null, this.getTagsForStencil(gn, '', dt + 'profile application').join(' ')),
  2528. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;dashed=1;verticalAlign=top;',
  2529. 160, 0, '&lt;&lt;reference&gt;&gt;', 'Metamodel Reference', null, this.getTagsForStencil(gn, '', dt + 'metamodel reference').join(' ')),
  2530. this.createEdgeTemplateEntry('edgeStyle=none;html=1;endArrow=open;endSize=12;verticalAlign=bottom;',
  2531. 160, 0, 'propertyName', 'Unidirectional Association', null, this.getTagsForStencil(gn, '', dt + 'unidirectional association').join(' ')),
  2532. ];
  2533. this.addPalette('sysmlProfiles', 'SysML / Profiles', expand || false, mxUtils.bind(this, function(content)
  2534. {
  2535. for (var i = 0; i < fns.length; i++)
  2536. {
  2537. content.appendChild(fns[i](content));
  2538. }
  2539. }));
  2540. };
  2541. Sidebar.prototype.addSysMLStereotypesPalette = function(expand)
  2542. {
  2543. var s = 'html=1;shape=mxgraph.sysml.';
  2544. var gn = '';
  2545. var dt = 'sysml stereotype ';
  2546. var sb = this;
  2547. var fns = [
  2548. this.addDataEntry(dt + 'note', 320, 150, 'Stereotype Note',
  2549. '3ZZdb5swFIZ/DZeVwCTRbgPpetNOkSLt3oETsGYwM4ck7NfvGDtQAkk7tdKkXkSx3/Nh8/Aa8MK4OD9pXuUvKgXphY9eGGul0I6KcwxSeswXqRduPMZ8+nns+41o0EX9imso8T0FzBYcuWzAKh5bSSqNKpJrbKWVV78bs6Wo4DoTpReu/ercTx9QVSQFI03CAQcR4YwPXIrM1NpQNHSlUeb+u7X3rwReUO9ITmc1ggaFbQU/eAF9bFw3bqsNCNd6q1UFGtuuONz8NAR2qEWZzaa/NBLFvZqYeL3VJFJKAi9HbVweZe2vMZBWDRob3RBW57wyw1IhGBrij5kFSzOueEJbeO4wb4ySYyFNlIbqCPog1YmmB0FeCKNTLhB2VGManMiK/XKUSjfuprU6yfnqCVQBqFtKcQUL6zz/JFLMndu+OS0HkeWuy0XjtZ1nfafBtzRw1p23cTix8aOEwmyUrTwWBj5dkqV9g6KGxFA+qBJ3LhqMuc1RcobeJLQS6A9ia100mHKbw7b4BGyLL4DNFVwedP8D43KCccsxnwWnVVOmYOoMW8n3ICOe/Mo6PVZS6e5Il+ZIGx4i4XLtcHVP2QjKdK11d35d3h36dn1IMxhhrVWjExgdHaSnNuDIFu+Ar0FyFMdx94+gXM28j+4inOJIeZ134X9nwT7/wl3pVglzqi5uDZZXbg2vbGhvh6u6wtdvY44oTYevB5v++uPiLw=='),
  2550. this.addDataEntry(dt + 'note', 320, 150, 'Stereotype Note',
  2551. 'rZRNj9owEIZ/jY8rJTGLet3Adi/daiWk3r1kSCw5tutMgPTXdxybZA2hXak9IMbvfNg8fjHjm/b84oRtXk0FivFnxjfOGAxRe96AUqzIZMX4lhVFRh9WfL2TzcdsZoUDjZ9pKELDUagegsKKtaLW0pLc4aCCvP7Z+yOVrXC11Iw/ZfY8LR/QWJLyRFNwwFlEOOODULL2vSFVzlMpquP3uPf7B0G0NLtUt6sOwYHBwcJ30cKUS/vSsc6DiKPfnLHgcBib+faHJ7BDJ3W9WP7aK5R/6tkQr78NKY1RIHQyJtZR1fs1BtLsrBXJhRRdI6wPtUHwNOQvv8offWzFno7wbcS89UqDrfJZCs0R3EGZEy0PkrzAy1MjEXbU4wecyIrTdlRKF3fXWqMUffUCpgV0A5XEhlVwXnaSFTbRbV+i1oCsmzjlookurOtp0uxbCqJ1l23Mb2z8rKD1By3WrOB5Rj8p0L5D0cHeUz4YjbuYzVNuS5Siobd72gncP2IbYja/5baEbfUfsK0W/v1XgJzpdQW+3jMEXT05N5pHG+19V4muGdNXuMIgqGpIOHSmd3tI3h6k9wIwucdP0HKgBMpjOn2JRWx9M9K74WLO/DHiu1DnVzjDqWLXFdHpGEuQaTk/36H84+v+Gw=='),
  2552. this.createVertexTemplateEntry('shape=rect;html=1;whiteSpace=wrap;align=center;', 160, 80,
  2553. '&lt;&lt;stereotypeName&gt;&gt;\n{PropertyName=ValueString;\nBooleanPropertyName}\nNodeName',
  2554. 'Stereotype (Node)', null, null, this.getTagsForStencil(gn, '', dt + 'node').join(' ')),
  2555. this.createVertexTemplateEntry('shape=rect;html=1;overflow=fill;whiteSpace=wrap;align=center;', 400, 100,
  2556. '<p style="margin:0px;margin-top:4px;text-align:center;">' +
  2557. '<b>NodeName</b><hr/></p>' +
  2558. '<p style="margin:0px;margin-left:10px;text-align:left;">' +
  2559. '&lt;&lt;stereotypeName&gt;&gt;{PropertyName=ValueString}ElementName<br/>' +
  2560. '&lt;&lt;stereotypeName&gt;&gt;{PropertyName=ValueString};<br/>' +
  2561. 'BooleanPropertyName<br/>' +
  2562. 'ElementName</p>',
  2563. 'Stereotype (Compartment)', null, null, this.getTagsForStencil(gn, '', dt + 'compartment').join(' ')),
  2564. this.addDataEntry(dt + 'edge', 200, 180, 'Stereotype (Edge)',
  2565. '3VTBboMwDP2a3CmZ2vOgXU+bKlXaPQM3iRYSZEwp+/oFCO2ytVJ32WEHJD8/G/OeQxjPq9MWRa2eXQmG8Q3jOTpHU1SdcjCGpYkuGV+zNE38w9KnG+xiZJNaIFi6pyGdGo7CtDBlNgaqoTldspQvEsazF1HBVNZQb0JZo0Q9hAiFH5QdnKV9YBceK6pMCDulCfa1KAau80p9ThgtrYeFnwToE+EzAAlON6WMqaBjC64Cwt6XdLokFSqC3ESBliq0LUNONBOW59aLMT4I3lz3if8Dn/pvHv2Fbw8/fPOGiWrQZmjU8xU1XiRQ72CyMlAyKpzR7DpbZTt0tXekH7v4+nUYtifUVsalmXMGhI3KV+udIHV1dWDLR0TXeWSdhXhbUEqYFxlYI97AZKJ4l+haW+bOOLyw8yoNHK4dhBHrjxEm50UPU6I1N67FAqIzSQIlUPQ733EYEIwgfYzf/otNe3i5pUYuusQ+AQ=='),
  2566. this.addEntry(dt + 'compartment', function()
  2567. {
  2568. var cell1 = new mxCell('', new mxGeometry(0, 0, 300, 120), 'fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;marginBottom=0;');
  2569. cell1.vertex = true;
  2570. var cell2 = new mxCell('&lt;&lt;stereotypeName&gt;&gt;', new mxGeometry(0, 0, 300, 16), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;spacingTop=3;fontStyle=1');
  2571. cell2.vertex = true;
  2572. cell1.insert(cell2);
  2573. var cell3 = new mxCell('NodeName', new mxGeometry(0, 0, 300, 18), 'html=1;align=center;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;fontStyle=1');
  2574. cell3.vertex = true;
  2575. cell1.insert(cell3);
  2576. var divider = new mxCell('', new mxGeometry(0, 0, 40, 8), 'line;strokeWidth=0.25;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  2577. divider.vertex = true;
  2578. cell1.insert(divider);
  2579. var cell4 = new mxCell('&lt;&lt;stereotypeName&gt;&gt;', new mxGeometry(0, 0, 300, 16), 'html=1;align=left;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;spacingLeft=10;');
  2580. cell4.vertex = true;
  2581. cell1.insert(cell4);
  2582. var cell5 = new mxCell('PropertyName=ValueString', new mxGeometry(0, 0, 300, 16), 'html=1;align=left;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;spacingLeft=10;');
  2583. cell5.vertex = true;
  2584. cell1.insert(cell5);
  2585. var cell6 = new mxCell('MultiPropertyName=ValueString, ValueString', new mxGeometry(0, 0, 300, 16), 'html=1;align=left;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;spacingLeft=10;');
  2586. cell6.vertex = true;
  2587. cell1.insert(cell6);
  2588. var cell7 = new mxCell('BooleanPropertyName', new mxGeometry(0, 0, 300, 16), 'html=1;align=left;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;spacingLeft=10;');
  2589. cell7.vertex = true;
  2590. cell1.insert(cell7);
  2591. var cell8 = new mxCell('', new mxGeometry(0, 0, 300, 14), 'html=1;align=left;spacing=0;verticalAlign=middle;strokeColor=none;fillColor=none;whiteSpace=wrap;');
  2592. cell8.vertex = true;
  2593. cell1.insert(cell8);
  2594. return sb.createVertexTemplateFromCells([cell1], 300, 120, 'Stereotype (Compartment)');
  2595. })
  2596. ];
  2597. this.addPalette('sysmlStereotypes', 'SysML / Stereotypes', expand || false, mxUtils.bind(this, function(content)
  2598. {
  2599. for (var i = 0; i < fns.length; i++)
  2600. {
  2601. content.appendChild(fns[i](content));
  2602. }
  2603. }));
  2604. };
  2605. })();