Extensions.js 332 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234
  1. /**
  2. * Handles paste from Lucidchart
  3. *
  4. * TODO: Move to dynamic loading minimized plugin.
  5. */
  6. (function()
  7. {
  8. // Global import transformation
  9. var scale = 0.6;
  10. var dx = 0;
  11. var dy = 0;
  12. var arcSize = 6;
  13. var edgeStyle = 'html=1;';
  14. var vertexStyle = 'html=1;whiteSpace=wrap;';
  15. var labelStyle = 'text;html=1;resizable=0;labelBackgroundColor=#ffffff;';
  16. var c = "fillColor=#036897;strokeColor=#ffffff";
  17. var s = "shape=mxgraph.";
  18. var ss = "strokeColor=none;shape=mxgraph.";
  19. var cs = 'mxCompositeShape';
  20. // stencils with hardcoded rounding
  21. var hardRound = [
  22. 'GSDFDProcessBlock',
  23. 'GSDFDProcessBlock2',
  24. 'RoundedRectangleContainerBlock',
  25. 'UI2ButtonBlock',
  26. 'UMLStateBlock'
  27. ];
  28. // stencils with hardcoded default rounding (having absolute rounding of arcSize=8 without declaring anything)
  29. var hardDefRound = [
  30. 'ProcessBlock',
  31. 'UMLActivationBlock'
  32. ];
  33. // stencils with hardcoded stroke color
  34. var hardStroke = [
  35. 'VennPlainColor1',
  36. 'VennPlainColor2',
  37. 'VennPlainColor3',
  38. 'VennPlainColor4',
  39. 'VennPlainColor5',
  40. 'VennPlainColor6',
  41. 'VennPlainColor7',
  42. 'VennPlainColor8',
  43. 'VennGradientColor1',
  44. 'VennGradientColor2',
  45. 'VennGradientColor3',
  46. 'VennGradientColor4',
  47. 'VennGradientColor5',
  48. 'VennGradientColor6',
  49. 'VennGradientColor7',
  50. 'VennGradientColor8',
  51. 'UMLEndBlock',
  52. 'DefaultTextBlockNew',
  53. 'iOSButton'
  54. ];
  55. //stencils with hardCoded fill color
  56. var hardFill = [
  57. 'AWSAndroidBlock3',
  58. 'AWSiOSBlock3',
  59. 'AWSJavaBlock3',
  60. 'AWSJavaScript',
  61. 'AWSNetBlock3',
  62. 'AWSNodeJSBlock3',
  63. 'AWSPHPBlock3',
  64. 'AWSPythonBlock3',
  65. 'AWSRubyBlock3',
  66. 'AWSXamarin',
  67. 'AWSCLIBlock3',
  68. 'AWSEclipseToolkitBlock3',
  69. 'AWSVisualStudioToolkitBlock3',
  70. 'AWSWindowsPowershellToolkitBlock3',
  71. 'DefaultTextBlock',
  72. 'RectangleContainerBlock',
  73. 'UMLStartBlock',
  74. 'UMLEndBlock',
  75. 'DefaultTextBlockNew',
  76. 'UMLHForkJoinBlock',
  77. 'iOSButton'
  78. ];
  79. // stencils with hardcoded opacity
  80. var hardOpacity = [
  81. 'VennPlainColor1',
  82. 'VennPlainColor2',
  83. 'VennPlainColor3',
  84. 'VennPlainColor4',
  85. 'VennPlainColor5',
  86. 'VennPlainColor6',
  87. 'VennPlainColor7',
  88. 'VennPlainColor8',
  89. 'VennGradientColor1',
  90. 'VennGradientColor2',
  91. 'VennGradientColor3',
  92. 'VennGradientColor4',
  93. 'VennGradientColor5',
  94. 'VennGradientColor6',
  95. 'VennGradientColor7',
  96. 'VennGradientColor8'
  97. ];
  98. //stencils to rotate counter clockwise 90 degrees
  99. var rccw = [
  100. 'AEUSBBlock',
  101. 'AGSCutandpasteBlock',
  102. 'iOSDeviceiPadLandscape',
  103. 'iOSDeviceiPadProLandscape'
  104. ];
  105. //stencils to rotate clockwise 180 degrees
  106. var rcw2 = [
  107. 'fpDoor'
  108. ];
  109. var edgeStyleMap = {
  110. 'None': 'none',
  111. 'Arrow': 'block;endFill=1',
  112. 'Hollow Arrow': 'block;endFill=0',
  113. 'Open Arrow': 'open;',
  114. 'CFN ERD Zero Or More Arrow': 'ERzeroToMany;startSize=10',
  115. 'CFN ERD One Or More Arrow': 'ERoneToMany;startSize=10',
  116. 'CFN ERD Many Arrow': 'ERmany;startSize=10',
  117. 'CFN ERD Exactly One Arrow': 'ERmandOne;startSize=10',
  118. 'CFN ERD Zero Or One Arrow': 'ERzeroToOne;startSize=10',
  119. 'CFN ERD One Arrow': 'ERone;startSize=16',
  120. 'Generalization': 'block;endFill=0;startSize=12',
  121. 'Big Open Arrow': 'open;startSize=10',
  122. 'Asynch1': 'openAsync;flipH=1;startSize=10',
  123. 'Asynch2': 'openAsync;startSize=10',
  124. 'Aggregation': 'diamond;endFill=0;startSize=16',
  125. 'Composition': 'diamond;endFill=1;startSize=16',
  126. 'BlockEnd': 'none;endFill=1;startSize=16'
  127. };
  128. var styleMap = {
  129. //Standard
  130. 'DefaultTextBlockNew': 'text;strokeColor=none;fillColor=none',
  131. 'DefaultTextBlock': 'text;strokeColor=none;fillColor=none',
  132. 'DefaultSquareBlock': '',
  133. 'DefaultNoteBlock': 'shape=note;size=15',
  134. 'DefaultNoteBlockV2': 'shape=note;size=15',
  135. 'HotspotBlock': 'strokeColor=none;opacity=50',
  136. 'ImageSearchBlock2': 'shape=image',
  137. //Flowchart
  138. 'ProcessBlock': '',
  139. 'DecisionBlock': 'rhombus',
  140. 'TerminatorBlock': 'rounded=1;arcSize=50',
  141. 'PredefinedProcessBlock': 'shape=process',
  142. 'DocumentBlock': 'shape=document',
  143. 'MultiDocumentBlock': s + 'flowchart.multi-document',
  144. 'ManualInputBlock': 'shape=manualInput;size=15',
  145. 'PreparationBlock': 'shape=hexagon',
  146. 'DataBlock': 'shape=parallelogram',
  147. 'DataBlockNew': 'shape=parallelogram',
  148. 'DatabaseBlock': 'shape=cylinder',
  149. 'DirectAccessStorageBlock': s + 'flowchart.direct_data',
  150. 'InternalStorageBlock': 'shape=internalStorage;dx=10;dy=10',
  151. 'PaperTapeBlock': 'shape=tape;size=0.2',
  152. 'ManualOperationBlockNew': 'shape=trapezoid;flipV=1',
  153. 'DelayBlock': 'shape=delay',
  154. 'StoredDataBlock': 'shape=dataStorage',
  155. 'MergeBlock': 'triangle;direction=south',
  156. 'ConnectorBlock': 'ellipse',
  157. 'OrBlock': s + 'flowchart.summing_function',
  158. 'SummingJunctionBlock': s + 'flowchart.or',
  159. 'DisplayBlock': 'shape=display',
  160. 'OffPageLinkBlock': 'shape=offPageConnector',
  161. 'BraceNoteBlock': cs,
  162. 'NoteBlock': s + 'flowchart.annotation_1',
  163. //Containers
  164. 'AdvancedSwimLaneBlock': cs,
  165. 'AdvancedSwimLaneBlockRotated': cs, //TODO
  166. // 'AdvancedSwimLaneBlockRotated': 'swimlane;horizontal=0', //TODO
  167. 'RectangleContainerBlock': 'fillColor=none;container=1',
  168. 'DiamondContainerBlock': 'shape=rhombus;fillColor=none;container=1',
  169. 'RoundedRectangleContainerBlock': 'fillColor=none;container=1;rounded=1;absoluteArcSize=1;arcSize=24',
  170. 'CircleContainerBlock': 'shape=ellipse;fillColor=none;container=1',
  171. 'PillContainerBlock': 'arcSize=50;fillColor=none;container=1',
  172. // 'BraceBlock' NA
  173. // 'BracketBlock' NA
  174. // 'BraceBlockRotated' NA
  175. // 'BracketBlockRotated' NA
  176. //Geometric shapes
  177. 'IsoscelesTriangleBlock': 'triangle;direction=north',
  178. 'RightTriangleBlock': s + 'basic.orthogonal_triangle',
  179. 'PentagonBlock': s + 'basic.pentagon',
  180. 'HexagonBlock': 'shape=hexagon',
  181. 'OctagonBlock': s + 'basic.octagon',
  182. 'CrossBlock': 'shape=cross;size=0.6',
  183. 'CloudBlock': 'ellipse;shape=cloud',
  184. 'HeartBlock': s + 'basic.heart',
  185. 'RightArrowBlock': 'shape=singleArrow;arrowWidth=0.5;arrowSize=0.3',
  186. 'DoubleArrowBlock': 'shape=doubleArrow;arrowWidth=0.5;arrowSize=0.3',
  187. 'CalloutBlock': s + 'basic.rectangular_callout',
  188. 'ShapeCircleBlock': 'ellipse',
  189. 'ShapePolyStarBlock': s + 'basic.star',
  190. 'ShapeDiamondBlock': 'rhombus',
  191. //Misc
  192. 'UI2HotspotBlock' : 'opacity=50;strokeColor=none',
  193. //Android Devices
  194. 'AndroidDevice' : cs,
  195. //Android Dialogs
  196. 'AndroidAlertDialog' : cs,
  197. 'AndroidDateDialog' : cs,
  198. 'AndroidTimeDialog' : cs,
  199. //Android Blocks
  200. 'AndroidListItems' : cs,
  201. 'AndroidTabs' : cs,
  202. 'AndroidProgressBar' : cs,
  203. 'AndroidImageBlock' : cs,
  204. 'AndroidTextBlock' : cs,
  205. 'AndroidActionBar' : cs,
  206. // 'AndroidBrowserBar' NA
  207. //Android Inputs
  208. 'AndroidButton' : cs,
  209. 'AndroidTextBox' : cs,
  210. 'AndroidRadioButton' : cs,
  211. 'AndroidCheckBox' : cs,
  212. 'AndroidToggle' : cs,
  213. 'AndroidSlider' : cs,
  214. //Android Icons (not working properly, needs specific code)
  215. 'AndroidIconCheck': s + 'ios7.misc.check',
  216. // 'AndroidIconBack' NA
  217. 'AndroidIconCancel' : s + 'atlassian.x',
  218. 'AndroidIconCollapse': s + 'ios7.misc.up',
  219. 'AndroidIconExpand': s + 'ios7.misc.down',
  220. // 'AndroidIconForward' NA
  221. 'AndroidIconNext': s + 'ios7.misc.right',
  222. 'AndroidIconPrevious': s + 'ios7.misc.left',
  223. 'AndroidIconRefresh' : + 'ios7.icons.repeat',
  224. 'AndroidIconInformation': s + 'ios7.icons.info',
  225. // 'AndroidIconHelp' NA
  226. 'AndroidIconSearch': s + 'ios7.icons.looking_glass',
  227. 'AndroidIconSettings': s + 'ios7.icons.volume;direction=south',
  228. // 'AndroidIconDislike' NA
  229. // 'AndroidIconLike' NA
  230. // 'AndroidIconDelete' NA
  231. // 'AndroidIconCopy' NA
  232. // 'AndroidIconCut' NA
  233. // 'AndroidIconPaste' NA
  234. 'AndroidIconTrash': s + 'ios7.icons.trashcan',
  235. 'AndroidIconEmail': s + 'mockup.misc.mail2',
  236. 'AndroidIconNew': s + 'ios7.misc.flagged',
  237. // 'AndroidIconImage' NA
  238. // 'AndroidIconUndo' NA
  239. // 'AndroidIconSharing' NA
  240. // 'AndroidIconDownload' NA
  241. // 'AndroidIconError' NA
  242. // 'AndroidIconWarning' NA
  243. //iOS mockups
  244. 'iOSDeviceiPhoneSE': s + 'ios7.misc.iphone',
  245. 'iOSDeviceiPhone6s': s + 'ios7.misc.iphone',
  246. 'iOSDeviceiPhone6sPlus': s + 'ios7.misc.iphone',
  247. 'iOSDeviceiPadPortrait': s + 'ios7.misc.ipad7inch',
  248. 'iOSDeviceiPadLandscape': s + 'ios7.misc.ipad7inch',
  249. 'iOSDeviceiPadProPortrait': s + 'ios7.misc.ipad7inch',
  250. 'iOSDeviceiPadProLandscape': s + 'ios7.misc.ipad10inch',
  251. //iOS UI components
  252. 'iOSButton': 'fillColor=none;strokeColor=none;',
  253. 'iOSSegmentedControl' : cs, //TODO
  254. 'iOSStepper': s + 'ios7.misc.adjust',
  255. 'iOSToggle': s + 'ios7ui.onOffButton;buttonState=on;strokeColor2=#aaaaaa;fillColor2=#ffffff',
  256. 'iOSSlider': cs,
  257. 'iOSProgressBar': cs,
  258. 'iOSPageControls': cs,
  259. 'iOSStatusBar' : cs,
  260. 'iOSSearchBar' : cs,
  261. 'iOSNavBar' : cs,
  262. 'iOSTabs' : cs,
  263. 'iOSUniversalKeyboard': s + 'ios.iKeybLett',
  264. 'iOSDatePicker' : cs,
  265. 'iOSTimePicker' : cs,
  266. 'iOSCountdownPicker' : cs,
  267. 'iOSBasicCell' : cs,
  268. 'iOSSubtitleCell' : cs,
  269. 'iOSRightDetailCell' : cs,
  270. 'iOSLeftDetailCell' : cs,
  271. 'iOSTableGroupedSectionBreak' : cs,
  272. 'iOSTablePlainHeaderFooter' : cs,
  273. //Mind Map
  274. 'MindMapBlock' : '',
  275. 'MindMapStadiumBlock' : 'arcSize=50',
  276. 'MindMapCloud' : 'shape=cloud',
  277. 'MindMapCircle' : 'shape=ellipse',
  278. 'MindMapIsoscelesTriangleBlock' : 'shape=triangle;direction=north',
  279. 'MindMapDiamondBlock' : 'shape=rhombus',
  280. 'MindMapPentagonBlock' : s + 'basic.pentagon',
  281. 'MindMapHexagonBlock' : 'shape=hexagon',
  282. 'MindMapOctagonBlock' : s + 'basic.octagon',
  283. 'MindMapCrossBlock' : s + 'basic.cross2;dx=20',
  284. //Entity Relationship
  285. 'ERDEntityBlock' : cs,
  286. 'ERDEntityBlock2' : cs,
  287. 'ERDEntityBlock3' : cs,
  288. 'ERDEntityBlock4' : cs,
  289. //Site Maps
  290. 'SMPage' : 'shape=mxgraph.sitemap.page',
  291. 'SMHome' : 'shape=mxgraph.sitemap.home',
  292. 'SMGallery' : 'shape=mxgraph.sitemap.gallery',
  293. 'SMShopping' : 'shape=mxgraph.sitemap.shopping',
  294. 'SMMap' : 'shape=mxgraph.sitemap.map',
  295. 'SMAthletics' : 'shape=mxgraph.sitemap.sports',
  296. 'SMLogin' : 'shape=mxgraph.sitemap.login',
  297. 'SMPrint' : 'shape=mxgraph.sitemap.print',
  298. 'SMScript' : 'shape=mxgraph.sitemap.script',
  299. 'SMSearch' : 'shape=mxgraph.sitemap.search',
  300. 'SMSettings' : 'shape=mxgraph.sitemap.settings',
  301. 'SMSitemap' : 'shape=mxgraph.sitemap.sitemap',
  302. 'SMSuccess' : 'shape=mxgraph.sitemap.success',
  303. 'SMVideo' : 'shape=mxgraph.sitemap.video',
  304. 'SMAudio' : 'shape=mxgraph.sitemap.audio',
  305. 'SMBlog' : 'shape=mxgraph.sitemap.blog',
  306. 'SMCalendar' : 'shape=mxgraph.sitemap.calendar',
  307. 'SMChart' : 'shape=mxgraph.sitemap.chart',
  308. 'SMCloud' : 'shape=mxgraph.sitemap.cloud',
  309. 'SMDocument' : 'shape=mxgraph.sitemap.document',
  310. 'SMDownload' : 'shape=mxgraph.sitemap.download',
  311. 'SMError' : 'shape=mxgraph.sitemap.error',
  312. 'SMForm' : 'shape=mxgraph.sitemap.form',
  313. 'SMGame' : 'shape=mxgraph.sitemap.game',
  314. 'SMJobs' : 'shape=mxgraph.sitemap.jobs',
  315. 'SMLucid' : 'shape=mxgraph.sitemap.page',
  316. 'SMNewspress' : 'shape=mxgraph.sitemap.news',
  317. 'SMPhoto' : 'shape=mxgraph.sitemap.photo',
  318. 'SMPortfolio' : 'shape=mxgraph.sitemap.portfolio',
  319. 'SMPricing' : 'shape=mxgraph.sitemap.pricing',
  320. 'SMProfile' : 'shape=mxgraph.sitemap.profile',
  321. 'SMSlideshow' : 'shape=mxgraph.sitemap.slideshow',
  322. 'SMUpload' : 'shape=mxgraph.sitemap.upload',
  323. //UML Class Diagram
  324. 'UMLClassBlock': cs,
  325. 'UMLActiveClassBlock': 'shape=process',
  326. 'UMLMultiplicityBlock' : cs,
  327. 'UMLPackageBlock': 'shape=folder;tabPosition=left',
  328. 'UMLConstraintBlock' : cs,
  329. 'UMLNoteBlock': 'shape=note;size=15',
  330. 'UMLTextBlock': cs,
  331. //UML Use Case
  332. 'UMLActorBlock': 'shape=umlActor;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;whiteSpace=nowrap',
  333. 'UMLUseCaseBlock': 'shape=ellipse',
  334. 'UMLCircleContainerBlock': 'shape=ellipse;container=1',
  335. 'UMLRectangleContainerBlock': 'container=1',
  336. //UML State/Activity
  337. 'UMLOptionLoopBlock' : s + 'sysml.package2;xSize=90;overflow=fill',
  338. 'UMLAlternativeBlock2' : s + 'sysml.package2;xSize=90;overflow=fill',
  339. 'UMLStartBlock' : 'shape=ellipse;fillColor=#000000',
  340. 'UMLStateBlock' : 'rounded=1;arcSize=20',
  341. 'UMLDecisionBlock' : 'shape=rhombus;',
  342. 'UMLHForkJoinBlock' : 'fillColor=#000000',
  343. 'UMLVForkJoinBlock' : 'fillColor=#000000',
  344. 'UMLFlowFinalBlock' : s + 'flowchart.or',
  345. 'UMLHistoryStateBlock' : 'shape=ellipse',
  346. 'UMLEndBlock' : s + 'bpmn.shape;outline=end;symbol=terminate;strokeColor=#000000;fillColor=#ffffff',
  347. 'UMLObjectBlock' : '',
  348. 'UMLSendSignalBlock' : s + 'sysml.sendSigAct',
  349. 'UMLReceiveSignalBlock' : s + 'sysml.accEvent;flipH=1',
  350. 'UMLAcceptTimeEventActionBlock' : s + 'sysml.timeEvent',
  351. // 'UMLInterruptingEdgeBlock' NA
  352. 'UMLOffPageLinkBlock' : s + 'sysml.sendSigAct;direction=south',
  353. // 'UMLExpansionNodeBlock' NA
  354. 'UMLMultiLanePoolBlock' : cs, //TODO
  355. 'UMLMultiLanePoolRotatedBlock' : cs, //TODO
  356. 'UMLMultidimensionalSwimlane' : cs, //TODO
  357. //UML Sequence
  358. 'UMLActivationBlock' : '',
  359. 'UMLDeletionBlock' : s + 'sysml.x;strokeWidth=4',
  360. // 'UMLAlternativeBlock' NA
  361. 'UMLSeqEntityBlock' : s + 'electrical.radio.microphone_1;direction=north',
  362. // 'UMLBoundaryBlock' NA
  363. // 'UMLControlBlock'NA
  364. //UML Component
  365. 'UMLComponentBlock' : 'shape=component;align=left;spacingLeft=36',
  366. 'UMLNodeBlock' : 'shape=cube;size=12;flipH=1',
  367. 'UMLComponentInterfaceBlock' : 'shape=ellipse',
  368. 'UMLComponentBoxBlock' : cs, //TODO
  369. // 'UMLAssemblyConnectorBlock' NA
  370. 'UMLProvidedInterfaceBlock' : 'shape=lollipop;direction=south',
  371. 'UMLRequiredInterfaceBlock' : 'shape=requires;direction=north',
  372. //UML Deployment
  373. //UML Entity Relationship
  374. 'UMLEntityBlock' : '',
  375. 'UMLWeakEntityBlock' : 'shape=ext;double=1',
  376. 'UMLAttributeBlock' : 'shape=ellipse',
  377. 'UMLMultivaluedAttributeBlock' : 'shape=doubleEllipse',
  378. 'UMLRelationshipBlock' : 'shape=rhombus',
  379. 'UMLWeakRelationshipBlock' : 'shape=rhombus;double=1',
  380. //BPMN 2.0
  381. 'BPMNActivity' : cs,
  382. 'BPMNEvent' : cs,
  383. 'BPMNChoreography' : cs, //TODO
  384. 'BPMNConversation' : cs,
  385. 'BPMNGateway' : cs,
  386. 'BPMNData' : cs,
  387. 'BPMNDataStore' : 'shape=datastore',
  388. 'BPMNAdvancedPoolBlock' : cs, //TODO
  389. 'BPMNAdvancedPoolBlockRotated' : cs, //TODO
  390. 'BPMNBlackPool' : cs,
  391. //Data Flow
  392. 'DFDExternalEntityBlock' : cs,
  393. 'DFDExternalEntityBlock2' : '',
  394. 'YDMDFDProcessBlock' : 'shape=ellipse',
  395. 'YDMDFDDataStoreBlock' : 'shape=partialRectangle;right=0;left=0',
  396. 'GSDFDProcessBlock' : 'shape=swimlane;rounded=1;arcSize=10',
  397. 'GSDFDProcessBlock2' : 'rounded=1;arcSize=10;',
  398. 'GSDFDDataStoreBlock' : cs,
  399. 'GSDFDDataStoreBlock2' : 'shape=partialRectangle;right=0',
  400. //Org Chart
  401. 'OrgBlock' : '',
  402. //Tables
  403. 'DefaultTableBlock' : cs, //TODO
  404. //Value Stream Mapping
  405. //Processes
  406. 'VSMCustomerSupplierBlock' : s + 'lean_mapping.outside_sources',
  407. 'VSMDedicatedProcessBlock' : cs,
  408. 'VSMSharedProcessBlock' : cs,
  409. 'VSMWorkcellBlock' : cs,
  410. 'VSMDatacellBlock' : cs,
  411. //Materials
  412. 'VSMInventoryBlock' : cs,
  413. 'VSMSupermarketBlock' : cs,
  414. 'VSMPhysicalPullBlock' : s + 'lean_mapping.physical_pull;direction=south',
  415. 'VSMFIFOLaneBlock' : cs,
  416. 'VSMSafetyBufferStockBlock' : cs,
  417. //Shipments
  418. 'VSMExternalShipmentAirplaneBlock' : s + 'lean_mapping.airplane_7',
  419. 'VSMExternalShipmentForkliftBlock' : s + 'lean_mapping.move_by_forklift',
  420. 'VSMExternalShipmentTruckBlock' : s + 'lean_mapping.truck_shipment',
  421. 'VSMExternalShipmentBoatBlock' : s + 'lean_mapping.boat_shipment',
  422. //Information
  423. 'VSMProductionControlBlock' : cs,
  424. 'VSMOtherInformationBlock' : '',
  425. // 'VSMHeijyunkaBoxBlock' NA
  426. 'VSMSequencedPullBallBlock' : s + 'lean_mapping.sequenced_pull_ball',
  427. 'VSMMRPERPBlock' : s + 'lean_mapping.mrp_erp;whiteSpace=wrap',
  428. 'VSMLoadLevelingBlock' : s + 'lean_mapping.load_leveling',
  429. 'VSMGoSeeBlock' : s + 'lean_mapping.go_see_production_scheduling;flipH=1',
  430. 'VSMGoSeeProductionBlock' : cs,
  431. 'VSMVerbalInfoBlock' : s + 'lean_mapping.verbal',
  432. //Value Stream Mapping
  433. 'VSMKaizenBurstBlock' : s + 'lean_mapping.kaizen_lightening_burst',
  434. 'VSMOperatorBlock' : s + 'lean_mapping.operator;flipV=1',
  435. 'VSMTimelineBlock' : cs, //TODO
  436. 'VSMQualityProblemBlock' : s + 'lean_mapping.quality_problem',
  437. //Kanban
  438. 'VSMProductionKanbanSingleBlock' : 'shape=card;size=18;flipH=1;',
  439. 'VSMProductionKanbanBatchBlock' : cs,
  440. 'VSMWithdrawalKanbanBlock' : s + 'lean_mapping.withdrawal_kanban',
  441. // 'VSMWithdrawalKanbanBatchBlock' NA
  442. 'VSMSignalKanbanBlock' : 'shape=triangle;direction=south',
  443. 'VSMKanbanPostBlock' : s + 'lean_mapping.kanban_post',
  444. //Arrows
  445. 'VSMShipmentArrow': 'shape=singleArrow;arrowWidth=0.5;arrowSize=0.13',
  446. 'VSMPushArrow' : s + 'lean_mapping.push_arrow',
  447. // 'VSMElectronicInformationArrow' : s + 'lean_mapping.electronic_info_flow_edge;', //TODO
  448. //EC2
  449. 'AWSElasticComputeCloudBlock2' : cs,
  450. // 'AWSElasticComputeCloudBlock2' : ss + 'aws3.ec2;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  451. 'AWSInstanceBlock2' : ss + 'aws3.instance',
  452. 'AWSInstancesBlock2' : ss + 'aws3.instances;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  453. 'AWSAMIBlock2' : ss + 'aws3.ami;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  454. 'AWSDBonInstanceBlock2' : ss + 'aws3.db_on_instance;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  455. 'AWSInstanceCloudWatchBlock2' : ss + 'aws3.instance_with_cloudwatch;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  456. 'AWSElasticIPBlock2' : ss + 'aws3.elastic_ip;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  457. 'AWSHDFSClusterBlock2' : ss + 'aws3.hdfs_cluster;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  458. 'AWSAutoScalingBlock2' : ss + 'aws3.auto_scaling;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  459. 'AWSEC2OptimizedInstance2' : ss + 'aws3.optimized_instance;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  460. 'AWSAmazonEC2(Spotinstance)' : ss + 'aws3.spot_instance;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  461. 'AWSAmazonECR' : ss + 'aws3.ecr;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  462. 'AWSAmazonECS' : ss + 'aws3.ecs;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  463. 'AWSLambda2' : ss + 'aws3.lambda;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  464. 'AWSElasticLoadBalancing' : ss + 'aws3.elastic_load_balancing;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  465. //Networking
  466. 'AWSElasticLoadBlock2' : ss + 'aws3.classic_load_balancer;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  467. 'AWSDirectConnectBlock3' : ss + 'aws3.direct_connect;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  468. 'AWSElasticNetworkBlock2' : ss + 'aws3.elastic_network_interface;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  469. 'AWSRoute53Block2' : cs,
  470. 'AWSHostedZoneBlock2' : ss + 'aws3.hosted_zone;fontColor=#FFFFFF;fontStyle=1',
  471. 'AWSRouteTableBlock2' : ss + 'aws3.route_table;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  472. 'AWSVPCBlock2' : ss + 'aws3.vpc;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  473. 'AWSVPNConnectionBlock2' : ss + 'aws3.vpn_connection;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  474. 'AWSVPNGatewayBlock2' : ss + 'aws3.vpn_gateway;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  475. 'AWSCustomerGatewayBlock2' : ss + 'aws3.customer_gateway;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  476. 'AWSCustomerGatewayBlock3' : ss + 'aws3.customer_gateway;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  477. 'AWSInternetGatewayBlock2' : ss + 'aws3.internet_gateway;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  478. 'AWSRouterBlock2' : ss + 'aws3.router;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  479. 'AWSRouterBlock3' : ss + 'aws3.router;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  480. 'AWSAmazonVPC(endpoints)' : ss + 'aws3.endpoints;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  481. 'AWSAmazonVPC(flowlogs)' : ss + 'aws3.flow_logs;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  482. 'AWSAmazonVPC(VPCNATgateway)' : ss + 'aws3.vpc_nat_gateway;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  483. 'AWSVPCPeering3' : ss + 'aws3.vpc_peering;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  484. //S3
  485. 'AWSSimpleStorageBlock2' : ss + 'aws3.s3;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  486. 'AWSBucketBlock2' : ss + 'aws3.bucket;fontStyle=1;fontColor=#ffffff',
  487. 'AWSBuckethWithObjectsBlock2' : ss + 'aws3.bucket_with_objects;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  488. 'AWSObjectBlock2' : ss + 'aws3.object;fontStyle=1;fontColor=#ffffff',
  489. 'AWSImportExportBlock2' : ss + 'aws3.import_export;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  490. 'AWSStorageGatewayBlock2' : ss + 'aws3.storage_gateway;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  491. 'AWSElasticBlockStorageBlock2' : ss + 'aws3.volume;fontStyle=1;fontColor=#ffffff',
  492. 'AWSVolumeBlock3' : ss + 'aws3.volume;fontStyle=1;fontColor=#ffffff',
  493. 'AWSSnapshotBlock2' : ss + 'aws3.snapshot;fontStyle=1;fontColor=#ffffff',
  494. 'AWSGlacierArchiveBlock3' : ss + 'aws3.archive;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  495. 'AWSGlacierVaultBlock3' : ss + 'aws3.vault;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  496. 'AWSAmazonEFS' : ss + 'aws3.efs;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  497. 'AWSGlacierBlock2' : ss + 'aws3.glacier;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  498. 'AWSAWSImportExportSnowball' : ss + 'aws3.snowball;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  499. 'AWSStorageGatewayCachedVolumn2' : ss + 'aws3.cached_volume;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  500. 'AWSStorageGatewayNon-CachedVolumn2' : ss + 'aws3.non_cached_volume;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  501. 'AWSStorageGatewayVirtualTapeLibrary2' : ss + 'aws3.virtual_tape_library;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  502. //Content Delivery
  503. 'AWSCloudFrontBlock2' : ss + 'aws3.cloudfront;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  504. 'AWSDownloadDistBlock2' : ss + 'aws3.download_distribution;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  505. 'AWSStreamingBlock2' : ss + 'aws3.streaming_distribution;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  506. 'AWSEdgeLocationBlock2' : ss + 'aws3.edge_location;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  507. //Database
  508. 'AWSItemBlock2' : ss + 'aws3.item;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  509. 'AWSItemsBlock2' : ss + 'aws3.items;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  510. 'AWSAttributeBlock2' : ss + 'aws3.attribute;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  511. 'AWSAttributesBlock2' : ss + 'aws3.attributes;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  512. 'AWSRDBSBlock2' : cs,
  513. 'AWSRDSInstanceBlock2' : ss + 'aws3.rds_db_instance;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  514. 'AWSRDSStandbyBlock2' : ss + 'aws3.rds_db_instance_standby_multi_az;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  515. 'AWSRDSInstanceReadBlock2' : ss + 'aws3.rds_db_instance_read_replica;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  516. 'AWSOracleDBBlock2' : ss + 'aws3.oracle_db_instance;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  517. 'AWSMySQLDBBlock2' : ss + 'aws3.mysql_db_instance;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  518. 'AWSDynamoDBBlock2' : ss + 'aws3.dynamo_db;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  519. 'AWSSimpleDatabaseBlock3' : ss + 'aws2.database.simpledb;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  520. 'AWSSimpleDatabaseDomainBlock3' : ss + 'aws2.database.simpledb_domain;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  521. 'AWSTableBlock2' : ss + 'aws3.table;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  522. 'AWSAmazonRedShiftBlock3' : ss + 'aws3.redshift;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  523. 'AWSElastiCacheNodeBlock2' : ss + 'aws3.cache_node;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  524. 'AWSElastiCacheBlock2' : ss + 'aws3.elasticache;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  525. 'AWSDynamoDBGlobalSecondaryIndexes2' : ss + 'aws3.global_secondary_index;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  526. 'AWSAmazonElastiCacheMemcache2' : ss + 'aws3.memcached;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  527. 'AWSAmazonElastiCacheRedis2' : ss + 'aws3.redis;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  528. 'AWSAmazonRDSMSSQLInstance2' : ss + 'aws3.ms_sql_instance_2;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  529. 'AWSMSSQLDBBlock3' : ss + 'aws3.ms_sql_instance;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  530. 'AWSAmazonRDSMySQLDBInstance2' : ss + 'aws3.mysql_db_instance_2;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  531. 'AWSAmazonRDSOracleDBInstance2' : ss + 'aws3.oracle_db_instance_2;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  532. 'AWSRDSReplicasetswithPIOP2' : ss + 'aws3.piop;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  533. 'AWSAmazonRDSPostgreSQL2' : ss + 'aws3.postgre_sql_instance;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  534. 'AWSRDSMasterSQL2' : ss + 'aws3.sql_master;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  535. 'AWSRDSSlaveSQL2' : ss + 'aws3.sql_slave;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  536. 'AWSAmazonRedshift(densecomputenode)' : ss + 'aws3.dense_compute_node;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  537. 'AWSAmazonRedshift(densestoragenode)' : ss + 'aws3.dense_storage_node;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  538. 'AWSAWSDatabaseMigrationService' : ss + 'aws3.database_migration_service;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  539. //Security Identity
  540. 'AWSACM' : ss + 'aws3.certificate_manager;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  541. 'AWSAmazonInspector' : ss + 'aws3.inspector;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  542. 'AWSAWSCloudHSM' : ss + 'aws3.cloudhsm;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  543. 'AWSDirectoryService2' : ss + 'aws3.directory_service;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  544. 'AWSAWSKMS' : ss + 'aws3.kms;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  545. 'AWSAWSWAF' : ss + 'aws3.waf;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  546. 'AWSACM(certificate-manager)' : ss + 'aws3.certificate_manager_2;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  547. //App Services
  548. 'AWSSESBlock2' : ss + 'aws3.ses;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  549. 'AWSEmailBlock2' : ss + 'aws3.email;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  550. 'AWSSNSBlock2' : ss + 'aws3.sns;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  551. 'AWSSQSBlock3' : ss + 'aws3.sqs;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  552. 'AWSQueueBlock2' : ss + 'aws3.queue;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  553. 'AWSMessageBlock2' : ss + 'aws3.message;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  554. 'AWSDeciderBlock2' : ss + 'aws3.decider;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  555. 'AWSSWFBlock2' : ss + 'aws3.swf;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  556. 'AWSWorkerBlock2' : ss + 'aws3.worker;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  557. 'AWSCloudSearchBlock2' : ss + 'aws3.cloudsearch;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  558. 'AWSCloudSearchMetadataBlock3' : ss + 'aws3.search_documents;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  559. 'AWSElasticTranscoder3' : ss + 'aws3.elastic_transcoder;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  560. 'AWSAmazonAPIGateway' : ss + 'aws3.api_gateway;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  561. 'AWSAppStream2' : ss + 'aws3.appstream;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  562. //Deployment
  563. 'AWSCloudFormationBlock2' : ss + 'aws3.cloudformation;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  564. 'AWSDataPipelineBlock3' : ss + 'aws3.data_pipeline;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  565. 'AWSDataPipelineBlock2' : ss + 'aws3.data_pipeline;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  566. 'AWSTemplageBlock2' : ss + 'aws3.template;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  567. 'AWSStackBlock2' : ss + 'aws3.stack_aws_cloudformation;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  568. 'AWSBeanStockBlock2' : ss + 'aws3.elastic_beanstalk;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  569. 'AWSApplicationBlock2' : ss + 'aws3.application;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  570. 'AWSBeanstalkDeploymentBlock3' : ss + 'aws3.deployment;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  571. 'AWSIAMBlock3' : ss + 'aws3.iam;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  572. 'AWSIAMSTSBlock3' : ss + 'aws3.sts;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  573. 'AWSIAMAddonBlock2' : ss + 'aws3.add_on;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  574. 'AWSCloudWatchBlock3' : ss + 'aws3.cloudwatch;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  575. 'AWSCloudWatchAlarmBlock2' : ss + 'aws3.alarm;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  576. 'AWSIAMSecurityTokenService2' : ss + 'aws3.sts_2;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  577. 'AWSIAMDataEncryptionKey2' : ss + 'aws3.data_encryption_key;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  578. 'AWSIAMEncryptedData2' : ss + 'aws3.encrypted_data;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  579. 'AWSAWSIAM(long-termsecuritycredential)' : ss + 'aws3.long_term_security_credential;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  580. 'AWSIAMMFAToken2' : ss + 'aws3.mfa_token;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  581. 'AWSIAMPermissions2' : ss + 'aws3.permissions_2;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  582. 'AWSIAMRoles2' : ss + 'aws3.role;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  583. 'AWSAWSIAM(temporarysecuritycredential)' : ss + 'aws3.long_term_security_credential;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  584. 'AWSCloudTrail2' : ss + 'aws3.cloudtrail;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  585. 'AWSConfig2' : ss + 'aws3.config;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  586. 'AWSOpsWorksBlock3' : ss + 'aws3.opsworks;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  587. 'AWSAWSServiceCatalog' : ss + 'aws3.service_catalog;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  588. 'AWSTrustedAdvisor2' : ss + 'aws3.trusted_advisor;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  589. 'AWSOpsWorksApps2' : ss + 'aws3.apps;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  590. 'AWSOpsWorksDeployments2' : ss + 'aws3.deployments;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  591. 'AWSOpsWorksInstances2' : ss + 'aws3.instances_2;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  592. 'AWSOpsWorksLayers2' : ss + 'aws3.layers;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  593. 'AWSOpsWorksMonitoring2' : ss + 'aws3.monitoring;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  594. 'AWSOpsWorksPermissions2' : ss + 'aws3.permissions;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  595. 'AWSOpsWorksResources2' : ss + 'aws3.resources;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  596. 'AWSOpsWorksStack2' : ss + 'aws3.stack_aws_opsworks;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  597. //On-Demand
  598. 'AWSMechanicalTurkBlock3' : ss + 'aws3.mechanical_turk;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  599. 'AWSHumanITBlock2' : ss + 'aws3.human_intelligence_tasks_hit;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  600. 'AWSAssignmentTaskBlock2' : ss + 'aws3.requester;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  601. 'AWSWorkersBlock2' : ss + 'aws3.users;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  602. 'AWSRequesterBlock2' : ss + 'aws3.assignment_task;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  603. //SDKs
  604. 'AWSAndroidBlock3': ss + 'aws3.android;fillColor=#96BF3D;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  605. 'AWSiOSBlock3' : ss + 'aws3.android;fillColor=#CFCFCF;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  606. 'AWSJavaBlock3' : ss + 'aws3.android;fillColor=#EE472A;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  607. 'AWSJavaScript' : ss + 'aws3.android;fillColor=#205E00;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  608. 'AWSNetBlock3' : ss + 'aws3.android;fillColor=#115193;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  609. 'AWSNodeJSBlock3' : ss + 'aws3.android;fillColor=#8CC64F;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  610. 'AWSPHPBlock3' : ss + 'aws3.android;fillColor=#5A69A4;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  611. 'AWSPythonBlock3' : ss + 'aws3.android;fillColor=#FFD44F;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  612. 'AWSRubyBlock3' : ss + 'aws3.android;fillColor=#AE1F23;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  613. 'AWSXamarin' : ss + 'aws3.android;fillColor=#4090D7;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  614. 'AWSCLIBlock3' : ss + 'aws3.cli;fillColor=#444444;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  615. 'AWSEclipseToolkitBlock3' : ss + 'aws3.toolkit_for_eclipse;fillColor=#342074;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  616. 'AWSVisualStudioToolkitBlock3' : ss + 'aws3.toolkit_for_visual_studio;fillColor=#53B1CB;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  617. 'AWSWindowsPowershellToolkitBlock3' : ss + 'aws3.toolkit_for_windows_powershell;fillColor=#737373;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  618. //Analytics
  619. 'AWSAmazonElasticsearchService' : ss + 'aws3.elasticsearch_service;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  620. 'AWSElasticMapReduceBlock2' : ss + 'aws3.emr;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  621. 'AWSClusterBlock2' : ss + 'aws3.emr_cluster;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  622. 'AWSEMREngine2' : ss + 'aws3.emr_engine;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  623. 'AWSEMRMapRM3Engine2' : ss + 'aws3.emr_engine_mapr_m3;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  624. 'AWSEMRMapRM5Engine2' : ss + 'aws3.emr_engine_mapr_m5;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  625. 'AWSEMRMapRM7Engine2' : ss + 'aws3.emr_engine_mapr_m7;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  626. 'AWSKinesis2' : ss + 'aws3.kinesis;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  627. 'AWSAmazonKinesis(AmazonKinesisAnalytics)' : ss + 'aws3.kinesis;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  628. 'AWSKinesisEnabledApp2' : ss + 'aws3.kinesis_enabled_app;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  629. 'AWSAmazonKinesis(AmazonKinesisFirehose)' : ss + 'aws3.kinesis_firehose;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  630. 'AWSAmazonKinesis(AmazonKinesisStreams)' : ss + 'aws3.kinesis_streams;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  631. 'AWSAmazonMachineLearning' : ss + 'aws3.machine_learning;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  632. 'AWSAmazonQuickSight' : ss + 'aws3.quicksight;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  633. //Mobile Services
  634. 'AWSCognito2' : ss + 'aws3.cognito;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  635. 'AWSMobileAnalytics2' : ss + 'aws3.mobile_analytics;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  636. 'AWSAWSDeviceFarm' : ss + 'aws3.device_farm;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  637. 'AWSAWSMobileHub' : ss + 'aws3.mobile_hub;gradientColor=#AD688A;gradientDirection=east;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  638. 'AWSTopicBlock2' : ss + 'aws3.topic_2;fontStyle=1;fontColor=#ffffff;verticalAlign=top;spacingTop=-5',
  639. 'AWSEmailNotificationBlock2' : ss + 'aws3.email_notification;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  640. 'AWSHTTPNotificationBlock2' : ss + 'aws3.http_notification;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  641. //Developer Tools
  642. 'AWSAWSCodeCommit' : ss + 'aws3.codecommit;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  643. 'AWSCodeDeploy2' : ss + 'aws3.codedeploy;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  644. 'AWSAWSCodePipeline' : ss + 'aws3.codepipeline;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  645. //Enterprise Application
  646. 'AWSWorkDocs2' : ss + 'aws3.workdocs;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  647. 'AWSAmazonWorkMail' : ss + 'aws3.workmail;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  648. 'AWSAmazonWorkSpaces2' : ss + 'aws3.workspaces;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  649. //Internet of Things
  650. 'AWSAWSIoT' : ss + 'aws3.aws_iot;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  651. 'AWSAWSIoT(action)' : ss + 'aws3.action;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  652. 'AWSAWSIoT(actuator)' : ss + 'aws3.actuator;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  653. 'AWSAWSIoT(certificate)' : ss + 'aws3.certificate;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  654. 'AWSAWSIoT(desiredstate)' : ss + 'aws3.desired_state;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  655. 'AWSAWSIoT(hardwareboard)' : ss + 'aws3.hardware_board;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  656. 'AWSAWSIoT(HTTP2protocol)' : ss + 'aws3.http_2_protocol;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  657. 'AWSAWSIoT(HTTPprotocol)' : ss + 'aws3.http_protocol;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  658. 'AWSAWSIoT(MQTTprotocol)' : ss + 'aws3.mqtt_protocol;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  659. 'AWSAWSIoT(policy)' : ss + 'aws3.policy;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  660. 'AWSAWSIoT(reportedstate)' : ss + 'aws3.reported_state;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  661. 'AWSAWSIoT(rule)' : ss + 'aws3.rule;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  662. 'AWSAWSIoT(sensor)' : ss + 'aws3.sensor;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  663. 'AWSAWSIoT(servo)' : ss + 'aws3.servo;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  664. 'AWSAWSIoT(shadow)' : ss + 'aws3.shadow;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  665. 'AWSAWSIoT(simulator)' : ss + 'aws3.simulator;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  666. 'AWSAWSIoT(thingbank)' : ss + 'aws3.bank;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  667. 'AWSAWSIoT(thingbicycle)' : ss + 'aws3.bicycle;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  668. 'AWSAWSIoT(thingcamera)' : ss + 'aws3.camera;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  669. 'AWSAWSIoT(thingcar)' : ss + 'aws3.car;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  670. 'AWSAWSIoT(thingcart)' : ss + 'aws3.cart;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  671. 'AWSAWSIoT(thingcoffeepot)' : ss + 'aws3.coffee_pot;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  672. 'AWSAWSIoT(thingdoorlock)' : ss + 'aws3.door_lock;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  673. 'AWSAWSIoT(thingfactory)' : ss + 'aws3.factory;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  674. 'AWSAWSIoT(thinggeneric)' : ss + 'aws3.generic;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  675. 'AWSAWSIoT(thinghouse)' : ss + 'aws3.house;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  676. 'AWSAWSIoT(thinglightbulb)' : ss + 'aws3.lightbulb;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  677. 'AWSAWSIoT(thingmedicalemergency)' : ss + 'aws3.medical_emergency;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  678. 'AWSAWSIoT(thingpoliceemergency)' : ss + 'aws3.police_emergency;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  679. 'AWSAWSIoT(thingthermostat)' : ss + 'aws3.thermostat;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  680. 'AWSAWSIoT(thingtravel)' : ss + 'aws3.travel;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  681. 'AWSAWSIoT(thingutility)' : ss + 'aws3.utility;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  682. 'AWSAWSIoT(thingwindfarm)' : ss + 'aws3.windfarm;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  683. 'AWSAWSIoT(topic)' : ss + 'aws3.topic;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  684. //AWS General
  685. 'AWSCloudBlock2' : ss + 'aws3.cloud;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  686. 'AWSVPCloudBlock3' : ss + 'aws3.virtual_private_cloud;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  687. 'AWSUserBlock2' : ss + 'aws3.user;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  688. 'AWSUsersBlock2' : ss + 'aws3.users;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  689. 'AWSClientBlock2' : ss + 'aws3.management_console;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  690. 'AWSMobileClientBlock2' : ss + 'aws3.mobile_client;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  691. 'AWSGenericDatabaseBlock3' : ss + 'aws3.generic_database;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  692. 'AWSDiskBlock3' : ss + 'aws3.disk;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  693. 'AWSTapeStorageBlock3' : ss + 'aws3.tape_storage;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  694. 'AWSMediaBlock2' : ss + 'aws3.multimedia;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  695. 'AWSDataCenterBlock2' : ss + 'aws3.corporate_data_center;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  696. 'AWSServerBlock2' : ss + 'aws3.traditional_server;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  697. 'AWSInternetBlock2' : ss + 'aws2.non-service_specific.internet;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  698. 'AWSForumsBlock3' : ss + 'aws3.forums;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  699. 'AWSManagementBlock2' : ss + 'aws3.management_console;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  700. 'AWSAmazonElasticCacheNode2' : ss + 'aws3.cache_node;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  701. 'AWSAmazonRedshiftDW1Cluster2' : ss + 'aws3.dense_compute_node;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  702. 'AWSAmazonRedshiftDW2Cluster2' : ss + 'aws3.dense_storage_node;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  703. 'AWSAmazonRedshiftSSDFamilyCluster2' : ss + 'aws3.dense_storage_node;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  704. 'AWSAmazonRoute53RouteTable2' : ss + 'aws3.route_table;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  705. // 'AWSExampleIAMBlock2' NA
  706. 'AWSSubnetBlock2' : ss + 'aws3.permissions;verticalLabelPosition=bottom;align=center;verticalAlign=top',
  707. //AWS Containers
  708. 'AWSRoundedRectangleContainerBlock2' : cs,
  709. //Azure Cloud
  710. 'ACAccessControlBlock' : ss + 'azure.access_control',
  711. 'ACAPIAppsBlock' : ss + 'mscae.cloud.api_app',
  712. 'ACAPIManagementBlock' : ss + 'mscae.cloud.api_management',
  713. 'ACAppInsightsBlock' : ss + 'mscae.cloud.application_insights',
  714. 'ACAppServicesBlock' : ss + 'mscae.cloud.app_service',
  715. 'ACAutoscalingBlock' : ss + 'azure.autoscale',
  716. 'ACAzureActiveDirectoryBlock' : ss + 'azure.azure_active_directory',
  717. 'ACAzurealertBlock' : ss + 'azure.azure_alert',
  718. 'ACAzureAutomationBlock' : ss + 'azure.automation',
  719. 'ACAzureBatchBlock' : ss + 'mscae.cloud.azure_batch',
  720. 'ACAzureRedisBlock' : ss + 'azure.azure_cache',
  721. 'ACAzureFilesBlock' : ss + 'mscae.cloud.azure_files_service',
  722. 'ACAzureloadbalancerBlock' : ss + 'mscae.cloud.azure_automatic_load_balancer',
  723. 'ACAzureMarketplaceBlock' : ss + 'azure.azure_marketplace',
  724. 'ACAzureRightManagementRMSBlock' : ss + 'mscae.cloud.azure_rights_management_rms',
  725. 'ACAzureSDKBlock' : ss + 'azure.azure_sdk',
  726. 'ACAzureSearchBlock' : ss + 'mscae.cloud.azure_search',
  727. 'ACAzureSQLdatabaseBlock' : ss + 'azure.sql_database_sql_azure',
  728. 'ACAzuresubscriptionBlock' : ss + 'azure.azure_subscription',
  729. 'ACAzureWebsitesBlock' : ss + 'azure.azure_website',
  730. 'ACBackupServiceBlock' : ss + 'azure.backup_service',
  731. 'ACBitbucketcodesourceBlock' : ss + 'azure.bitbucket_code_source',
  732. 'ACBizTalkServicesBlock' : ss + 'azure.biztalk_services',
  733. 'ACCloudServiceBlock' : ss + 'azure.cloud_service',
  734. 'ACCodePlexBlock' : ss + 'azure.codeplex_code_source',
  735. // 'ACComputeBlock' NA
  736. 'ACContentDeliveryNetworkBlock' : ss + 'azure.content_delivery_network',
  737. 'ACDataFactoryBlock' : ss + 'mscae.cloud.data_factory',
  738. // 'ACDataservicesBlock' NA
  739. 'ACDocumentDBBlock' : ss + 'mscae.cloud.documentdb',
  740. 'ACDropboxcodesourceBlock' : ss + 'azure.dropbox_code_source',
  741. 'ACEventsHubBlock' : ss + 'mscae.cloud.event_hubs',
  742. 'ACExpressRouteBlock' : ss + 'azure.express_route',
  743. 'ACGitHubBlock' : ss + 'azure.github_code',
  744. 'ACGitrepositoryBlock' : ss + 'azure.git_repository',
  745. 'ACHDInsightBlock' : ss + 'mscae.cloud.hdinsight',
  746. 'ACHealthmonitoringBlock' : ss + 'azure.health_monitoring',
  747. 'ACHealthyBlock' : ss + 'azure.healthy',
  748. 'ACHybridConnectionBlock' : ss + 'mscae.cloud.hybrid_connections',
  749. 'ACBizTalkhybridconnectionBlock' : ss + 'mscae.cloud.hybrid_connection_manager',
  750. 'ACKeyVaultBlock' : ss + 'mscae.cloud.key_vault',
  751. 'ACLogicAppBlock' : ss + 'mscae.cloud.logic_app',
  752. 'ACMachineLearningBlock' : ss + 'mscae.cloud.machine_learning',
  753. 'ACMediaServicesBlock' : ss + 'azure.media_service',
  754. 'ACMicrosoftaccountBlock' : ss + 'mscae.cloud.microsoft_account',
  755. 'ACMicrosoftAzureBlock' : ss + 'mscae.cloud.microsoft_azure',
  756. 'ACMobileEngagementBlock' : ss + 'mscae.cloud.mobile_engagement',
  757. 'ACMobileServicesBlock' : ss + 'mscae.cloud.mobile_app',
  758. 'ACMultiFactorAuthBlock' : ss + 'azure.multi_factor_authentication',
  759. 'ACMySQLdatabaseBlock' : ss + 'azure.mysql_database',
  760. 'ACNotificationHubsBlock' : ss + 'azure.notification_hub',
  761. 'ACNotificationtopicBlock' : ss + 'azure.notification_topic',
  762. 'ACOperationalInsightsBlock' : ss + 'mscae.cloud.operational_insights',
  763. 'ACOSimageBlock' : ss + 'azure.operating_system_image',
  764. 'ACRemoteAppBlock' : ss + 'mscae.cloud.remoteapp',
  765. 'ACrpdRemotingfileBlock' : ss + 'azure.rdp_remoting_file',
  766. 'ACSchedulerBlock' : ss + 'azure.scheduler',
  767. 'ACServiceBusBlock' : ss + 'azure.service_bus',
  768. 'ACServiceBusQueueBlock' : ss + 'azure.service_bus_queues',
  769. 'ACServiceBusRelayBlock' : ss + 'azure.service_bus_relay',
  770. 'ACServiceBusTopicBlock' : ss + 'azure.service_bus_topics_and_subscriptions',
  771. 'ACServiceEndpointBlock' : ss + 'mscae.cloud.service_endpoint',
  772. 'ACServicepackageBlock' : ss + 'mscae.cloud.service_package',
  773. 'ACSiteRecoveryBlock' : ss + 'azure.hyper_v_recovery_manager',
  774. 'ACSQLdatabasegenericBlock' : ss + 'azure.sql_database',
  775. // 'ACSQLDatabasePremiumBlock' NA
  776. 'ACSQLdatasyncBlock' : ss + 'azure.sql_datasync',
  777. 'ACSQLreportingdeprecatedBlock' : ss + 'azure.sql_reporting',
  778. 'ACStartuptaskBlock' : ss + 'azure.startup_task',
  779. 'ACStorageAzureBlock' : ss + 'mscae.cloud.azure_storage',
  780. 'ACStorageblobBlock' : ss + 'azure.storage_blob',
  781. 'ACStoragequeueBlock' : ss + 'azure.storage_queue',
  782. 'ACStoragetableBlock' : ss + 'azure.storage_table',
  783. 'ACStorSimpleBlock' : ss + 'azure.storsimple',
  784. 'ACStreamAnalyticsBlock' : ss + 'mscae.cloud.stream_analytics',
  785. 'ACTrafficManagerBlock' : ss + 'azure.traffic_manager',
  786. 'ACAlienBlock' : ss + 'azure.unidentified_code_object',
  787. 'ACVHDBlock' : ss + 'azure.vhd',
  788. 'ACVHDdatadiskBlock' : ss + 'azure.vhd_data_disk',
  789. 'ACVirtualmachineBlock' : ss + 'azure.virtual_machine',
  790. 'ACVirtualmachinecontainerBlock' : ss + 'mscae.cloud.virtual_machine_container',
  791. 'ACVirtualnetworkBlock' : ss + 'azure.virtual_network',
  792. 'ACVisualStudioOnlineBlock' : ss + 'azure.visual_studio_online',
  793. 'ACVMsymbolonlyBlock' : ss + 'azure.virtual_machine_feature',
  794. 'ACWebJobsBlock' : ss + 'mscae.cloud.webjobs',
  795. 'ACWebroleBlock' : ss + 'azure.web_role',
  796. 'ACWebrolesBlock' : ss + 'azure.web_roles',
  797. 'ACWorkaccountBlock' : ss + 'mscae.cloud.work_account',
  798. 'ACWorkerroleBlock' : ss + 'azure.worker_role',
  799. 'ACWorkerrolesBlock' : ss + 'azure.worker_roles',
  800. 'ADNSBlock' : ss + 'mscae.cloud.azure_dns',
  801. // 'AGatewayBlock' NA
  802. 'ACLoadBalancerBlock' : ss + 'mscae.cloud.azure_load_balancer_feature',
  803. 'ACResourceGroupBlock' : ss + 'mscae.cloud.resource_group',
  804. 'ACVPNGatewayBlock' : ss + 'mscae.cloud.vpn_gateway',
  805. //Azure Enterprise
  806. 'AEActiveDirectoryFSPBlock' : ss + 'mscae.enterprise.d',
  807. 'AEADFSBlock' : ss + 'mscae.enterprise.ad_fs',
  808. 'AEAndroidPhoneBlock' : ss + 'mscae.enterprise.android_phone',
  809. 'AEappblankfortextBlock' : ss + 'mscae.enterprise.application_blank',
  810. 'AEAppGenericBlock' : ss + 'mscae.enterprise.app_generic',
  811. 'AEAppserverBlock' : ss + 'mscae.enterprise.application_server',
  812. 'AEBackuplocalBlock' : ss + 'mscae.enterprise.backup_local',
  813. 'AEBackuponlineBlock' : ss + 'mscae.enterprise.backup_online',
  814. 'AECalendarBlock' : ss + 'mscae.general.calendar',
  815. 'AECertificateBlock' : ss + 'azure.certificate',
  816. 'AEClientAppBlock' : ss + 'mscae.enterprise.client_application',
  817. 'AECloudBlock' : ss + 'mscae.enterprise.internet',
  818. 'AEClusterserverBlock' : ss + 'mscae.enterprise.cluster_server',
  819. 'AECodefileBlock' : ss + 'azure.code_file',
  820. 'AEConnectorsBlock' : ss + 'mscae.enterprise.connectors',
  821. 'AEDatabasegenericBlock' : ss + 'mscae.enterprise.database_generic',
  822. 'AEDatabaseserverBlock' : ss + 'mscae.enterprise.database_server',
  823. 'AEDatabasesyncBlock' : ss + 'mscae.enterprise.database_synchronization',
  824. 'AEDeviceBlock' : ss + 'mscae.enterprise.device',
  825. 'AEDirectaccessBlock' : ss + 'mscae.enterprise.direct_access_feature',
  826. 'AEDocumentBlock' : ss + 'mscae.enterprise.document',
  827. 'AEDomaincontrollerBlock' : ss + 'mscae.enterprise.domain_controller',
  828. 'AEEnterpriseBuildingBlock' : ss + 'azure.enterprise',
  829. 'AEFilegeneralBlock' : ss + 'azure.file',
  830. 'AEFilterBlock' : ss + 'mscae.enterprise.filter',
  831. 'AEFirewallBlock' : ss + 'mscae.enterprise.firewall',
  832. 'AEFolderBlock' : ss + 'mscae.enterprise.folder',
  833. 'AEGatewayBlock' : ss + 'mscae.enterprise.gateway',
  834. 'AEGenericcodeBlock' : ss + 'azure.code_file',
  835. 'AEGraphBlock' : ss + 'mscae.general.graph',
  836. 'AEHealthmonitoringBlock' : ss + 'azure.health_monitoring',
  837. 'AEHealthyBlock' : ss + 'azure.healthy',
  838. 'AEImportgenericBlock' : ss + 'mscae.enterprise.import_generic',
  839. 'AEInternetBlock' : ss + 'mscae.enterprise.internet',
  840. 'AEKeyboardBlock' : ss + 'mscae.enterprise.keyboard',
  841. 'AEKeypermissionsBlock' : ss + 'mscae.enterprise.key_permissions',
  842. 'AELaptopcomputerBlock' : ss + 'azure.laptop',
  843. 'AELoadbalancerBlock' : ss + 'azure.load_balancer_generic',
  844. 'AELoadTestingBlock' : ss + 'mscae.enterprise.load_testing',
  845. 'AELockprotectedBlock' : ss + 'mscae.enterprise.lock',
  846. 'AELockunprotectedBlock' : ss + 'mscae.enterprise.lock_unlocked',
  847. 'AEMaintenanceBlock' : ss + 'mscae.enterprise.maintenance',
  848. 'AEManagementconsoleBlock' : ss + 'mscae.enterprise.management_console',
  849. 'AEMessageBlock' : ss + 'azure.message',
  850. 'AEMonitorBlock' : ss + 'azure.computer',
  851. 'AEMonitorrunningappsBlock' : ss + 'mscae.enterprise.monitor_running_apps',
  852. 'AEMouseBlock' : ss + 'mscae.enterprise.mouse',
  853. 'AENetworkcardBlock' : ss + 'mscae.enterprise.network_card',
  854. 'AENotallowedBlock' : ss + 'mscae.general.not_allowed',
  855. 'AEPerformanceBlock' : ss + 'mscae.enterprise.performance',
  856. 'AEPerformancemonitorBlock' : ss + 'mscae.enterprise.performance_monitor',
  857. 'AEPhoneBlock' : ss + 'azure.mobile',
  858. 'AEPlugandplayBlock' : ss + 'mscae.enterprise.plug_and_play',
  859. 'AEPowershellscriptfileBlock' : ss + 'azure.powershell_file',
  860. 'AEProtocolstackBlock' : ss + 'mscae.enterprise.protocol_stack',
  861. 'AEQueuegeneralBlock' : ss + 'azure.queue_generic',
  862. 'AERMSconnectorBlock' : ss + 'mscae.enterprise.rms_connector',
  863. 'AERouterBlock' : ss + 'mscae.enterprise.router',
  864. 'AEScriptfileBlock' : ss + 'azure.script_file',
  865. 'AESecurevirtualmachineBlock' : ss + 'mscae.enterprise.secure_virtual_machine',
  866. 'AEServerbladeBlock' : ss + 'azure.server',
  867. 'AEServerdirectoryBlock' : ss + 'mscae.enterprise.server_directory',
  868. 'AEServerfarmBlock' : ss + 'mscae.enterprise.server_farm',
  869. 'AEServergenericBlock' : ss + 'mscae.enterprise.server_generic',
  870. 'AEServerrackBlock' : ss + 'azure.server_rack',
  871. 'AESettingsBlock' : ss + 'mscae.enterprise.settings',
  872. 'AESharedfolderBlock' : ss + 'mscae.enterprise.shared_folder',
  873. 'AESmartcardBlock' : ss + 'mscae.enterprise.smartcard',
  874. 'AEStorageBlock' : ss + 'mscae.enterprise.storage',
  875. 'AETableBlock' : ss + 'mscae.enterprise.table',
  876. 'AETabletBlock' : ss + 'azure.tablet',
  877. 'AEToolBlock' : ss + 'mscae.enterprise.tool',
  878. 'AETunnelBlock' : ss + 'mscae.general.tunnel',
  879. 'AEUnhealthyBlock' : ss + 'mscae.enterprise.unhealthy',
  880. 'AEUSBBlock' : ss + 'mscae.enterprise.usb',
  881. 'AEUserBlock' : ss + 'azure.user',
  882. 'AEVideoBlock' : ss + 'mscae.general.video',
  883. 'AEVirtualmachineBlock' : ss + 'azure.virtual_machine_feature',
  884. 'AEWebBlock' : ss + 'mscae.enterprise.web',
  885. 'AEWebserverBlock' : ss + 'mscae.enterprise.web_server',
  886. 'AEWindowsserverBlock' : ss + 'mscae.enterprise.windows_server',
  887. 'AEWirelessconnectionBlock' : ss + 'mscae.enterprise.wireless_connection',
  888. 'AEWorkstationclientBlock' : ss + 'mscae.enterprise.workstation_client',
  889. 'AEXMLwebserviceBlock' : ss + 'mscae.enterprise.xml_web_service',
  890. 'AGSAudioBlock' : ss + 'mscae.general.audio',
  891. 'AGSBugBlock' : ss + 'mscae.general.bug',
  892. 'AGSCablesettopTVboxBlock' : ss + 'mscae.general.cable_settop_tv_box',
  893. 'AGSCalendarBlock' : ss + 'mscae.general.calendar',
  894. 'AGSChartBlock' : ss + 'mscae.general.chart',
  895. 'AGSCheckmarkSuccessBlock' : ss + 'mscae.general.checkmark',
  896. 'AGSContinousCycleCircleBlock' : ss + 'mscae.general.continuous_cycle',
  897. 'AGSCrossoutFailureBlock' : ss + 'mscae.general.crossout',
  898. 'AGSCutandpasteBlock' : ss + 'mscae.general.cut_and_paste',
  899. 'AGSFolderBlock' : ss + 'mscae.enterprise.folder',
  900. 'AGSGamecontrollerBlock' : ss + 'mscae.general.game_controller',
  901. 'AGSGearsBlock' : ss + 'mscae.general.gears',
  902. 'AGSGraphBlock' : ss + 'mscae.general.graph',
  903. 'AGSLikeBlock' : ss + 'mscae.general.like',
  904. 'AGSNotallowedBlock' : ss + 'mscae.general.not_allowed',
  905. 'AGSSliderbarhorizontalBlock' : ss + 'mscae.general.slider_bar_horizontal',
  906. 'AGSSliderbarvertBlock' : ss + 'mscae.general.slider_bar_vertical',
  907. 'AGSTasklistorBacklogBlock' : ss + 'mscae.general.task_list',
  908. 'AGSTasksBlock' : ss + 'mscae.general.tasks',
  909. 'AGSTunnelBlock' : ss + 'mscae.general.tunnel',
  910. 'AGSUserBlock' : ss + 'azure.user',
  911. 'AGSVideoBlock' : ss + 'mscae.general.video',
  912. // Azure VMS
  913. // 'AVMActiveDirectoryVMBlock' NA
  914. // 'AVMActiveDirectoryVMmultiBlock' NA
  915. // 'AVMAppServerVMBlock' NA
  916. // 'AVMAppServerVMmultiBlock' NA
  917. // 'AVMDatabaseServerVMBlock' NA
  918. // 'AVMDatabaseServerVMmultiBlock' NA
  919. // 'AVMDirectoryServerVMBlock' NA
  920. // 'AVMDirectoryServerVMmultiBlock' NA
  921. // 'AVMDomainServerVMBlock' NA
  922. // 'AVMDomainServerVMmultiBlock' NA
  923. // 'AVMFileServerVMBlock' NA
  924. // 'AVMFileServerVMmultiBlock' NA
  925. // 'AVMWebServerVMBlock' NA
  926. // 'AVMWebServerVMmultiBlock' NA
  927. // 'AVMWindowsServerVMBlock' NA
  928. // 'AVMWindowsServerVMmultiBlock' NA
  929. //Cisco Basic
  930. 'Cisco_cisco_androgenous_person' : s + 'cisco.people.androgenous_person;' + c,
  931. 'Cisco_cisco_atm_switch' : s + 'cisco.switches.atm_switch;' + c,
  932. 'Cisco_cisco_cloud' : s + 'cisco.storage.cloud;strokeColor=#036897;fillColor=#ffffff',
  933. 'Cisco_cisco_fileserver' : s + 'cisco.servers.fileserver;' + c,
  934. 'Cisco_cisco_firewall' : s + 'cisco.security.firewall;' + c,
  935. 'Cisco_cisco_generic_building' : s + 'cisco.buildings.generic_building;' + c,
  936. 'Cisco_cisco_laptop' : s + 'cisco.computers_and_peripherals.laptop;' + c,
  937. 'Cisco_cisco_lock' : s + 'cisco.security.lock;' + c,
  938. 'Cisco_cisco_microwebserver' : s + 'cisco.servers.microwebserver;' + c,
  939. 'Cisco_cisco_pc' : s + 'cisco.computers_and_peripherals.pc;' + c,
  940. 'Cisco_cisco_pda' : s + 'cisco.misc.pda;' + c,
  941. 'Cisco_cisco_phone' : s + 'cisco.modems_and_phones.hootphone;' + c,
  942. 'Cisco_cisco_printer' : s + 'cisco.computers_and_peripherals.printer;' + c,
  943. 'Cisco_cisco_relational_database' : s + 'cisco.storage.relational_database;' + c,
  944. 'Cisco_cisco_router' : s + 'cisco.routers.router;' + c,
  945. 'Cisco_cisco_standing_man' : s + 'cisco.people.standing_man;' + c,
  946. 'Cisco_cisco_standing_woman' : s + 'cisco.people.standing_woman;' + c,
  947. 'Cisco_cisco_ups' : s + 'cisco.misc.ups;' + c,
  948. 'Cisco_cisco_wireless_router' : s + 'cisco.routers.wireless_router;' + c,
  949. //Cisco Extended
  950. 'Cisco_cisco_100baset_hub' : s + 'cisco.hubs_and_gateways.100baset_hub;' + c,
  951. 'Cisco_cisco_10700' : s + 'cisco.routers.10700;' + c,
  952. 'Cisco_cisco_10GE_FCoE' : s + 'cisco.controllers_and_modules.10ge_fcoe;' + c,
  953. 'Cisco_cisco_15200' : s + 'cisco.misc.15200;' + c,
  954. 'Cisco_cisco_3174__desktop_' : s + 'cisco.controllers_and_modules.3174_(desktop)_cluster_controller;' + c,
  955. 'Cisco_cisco_3200_mobile_access_router' : s + 'cisco.routers.mobile_access_router;' + c,
  956. 'Cisco_cisco_3x74__floor_' : s + 'cisco.controllers_and_modules.3x74_(floor)_cluster_controller;' + c,
  957. 'Cisco_cisco_6700_series' : s + 'cisco.misc.6700_series;' + c,
  958. 'Cisco_cisco_7500ars__7513_' : s + 'cisco.misc.7500ars_(7513);' + c,
  959. // 'Cisco_cisco_access_gateway' NA
  960. 'Cisco_cisco_accesspoint' : s + 'cisco.misc.access_point;' + c,
  961. 'Cisco_cisco_ace' : s + 'cisco.misc.ace;' + c,
  962. 'Cisco_cisco_ACS' : s + 'cisco.misc.acs;' + c,
  963. 'Cisco_cisco_adm' : s + 'cisco.misc.adm;' + c,
  964. 'Cisco_cisco_antenna' : s + 'cisco.wireless.antenna;' + c,
  965. 'Cisco_cisco_asic_processor' : s + 'cisco.misc.asic_processor;' + c,
  966. 'Cisco_cisco_ASR_1000_Series' : s + 'cisco.misc.asr_1000_series;' + c,
  967. 'Cisco_cisco_ata' : s + 'cisco.misc.ata;' + c,
  968. 'Cisco_cisco_atm_3800' : s + 'cisco.misc.atm_3800;' + c,
  969. 'Cisco_cisco_atm_fast_gigabit_etherswitch' : s + 'cisco.switches.atm_fast_gigabit_etherswitch;' + c,
  970. 'Cisco_cisco_atm_router' : s + 'cisco.routers.atm_router;' + c,
  971. 'Cisco_cisco_atm_tag_switch_router' : s + 'cisco.routers.atm_tag_switch_router;' + c,
  972. 'Cisco_cisco_avs' : s + 'cisco.misc.avs;' + c,
  973. 'Cisco_cisco_AXP' : s + 'cisco.misc.axp;' + c,
  974. // 'Cisco_cisco_bbfw_media' NA
  975. // 'Cisco_cisco_bbfw' NA
  976. 'Cisco_cisco_bbsm' : s + 'cisco.misc.bbsm;' + c,
  977. 'Cisco_cisco_branch_office' : s + 'cisco.buildings.branch_office;' + c,
  978. 'Cisco_cisco_breakout_box' : s + 'cisco.misc.breakout_box;' + c,
  979. 'Cisco_cisco_bridge' : s + 'cisco.misc.bridge;' + c,
  980. 'Cisco_cisco_broadband_router' : s + 'cisco.routers.broadcast_router;' + c,
  981. 'Cisco_cisco_bts_10200' : s + 'cisco.misc.bts_10200;' + c,
  982. 'Cisco_cisco_cable_modem' : s + 'cisco.modems_and_phones.cable_modem;' + c,
  983. 'Cisco_cisco_callmanager' : s + 'cisco.misc.call_manager;' + c,
  984. 'Cisco_cisco_car' : s + 'cisco.misc.car;' + c,
  985. 'Cisco_cisco_carrier_routing_system' : s + 'cisco.misc.carrier_routing_system;' + c,
  986. 'Cisco_cisco_cddi_fddi' : s + 'cisco.misc.cddi_fddi;' + c,
  987. 'Cisco_cisco_cdm' : s + 'cisco.misc.cdm;' + c,
  988. 'Cisco_cisco_cellular_phone' : s + 'cisco.modems_and_phones.cell_phone;' + c,
  989. 'Cisco_cisco_centri_firewall' : s + 'cisco.security.centri_firewall;' + c,
  990. 'Cisco_cisco_cisco_1000' : s + 'cisco.misc.cisco_1000;' + c,
  991. 'Cisco_cisco_cisco_asa_5500' : s + 'cisco.misc.asa_5500;' + c,
  992. 'Cisco_cisco_cisco_ca' : s + 'cisco.misc.cisco_ca;' + c,
  993. 'Cisco_cisco_cisco_file_engine' : s + 'cisco.storage.cisco_file_engine;' + c,
  994. 'Cisco_cisco_cisco_hub' : s + 'cisco.hubs_and_gateways.cisco_hub;' + c,
  995. 'Cisco_cisco_ciscosecurity' : s + 'cisco.security.cisco_security;' + c,
  996. // 'Cisco_cisco_Cisco_telepresence_manager' NA
  997. 'Cisco_cisco_cisco_unified_presence_server' : s + 'cisco.servers.cisco_unified_presence_server;' + c,
  998. 'Cisco_cisco_cisco_unityexpress' : s + 'cisco.misc.cisco_unity_express;' + c,
  999. 'Cisco_cisco_ciscoworks' : s + 'cisco.misc.cisco_works;' + c,
  1000. 'Cisco_cisco_class_4_5_switch' : s + 'cisco.switches.class_4_5_switch;' + c,
  1001. 'Cisco_cisco_communications_server' : s + 'cisco.servers.communications_server;' + c,
  1002. 'Cisco_cisco_contact_center' : s + 'cisco.misc.contact_center;' + c,
  1003. 'Cisco_cisco_content_engine__cache_director_' : s + 'cisco.directors.content_engine_(cache_director);' + c,
  1004. 'Cisco_cisco_content_service_router' : s + 'cisco.routers.content_service_router;' + c,
  1005. 'Cisco_cisco_content_service_switch_1100' : s + 'cisco.switches.content_service_switch_1100;' + c,
  1006. 'Cisco_cisco_content_switch_module' : s + 'cisco.controllers_and_modules.content_switch_module;' + c,
  1007. 'Cisco_cisco_content_switch' : s + 'cisco.switches.content_switch;' + c,
  1008. 'Cisco_cisco_content_transformation_engine__cte_' : s + 'cisco.misc.content_transformation_engine_(cte);' + c,
  1009. 'Cisco_cisco_cs_mars' : s + 'cisco.misc.cs-mars;' + c,
  1010. 'Cisco_cisco_csm_s' : s + 'cisco.misc.csm-s;' + c,
  1011. 'Cisco_cisco_csu_dsu' : s + 'cisco.misc.csu_dsu;' + c,
  1012. 'Cisco_cisco_CUBE' : s + 'cisco.misc.cube;' + c,
  1013. 'Cisco_cisco_detector' : s + 'cisco.misc.detector;' + c,
  1014. 'Cisco_cisco_director_class_fibre_channel_director' : s + 'cisco.directors.director-class_fibre_channel_director;' + c,
  1015. 'Cisco_cisco_directory_server' : s + 'cisco.servers.directory_server;' + c,
  1016. 'Cisco_cisco_diskette' : s + 'cisco.storage.diskette;' + c,
  1017. 'Cisco_cisco_distributed_director' : s + 'cisco.directors.distributed_director;' + c,
  1018. 'Cisco_cisco_dot_dot' : s + 'cisco.misc.dot-dot;' + c,
  1019. 'Cisco_cisco_dpt' : s + 'cisco.misc.dpt;' + c,
  1020. 'Cisco_cisco_dslam' : s + 'cisco.misc.dslam;' + c,
  1021. 'Cisco_cisco_dual_mode_ap' : s + 'cisco.misc.dual_mode;' + c,
  1022. 'Cisco_cisco_dwdm_filter' : s + 'cisco.misc.dwdm_filter;' + c,
  1023. 'Cisco_cisco_end_office' : s + 'cisco.buildings.end_office;' + c,
  1024. 'Cisco_cisco_fax' : s + 'cisco.modems_and_phones.fax;' + c,
  1025. 'Cisco_cisco_fc_storage' : s + 'cisco.storage.fc_storage;' + c,
  1026. 'Cisco_cisco_fddi_ring' : s + 'cisco.misc.fddi_ring;strokeColor=#036897;',
  1027. 'Cisco_cisco_fibre_channel_disk_subsystem' : s + 'cisco.storage.fibre_channel_disk_subsystem;' + c,
  1028. 'Cisco_cisco_fibre_channel_fabric_switch' : s + 'cisco.switches.fibre_channel_fabric_switch;' + c,
  1029. 'Cisco_cisco_file_cabinet' : s + 'cisco.storage.file_cabinet;' + c,
  1030. 'Cisco_cisco_file_server' : s + 'cisco.servers.file_server;' + c,
  1031. 'Cisco_cisco_firewall_service_module__fwsm_' : s + 'cisco.controllers_and_modules.firewall_service_module_(fwsm);' + c,
  1032. 'Cisco_cisco_front_end_processor' : s + 'cisco.misc.front_end_processor;' + c,
  1033. 'Cisco_cisco_gatekeeper' : s + 'cisco.security.gatekeeper;strokeColor=#036897;',
  1034. 'Cisco_cisco_general_applicance' : s + 'cisco.misc.general_appliance;' + c,
  1035. 'Cisco_cisco_generic_gateway' : s + 'cisco.hubs_and_gateways.generic_gateway;' + c,
  1036. 'Cisco_cisco_generic_processor' : s + 'cisco.misc.generic_processor;' + c,
  1037. 'Cisco_cisco_generic_softswitch' : s + 'cisco.switches.generic_softswitch;' + c,
  1038. 'Cisco_cisco_gigabit_switch_atm_tag_router' : s + 'cisco.routers.gigabit_switch_atm_tag_router;' + c,
  1039. 'Cisco_cisco_government_building' : s + 'cisco.buildings.government_building;' + c,
  1040. 'Cisco_cisco_Ground_terminal' : s + 'cisco.wireless.ground_terminal;' + c,
  1041. 'Cisco_cisco_guard' : s + 'cisco.security.guard;' + c,
  1042. 'Cisco_cisco_handheld' : s + 'cisco.misc.handheld;' + c,
  1043. 'Cisco_cisco_hootphone' : s + 'cisco.modems_and_phones.hootphone;' + c,
  1044. 'Cisco_cisco_host' : s + 'cisco.servers.host;' + c,
  1045. 'Cisco_cisco_hp_mini' : s + 'cisco.misc.hp_mini;' + c,
  1046. 'Cisco_cisco_h' : s + 'cisco.misc.h_323;' + c,
  1047. 'Cisco_cisco_hub' : s + 'cisco.hubs_and_gateways.hub;' + c,
  1048. 'Cisco_cisco_iad_router' : s + 'cisco.routers.iad_router;' + c,
  1049. 'Cisco_cisco_ibm_mainframe' : s + 'cisco.computers_and_peripherals.ibm_mainframe;' + c,
  1050. 'Cisco_cisco_ibm_mini_as400' : s + 'cisco.computers_and_peripherals.ibm_mini_as400;' + c,
  1051. 'Cisco_cisco_ibm_tower' : s + 'cisco.computers_and_peripherals.ibm_tower;' + c,
  1052. 'Cisco_cisco_icm' : s + 'cisco.misc.icm;' + c,
  1053. 'Cisco_cisco_ics' : s + 'cisco.misc.ics;' + c,
  1054. 'Cisco_cisco_intelliswitch_stack' : s + 'cisco.switches.intelliswitch_stack;' + c,
  1055. 'Cisco_cisco_ios_firewall' : s + 'cisco.security.ios_firewall;' + c,
  1056. 'Cisco_cisco_ios_slb' : s + 'cisco.misc.ios_slb;' + c,
  1057. 'Cisco_cisco_ip_communicator' : s + 'cisco.misc.ip_communicator;' + c,
  1058. 'Cisco_cisco_ip_dsl' : s + 'cisco.misc.ip_dsl;' + c,
  1059. 'Cisco_cisco_ip_phone' : s + 'cisco.modems_and_phones.ip_phone;' + c,
  1060. 'Cisco_cisco_ip' : s + 'cisco.misc.ip;' + c,
  1061. 'Cisco_cisco_iptc' : s + 'cisco.misc.iptc;' + c,
  1062. 'Cisco_cisco_ip_telephony_router' : s + 'cisco.routers.ip_telephony_router;' + c,
  1063. 'Cisco_cisco_iptv_content_manager' : s + 'cisco.misc.iptv_content_manager;' + c,
  1064. 'Cisco_cisco_iptv_server' : s + 'cisco.servers.iptv_server;' + c,
  1065. 'Cisco_cisco_iscsi_router' : s + 'cisco.routers.isci_router;' + c,
  1066. 'Cisco_cisco_isdn_switch' : s + 'cisco.switches.isdn_switch;' + c,
  1067. 'Cisco_cisco_itp' : s + 'cisco.misc.itp;' + c,
  1068. 'Cisco_cisco_jbod' : s + 'cisco.misc.jbod;' + c,
  1069. 'Cisco_cisco_key' : s + 'cisco.misc.key;' + c,
  1070. 'Cisco_cisco_keys' : s + 'cisco.misc.keys;' + c,
  1071. 'Cisco_cisco_lan_to_lan' : s + 'cisco.misc.lan_to_lan;' + c,
  1072. 'Cisco_cisco_layer_2_remote_switch' : s + 'cisco.switches.layer_2_remote_switch;' + c,
  1073. 'Cisco_cisco_layer_3_switch' : s + 'cisco.switches.layer_3_switch;' + c,
  1074. 'Cisco_cisco_lightweight_ap' : s + 'cisco.misc.lightweight_ap;' + c,
  1075. 'Cisco_cisco_localdirector' : s + 'cisco.directors.localdirector;' + c,
  1076. 'Cisco_cisco_longreach_cpe' : s + 'cisco.misc.longreach_cpe;' + c,
  1077. 'Cisco_cisco_macintosh' : s + 'cisco.computers_and_peripherals.macintosh;' + c,
  1078. 'Cisco_cisco_mac_woman' : s + 'cisco.people.mac_woman;' + c,
  1079. 'Cisco_cisco_man_woman' : s + 'cisco.people.man_woman;' + c,
  1080. 'Cisco_cisco_mas_gateway' : s + 'cisco.hubs_and_gateways.mas_gateway;' + c,
  1081. 'Cisco_cisco_mau' : s + 'cisco.misc.mau;' + c,
  1082. 'Cisco_cisco_mcu' : s + 'cisco.misc.mcu;' + c,
  1083. 'Cisco_cisco_mdu' : s + 'cisco.buildings.mdu;' + c,
  1084. 'Cisco_cisco_me_1100' : s + 'cisco.misc.me1100;' + c,
  1085. 'Cisco_cisco_Mediator' : s + 'cisco.misc.mediator;' + c,
  1086. 'Cisco_cisco_meetingplace' : s + 'cisco.misc.meetingplace;' + c,
  1087. 'Cisco_cisco_mesh_ap' : s + 'cisco.misc.mesh_ap;' + c,
  1088. 'Cisco_cisco_metro_1500' : s + 'cisco.misc.metro_1500;' + c,
  1089. 'Cisco_cisco_mgx_8000_multiservice_switch' : s + 'cisco.switches.mgx_8000_multiservice_switch;' + c,
  1090. 'Cisco_cisco_microphone' : s + 'cisco.computers_and_peripherals.microphone;' + c,
  1091. 'Cisco_cisco_mini_vax' : s + 'cisco.misc.mini_vax;' + c,
  1092. 'Cisco_cisco_mobile_access_ip_phone' : s + 'cisco.modems_and_phones.mobile_access_ip_phone;' + c,
  1093. 'Cisco_cisco_mobile_access_router' : s + 'cisco.routers.mobile_access_router;' + c,
  1094. 'Cisco_cisco_modem' : s + 'cisco.modems_and_phones.modem;' + c,
  1095. 'Cisco_cisco_moh_server' : s + 'cisco.servers.moh_server;' + c,
  1096. 'Cisco_cisco_MSE' : s + 'cisco.misc.mse;' + c,
  1097. 'Cisco_cisco_mulitswitch_device' : s + 'cisco.switches.multiswitch_device;' + c,
  1098. 'Cisco_cisco_multi_fabric_server_switch' : s + 'cisco.switches.multi-fabric_server_switch;' + c,
  1099. 'Cisco_cisco_multilayer_remote_switch' : s + 'cisco.switches.multilayer_remote_switch;' + c,
  1100. 'Cisco_cisco_mux' : s + 'cisco.misc.mux;' + c,
  1101. 'Cisco_cisco_MXE' : s + 'cisco.misc.mxe;' + c,
  1102. 'Cisco_cisco_nac_appliance' : s + 'cisco.misc.nac_appliance;' + c,
  1103. 'Cisco_cisco_NCE' : s + 'cisco.misc.nce;' + c,
  1104. 'Cisco_cisco_NCE_router' : s + 'cisco.routers.nce_router;' + c,
  1105. 'Cisco_cisco_netflow_router' : s + 'cisco.routers.netflow_router;' + c,
  1106. 'Cisco_cisco_netranger' : s + 'cisco.misc.netranger;' + c,
  1107. 'Cisco_cisco_netsonar' : s + 'cisco.misc.netsonar;' + c,
  1108. 'Cisco_cisco_network_management' : s + 'cisco.misc.network_management;' + c,
  1109. 'Cisco_cisco_Nexus_1000' : s + 'cisco.misc.nexus_1000;' + c,
  1110. 'Cisco_cisco_Nexus_2000' : s + 'cisco.misc.nexus_2000_fabric_extender;' + c,
  1111. 'Cisco_cisco_Nexus_5000' : s + 'cisco.misc.nexus_5000;' + c,
  1112. 'Cisco_cisco_Nexus_7000' : s + 'cisco.misc.nexus_7000;' + c,
  1113. 'Cisco_cisco_octel' : s + 'cisco.misc.octel;' + c,
  1114. 'Cisco_cisco_ons15500' : s + 'cisco.misc.ons15500;' + c,
  1115. 'Cisco_cisco_optical_amplifier' : s + 'cisco.misc.optical_amplifier;' + c,
  1116. 'Cisco_cisco_optical_services_router' : s + 'cisco.routers.optical_services_router;' + c,
  1117. 'Cisco_cisco_optical_transport' : s + 'cisco.misc.optical_transport;' + c,
  1118. 'Cisco_cisco_pad' : s + 'cisco.misc.pad_2;' + c,
  1119. 'Cisco_cisco_pad_x' : s + 'cisco.misc.pad_1;' + c,
  1120. 'Cisco_cisco_page_icon' : s + 'cisco.misc.page_icon;strokeColor=#036897;',
  1121. 'Cisco_cisco_pbx' : s + 'cisco.misc.pbx;' + c,
  1122. 'Cisco_cisco_pbx_switch' : s + 'cisco.switches.pbx_switch;' + c,
  1123. 'Cisco_cisco_pc_adapter_card' : s + 'cisco.computers_and_peripherals.pc_adapter_card;' + c,
  1124. 'Cisco_cisco_pc_man' : s + 'cisco.people.pc_man;' + c,
  1125. 'Cisco_cisco_pc_routercard' : s + 'cisco.computers_and_peripherals.pc_routercard;' + c,
  1126. 'Cisco_cisco_pc_software' : s + 'cisco.misc.pc_software;' + c,
  1127. 'Cisco_cisco_pc_video' : s + 'cisco.misc.pc_video;' + c,
  1128. 'Cisco_cisco_phone_fax' : s + 'cisco.modems_and_phones.phone-fax;' + c,
  1129. 'Cisco_cisco_pix_firewall' : s + 'cisco.security.pix_firewall;' + c,
  1130. 'Cisco_cisco_pmc' : s + 'cisco.misc.pmc;' + c,
  1131. 'Cisco_cisco_programmable_switch' : s + 'cisco.switches.programmable_switch;' + c,
  1132. 'Cisco_cisco_protocol_translator' : s + 'cisco.misc.protocol_translator;' + c,
  1133. 'Cisco_cisco_pxf' : s + 'cisco.misc.pxf;' + c,
  1134. 'Cisco_cisco_radio_tower' : s + 'cisco.wireless.radio_tower;strokeColor=#036897',
  1135. 'Cisco_cisco_ratemux' : s + 'cisco.misc.ratemux;' + c,
  1136. 'Cisco_cisco_repeater' : s + 'cisco.misc.repeater;' + c,
  1137. 'Cisco_cisco_RF_modem' : s + 'cisco.modems_and_phones.rf_modem;' + c,
  1138. 'Cisco_cisco_router_firewall' : s + 'cisco.security.router_firewall;' + c,
  1139. 'Cisco_cisco_routerin_building' : s + 'cisco.routers.router_in_building;' + c,
  1140. 'Cisco_cisco_router_with_silicon_switch' : s + 'cisco.routers.router_with_silicon_switch;' + c,
  1141. 'Cisco_cisco_route_switch_processor' : s + 'cisco.misc.route_switch_processor;' + c,
  1142. 'Cisco_cisco_rpsrps' : s + 'cisco.misc.rpsrps;' + c,
  1143. 'Cisco_cisco_running_man' : s + 'cisco.people.running_man;' + c,
  1144. 'Cisco_cisco_sattelite_dish' : s + 'cisco.wireless.satellite_dish;' + c,
  1145. 'Cisco_cisco_sattelite' : s + 'cisco.wireless.satellite;' + c,
  1146. 'Cisco_cisco_scanner' : s + 'cisco.computers_and_peripherals.scanner;' + c,
  1147. 'Cisco_cisco_server_switch' : s + 'cisco.switches.server_switch;' + c,
  1148. 'Cisco_cisco_server_with_router' : s + 'cisco.servers.server_with_router;' + c,
  1149. 'Cisco_cisco_service_control' : s + 'cisco.misc.service_control;' + c,
  1150. 'Cisco_cisco_Service_Module' : s + 'cisco.controllers_and_modules.service_module;' + c,
  1151. 'Cisco_cisco_Service_router' : s + 'cisco.routers.service_router;' + c,
  1152. 'Cisco_cisco_Services' : s + 'cisco.misc.services;' + c,
  1153. 'Cisco_cisco_Set_top_box' : s + 'cisco.misc.set_top_box;' + c,
  1154. 'Cisco_cisco_simulitlayer_switch' : s + 'cisco.switches.simultilayer_switch;' + c,
  1155. 'Cisco_cisco_sip_proxy_werver' : s + 'cisco.servers.sip_proxy_server;' + c,
  1156. 'Cisco_cisco_sitting_woman' : s + 'cisco.people.sitting_woman;' + c,
  1157. 'Cisco_cisco_small_business' : s + 'cisco.buildings.small_business;' + c,
  1158. 'Cisco_cisco_small_hub' : s + 'cisco.hubs_and_gateways.small_hub;' + c,
  1159. 'Cisco_cisco_softphone' : s + 'cisco.modems_and_phones.softphone;' + c,
  1160. 'Cisco_cisco_softswitch_pgw_mgc' : s + 'cisco.switches.softswitch_pgw_mgc;' + c,
  1161. 'Cisco_cisco_software_based_server' : s + 'cisco.servers.software_based_server;' + c,
  1162. // 'Cisco_cisco_Space_router' NA
  1163. 'Cisco_cisco_speaker' : s + 'cisco.computers_and_peripherals.speaker;' + c,
  1164. 'Cisco_cisco_ssc' : s + 'cisco.misc.ssc;' + c,
  1165. 'Cisco_cisco_ssl_terminator' : s + 'cisco.misc.ssl_terminator;' + c,
  1166. 'Cisco_cisco_standard_host' : s + 'cisco.servers.standard_host;' + c,
  1167. 'Cisco_cisco_stb' : s + 'cisco.misc.stb;' + c,
  1168. 'Cisco_cisco_storage_router' : s + 'cisco.routers.storage_router;' + c,
  1169. 'Cisco_cisco_storage_server' : s + 'cisco.servers.storage_server;' + c,
  1170. 'Cisco_cisco_stp' : s + 'cisco.misc.stp;' + c,
  1171. 'Cisco_cisco_streamer' : s + 'cisco.misc.streamer;' + c,
  1172. 'Cisco_cisco_sun_workstation' : s + 'cisco.computers_and_peripherals.workstation;' + c,
  1173. 'Cisco_cisco_supercomputer' : s + 'cisco.computers_and_peripherals.supercomputer;' + c,
  1174. 'Cisco_cisco_svx' : s + 'cisco.misc.svx;' + c,
  1175. 'Cisco_cisco_system_controller' : s + 'cisco.controllers_and_modules.system_controller;' + c,
  1176. 'Cisco_cisco_tablet' : s + 'cisco.computers_and_peripherals.tablet;' + c,
  1177. 'Cisco_cisco_tape_array' : s + 'cisco.storage.tape_array;' + c,
  1178. 'Cisco_cisco_tdm_router' : s + 'cisco.routers.tdm_router;' + c,
  1179. 'Cisco_cisco_telecommuter_house_pc' : s + 'cisco.buildings.telecommuter_house_pc;' + c,
  1180. 'Cisco_cisco_telecommuter_house' : s + 'cisco.buildings.telecommuter_house;' + c,
  1181. 'Cisco_cisco_telecommuter_icon' : s + 'cisco.misc.telecommuter_icon;' + c,
  1182. // 'Cisco_cisco_Telepresence_1000' NA
  1183. // 'Cisco_cisco_Telepresence_3000' NA
  1184. 'Cisco_cisco_Telepresence_3200' : s + 'cisco.misc.telepresence;' + c,
  1185. // 'Cisco_cisco_Telepresence_500' NA
  1186. 'Cisco_cisco_terminal' : s + 'cisco.computers_and_peripherals.terminal;' + c,
  1187. 'Cisco_cisco_token' : s + 'cisco.misc.token;strokeColor=#036897',
  1188. 'Cisco_cisco_TP_MCU' : s + 'cisco.misc.tp_mcu;' + c,
  1189. 'Cisco_cisco_transpath' : s + 'cisco.misc.transpath;' + c,
  1190. 'Cisco_cisco_truck' : s + 'cisco.misc.truck;' + c,
  1191. 'Cisco_cisco_turret' : s + 'cisco.misc.turret;' + c,
  1192. 'Cisco_cisco_tv' : s + 'cisco.misc.tv;' + c,
  1193. 'Cisco_cisco_ubr910' : s + 'cisco.misc.ubr910;' + c,
  1194. 'Cisco_cisco_umg_series' : s + 'cisco.misc.umg_series;' + c,
  1195. 'Cisco_cisco_unity_server' : s + 'cisco.servers.unity_server;' + c,
  1196. 'Cisco_cisco_universal_gateway' : s + 'cisco.hubs_and_gateways.universal_gateway;' + c,
  1197. 'Cisco_cisco_university' : s + 'cisco.buildings.university;' + c,
  1198. 'Cisco_cisco_upc' : s + 'cisco.computers_and_peripherals.upc;' + c,
  1199. 'Cisco_cisco_vault' : s + 'cisco.misc.vault;' + c,
  1200. 'Cisco_cisco_video_camera' : s + 'cisco.computers_and_peripherals.video_camera;' + c,
  1201. 'Cisco_cisco_vip' : s + 'cisco.misc.vip;' + c,
  1202. 'Cisco_cisco_virtual_layer_switch' : s + 'cisco.switches.virtual_layer_switch;' + c,
  1203. 'Cisco_cisco_virtual_switch_controller__vsc3000_' : s + 'cisco.controllers_and_modules.virtual_switch_controller_(vsc3000);' + c,
  1204. 'Cisco_cisco_voice_atm_switch' : s + 'cisco.switches.voice_atm_switch;' + c,
  1205. 'Cisco_cisco_voice_commserver' : s + 'cisco.servers.voice_commserver;' + c,
  1206. 'Cisco_cisco_voice_router' : s + 'cisco.routers.voice_router;' + c,
  1207. 'Cisco_cisco_voice_switch' : s + 'cisco.switches.voice_switch;' + c,
  1208. 'Cisco_cisco_vpn_concentrator' : s + 'cisco.misc.vpn_concentrator;' + c,
  1209. 'Cisco_cisco_vpn_gateway' : s + 'cisco.hubs_and_gateways.vpn_gateway;' + c,
  1210. 'Cisco_cisco_VSS' : s + 'cisco.misc.vss;' + c,
  1211. 'Cisco_cisco_wae' : s + 'cisco.misc.wae;' + c,
  1212. 'Cisco_cisco_wavelength_router' : s + 'cisco.routers.wavelength_router;' + c,
  1213. 'Cisco_cisco_web_browser' : s + 'cisco.computers_and_peripherals.web_browser;' + c,
  1214. 'Cisco_cisco_web_cluster' : s + 'cisco.storage.web_cluster;' + c,
  1215. 'Cisco_cisco_wi_fi_tag' : s + 'cisco.wireless.wi-fi_tag;' + c,
  1216. 'Cisco_cisco_wireless_bridge' : s + 'cisco.wireless.wireless_bridge;' + c,
  1217. 'Cisco_cisco_wireless_location_appliance' : s + 'cisco.wireless.wireless_location_appliance;' + c,
  1218. 'Cisco_cisco_wireless' : s + 'cisco.wireless.wireless;' + c,
  1219. 'Cisco_cisco_wireless_transport' : s + 'cisco.wireless.wireless_transport;' + c,
  1220. 'Cisco_cisco_wism' : s + 'cisco.misc.wism;' + c,
  1221. 'Cisco_cisco_wlan_controller' : s + 'cisco.wireless.wlan_controller;' + c,
  1222. 'Cisco_cisco_workgroup_director' : s + 'cisco.directors.workgroup_director;' + c,
  1223. 'Cisco_cisco_workgroup_switch' : s + 'cisco.switches.workgroup_switch;' + c,
  1224. 'Cisco_cisco_workstation' : s + 'cisco.computers_and_peripherals.workstation;' + c,
  1225. 'Cisco_cisco_www_server' : s + 'cisco.servers.www_server;' + c,
  1226. //Computers and Monitors
  1227. 'NET_PC' : s + 'networks.pc;fillColor=#29AAE1',
  1228. 'NET_Virtual-PC' : s + 'networks.virtual_pc;fillColor=#29AAE1',
  1229. 'NET_Terminal' : s + 'networks.terminal;fillColor=#29AAE1',
  1230. 'NET_DataPipe' : s + 'networks.bus;fillColor=#29AAE1',
  1231. 'NET_SlateDevice' : s + 'networks.tablet;fillColor=#29AAE1',
  1232. 'NET_TabletDevice' : s + 'networks.tablet;fillColor=#29AAE1',
  1233. 'NET_Laptop' : s + 'networks.laptop;fillColor=#29AAE1',
  1234. 'NET_PDA' : s + 'networks.mobile;fillColor=#29AAE1',
  1235. 'NET_CRTMonitor' : s + 'networks.monitor;fillColor=#29AAE1',
  1236. 'NET_LCDMonitor' : s + 'networks.monitor;fillColor=#29AAE1',
  1237. //Detailed Network Diagrams
  1238. // 'NET_ABSwitch' NA
  1239. // 'NET_Repeater' NA
  1240. // 'NET_DiagnosticDevice' NA
  1241. // 'NET_CardReader' NA
  1242. // 'NET_PatchPanel' NA
  1243. 'NET_RadioTower' : s + 'networks.radio_tower;fillColor=#29AAE1',
  1244. // 'NET_BiometricReader' NA
  1245. 'NET_ExternalHardDrive' : s + 'networks.external_storage;fillColor=#29AAE1',
  1246. // 'NET_WebService' NA
  1247. // 'NET_FiberOptic' NA
  1248. 'NET_SatelliteDish' : s + 'networks.satellite_dish;fillColor=#29AAE1',
  1249. 'NET_Satellite' : s + 'networks.satellite;fillColor=#29AAE1',
  1250. // 'NET_VoIPPhone' NA
  1251. // 'NET_PBX' NA
  1252. // 'NET_MLPS' NA
  1253. //Basic Network Shapes
  1254. 'NET_WirelessAccessPoint' : s + 'networks.radio_tower;fillColor=#29AAE1',
  1255. 'NET_RingNetwork' : cs,
  1256. 'NET_Ethernet' : cs,
  1257. 'NET_Server' : s + 'networks.server;fillColor=#29AAE1',
  1258. // 'NET_ExternalMediaDrive' NA
  1259. 'NET_Mainframe' : s + 'networks.mainframe;fillColor=#29AAE1',
  1260. 'NET_Router' : s + 'networks.wireless_hub;fillColor=#29AAE1',
  1261. 'NET_Switch' : s + 'networks.switch;fillColor=#29AAE1',
  1262. 'NET_Firewall' : s + 'networks.firewall;fillColor=#29AAE1',
  1263. 'NET_User' : s + 'networks.user_male;fillColor=#29AAE1',
  1264. 'NET_CommLink' : s + 'networks.comm_link_edge;fillColor=#29AAE1',
  1265. 'NET_SuperComputer' : s + 'networks.supercomputer;fillColor=#29AAE1',
  1266. 'NET_VirtualServer' : s + 'networks.virtual_server;fillColor=#29AAE1',
  1267. 'NET_Printer' : s + 'networks.printer;fillColor=#29AAE1',
  1268. // 'NET_Plotter' NA
  1269. 'NET_Scanner' : s + 'networks.scanner;fillColor=#29AAE1',
  1270. 'NET_Copier' : s + 'networks.copier;fillColor=#29AAE1',
  1271. // 'NET_FaxMachine' NA
  1272. 'NET_MultiFunctionMachine' : s + 'networks.copier;fillColor=#29AAE1',
  1273. 'NET_Projector' : s + 'networks.video_projector;fillColor=#29AAE1',
  1274. 'NET_ProjectorScreen' : s + 'networks.video_projector_screen;fillColor=#29AAE1',
  1275. 'NET_Bridge' : s + 'networks.router;fillColor=#29AAE1',
  1276. 'NET_Hub' : s + 'networks.hub;fillColor=#29AAE1',
  1277. 'NET_Modem' : s + 'networks.modem;fillColor=#29AAE1',
  1278. 'NET_Telephone' : s + 'signs.tech.telephone_5;fillColor=#29AAE1',
  1279. 'NET_CellPhone' : s + 'networks.mobile;fillColor=#29AAE1',
  1280. 'NET_SmartPhone' : s + 'networks.mobile;fillColor=#29AAE1',
  1281. // 'NET_VideoPhone' NA
  1282. 'NET_Camera' : s + 'signs.tech.camera_2;fillColor=#29AAE1',
  1283. // 'NET_VideoCamera' NA
  1284. //Server Racks
  1285. 'RackServerRack' : s + 'rackGeneral.container;container=1;collapsible=0;childLayout=rack;marginLeft=9;marginRight=9;marginTop=21;marginBottom=22;textColor=#000000;numDisp=off',
  1286. 'RackBlank' : s + 'rackGeneral.plate;strokeColor=#666666;labelPosition=left;align=right;spacingRight=15;fillColor=#e8e8e8',
  1287. 'RackRaidArray' : s + 'rack.cisco.cisco_carrier_packet_transport_50;labelPosition=left;align=right;spacingRight=15',
  1288. 'RackServer' : s + 'rack.oracle.sunfire_x4100;labelPosition=left;align=right;spacingRight=15',
  1289. 'RackEthernetSwitch' : s + 'rack.cisco.cisco_nexus_3016_switch;labelPosition=left;align=right;spacingRight=15',
  1290. 'RackPatchPanel' : s + 'rack.general.cat5e_rack_mount_patch_panel_24_ports;strokeColor=#666666;labelPosition=left;align=right;spacingRight=15',
  1291. 'RackRouter' : s + 'rack.cisco.cisco_asr_1001_router;labelPosition=left;align=right;spacingRight=15',
  1292. 'RackMonitor' : s + 'rack.ibm.ibm_1u_flat_panel_console_kit;labelPosition=left;align=right;spacingRight=15',
  1293. 'RackKeyboard' : s + 'rack.cisco.cisco_1905_serial_integrated_services_router;labelPosition=left;align=right;spacingRight=15',
  1294. 'RackPowerStrip' : s + 'rack.dell.power_strip;labelPosition=left;align=right;spacingRight=15',
  1295. 'RackPowerSupply' : s + 'rack.cisco.cisco_web_security_appliance_s170;labelPosition=left;align=right;spacingRight=15',
  1296. 'RackBridge' : s + 'rack.cisco.cisco_nexus_5548p_switch;labelPosition=left;align=right;spacingRight=15',
  1297. 'RackTapeDrive' : s + 'rack.ibm.ibm_1754_local_console_manager;labelPosition=left;align=right;spacingRight=15',
  1298. //Network
  1299. 'Image_network_server' : 'image;image=img/lib/clip_art/computers/Server_Tower_128x128.png;flipH=1',
  1300. 'Image_network_server_file' : 'image;image=img/lib/clip_art/computers/Server_128x128.png',
  1301. 'Image_network_server_net' : 'image;image=img/lib/clip_art/networking/Print_Server_128x128.png',
  1302. 'Image_network_server_net_large' : 'image;image=img/lib/clip_art/computers/Server_128x128.png',
  1303. 'Image_network_raid' : 'image;image=img/lib/clip_art/computers/Server_Tower_128x128.png;flipH=1',
  1304. 'Image_network_raid_large' : 'image;image=img/lib/clip_art/computers/Server_Tower_128x128.png;flipH=1',
  1305. 'Image_network_rack_server' : 'image;image=img/lib/clip_art/computers/Server_Rack_128x128.png',
  1306. 'Image_network_rack_tape' : 'image;image=img/lib/clip_art/computers/Server_Rack_Partial_128x128.png',
  1307. 'Image_network_printer_small' : 'image;image=img/lib/clip_art/computers/Printer_128x128.png;flipH=1',
  1308. 'Image_network_printer_large' : 'image;image=img/lib/clip_art/computers/Printer_128x128.png;flipH=1',
  1309. 'Image_network_printer_multipurpose' : 'image;image=img/lib/clip_art/computers/Printer_Commercial_128x128.png;flipH=1',
  1310. 'Image_network_copier_small' : 'image;image=img/lib/clip_art/computers/Printer_Commercial_128x128.png',
  1311. 'Image_network_copier_large' : 'image;image=img/lib/clip_art/computers/Printer_Commercial_128x128.png',
  1312. // 'Image_network_printer_largeformat' NA
  1313. 'Image_network_router' : 'image;image=img/lib/clip_art/networking/Router_128x128.png',
  1314. 'Image_network_router_wireless' : 'image;image=img/lib/clip_art/networking/Wireless_Router_128x128.png',
  1315. 'Image_network_ups' : 'image;image=img/lib/clip_art/networking/UPS_128x128.png',
  1316. //Electronics
  1317. // 'Image_electronics_speakers_2' NA
  1318. // 'Image_electronics_scanner_slide' NA
  1319. // 'Image_electronics_speakers_2_1' NA
  1320. // 'Image_electronics_speakers_5_1' NA
  1321. 'Image_electronics_lcd' : 'image;image=img/lib/clip_art/computers/Monitor_128x128.png',
  1322. 'Image_electronics_pda' : 'image;image=img/lib/clip_art/telecommunication/Palm_Treo_128x128.png',
  1323. 'Image_electronics_drive_cardreader' : 'image;image=img/lib/clip_art/finance/Credit_Card_128x128.png',
  1324. 'Image_electronics_camcorder' : 'image;image=img/lib/clip_art/networking/Ip_Camera_128x128.png',
  1325. // 'Image_electronics_headset' NA
  1326. // 'Image_electronics_calculator_simple' NA
  1327. // 'Image_electronics_scanner_flatbed' NA
  1328. 'Image_electronics_printer_photo' : 'image;image=img/lib/clip_art/computers/Printer_128x128.png;flipH=1',
  1329. // 'Image_electronics_scanner_photo' NA
  1330. // 'Image_electronics_projector' NA
  1331. 'Image_electronics_drive_firewire' : 'image;image=img/lib/clip_art/computers/Harddrive_128x128.png;flipH=1',
  1332. 'Image_electronics_drive_usb' : 'image;image=img/lib/clip_art/computers/Harddrive_128x128.png;flipH=1',
  1333. 'Image_electronics_modem_external' : 'image;image=img/lib/clip_art/networking/Modem_128x128.png;flipH=1',
  1334. // 'Image_electronics_tv_tuner_external' NA
  1335. // 'Image_electronics_mp3' NA
  1336. // 'Image_electronics_sound_box' NA
  1337. 'Image_electronics_lcd_wide' : 'image;image=img/lib/clip_art/computers/Monitor_128x128.png',
  1338. //Audio Equipment
  1339. // 'Image_audio_speakers_2' NA
  1340. // 'Image_audio_speakers_2_1' NA
  1341. // 'Image_audio_speakers_5_1' NA
  1342. // 'Image_audio_record_player' NA
  1343. // 'Image_audio_headset' NA
  1344. //Electrical
  1345. 'EE_Amplifier' : s + 'electrical.abstract.amplifier',
  1346. 'EE_OpAmp' : cs,
  1347. 'EE_ControlledAmp' : s + 'electrical.abstract.controlled_amplifier',
  1348. 'EE_Multiplexer' : s + 'electrical.abstract.mux',
  1349. 'EE_Demultiplexer' : s + 'electrical.abstract.demux;',
  1350. 'EE_Capacitor1' : s + 'electrical.capacitors.capacitor_1',
  1351. 'EE_Capacitor2' : s + 'electrical.capacitors.capacitor_3',
  1352. 'EE_Diode' : s + 'electrical.diodes.diode',
  1353. 'EE_Resistor' : s + 'electrical.resistors.resistor_2',
  1354. 'EE_VarResistor' : s + 'electrical.resistors.variable_resistor_2',
  1355. 'EE_Potentiometer' : s + 'electrical.resistors.potentiometer_2',
  1356. 'EE_ProtGround' : s + 'electrical.signal_sources.protective_earth',
  1357. 'EE_SignalGround' : s + 'electrical.signal_sources.signal_ground',
  1358. 'EE_Transformer' : s + 'electrical.inductors.transformer_1',
  1359. 'EE_Inductor' : s + 'electrical.inductors.inductor_3',
  1360. 'EE_Variable Inductor' : s + 'electrical.inductors.variable_inductor',
  1361. 'EE_TwoWaySwitch' : s + 'electrical.electro-mechanical.2-way_switch',
  1362. 'EE_OnOffSwitch' : s + 'electrical.electro-mechanical.simple_switch',
  1363. 'EE_Loudspeaker' : s + 'electrical.electro-mechanical.loudspeaker',
  1364. 'EE_Motor' : s + 'electrical.electro-mechanical.motor_1',
  1365. 'EE_LED1' : s + 'electrical.opto_electronics.led_2',
  1366. 'EE_Lightbulb' : s + 'electrical.miscellaneous.light_bulb',
  1367. // 'EE_IntegratedCircuit' : NA
  1368. //Power Sources
  1369. 'EE_AcSource' : s + 'electrical.signal_sources.ac_source;strokeWidth=1',
  1370. 'EE_VoltageSource' : s + 'electrical.signal_sources.dc_source_3',
  1371. 'EE_CurrentSource' : s + 'electrical.signal_sources.dc_source_2;direction=north',
  1372. 'EE_ControlledCurrentSource' : s + 'electrical.signal_sources.dependent_source_2;direction=west',
  1373. 'EE_ControlledVoltageSource' : s + 'electrical.signal_sources.dependent_source_3',
  1374. 'EE_DcSource1' : s + 'electrical.miscellaneous.monocell_battery;flipH=1;verticalLabelPosition=bottom;verticalAlign=top',
  1375. 'EE_DcSource2' : s + 'electrical.miscellaneous.multicell_battery;flipH=1;verticalLabelPosition=bottom;verticalAlign=top',
  1376. 'EE_Vss' : s + 'electrical.signal_sources.vss2;verticalLabelPosition=top;verticalAlign=bottom;fontSize=24',
  1377. 'EE_Vdd' : s + 'electrical.signal_sources.vdd;verticalLabelPosition=bottom;verticalAlign=top',
  1378. //Transistors
  1379. 'EE_BJT_NPN1' : s + 'electrical.transistors.pnp_transistor_1',
  1380. 'EE_BJT_PNP1' : s + 'electrical.transistors.npn_transistor_1',
  1381. 'EE_JFET_P' : s + 'electrical.transistors.p-channel_jfet_1;flipV=1',
  1382. 'EE_JFET_N' : s + 'electrical.transistors.n-channel_jfet_1',
  1383. 'EE_MOSFET_P1' : s + 'electrical.mosfets1.mosfet_ic_p;flipV=1',
  1384. 'EE_MOSFET_P2' : s + 'electrical.mosfets1.mosfet_p_no_bulk',
  1385. 'EE_MOSFET_P3' : s + 'electrical.mosfets1.p-channel_mosfet_1;flipV=1',
  1386. 'EE_MOSFET_N1' : s + 'electrical.mosfets1.mosfet_ic_n',
  1387. 'EE_MOSFET_N2' : s + 'electrical.mosfets1.mosfet_n_no_bulk',
  1388. 'EE_MOSFET_N3' : s + 'electrical.mosfets1.n-channel_mosfet_1',
  1389. //Relays
  1390. // 'EE_SPST' NA
  1391. // 'EE_SPDT' NA
  1392. // 'EE_DPST' NA
  1393. // 'EE_DPDT' NA
  1394. //Logic Gates
  1395. 'EE_AND' : s + 'electrical.logic_gates.and',
  1396. 'EE_OR' : s + 'electrical.logic_gates.or',
  1397. 'EE_Inverter' : s + 'electrical.logic_gates.inverter',
  1398. 'EE_NAND' : s + 'electrical.logic_gates.nand',
  1399. 'EE_NOR' : s + 'electrical.logic_gates.nor',
  1400. 'EE_XOR' : s + 'electrical.logic_gates.xor',
  1401. 'EE_NXOR' : s + 'electrical.logic_gates.xnor',
  1402. 'EE_DTypeRSFlipFlop' : s + 'electrical.logic_gates.d_type_rs_flip-flop',
  1403. 'EE_DTypeFlipFlop' : s + 'electrical.logic_gates.d_type_flip-flop',
  1404. 'EE_DTypeFlipFlopWithClear' : s + 'electrical.logic_gates.d_type_flip-flop_with_clear',
  1405. 'EE_RSLatch' : s + 'electrical.logic_gates.rs_latch',
  1406. 'EE_SyncRSLatch' : s + 'electrical.logic_gates.synchronous_rs_latch',
  1407. 'EE_TTypeFlipFlop' : s + 'electrical.logic_gates.t_type_flip-flop',
  1408. //Miscellaneous
  1409. 'EE_Plus' : s + 'ios7.misc.flagged',
  1410. 'EE_Negative' : 'shape=line',
  1411. 'EE_InverterContact' : 'shape=ellipse',
  1412. 'EE_Voltmeter' : s + 'electrical.instruments.voltmeter',
  1413. 'EE_Ammeter' : s + 'electrical.instruments.ampermeter',
  1414. 'EE_SineWave' : s + 'electrical.waveforms.sine_wave',
  1415. 'EE_Sawtooth' : s + 'electrical.waveforms.sawtooth',
  1416. 'EE_SquareWave' : s + 'electrical.waveforms.square_wave',
  1417. //Messaging Systems
  1418. 'EIChannelBlock' : s + 'eip.messageChannel;verticalLabelPosition=bottom;verticalAlign=top',
  1419. 'EIMessageChannelBlock' : cs,
  1420. 'EIMessageBlock' : cs,
  1421. 'EIMessageRouterBlock' : s + 'eip.content_based_router;verticalLabelPosition=bottom;verticalAlign=top',
  1422. 'EIMessageTranslatorBlock' : s + 'eip.message_translator;verticalLabelPosition=bottom;verticalAlign=top',
  1423. 'EIMessageEndpointBlock' : cs,
  1424. //Messaging Channels
  1425. 'EIPublishSubscribeChannelBlock' : cs,
  1426. 'EIDatatypeChannelBlock' : cs,
  1427. 'EIInvalidMessageChannelBlock' : cs,
  1428. 'EIDeadLetterChannelBlock' : cs,
  1429. 'EIGuaranteedDeliveryBlock' : cs,
  1430. 'EIChannelAdapterBlock' : cs,
  1431. 'EIMessagingBridgeBlock' : s + 'eip.messaging_bridge;verticalLabelPosition=bottom;verticalAlign=top',
  1432. 'EIMessageBusBlock' : cs,
  1433. //Message Construction
  1434. 'EICommandMessageBlock' : cs,
  1435. 'EIDocumentMessageBlock' : cs,
  1436. 'EIEventMessageBlock' : cs,
  1437. 'EIRequestReplyBlock' : cs,
  1438. 'EIReturnAddressBlock' : cs,
  1439. 'EICorrelationIDBlock' : cs,
  1440. 'EIMessageSequenceBlock' : cs,
  1441. 'EIMessageExpirationBlock' : cs,
  1442. //Message Routing
  1443. 'EIContentBasedRouterBlock' : s + 'eip.content_based_router;verticalLabelPosition=bottom;verticalAlign=top',
  1444. 'EIMessageFilterBlock' : s + 'eip.message_filter;verticalLabelPosition=bottom;verticalAlign=top',
  1445. 'EIDynamicRouterBlock' : s + 'eip.dynamic_router;verticalLabelPosition=bottom;verticalAlign=top',
  1446. 'EIRecipientListBlock' : s + 'eip.recipient_list;verticalLabelPosition=bottom;verticalAlign=top',
  1447. 'EISplitterBlock' : s + 'eip.splitter;verticalLabelPosition=bottom;verticalAlign=top',
  1448. 'EIAggregatorBlock' : s + 'eip.aggregator;verticalLabelPosition=bottom;verticalAlign=top',
  1449. 'EIResequencerBlock' : s + 'eip.resequencer;verticalLabelPosition=bottom;verticalAlign=top',
  1450. 'EIComposedMessageBlock' : s + 'eip.composed_message_processor;verticalLabelPosition=bottom;verticalAlign=top',
  1451. 'EIRoutingSlipBlock' : s + 'eip.routing_slip;verticalLabelPosition=bottom;verticalAlign=top',
  1452. 'EIProcessManagerBlock' : s + 'eip.process_manager;verticalLabelPosition=bottom;verticalAlign=top',
  1453. 'EIMessageBrokerBlock' : cs,
  1454. //Message Transformation
  1455. 'EIEnvelopeWrapperBlock' : s + 'eip.envelope_wrapper;verticalLabelPosition=bottom;verticalAlign=top',
  1456. 'EIContentEnricherBlock' : s + 'eip.content_enricher;verticalLabelPosition=bottom;verticalAlign=top',
  1457. 'EIContentFilterBlock' : s + 'eip.content_filter;verticalLabelPosition=bottom;verticalAlign=top',
  1458. 'EIClaimCheckBlock' : s + 'eip.claim_check;verticalLabelPosition=bottom;verticalAlign=top',
  1459. 'EINormalizerBlock' : s + 'eip.normalizer;verticalLabelPosition=bottom;verticalAlign=top',
  1460. //Messaging Endpoints
  1461. 'EIMessagingGatewayBlock' : s + 'eip.messaging_gateway;verticalLabelPosition=bottom;verticalAlign=top',
  1462. 'EITransactionalClientBlock' : s + 'eip.transactional_client;verticalLabelPosition=bottom;verticalAlign=top',
  1463. 'EIPollingConsumerBlock' : s + 'eip.polling_consumer;verticalLabelPosition=bottom;verticalAlign=top',
  1464. 'EIEventDrivenConsumerBlock' : s + 'eip.event_driven_consumer;verticalLabelPosition=bottom;verticalAlign=top',
  1465. 'EICompetingConsumersBlock' : s + 'eip.competing_consumers;verticalLabelPosition=bottom;verticalAlign=top',
  1466. 'EIMessageDispatcherBlock' : s + 'eip.message_dispatcher;verticalLabelPosition=bottom;verticalAlign=top',
  1467. 'EISelectiveConsumerBlock' : s + 'eip.selective_consumer;verticalLabelPosition=bottom;verticalAlign=top',
  1468. 'EIDurableSubscriberBlock' : cs,
  1469. 'EIServiceActivatorBlock' : s + 'eip.service_activator;verticalLabelPosition=bottom;verticalAlign=top',
  1470. //System Management
  1471. 'EIControlBusBlock' : cs,
  1472. 'EIDetourBlock' : s + 'eip.detour;verticalLabelPosition=bottom;verticalAlign=top',
  1473. 'EIWireTapBlock' : s + 'eip.wire_tap;verticalLabelPosition=bottom;verticalAlign=top',
  1474. 'EIMessageHistoryBlock' : cs,
  1475. 'EIMessageStoreBlock' : s + 'eip.message_store;verticalLabelPosition=bottom;verticalAlign=top',
  1476. 'EISmartProxyBlock' : s + 'eip.smart_proxy;verticalLabelPosition=bottom;verticalAlign=top',
  1477. 'EITestMessageBlock' : s + 'eip.test_message;verticalLabelPosition=bottom;verticalAlign=top',
  1478. 'EIChannelPurgerBlock' : s + 'eip.channel_purger;verticalLabelPosition=bottom;verticalAlign=top',
  1479. //Google Cloud Platform
  1480. 'GCPIconComputeEngineBlock' : ss + 'gcp.compute.compute_engine;verticalLabelPosition=bottom;verticalAlign=top',
  1481. 'GCPIconAppEngineBlock' : ss + 'gcp.compute.app_engine;verticalLabelPosition=bottom;verticalAlign=top',
  1482. 'GCPIconContainerEngineBlock' : ss + 'gcp.compute.container_engine;verticalLabelPosition=bottom;verticalAlign=top',
  1483. 'GCPIconContainerRegistryBlock' : ss + 'gcp.compute.container_registry;verticalLabelPosition=bottom;verticalAlign=top',
  1484. 'GCPIconCloudFunctionsBlock' : ss + 'gcp.compute.cloud_functions;verticalLabelPosition=bottom;verticalAlign=top',
  1485. 'GCPIconCloudStorageBlock' : ss + 'gcp.storage_databases.cloud_storage;verticalLabelPosition=bottom;verticalAlign=top',
  1486. 'GCPIconCloudSQLBlock' : ss + 'gcp.storage_databases.cloud_sql;verticalLabelPosition=bottom;verticalAlign=top',
  1487. 'GCPIconCloudBigtableBlock' : ss + 'gcp.storage_databases.cloud_bigtable;verticalLabelPosition=bottom;verticalAlign=top',
  1488. 'GCPIconCloudDatastoreBlock' : ss + 'gcp.storage_databases.cloud_datastore;verticalLabelPosition=bottom;verticalAlign=top',
  1489. 'GCPIconPersistentDiskBlock' : ss + 'gcp.storage_databases.persistent_disk;verticalLabelPosition=bottom;verticalAlign=top',
  1490. 'GCPIconCloudVirtualNetworkBlock' : ss + 'gcp.networking.cloud_virtual_network;verticalLabelPosition=bottom;verticalAlign=top',
  1491. 'GCPIconCloudLoadBalancingBlock' : ss + 'gcp.networking.cloud_load_balancing;verticalLabelPosition=bottom;verticalAlign=top',
  1492. 'GCPIconCloudCDNBlock' : ss + 'gcp.networking.cloud_cdn;verticalLabelPosition=bottom;verticalAlign=top',
  1493. 'GCPIconCloudInterconnectBlock' : ss + 'gcp.networking.cloud_interconnect;verticalLabelPosition=bottom;verticalAlign=top',
  1494. 'GCPIconCloudDNSBlock' : ss + 'gcp.networking.cloud_dns;verticalLabelPosition=bottom;verticalAlign=top',
  1495. 'GCPIconBigQueryBlock' : ss + 'gcp.big_data.bigquery;verticalLabelPosition=bottom;verticalAlign=top',
  1496. 'GCPIconCloudDataflowBlock' : ss + 'gcp.big_data.cloud_dataflow;verticalLabelPosition=bottom;verticalAlign=top',
  1497. 'GCPIconCloudDataprocBlock' : ss + 'gcp.big_data.cloud_dataproc;verticalLabelPosition=bottom;verticalAlign=top',
  1498. 'GCPIconCloudDatalabBlock' : ss + 'gcp.big_data.cloud_datalab;verticalLabelPosition=bottom;verticalAlign=top',
  1499. 'GCPIconCloudPubSubBlock' : ss + 'gcp.big_data.cloud_pubsub;verticalLabelPosition=bottom;verticalAlign=top',
  1500. 'GCPIconGenomicsBlock' : ss + 'gcp.big_data.genomics;verticalLabelPosition=bottom;verticalAlign=top',
  1501. 'GCPIconCloudMachineLearningServicesBlock' : ss + 'gcp.machine_learning.cloud_machine_learning;verticalLabelPosition=bottom;verticalAlign=top',
  1502. 'GCPIconVisionAPIBlock' : ss + 'gcp.machine_learning.vision_api;verticalLabelPosition=bottom;verticalAlign=top',
  1503. 'GCPIconSpeechAPIBlock' : ss + 'gcp.machine_learning.speech_api;verticalLabelPosition=bottom;verticalAlign=top',
  1504. 'GCPIconNaturalLanguageAPIBlock' : ss + 'gcp.machine_learning.natural_language_api;verticalLabelPosition=bottom;verticalAlign=top',
  1505. 'GCPIconTranslateAPIBlock' : ss + 'gcp.machine_learning.translation_api;verticalLabelPosition=bottom;verticalAlign=top',
  1506. 'GCPIconStackdriverOverviewBlock' : ss + 'gcp.management_tools.stackdriver;verticalLabelPosition=bottom;verticalAlign=top',
  1507. 'GCPIconMonitoringBlock' : ss + 'gcp.management_tools.monitoring;verticalLabelPosition=bottom;verticalAlign=top',
  1508. // 'GCPIconLoggingBlock' NA
  1509. 'GCPIconErrorReportingBlock' : ss + 'gcp.management_tools.error_reporting;verticalLabelPosition=bottom;verticalAlign=top',
  1510. 'GCPIconTraceBlock' : ss + 'gcp.management_tools.trace;verticalLabelPosition=bottom;verticalAlign=top',
  1511. 'GCPIconDebuggerBlock' : ss + 'gcp.management_tools.debugger;verticalLabelPosition=bottom;verticalAlign=top',
  1512. 'GCPIconDeploymentManagerBlock' : ss + 'gcp.management_tools.deployment_manager;verticalLabelPosition=bottom;verticalAlign=top',
  1513. 'GCPIconCloudEndpointsBlock' : ss + 'gcp.management_tools.cloud_endpoints;verticalLabelPosition=bottom;verticalAlign=top',
  1514. 'GCPIconCloudToolsForPowerShellBlock' : ss + 'gcp.developer_tools.cloud_tools_for_powershell;verticalLabelPosition=bottom;verticalAlign=top',
  1515. 'GCPIconCloudToolsForVisualStudioBlock' : ss + 'gcp.developer_tools.cloud_tools_for_visual_studio;verticalLabelPosition=bottom;verticalAlign=top',
  1516. 'GCPIconCloudIAMBlock' : ss + 'gcp.identity_and_security.cloud_iam;verticalLabelPosition=bottom;verticalAlign=top',
  1517. 'GCPIconGCPLogoBlock' : ss + 'gcp.extras.generic_gcp;verticalLabelPosition=bottom;verticalAlign=top',
  1518. 'GCPIconBlankBlock' : ss + 'gcp.extras.blue_hexagon;verticalLabelPosition=bottom;verticalAlign=top',
  1519. //Equation
  1520. 'Equation' : cs, //TODO
  1521. //Walls
  1522. 'fpWall' : '',
  1523. //Rooms
  1524. //Doors & Windows
  1525. 'fpWindow' : s + 'floorplan.window',
  1526. 'fpOpening' : 'shape=rect',
  1527. 'fpDoor' : cs,
  1528. 'fpDoubleDoor' : cs,
  1529. //Stairs
  1530. 'fpStairs' : s + 'floorplan.stairs;direction=north',
  1531. 'fpStairsDirectional' : s + 'floorplan.stairs;direction=north;verticalAlign=bottom',
  1532. // 'fpStairsCurved' NA
  1533. // 'fpStairsCurvedWide' NA
  1534. //Desks
  1535. // 'fpDeskEndSegment' NA
  1536. 'fpDeskLongSegment' : '',
  1537. 'fpDeskShortSegment' : '',
  1538. // 'fpDeskSmallCornerSegment' NA
  1539. 'fpDeskLargeCornerSegment' : s + 'floorplan.desk_corner',
  1540. // 'fpDeskMediumCornerSegment' NA
  1541. // 'fpDeskRoundedLSegment' NA
  1542. // 'fpDeskRoundedCornerSegment' NA
  1543. //Cubicle walls
  1544. 'fpCubiclePanel' : s + 'floorplan.wall;wallThickness=3',
  1545. 'fpCubicleWorkstation' : s + 'floorplan.wallU;wallThickness=3',
  1546. 'fpCubicleCorner5x5' : s + 'floorplan.wallCorner;wallThickness=3',
  1547. 'fpCubicleCorner6x6' : s + 'floorplan.wallCorner;wallThickness=3',
  1548. 'fpCubicleCorner8x8' : s + 'floorplan.wallCorner;wallThickness=3',
  1549. 'fpCubicleCorner8x6' : s + 'floorplan.wallCorner;wallThickness=3',
  1550. 'fpCubicleCornerOpen6x4' : s + 'floorplan.wallCorner;wallThickness=3',
  1551. 'fpCubicleDouble14x8' : s + 'floorplan.wallU;wallThickness=3',
  1552. 'fpCubicleEnclosed11x9' : s + 'floorplan.wallU;wallThickness=3',
  1553. //Tables & Chairs
  1554. 'fpTableConferenceOval' : 'shape=ellipse',
  1555. 'fpTableConferenceBoat' : '',
  1556. 'fpTableConferenceRectangle' : '',
  1557. 'fpTableDiningRound' : 'shape=ellipse',
  1558. 'fpTableDiningSquare' : '',
  1559. 'fpChairOffice' : s + 'floorplan.office_chair',
  1560. 'fpChairExecutive' : s + 'floorplan.office_chair',
  1561. 'fpChairLobby' : s + 'floorplan.office_chair',
  1562. 'fpChairDining' : s + 'floorplan.chair',
  1563. 'fpChairBarstool' : 'shape=ellipse',
  1564. //Cubicles - Prebuilt
  1565. //Tables - Prebuilt
  1566. //Cabinets - we don't have corresponding stencils, just rounded rectangles
  1567. 'fpCabinetBasic' : '',
  1568. // 'fpCabinetCornerLarge' NA
  1569. 'fpCabinetDoubleWide' : '',
  1570. 'fpCabinetDoubleWithShelves' : '',
  1571. 'fpCabinetShelvesBasic' : '',
  1572. 'fpCabinetShelvesDouble' : '',
  1573. 'fpCabinetBasicWithShelves' : '',
  1574. 'fpCabinetsAboveDeskShelves' : '',
  1575. //Restroom
  1576. 'fpRestroomToiletPrivate' : s + 'floorplan.toilet',
  1577. 'fpRestroomToiletPublic' : s + 'floorplan.toilet',
  1578. // 'fpRestroomBidet' NA
  1579. 'fpRestroomLights' : cs,
  1580. 'fpRestroomSinks' : cs,
  1581. // 'fpRestroomGrabBar' NA
  1582. 'fpRestroomBathtub' : s + 'floorplan.bathtub;direction=south',
  1583. 'fpRestroomShower' : s + 'floorplan.shower;flipH=1',
  1584. // 'fpRestroomCornerSink' NA
  1585. 'fpRestroomPedastalSink' : s + 'floorplan.sink_1',
  1586. 'fpRestroomCountertop' : '',
  1587. 'fpRestroomMirror' : 'shape=line;strokeWidth=3',
  1588. // 'fpDresserOrnateMirror' NA
  1589. // 'fpRestroomToiletPaper' NA
  1590. 'fpRestroomStalls' : cs,
  1591. //Beds
  1592. 'fpBedDouble' : s + 'floorplan.bed_double',
  1593. 'fpBedSingle' : s + 'floorplan.bed_single',
  1594. 'fpBedQueen' : s + 'floorplan.bed_double',
  1595. 'fpBedKing' : s + 'floorplan.bed_double',
  1596. 'fpBedDoubleWithTrundle' : s + 'floorplan.bed_double',
  1597. 'fpBedBunk' : s + 'floorplan.bed_double',
  1598. // 'fpBedBunkL' NA
  1599. // 'fpBedCrib' NA
  1600. 'fpBedBassinet' : s + 'pid.fittings.compensator',
  1601. //Dressers
  1602. // 'fpDresserChest' NA
  1603. // 'fpDresserMirrorDresser' NA
  1604. // 'fpClosetRod' NA
  1605. // 'fpDresserOrnateMirror' NA
  1606. //Appliances
  1607. 'fpApplianceWasher' : '',
  1608. 'fpApplianceDryer' : '',
  1609. 'fpApplianceWaterHeater' : 'shape=ellipse',
  1610. // 'fpApplianceRefrigerator' NA
  1611. 'fpApplianceStoveOven' : s + 'floorplan.range_1',
  1612. 'fpStoveOvenSixBurner' : s + 'floorplan.range_2',
  1613. 'fpApplianceDishwasher' : '',
  1614. //Kitchen
  1615. 'fpKitchenSink' : s + 'floorplan.sink_2',
  1616. 'fpKitchenDoubleSink' : s + 'floorplan.sink_double',
  1617. 'fpKitchenCountertop' : '',
  1618. 'fpKitchenCountertopCorner' : s + 'floorplan.desk_corner',
  1619. //Couches
  1620. 'fpCouchLoveSeat' : s + 'floorplan.couch',
  1621. 'fpCouchSofa' : s + 'floorplan.couch',
  1622. // 'fpCouchSectional' NA
  1623. 'fpCouchOttoman' : '',
  1624. // 'fpCouchPillow' NA
  1625. //Technology
  1626. 'fpMiscDesktopComputer' : s + 'floorplan.workstation',
  1627. 'fpMiscLaptopComputer' : s + 'floorplan.laptop',
  1628. 'fpComputerMonitor' : s + 'floorplan.flat_tv',
  1629. 'fpCRTTelevision' : s + 'floorplan.flat_tv',
  1630. // 'fpMiscProjector' NA
  1631. // 'fpMiscProjectorScreen' NA
  1632. //Misc Floorplan
  1633. 'fpMiscIndoorPlant' : s + 'floorplan.plant',
  1634. // 'fpMiscPodium' NA
  1635. 'fpPiano' : s + 'floorplan.piano',
  1636. // 'fpPianoBench' : 'absoluteArcSize=1;arcSize=' + arcSize + ';rounded=1',
  1637. //Equipment
  1638. 'PEAxialCompressor' : s + 'pid.compressors.centrifugal_compressor_-_turbine_driven;verticalLabelPosition=bottom;verticalAlign=top',
  1639. 'PECentrifugalCompressor' : s + 'pid.compressors.centrifugal_compressor;verticalLabelPosition=bottom;verticalAlign=top',
  1640. 'PECentrifugalCompressor2' : s + 'pid.compressors.centrifugal_compressor_-_turbine_driven;verticalLabelPosition=bottom;verticalAlign=top',
  1641. // 'PECentrifugalCompressor3' NA
  1642. 'PEReciprocationCompressor' : s + 'pid.compressors.reciprocating_compressor;verticalLabelPosition=bottom;verticalAlign=top',
  1643. 'PERotaryCompressorBlock' : s + 'pid.compressors.rotary_compressor;verticalLabelPosition=bottom;verticalAlign=top',
  1644. 'PERotaryCompressor2Block' : s + 'pid.compressors.compressor_and_silencers;verticalLabelPosition=bottom;verticalAlign=top',
  1645. 'PEConveyorBlock' : s + 'pid2misc.conveyor;verticalLabelPosition=bottom;verticalAlign=top',
  1646. // 'PEOverheadConveyorBlock' NA
  1647. // 'PEScraperConveyorBlock' NA
  1648. // 'PEScrewConveyorBlock' NA
  1649. // 'PEPositiveDisplacementBlock' NA
  1650. // 'PEPositiveDisplacement2' NA
  1651. 'PEElevator1Block' : s + 'pid.misc.bucket_elevator;flipH=1;verticalLabelPosition=bottom;verticalAlign=top',
  1652. // 'PEElevator2Block' NA
  1653. // 'PEHoistBlock' NA
  1654. // 'PESkipHoistBlock' NA
  1655. // 'PEMotorBlock' NA
  1656. // 'PEDieselMotorBlock' NA
  1657. // 'PEElectricMotorBlock' NA
  1658. // 'PELiquidRingVacuumBlock' NA
  1659. // 'PETurbineDriverBlock' NA
  1660. // 'PEDoubleFlowTurbineBlock' NA
  1661. 'PEAgitatorMixerBlock' : s + 'pid.agitators.agitator_(propeller);verticalLabelPosition=bottom;verticalAlign=top',
  1662. 'PEDrumBlock' : s + 'pid.vessels.drum_or_condenser;verticalLabelPosition=bottom;verticalAlign=top',
  1663. 'PETankEquipmentBlock' : s + 'pid.vessels.tank;verticalLabelPosition=bottom;verticalAlign=top',
  1664. // 'PECentrifugalBlower' NA
  1665. // 'PEAlkylationBlock' NA
  1666. // 'PEBoomLoaderBlock' NA
  1667. // 'PEFluidCatalyticCrackingBlock' NA
  1668. // 'PEFluidCookingBlock' NA
  1669. // 'PEFluidizedReactorBlock' NA
  1670. // 'PETubularBlock' NA
  1671. // 'PEReformerBlock' NA
  1672. 'PEMixingReactorBlock' : s + 'pid.vessels.mixing_reactor;verticalLabelPosition=bottom;verticalAlign=top',
  1673. // 'PEHydrodesulferizationBlock' NA
  1674. // 'PEHydrocrackingBlock' NA
  1675. 'PEPlateTowerBlock' : s + 'pid2misc.column;columnType=baffle;verticalLabelPosition=bottom;verticalAlign=top',
  1676. 'PEPackedTowerBlock' : s + 'pid2misc.column;columnType=fixed;verticalLabelPosition=bottom;verticalAlign=top',
  1677. // 'PEAutomaticStokerBlock' NA
  1678. // 'PEOilBurnerBlock' NA
  1679. // 'PECounterflowForcedDraftBlock' NA
  1680. // 'PECounterflowNaturalDraftBlock' NA
  1681. // 'PECrossflowInductedBlock' NA
  1682. 'PEFurnaceBlock' : s + 'pid.vessels.furnace;verticalLabelPosition=bottom;verticalAlign=top',
  1683. // 'PEChimneyTowerBlock' NA
  1684. //Piping
  1685. 'PEOneToMany' : cs, //TODO
  1686. 'PEMultilines' : cs, //TODO
  1687. 'PEMidArrow' : 'shape=triangle',
  1688. 'PEButtWeld' : s + 'sysml.x',
  1689. 'PETopToTop' : s + 'pid.vessels.container,_tank,_cistern',
  1690. // 'PESonicSignal' NA
  1691. 'PENuclear' : s + 'electrical.waveforms.sine_wave',
  1692. // 'PEPneumatic' NA
  1693. // 'PEHydraulicSignalLine' NA
  1694. 'PEMechanicalLink' : 'shape=ellipse',
  1695. 'PESolderedSolvent' : 'shape=ellipse',
  1696. 'PEDoubleContainment' : 'shape=hexagon',
  1697. 'PEFlange' : s + 'pid.piping.double_flange',
  1698. 'PEFlange2' : s + 'pid.piping.flange_in;flipH=1',
  1699. 'PEEndCap' : s + 'pid.piping.cap',
  1700. 'PEEndCap2' : s + 'pid.vessels.container,_tank,_cistern;direction=north',
  1701. 'PEBreather' : s + 'pid.piping.breather',
  1702. 'PEElectronicallyInsulated' : s + 'pid.piping.double_flange',
  1703. 'PEReducer' : s + 'pid.piping.concentric_reducer',
  1704. 'PEInlineMixer' : s + 'pid.piping.in-line_mixer',
  1705. // 'PESeparator' NA
  1706. // 'PEBurstingDisc' NA
  1707. 'PEFlameArrester' : s + 'pid.piping.flame_arrestor',
  1708. // 'PEFlameArrester2' NA
  1709. 'PEDetonationArrester' : s + 'pid.piping.detonation_arrestor',
  1710. // 'PEDrainSilencer' NA
  1711. 'PETriangleSeparator' : 'shape=triangle;direction=west',
  1712. // 'PETriangleSeparator2' NA
  1713. 'PETundish' : s + 'ios7.misc.left',
  1714. 'PEOpenVent' : s + 'pid.vessels.vent_(bent)',
  1715. // 'PESiphonDrain' NA
  1716. 'PERemovableSpool' : s + 'pid.piping.removable_spool',
  1717. 'PEYTypeStrainer' : s + 'pid.piping.y-type_strainer',
  1718. 'PEDiverterValve' : s + 'pid.piping.diverter_valve',
  1719. 'PEPulsationDampener' : s + 'pid.piping.pulsation_dampener',
  1720. 'PEDuplexStrainer' : s + 'pid.piping.duplex_strainer',
  1721. 'PEBasketStrainer' : s + 'pid.piping.basket_strainer',
  1722. 'PEVentSilencer' : s + 'pid.piping.vent_silencer',
  1723. 'PEInlineSilencer' : s + 'pid.piping.in-line_silencer',
  1724. 'PESteamTrap' : s + 'pid.piping.steam_trap',
  1725. 'PEDesuperheater' : s + 'pid.piping.desuper_heater',
  1726. 'PEEjectorOrEductor' : s + 'pid.fittings.injector',
  1727. 'PEExhaustHead' : s + 'pid.piping.exhaust_head',
  1728. 'PERotaryValve' : s + 'pid.piping.rotary_valve',
  1729. 'PEExpansionJoint' : s + 'pid.piping.expansion_joint',
  1730. //Vessels
  1731. 'PEVesselBlock' : cs,
  1732. 'PEOpenTankBlock' : s + 'pid.vessels.container,_tank,_cistern;verticalLabelPosition=bottom;verticalAlign=top', //not all versions supported
  1733. 'PEOpenTopTank' : s + 'pid.vessels.container,_tank,_cistern;verticalLabelPosition=bottom;verticalAlign=top',
  1734. 'PEClosedTankBlock' : cs,
  1735. 'PEStorageSphereBlock' : s + 'pid.vessels.storage_sphere;verticalLabelPosition=bottom;verticalAlign=top',
  1736. 'PEColumnBlock' : cs,
  1737. 'PEBagBlock' : s + 'pid.vessels.bag;verticalLabelPosition=bottom;verticalAlign=top',
  1738. 'PEGasCylinderBlock' : s + 'pid.vessels.gas_bottle;verticalLabelPosition=bottom;verticalAlign=top',
  1739. 'PEGasHolderBlock' : s + 'pid.vessels.gas_holder;verticalLabelPosition=bottom;verticalAlign=top',
  1740. 'PEClarifierBlock' : s + 'pid.vessels.bunker_(conical_bottom);verticalLabelPosition=bottom;verticalAlign=top',
  1741. 'PETankBlock' : s + 'pid.vessels.tank_(conical_roof);verticalLabelPosition=bottom;verticalAlign=top',
  1742. 'PETrayColumnBlock' : s + 'pid2misc.column;columnType=tray;verticalLabelPosition=bottom;verticalAlign=top',
  1743. 'PEReactionVesselBlock' : s + 'pid.vessels.reactor',
  1744. 'PEBin' : s + 'pid.vessels.tank_(conical_bottom)',
  1745. 'PEDomeRoofTank' : s + 'pid.vessels.tank_(dished_roof)',
  1746. 'PEConeRoofTank' : s + 'pid.vessels.tank_(conical_roof)',
  1747. // 'PEInternalFloatingRoof' NA
  1748. // 'PEDoubleWallTank' NA
  1749. // 'PEOnionTank' NA
  1750. //Heat Exchangers
  1751. 'PEBoilerBlock' : s + 'pid.misc.boiler_(dome);verticalLabelPosition=bottom;verticalAlign=top',
  1752. 'PEEquipmentBoilerBlock' : s + 'pid.misc.boiler_(dome);verticalLabelPosition=bottom;verticalAlign=top',
  1753. 'PEReboilerBlock' : s + 'pid.heat_exchangers.reboiler;verticalLabelPosition=bottom;verticalAlign=top',
  1754. 'PECondenserBlock' : s + 'pid.heat_exchangers.heat_exchanger_(straight_tubes);verticalLabelPosition=bottom;verticalAlign=top',
  1755. 'PEEquipmentCondenserBlock' : s + 'pid.heat_exchangers.condenser;verticalLabelPosition=bottom;verticalAlign=top',
  1756. // 'PEEvaporativeCondenserBlock' NA
  1757. 'PECoolingTowerBlock' : s + 'pid.misc.cooling_tower;verticalLabelPosition=bottom;verticalAlign=top',
  1758. 'PEHeatExchangerBlock' : s + 'pid.heat_exchangers.shell_and_tube_heat_exchanger_1;verticalLabelPosition=bottom;verticalAlign=top',
  1759. // 'PEAirCooledExchangerBlock' NA
  1760. 'PEHairpinExchangerBlock' : s + 'pid.heat_exchangers.hairpin_exchanger;verticalLabelPosition=bottom;verticalAlign=top',
  1761. 'PEPlateAndFrameHeatExchangerBlock' : s + 'pid.heat_exchangers.plate_and_frame_heat_exchanger;verticalLabelPosition=bottom;verticalAlign=top',
  1762. 'PESpiralHeatExchanger' : s + 'pid.heat_exchangers.spiral_heat_exchanger;verticalLabelPosition=bottom;verticalAlign=top',
  1763. 'PEUTubeHeatExchangerBlock' : s + 'pid.heat_exchangers.u-tube_heat_exchanger;verticalLabelPosition=bottom;verticalAlign=top',
  1764. 'PEDoublePipeHeatBlock' : s + 'pid.heat_exchangers.double_pipe_heat_exchanger;verticalLabelPosition=bottom;verticalAlign=top',
  1765. 'PEShellAndTubeHeat1Block' : s + 'pid.heat_exchangers.shell_and_tube_heat_exchanger_1;verticalLabelPosition=bottom;verticalAlign=top',
  1766. 'PEShellAndTubeHeat2Block' : s + 'pid.heat_exchangers.shell_and_tube_heat_exchanger_2;verticalLabelPosition=bottom;verticalAlign=top',
  1767. 'PEShellAndTubeHeat3Block' : s + 'pid.heat_exchangers.shell_and_tube_heat_exchanger_1;direction=north;verticalLabelPosition=bottom;verticalAlign=top',
  1768. 'PESinglePassHeatBlock' : s + 'pid.heat_exchangers.single_pass_heat_exchanger;verticalLabelPosition=bottom;verticalAlign=top',
  1769. 'PEHeaterBlock' : s + 'pid.heat_exchangers.heater',
  1770. //Pumps
  1771. 'PEEjectorInjectorBlock' : s + 'pid.fittings.injector;verticalLabelPosition=bottom;verticalAlign=top',
  1772. 'PECompressorTurbineBlock' : cs,
  1773. 'PEMotorDrivenTurbineBlock' : cs,
  1774. // 'PETripleFanBlades2Block' NA
  1775. // 'PEFanBlades2Block' : NA
  1776. 'PECentrifugalPumpBlock' : s + 'pid.pumps.gas_blower;flipH=1;verticalLabelPosition=bottom;verticalAlign=top',
  1777. 'PECentrifugalPump' : s + 'pid.pumps.centrifugal_pump_1;verticalLabelPosition=bottom;verticalAlign=top',
  1778. 'PECentrifugalPump2' : s + 'pid.pumps.centrifugal_pump_2;verticalLabelPosition=bottom;verticalAlign=top',
  1779. 'PECentrifugalPump3' : s + 'pid.pumps.centrifugal_pump_1;flipH=1;verticalLabelPosition=bottom;verticalAlign=top',
  1780. 'PEGearPumpBlock' : s + 'pid.pumps.gear_pump;verticalLabelPosition=bottom;verticalAlign=top',
  1781. 'PEHorizontalPump' : s + 'pid.pumps.horizontal_pump;verticalLabelPosition=bottom;verticalAlign=top',
  1782. 'PEProgressiveCavityPump' : s + 'pid.pumps.cavity_pump;flipH=1;flipV=1;verticalLabelPosition=bottom;verticalAlign=top',
  1783. 'PEScrewPump' : s + 'pid.pumps.screw_pump;verticalLabelPosition=bottom;verticalAlign=top',
  1784. 'PEScrewPump2' : s + 'pid.pumps.screw_pump_2;flipH=1;verticalLabelPosition=bottom;verticalAlign=top',
  1785. 'PESumpPump' : s + 'pid.pumps.sump_pump;verticalLabelPosition=bottom;verticalAlign=top',
  1786. 'PEVacuumPump' : s + 'pid.pumps.vacuum_pump;verticalLabelPosition=bottom;verticalAlign=top',
  1787. 'PEVerticalPump' : s + 'pid.pumps.vertical_pump;verticalLabelPosition=bottom;verticalAlign=top',
  1788. 'PEVerticalPump2' : s + 'pid.pumps.vertical_pump;verticalLabelPosition=bottom;verticalAlign=top',
  1789. //Instruments
  1790. 'PEIndicatorBlock' : cs,
  1791. 'PEIndicator2Block' : cs,
  1792. 'PEIndicator3Block' : s + 'pid2inst.discInst;mounting=field',
  1793. 'PEIndicator4Block' : s + 'pid2inst.indicator;mounting=field;indType=inst',
  1794. // 'PEIndicator5Block' NA
  1795. 'PESharedIndicatorBlock' : cs,
  1796. 'PESharedIndicator2Block' : cs,
  1797. 'PEComputerIndicatorBlock' : cs,
  1798. 'PEProgrammableIndicatorBlock' : cs,
  1799. //Valves
  1800. 'PEGateValveBlock' : cs, //TODO not all variants covered
  1801. 'PEGlobeValveBlock' : cs,
  1802. 'PEControlValveBlock' : s + 'pid2valves.valve;valveType=gate;actuator=diaph;verticalLabelPosition=bottom;verticalAlign=top', //TODO not all variants covered
  1803. 'PENeedleValveBlock' : s + 'pid2valves.valve;valveType=needle;verticalLabelPosition=bottom;verticalAlign=top',
  1804. // 'PEButterflyValveBlock' NA
  1805. 'PEButterflyValve2Block' : s + 'pid2valves.valve;flipH=1;valveType=butterfly;verticalLabelPosition=bottom;verticalAlign=top',
  1806. 'PEBallValveBlock' : s + 'pid2valves.valve;valveType=ball;verticalLabelPosition=bottom;verticalAlign=top',
  1807. 'PEDiaphragmBlock' : s + 'pid2valves.valve;valveType=ball;verticalLabelPosition=bottom;verticalAlign=top',
  1808. 'PEPlugValveBlock' : s + 'pid2valves.valve;valveType=ball;verticalLabelPosition=bottom;verticalAlign=top',
  1809. 'PECheckValveBlock' : s + 'pid2valves.valve;valveType=check;verticalLabelPosition=bottom;verticalAlign=top',
  1810. 'PECheckValve2Block' : s + 'pid2valves.valve;valveType=check;verticalLabelPosition=bottom;verticalAlign=top',
  1811. 'PEAngleValveBlock' : cs,
  1812. 'PEAngleGlobeValveBlock' : cs,
  1813. 'PEPoweredValveBlock' : cs,
  1814. 'PEFloatOperatedValveBlock' : s + 'pid2valves.valve;valveType=gate;actuator=singActing;verticalLabelPosition=bottom;verticalAlign=top',
  1815. 'PENeedleValve2Block' : s + 'pid2valves.valve;valveType=needle;verticalLabelPosition=bottom;verticalAlign=top',
  1816. 'PEThreeWayValveBlock' : s + 'pid2valves.valve;valveType=threeWay;actuator=none;verticalLabelPosition=bottom;verticalAlign=top',
  1817. // 'PEFourWayValveBlock' NA
  1818. // 'PEGaugeBlock' NA
  1819. 'PEBleederValveBlock' : s + 'pid2valves.blockBleedValve;actuator=none;verticalLabelPosition=bottom;verticalAlign=top',
  1820. // 'PEOrificeBlock' NA
  1821. 'PERotameterBlock' : s + 'pid.flow_sensors.rotameter;flipH=1;verticalLabelPosition=bottom;verticalAlign=top',
  1822. //Venn Gradient
  1823. 'VennGradientColor1' : 'shape=ellipse;fillOpacity=35',
  1824. 'VennGradientColor2' : 'shape=ellipse;fillOpacity=35',
  1825. 'VennGradientColor3' : 'shape=ellipse;fillOpacity=35',
  1826. 'VennGradientColor4' : 'shape=ellipse;fillOpacity=35',
  1827. 'VennGradientColor5' : 'shape=ellipse;fillOpacity=35',
  1828. 'VennGradientColor6' : 'shape=ellipse;fillOpacity=35',
  1829. 'VennGradientColor7' : 'shape=ellipse;fillOpacity=35',
  1830. 'VennGradientColor8' : 'shape=ellipse;fillOpacity=35',
  1831. //Venn Plain
  1832. 'VennPlainColor1' : 'shape=ellipse;fillOpacity=35',
  1833. 'VennPlainColor2' : 'shape=ellipse;fillOpacity=35',
  1834. 'VennPlainColor3' : 'shape=ellipse;fillOpacity=35',
  1835. 'VennPlainColor4' : 'shape=ellipse;fillOpacity=35',
  1836. 'VennPlainColor5' : 'shape=ellipse;fillOpacity=35',
  1837. 'VennPlainColor6' : 'shape=ellipse;fillOpacity=35',
  1838. 'VennPlainColor7' : 'shape=ellipse;fillOpacity=35',
  1839. 'VennPlainColor8' : 'shape=ellipse;fillOpacity=35',
  1840. //iOS Devices
  1841. 'iOS7DeviceiPhone5Portrait' : s + 'ios.iPhone;bgStyle=bgGreen', //TODO
  1842. 'iOS7DeviceiPhone5Landscape' : s + 'ios.iPhone;bgStyle=bgGreen', //TODO
  1843. 'iOS7DeviceiPadPortrait' : s + 'ios.iPad;bgStyle=bgGreen', //TODO
  1844. 'iOS7DeviceiPadLandscape' : s + 'ios.iPad;bgStyle=bgGreen', //TODO
  1845. 'iOS7DeviceiPhone6Portrait' : s + 'ios.iPhone;bgStyle=bgGreen', //TODO
  1846. 'iOS7DeviceiPhone6Landscape' : s + 'ios.iPhone;bgStyle=bgGreen', //TODO
  1847. 'iOS7DeviceiPhone6PlusPortrait' : s + 'ios.iPhone;bgStyle=bgGreen', //TODO
  1848. 'iOS7DeviceiPhone6PlusLandscape' : s + 'ios.iPhone;bgStyle=bgGreen', //TODO
  1849. //iPhone Elements
  1850. 'iOS7StatusBariPhone' : s + 'ios7ui.appBar',
  1851. // 'iOS7NavBariPhone' NA
  1852. 'iOS7TabsiPhone' : cs, //TODO
  1853. 'iOS7iPhoneActionSheet' : cs, //TODO
  1854. 'iOS7iPhoneKeyboard' : s + 'ios7.misc.keyboard_(letters)',
  1855. 'iOS7TableView' : cs, //TODO
  1856. //iPad Elements
  1857. 'iOS7StatusBariPad' : s + 'ios7ui.appBar',
  1858. 'iOS7NavBariPad' : cs, //TODO
  1859. 'iOS7TabsiPad' : cs, //TODO
  1860. 'iOS7iPadActionSheet' : cs, //TODO
  1861. 'iOS7iPadKeyboard' : s + 'ios7.misc.keyboard_(letters)',
  1862. // 'iOS7SplitView'
  1863. // 'iOS7iPadPopover'
  1864. //Common Elements
  1865. 'iOS7AlertDialog' : cs, //TODO
  1866. 'iOS7ProgressBar' : s + 'ios7ui.downloadBar', //TODO
  1867. 'iOS7Slider' : s + 'ios7ui.searchBox', //TODO
  1868. 'iOS7SearchBar' : s + 'ios7ui.searchBox',
  1869. 'iOS7Button' : '',
  1870. 'iOS7TextField' : '',
  1871. 'iOS7TextView' : '',
  1872. 'iOS7SegmentedControl' : cs, //TODO
  1873. 'iOS7Toggle' : s + 'ios7ui.onOffButton;buttonState=on;strokeColor=#38D145;strokeColor2=#aaaaaa;fillColor=#38D145;fillColor2=#ffffff', //TODO
  1874. 'iOS7Stepper' : s + 'ios7.misc.adjust;fillColor=#ffffff;gradientColor=none',
  1875. 'iOS7PageControls' : s + 'ios7ui.pageControl;fillColor=#666666;strokeColor=#bbbbbb', //TODO
  1876. 'iOS7Block' : '',
  1877. 'iOS7DatePicker' : cs, //TODO
  1878. 'iOS7TimePicker' : cs, //TODO
  1879. 'iOS7CountdownPicker' : cs, //TODO
  1880. //iOS Icons
  1881. 'iOS7IconArrow left' : s + 'ios7.misc.left',
  1882. 'iOS7IconArrow' : s + 'ios7.misc.right',
  1883. 'iOS7IconArrow up' : s + 'ios7.misc.up',
  1884. 'iOS7IconArrow down' : s + 'ios7.misc.down',
  1885. 'iOS7IconWifi' : s + 'ios7.icons.wifi',
  1886. 'iOS7IconBluetooth' : s + 'ios7.icons.bluetooth',
  1887. 'iOS7IconBattery' : s + 'ios7.icons.battery',
  1888. 'iOS7IconSiri' : s + 'ios7.icons.microphone',
  1889. 'iOS7IconCheck' : s + 'ios7.icons.select',
  1890. 'iOS7IconCreate' : s + 'ios7.icons.add',
  1891. 'iOS7IconInfo' : s + 'ios7.icons.info',
  1892. 'iOS7IconLocation' : s + 'ios7.icons.location_2',
  1893. 'iOS7IconQuestion' : s + 'ios7.icons.help',
  1894. 'iOS7IconSearch' : s + 'ios7.icons.looking_glass',
  1895. 'iOS7IconToolbox' : s + 'ios7.icons.briefcase',
  1896. 'iOS7IconOptions' : s + 'ios7.icons.options',
  1897. 'iOS7IconShare' : s + 'ios7.icons.share',
  1898. 'iOS7IconTyping' : s + 'ios7.icons.message',
  1899. 'iOS7IconCopy' : s + 'ios7.icons.folders_2',
  1900. 'iOS7IconChat' : s + 'ios7.icons.messages',
  1901. 'iOS7IconOrganize' : s + 'ios7.icons.folder',
  1902. 'iOS7IconTrash' : s + 'ios7.icons.trashcan',
  1903. 'iOS7IconReply' : s + 'ios7.icons.back',
  1904. 'iOS7IconArchive' : s + 'ios7.icons.box',
  1905. 'iOS7IconCompose' : s + 'ios7.icons.compose',
  1906. 'iOS7IconSend' : s + 'ios7.icons.pointer',
  1907. 'iOS7IconDrawer' : s + 'ios7.icons.storage',
  1908. 'iOS7IconMail' : s + 'ios7.icons.mail',
  1909. 'iOS7IconDocument' : s + 'ios7.icons.document',
  1910. 'iOS7IconFlag' : s + 'ios7.icons.flag',
  1911. 'iOS7IconBookmarks' : s + 'ios7.icons.book',
  1912. 'iOS7IconGlasses' : s + 'ios7.icons.glasses',
  1913. 'iOS7IconFiles' : s + 'ios7.icons.folders',
  1914. 'iOS7IconDownloads' : s + 'ios7.icons.down',
  1915. 'iOS7IconLock' : s + 'ios7.icons.locked',
  1916. // 'iOS7IconUnlock' NA
  1917. 'iOS7IconCloud' : s + 'ios7.icons.cloud',
  1918. // 'iOS7IconCloud-lock' NA
  1919. 'iOS7IconOrientation Lock' : s + 'ios7.icons.orientation_lock',
  1920. // 'iOS7IconNotification' NA
  1921. 'iOS7IconContacts' : s + 'ios7.icons.user',
  1922. 'iOS7IconGlobal' : s + 'ios7.icons.globe',
  1923. 'iOS7IconSettings' : s + 'ios7.icons.settings',
  1924. 'iOS7IconAirplay' : s + 'ios7.icons.move_to_folder',
  1925. 'iOS7IconCamera' : s + 'ios7.icons.camera',
  1926. 'iOS7IconAirplane' : s + 'signs.transportation.airplane_6;direction=south',
  1927. 'iOS7IconCalculator' : s + 'ios7.icons.calculator',
  1928. 'iOS7IconPreferences' : s + 'ios7.icons.most_viewed',
  1929. 'iOS7IconPhone' : s + 'signs.tech.telephone_3',
  1930. 'iOS7IconKeypad' : s + 'ios7.icons.keypad',
  1931. 'iOS7IconVoicemail' : s + 'ios7.icons.tape',
  1932. 'iOS7IconStar' : s + 'ios7.icons.star',
  1933. 'iOS7IconMost Viewed' : s + 'ios7.icons.most_viewed',
  1934. 'iOS7IconVideo' : s + 'ios7.icons.video_conversation',
  1935. 'iOS7IconVolumne Controls' : s + 'ios7.icons.volume',
  1936. 'iOS7IconLocation pin' : s + 'ios7.icons.location',
  1937. 'iOS7IconCalendar' : s + 'ios7.icons.calendar',
  1938. 'iOS7IconAlarm' : s + 'ios7.icons.alarm_clock',
  1939. 'iOS7IconClock' : s + 'ios7.icons.clock',
  1940. 'iOS7IconTimer' : s + 'ios7.icons.gauge',
  1941. 'iOS7IconVolume down' : s + 'ios7.icons.silent',
  1942. 'iOS7IconVolume' : s + 'ios7.icons.volume_2',
  1943. 'iOS7IconVolume up' : s + 'ios7.icons.loud',
  1944. 'iOS7IconRepeat' : s + 'ios7.icons.reload',
  1945. 'iOS7IconRewind' : s + 'ios7.icons.backward',
  1946. 'iOS7IconPlay' : s + 'ios7.icons.play',
  1947. 'iOS7IconPause' : s + 'ios7.icons.pause',
  1948. 'iOS7IconFast forward' : s + 'ios7.icons.forward',
  1949. // 'iOS7IconArtists' NA
  1950. // 'iOS7IconPlaylist' NA
  1951. 'iOS7IconControls' : s + 'ios7.icons.controls',
  1952. // 'iOS7IconShuffle' NA
  1953. 'iOS7IconPrivacy' : s + 'ios7.icons.privacy',
  1954. 'iOS7IconLink' : s + 'ios7.icons.link',
  1955. 'iOS7IconLight' : s + 'ios7.icons.flashlight',
  1956. 'iOS7IconBrightness' : s + 'ios7.icons.sun',
  1957. 'iOS7IconHeart' : s + 'ios7.icons.heart',
  1958. 'iOS7IconJava' : s + 'ios7.icons.cup',
  1959. 'iOS7IconBox' : s + 'ios7.icons.bag',
  1960. 'iOS7IconEye' : s + 'ios7.icons.eye',
  1961. 'iOS7IconDo not disturb' : s + 'ios7.icons.moon',
  1962. //iOS Activity
  1963. // 'iOS7ActivityAdd bookmark' NA
  1964. // 'iOS7ActivityAdd to home screen' NA
  1965. // 'iOS7ActivityAdd to reading list' NA
  1966. // 'iOS7ActivityAirplay' NA
  1967. // 'iOS7ActivityAssign to contact' NA
  1968. // 'iOS7ActivityCopy' NA
  1969. // 'iOS7ActivityPrint' NA
  1970. // 'iOS7ActivitySlideshow' NA
  1971. // 'iOS7ActivityUse as wallpaper' NA
  1972. //UI Containers
  1973. 'UI2BrowserBlock' : cs,
  1974. 'UI2WindowBlock' : cs,
  1975. 'UI2DialogBlock' : cs,
  1976. 'UI2AreaBlock' : '',
  1977. 'UI2ElementBlock' : '',
  1978. 'UI2AccordionBlock' : cs,
  1979. 'UI2TabBarContainerBlock' : cs,
  1980. 'UI2TabBar2ContainerBlock' : cs,
  1981. 'UI2VTabBarContainerBlock' : cs,
  1982. 'UI2VScrollBlock' : s + 'mockup.navigation.scrollBar;direction=north',
  1983. 'UI2HScrollBlock' : s + 'mockup.navigation.scrollBar',
  1984. 'UI2VerticalSplitterBlock' : s + 'mockup.forms.splitter;direction=north',
  1985. 'UI2HorizontalSplitterBlock' : s + 'mockup.forms.splitter',
  1986. //UI Widgets
  1987. 'UI2ImageBlock' : s + 'mockup.graphics.simpleIcon',
  1988. 'UI2VideoBlock' : s + 'mockup.containers.videoPlayer;barHeight=30',
  1989. 'UI2AudioBlock' : s + 'mockup.misc.playbackControls',
  1990. 'UI2MapBlock' : s + 'mockup.misc.map',
  1991. // 'UI2CalendarBlock' NA
  1992. 'UI2BarChartBlock' : s + 'mockup.graphics.barChart;strokeColor=none;strokeColor2=none',
  1993. 'UI2ColumnChartBlock' : s + 'mockup.graphics.columnChart;strokeColor=none;strokeColor2=none',
  1994. 'UI2LineChartBlock' : s + 'mockup.graphics.lineChart;strokeColor=none',
  1995. 'UI2PieChartBlock' : s + 'mockup.graphics.pieChart;parts=10,20,35',
  1996. 'UI2WebcamBlock' : s + 'mockup.containers.userMale',
  1997. 'UI2CaptchaBlock' : s + 'mockup.text.captcha;mainText=',
  1998. // 'Image_ui_formatting_toolbar2'
  1999. //UI Input
  2000. 'UI2ButtonBlock' : 'rounded=1;arcSize=25;',
  2001. 'UI2CheckBoxBlock' : cs,
  2002. 'UI2HorizontalCheckBoxBlock' : cs,
  2003. 'UI2RadioBlock' : cs,
  2004. 'UI2HorizontalRadioBlock' : cs,
  2005. 'UI2ColorPickerBlock' : s + 'mockup.forms.colorPicker;chosenColor=#aaddff',
  2006. 'UI2TextInputBlock' : '',
  2007. 'UI2SelectBlock' : s + 'mockup.forms.comboBox;strokeColor=#999999;fillColor=#ddeeff;align=left;fillColor2=#aaddff;mainText=;fontColor=#666666',
  2008. 'UI2VSliderBlock' : cs,
  2009. 'UI2HSliderBlock' : cs,
  2010. 'UI2DatePickerBlock' : cs,
  2011. 'UI2SearchBlock' : cs,
  2012. 'UI2NumericStepperBlock' : cs,
  2013. 'UI2TableBlock' : cs, //TODO
  2014. //UI Menus
  2015. 'UI2ButtonBarBlock' : cs,
  2016. 'UI2VerticalButtonBarBlock' : cs,
  2017. 'UI2LinkBarBlock' : cs,
  2018. 'UI2BreadCrumbsBlock' : cs,
  2019. 'UI2MenuBarBlock' : cs,
  2020. 'UI2AtoZBlock' : cs,
  2021. 'UI2PaginationBlock' : cs,
  2022. 'UI2ContextMenuBlock' : cs,
  2023. 'UI2TreePaneBlock' : cs, //TODO
  2024. 'UI2PlaybackControlsBlock' : s + 'mockup.misc.playbackControls;fillColor=#ffffff;strokeColor=#999999;fillColor2=#99ddff;strokeColor2=none;fillColor3=#ffffff;strokeColor3=none',
  2025. 'Image_ui_formatting_toolbar' : s + 'mockup.menus_and_buttons.font_style_selector_2',
  2026. //UI Misc
  2027. 'UI2ProgressBarBlock' : cs,
  2028. 'UI2HelpIconBlock' : s + 'mockup.misc.help_icon',
  2029. 'UI2BraceNoteBlock' : cs,
  2030. 'UI2TooltipBlock' : s + 'basic.rectangular_callout;flipV=1',
  2031. 'UI2TooltipSquareBlock' : cs,
  2032. 'UI2CalloutBlock' : cs,
  2033. 'UI2AlertBlock' : cs,
  2034. //iOS 6 iPad Elements
  2035. 'Image_ipad_ipad' : s + 'ios.iPad;bgStyle=bgGreen',
  2036. 'iPadGrayBackgroundBlock' : '',
  2037. 'Image_ipad_top_bar' : s + 'ios.iTopBar2;opacity=50;fillColor=#999999;strokeColor=#cccccc',
  2038. // 'Image_ipad_bar_gray' : '',
  2039. // 'Image_ipad_bar_semi_trans_black' : '',
  2040. // 'Image_ipad_bar_black' : '',
  2041. // 'Image_ipad_safari_top' NA
  2042. 'Image_ipad_search' : s + 'mockup.forms.searchBox;mainText=;flipH=1',
  2043. 'Image_ipad_alert_dialog' : cs, //TODO
  2044. 'Image_ipad_dialog' : cs, //TODO
  2045. 'Image_ipad_popover' : s + 'ios.iOption;barPos=50;pointerPos=top;buttonText=',
  2046. 'Image_ipad_table' : cs, //TODO
  2047. 'Image_ipad_vtab' : cs, //TODO
  2048. //iOS 6 iPad Controls
  2049. 'Image_ipad_button_black' : '',
  2050. 'Image_ipad_button_blue' : '',
  2051. 'Image_ipad_button_grayblue' : '',
  2052. 'Image_ipad_button_red' : '',
  2053. 'Image_ipad_back_button_gray' : s + 'ios.iButtonBack;buttonText=;fillColor=#eeeeee;fillColor2=#aaaaaa',
  2054. 'Image_ipad_back_button_black' : s + 'ios.iButtonBack;buttonText=;fillColor=#888888;fillColor2=#000000',
  2055. 'Image_ipad_sort_handle' : s + 'ios7.icons.options',
  2056. 'Image_ipad_dropdown' : s + 'ios.iComboBox;buttonText=;fillColor=#dddddd;fillColor2=#3D5565',
  2057. 'Image_ipad_email_name' : '',
  2058. 'Image_ipad_prev_next' : s + 'ios.iPrevNext;strokeColor=#444444;fillColor=#dddddd;fillColor2=#3D5565;fillColor3=#ffffff',
  2059. 'Image_ipad_keyboard_portrait' : s + 'ios.iKeybLett',
  2060. 'Image_ipad_keyboard_landscape' : s + 'ios.iKeybLett',
  2061. 'Image_ipad_large_tabbed_button' : cs, //TODO
  2062. 'Image_ipad_sort_button' : cs, //TODO
  2063. 'Image_ipad_tab_bar' : cs, //TODO
  2064. 'Image_ipad_slider' : s + 'ios.iSlider;barPos=20',
  2065. // 'Image_ipad_switch_off'
  2066. //iOS 6 iPad Icons
  2067. 'Image_ipad_add_icon_blue' : s + 'ios.iAddIcon;fillColor=#8BbEff;fillColor2=#135Ec8;strokeColor=#ffffff',
  2068. 'Image_ipad_add_icon_green' : s + 'ios.iAddIcon;fillColor=#7AdF78;fillColor2=#1A9917;strokeColor=#ffffff',
  2069. 'Image_ipad_remove_icon' : s + 'ios.iDeleteIcon;fillColor=#e8878E;fillColor2=#BD1421;strokeColor=#ffffff',
  2070. 'Image_ipad_arrow_icon' : s + 'ios.iArrowIcon;fillColor=#8BbEff;fillColor2=#135Ec8;strokeColor=#ffffff',
  2071. 'Image_ipad_arrow' : s + 'ios7.misc.more',
  2072. 'Image_ipad_checkmark' : s + 'ios7.misc.check',
  2073. 'Image_ipad_check_off' : 'shape=ellipse', //TODO
  2074. 'Image_ipad_location_dot' : 'shape=ellipse',
  2075. 'Image_ipad_mark_as_read' : 'shape=ellipse',
  2076. 'Image_ipad_pin_green' : s + 'ios.iPin;fillColor2=#00dd00;fillColor3=#004400;strokeColor=#006600',
  2077. 'Image_ipad_pin_red' : s + 'ios.iPin;fillColor2=#dd0000;fillColor3=#440000;strokeColor=#660000',
  2078. 'Image_ipad_radio_off' : 'shape=ellipse', //TODO
  2079. 'Image_ipad_checkbox_off' : 'absoluteArcSize=1;arcSize=' + arcSize + ';rounded=1', //TODO
  2080. 'Image_ipad_indicator' : 'absoluteArcSize=1;arcSize=' + arcSize + ';rounded=1;fillColor=#e8878E;gradientColor=#BD1421;strokeColor=#ffffff',
  2081. //iOS 6 iPhone Elements
  2082. 'Image_iphone_iphone_4' : s + 'ios.iPhone;bg=bgGreen',
  2083. 'Image_iphone_bg_black' : '',
  2084. 'Image_iphone_bg_gray' : '',
  2085. 'Image_iphone_bg_stripe_drk' : s + 'ios.iBgStriped;strokeColor=#18211b;fillColor=#5D7585;strokeColor2=#657E8F',
  2086. 'Image_iphone_bg_stripe_lt' : s + 'ios.iBgStriped;strokeColor=#18211b;fillColor=#5D7585;strokeColor2=#657E8F',
  2087. 'Image_iphone_bg_white' : '',
  2088. 'Image_iphone_top_bar_app' : s + 'ios.iAppBar',
  2089. 'Image_iphone_top_bar_home' : s + 'ios.iTopBar2;opacity=50;fillColor=#999999;strokeColor=#cccccc;strokeWidth=1',
  2090. 'Image_iphone_bar_top' : '',
  2091. 'Image_iphone_bar_semi_trans_black' : '',
  2092. 'Image_iphone_bar_semi_trans_blue' : '',
  2093. 'Image_iphone_search' : s + 'mockup.forms.searchBox;mainText=;flipH=1',
  2094. 'Image_iphone_table' : cs, //TODO
  2095. 'Image_iphone_table_w_buttons' : cs, //TODO
  2096. 'Image_iphone_table_w_icons' : cs, //TODO
  2097. 'Image_iphone_list' : cs, //TODO
  2098. // 'Image_iphone_safari_top' NA
  2099. // 'Image_iphone_safari_bottom' NA
  2100. 'Image_iphone_gray_grad_list' : '', //TODO
  2101. // 'Image_iphone_alert_bar' NA
  2102. // 'Image_iphone_alert_dialog' : cs, //TODO
  2103. 'Image_iphone_dialog' : cs, //TODO
  2104. 'Image_iphone_scroll_pane' : cs, //TODO
  2105. 'Image_iphone_alpha_list' : s + 'ios.iAlphaList',
  2106. //iOS 6 iPhone Controls
  2107. 'Image_iphone_button_black' : '',
  2108. 'Image_iphone_button_blue' : '',
  2109. 'Image_iphone_button_grayblue' : '',
  2110. 'Image_iphone_button_red' : '',
  2111. 'Image_iphone_button_lg_light' : '',
  2112. 'Image_iphone_button_lg_dark' : '',
  2113. 'Image_iphone_button_lg_green' : '',
  2114. 'Image_iphone_button_lg_red' : '',
  2115. 'Image_iphone_button_lg_yellow' : '',
  2116. 'Image_iphone_button_xl_green' : '',
  2117. 'Image_iphone_back_button' : s + 'ios.iButtonBack;strokeColor=#444444;buttonText=;fillColor=#dddddd;fillColor2=#3D5565',
  2118. 'Image_iphone_prev_next' : s + 'ios.iPrevNext;strokeColor=#444444;fillColor=#dddddd;fillColor2=#3D5565;fillColor3=#ffffff',
  2119. 'Image_iphone_sort_handle' : s + 'ios7.icons.options',
  2120. 'Image_iphone_slider' : s + 'ios.iSlider;barPos=60',
  2121. 'Image_iphone_dropdown' : s + 'ios.iComboBox;buttonText=;fillColor=#dddddd;fillColor2=#3D5565',
  2122. 'Image_iphone_email_name' : '',
  2123. 'Image_iphone_switch_off' : s + 'android.switch_off;fillColor=#666666', //TODO
  2124. 'Image_iphone_keyboard_button_blue' : '',
  2125. 'Image_iphone_keyboard_letters' : s + 'ios.iKeybLett',
  2126. 'Image_iphone_keyboard_landscape' : s + 'ios.iKeybLett',
  2127. 'Image_iphone_large_tabbed_button' : cs, //TODO
  2128. 'Image_iphone_sort_button' : cs, //TODO
  2129. 'Image_iphone_tab_bar' : cs, //TODO
  2130. 'Image_iphone_picker_multi' : cs, //TODO
  2131. 'Image_iphone_picker_web' : cs, //TODO
  2132. //iOS 6 iPhone Icons
  2133. 'Image_iphone_add_icon_blue' : s + 'ios.iAddIcon;fillColor=#8BbEff;fillColor2=#135Ec8;strokeColor=#ffffff',
  2134. 'Image_iphone_add_icon_green' : s + 'ios.iAddIcon;fillColor=#7AdF78;fillColor2=#1A9917;strokeColor=#ffffff',
  2135. 'Image_iphone_remove_icon' : s + 'ios.iDeleteIcon;fillColor=#e8878E;fillColor2=#BD1421;strokeColor=#ffffff',
  2136. 'Image_iphone_arrow_icon' : s + 'ios.iArrowIcon;fillColor=#8BbEff;fillColor2=#135Ec8;strokeColor=#ffffff',
  2137. 'Image_iphone_arrow' : s + 'ios7.misc.more',
  2138. 'Image_iphone_checkmark' : s + 'ios7.misc.check',
  2139. 'Image_iphone_check_off' : 'shape=ellipse', //TODO
  2140. 'Image_iphone_location_dot' : 'shape=ellipse',
  2141. 'Image_iphone_mark_as_read' : 'shape=ellipse',
  2142. 'Image_iphone_pin_green' : s + 'ios.iPin;fillColor2=#00dd00;fillColor3=#004400;strokeColor=#006600',
  2143. 'Image_iphone_pin_red' : s + 'ios.iPin;fillColor2=#dd0000;fillColor3=#440000;strokeColor=#660000',
  2144. 'Image_iphone_radio_off' : 'shape=ellipse', //TODO
  2145. 'Image_iphone_checkbox_off' : '', //TODO
  2146. 'Image_iphone_indicator' : 'fillColor=#e8878E;gradientColor=#BD1421;strokeColor=#ffffff',
  2147. 'Image_iphone_thread_count' : ''
  2148. };
  2149. function convertText(props)
  2150. {
  2151. var text = (props.Text != null) ? props.Text :
  2152. ((props.Value != null) ? props.Value :
  2153. props.Lane_0);
  2154. var text2 = null;
  2155. if (text == null && props.State != null)
  2156. {
  2157. if (props.State.t != null)
  2158. {
  2159. text = props.State;
  2160. }
  2161. }
  2162. else if (text == null && props.Note != null)
  2163. {
  2164. if (props.Note.t != null)
  2165. {
  2166. text = props.Note;
  2167. }
  2168. }
  2169. else if (text == null && props.Title != null)
  2170. {
  2171. if (props.Title.t != null)
  2172. {
  2173. text = props.Title;
  2174. }
  2175. }
  2176. else if (props.t != null)
  2177. {
  2178. text = props;
  2179. }
  2180. if (text == null && props.TextAreas != null)
  2181. {
  2182. if (props.TextAreas.Text != null)
  2183. {
  2184. if (props.TextAreas.Text.Value != null)
  2185. {
  2186. if (props.TextAreas.Text.Value.t != null)
  2187. {
  2188. text = props.TextAreas.Text.Value;
  2189. }
  2190. }
  2191. }
  2192. }
  2193. // TODO: Convert text object to HTML
  2194. if (text != null)
  2195. {
  2196. if (text.t != null)
  2197. {
  2198. text.t = text.t.replace(/</g, '&lt;');
  2199. text.t = text.t.replace(/>/g, '&gt;');
  2200. return text.t;
  2201. }
  2202. if (text.Value != null)
  2203. {
  2204. if (text.Value.t != null)
  2205. {
  2206. text.Value.t = text.Value.t.replace(/</g, '&lt;');
  2207. text.Value.t = text.Value.t.replace(/>/g, '&gt;');
  2208. return text.Value.t;
  2209. }
  2210. }
  2211. }
  2212. return (text2 != null) ? text2 : '';
  2213. };
  2214. function getAction(obj)
  2215. {
  2216. if (obj.Action != null)
  2217. {
  2218. return obj.Action;
  2219. }
  2220. return obj;
  2221. };
  2222. function getTextM(properties)
  2223. {
  2224. if (properties.Text != null)
  2225. {
  2226. if (properties.Text.m != null)
  2227. {
  2228. return properties.Text.m;
  2229. }
  2230. }
  2231. else if(properties.TextAreas != null)
  2232. {
  2233. if (properties.TextAreas.Text != null)
  2234. {
  2235. if (properties.TextAreas.Text.Value != null)
  2236. {
  2237. if (properties.TextAreas.Text.Value.m != null)
  2238. {
  2239. return properties.TextAreas.Text.Value.m;
  2240. }
  2241. }
  2242. }
  2243. }
  2244. else if (properties.m != null)
  2245. {
  2246. return properties.m;
  2247. }
  2248. return null;
  2249. }
  2250. function getLabelStyle(properties)
  2251. {
  2252. var style = getFontSize(properties) +
  2253. getFontColor(properties) +
  2254. getFontStyle(properties) +
  2255. getTextAlignment(properties) +
  2256. getTextLeftSpacing(properties) +
  2257. getTextRightSpacing(properties) +
  2258. getTextTopSpacing(properties) +
  2259. getTextBottomSpacing(properties) +
  2260. getTextGlobalSpacing(properties) +
  2261. getTextVerticalAlignment(properties);
  2262. return style;
  2263. }
  2264. function getFontSize(properties)
  2265. {
  2266. //adds font size
  2267. var isV = false;
  2268. var m = getTextM(properties);
  2269. if (m != null)
  2270. {
  2271. var i = 0;
  2272. while ((!isV) && (i < m.length))
  2273. {
  2274. var currM = m[i];
  2275. if (currM.n == 's')
  2276. {
  2277. if (currM.v != null)
  2278. {
  2279. isV = true;
  2280. return 'fontSize=' + Math.round(currM.v * scale) + ';';
  2281. }
  2282. }
  2283. i++;
  2284. }
  2285. }
  2286. if (isV == 0)
  2287. {
  2288. return 'fontSize=10;';
  2289. }
  2290. return '';
  2291. }
  2292. function getFontColor(properties)
  2293. {
  2294. //adds font color
  2295. var isC = false;
  2296. var m = getTextM(properties);
  2297. if (m != null)
  2298. {
  2299. var i = 0;
  2300. while ((!isC) && (i < m.length))
  2301. {
  2302. var currM = m[i];
  2303. if (currM.n == 'c')
  2304. {
  2305. if (currM.v != null)
  2306. {
  2307. isC = true;
  2308. var currV = currM.v;
  2309. if (currV.charAt(0) != '#')
  2310. {
  2311. currV = '#' + currV;
  2312. }
  2313. var currV = currV.substring(0, 7);
  2314. return mxConstants.STYLE_FONTCOLOR + '=' + currV + ';';
  2315. }
  2316. }
  2317. i++;
  2318. }
  2319. }
  2320. return '';
  2321. }
  2322. function getFontStyle(properties)
  2323. {
  2324. var m = getTextM(properties);
  2325. if (m != null)
  2326. {
  2327. var fontStyle = 0;
  2328. //check for bold text
  2329. var isBT = false;
  2330. if (m != null)
  2331. {
  2332. var i = 0;
  2333. while ((!isBT) && (i < m.length))
  2334. {
  2335. var currM = m[i];
  2336. if (currM.n == 'b')
  2337. {
  2338. if (currM.v != null && currM.v)
  2339. {
  2340. isBT = true;
  2341. fontStyle += 1;
  2342. }
  2343. }
  2344. i++;
  2345. }
  2346. }
  2347. //check for italic text
  2348. var isIT = false;
  2349. if (m != null)
  2350. {
  2351. var i = 0;
  2352. while ((!isIT) && (i < m.length))
  2353. {
  2354. var currM = m[i];
  2355. if (currM.n == 'i')
  2356. {
  2357. if (currM.v != null && currM.v)
  2358. {
  2359. isIT = true;
  2360. fontStyle += 2;
  2361. }
  2362. }
  2363. i++;
  2364. }
  2365. }
  2366. //check for underline text
  2367. var isUT = false;
  2368. if (m != null)
  2369. {
  2370. var i = 0;
  2371. while ((!isUT) && (i < m.length))
  2372. {
  2373. var currM = m[i];
  2374. if (currM.n == 'u')
  2375. {
  2376. if (currM.v != null && currM.v)
  2377. {
  2378. isUT = true;
  2379. fontStyle += 4;
  2380. }
  2381. }
  2382. i++;
  2383. }
  2384. }
  2385. if (fontStyle > 0)
  2386. {
  2387. return 'fontStyle=' + fontStyle + ';';
  2388. }
  2389. }
  2390. return '';
  2391. }
  2392. function getTextAlignment(properties)
  2393. {
  2394. var m = getTextM(properties);
  2395. //adds text alignment
  2396. if (m != null)
  2397. {
  2398. var i = 0;
  2399. while (i < m.length)
  2400. {
  2401. var currM = m[i];
  2402. if (currM.n == 'a')
  2403. {
  2404. if (currM.v != null)
  2405. {
  2406. return 'align=' + currM.v + ';';
  2407. }
  2408. }
  2409. i++;
  2410. }
  2411. }
  2412. return '';
  2413. }
  2414. function getTextLeftSpacing(properties)
  2415. {
  2416. var m = getTextM(properties);
  2417. if (m != null)
  2418. {
  2419. //adds left spacing
  2420. var i = 0;
  2421. while (i < m.length)
  2422. {
  2423. var currM = m[i];
  2424. if (currM.n == 'il')
  2425. {
  2426. if (currM.v != null)
  2427. {
  2428. return 'spacingLeft=' + currM.v * 0.6 + ';';
  2429. }
  2430. }
  2431. else if (currM.n == 's' && getTextAlignment(properties) != 'align=center;')
  2432. {
  2433. if (currM.v != null)
  2434. {
  2435. return 'spacingLeft=' + currM.v * 0.6 + ';';
  2436. }
  2437. }
  2438. i++;
  2439. }
  2440. }
  2441. return '';
  2442. }
  2443. function getTextRightSpacing(properties)
  2444. {
  2445. //adds right spacing
  2446. var isIR = false;
  2447. var m = getTextM(properties);
  2448. if (m != null)
  2449. {
  2450. var i = 0;
  2451. while ((!isIR) && (i < m.length))
  2452. {
  2453. var currM = m[i];
  2454. if (currM.n == 'ir')
  2455. {
  2456. if (currM.v != null)
  2457. {
  2458. isIR = true;
  2459. return 'spacingRight=' + currM.v + ';';
  2460. }
  2461. }
  2462. i++;
  2463. }
  2464. }
  2465. return '';
  2466. }
  2467. function getTextTopSpacing(properties)
  2468. {
  2469. //adds top spacing
  2470. var isMT = false;
  2471. var m = getTextM(properties);
  2472. if (m != null)
  2473. {
  2474. var i = 0;
  2475. while ((!isMT) && (i < m.length))
  2476. {
  2477. var currM = m[i];
  2478. if (currM.n == 'mt')
  2479. {
  2480. if (currM.v != null)
  2481. {
  2482. isMT = true;
  2483. return 'spacingTop=' + currM.v + ';';
  2484. }
  2485. }
  2486. i++;
  2487. }
  2488. }
  2489. return '';
  2490. }
  2491. function getTextBottomSpacing(properties)
  2492. {
  2493. //adds bottom spacing
  2494. var isMB = false;
  2495. var m = getTextM(properties);
  2496. if (m != null)
  2497. {
  2498. var i = 0;
  2499. while ((!isMB) && (i < m.length))
  2500. {
  2501. var currM = m[i];
  2502. if (currM.n == 'mb')
  2503. {
  2504. if (currM.v != null)
  2505. {
  2506. isMB = true;
  2507. return 'spacingBottom=' + currM.v + ';';
  2508. }
  2509. }
  2510. i++;
  2511. }
  2512. }
  2513. return '';
  2514. }
  2515. function getTextGlobalSpacing(properties)
  2516. {
  2517. //adds global spacing
  2518. if (typeof properties.InsetMargin === 'number')
  2519. {
  2520. return 'spacing=' + parseInt(properties.InsetMargin) + ';';
  2521. }
  2522. return '';
  2523. }
  2524. function getTextVerticalAlignment(properties)
  2525. {
  2526. // adds text vertical alignment
  2527. if (properties.Text_VAlign != null)
  2528. {
  2529. if (typeof properties.Text_VAlign === 'string')
  2530. {
  2531. return 'verticalAlign=' + properties.Text_VAlign + ';';
  2532. }
  2533. }
  2534. return createStyle(mxConstants.STYLE_VERTICAL_ALIGN, properties.TextVAlign, 'middle');
  2535. }
  2536. function getStrokeColor(properties, action)
  2537. {
  2538. if (!hardStroke.includes(action.Class))
  2539. {
  2540. if (properties.LineWidth == 0)
  2541. {
  2542. return mxConstants.STYLE_STROKECOLOR + '=none;';
  2543. }
  2544. else
  2545. {
  2546. return createStyle(mxConstants.STYLE_STROKECOLOR, properties.LineColor.substring(0, 7), '#000000');
  2547. }
  2548. }
  2549. else
  2550. {
  2551. if (action.Class.substring(0,4) == 'Venn')
  2552. {
  2553. return createStyle(mxConstants.STYLE_STROKECOLOR, properties.FillColor.substring(0, 7), '#FFFFFF');
  2554. }
  2555. }
  2556. return '';
  2557. }
  2558. function getOpacity(properties, action)
  2559. {
  2560. var style = '';
  2561. if (!hardOpacity.includes(action.Class))
  2562. {
  2563. style += createStyle(mxConstants.STYLE_OPACITY, properties.Opacity, '100');
  2564. }
  2565. if (typeof properties.LineColor === 'string' && !hardOpacity.includes(action.Class))
  2566. {
  2567. if (properties.LineColor.length > 7)
  2568. {
  2569. var sOpac = "0x" + properties.LineColor.substring(properties.LineColor.length - 2, properties.LineColor.length);
  2570. style += 'strokeOpacity=' + Math.round(parseInt(sOpac) / 2.55) + ';';
  2571. }
  2572. }
  2573. if (typeof properties.FillColor === 'string' && !hardOpacity.includes(action.Class))
  2574. {
  2575. if (properties.FillColor.length > 7)
  2576. {
  2577. var fOpac = "0x" + properties.FillColor.substring(properties.FillColor.length - 2, properties.FillColor.length);
  2578. style += 'fillOpacity=' + Math.round(parseInt(fOpac) / 2.55) + ';';
  2579. }
  2580. }
  2581. return style;
  2582. }
  2583. function getRounded(properties, action)
  2584. {
  2585. //rounding check
  2586. if (properties.Rounding != null && !hardRound.includes(action.Class))
  2587. {
  2588. if (properties.Rounding > 0)
  2589. {
  2590. return 'rounded=1;absoluteArcSize=1;arcSize=' + properties.Rounding * 0.6 + ';';
  2591. }
  2592. }
  2593. else if (properties.Rounding == null && hardDefRound.includes(action.Class))
  2594. {
  2595. return 'rounded=1;absoluteArcSize=1;arcSize=8;'
  2596. }
  2597. return '';
  2598. }
  2599. function getRotation(properties, action, cell)
  2600. {
  2601. // Converts rotation
  2602. if (properties.Rotation != null)
  2603. {
  2604. // KNOWN: TextRotation currently ignored
  2605. var deg = mxUtils.toDegree(parseFloat(properties.Rotation));
  2606. // Fixes the case for horizontal swimlanes where we use horizontal=0
  2607. // and Lucid uses rotation
  2608. if (action.Class == 'AdvancedSwimLaneBlockRotated')
  2609. {
  2610. deg += 90;
  2611. cell.geometry.rotate90();
  2612. }
  2613. else if (rccw.includes(action.Class))
  2614. {
  2615. deg -= 90;
  2616. cell.geometry.rotate90();
  2617. cell.geometry.rotate90();
  2618. cell.geometry.rotate90();
  2619. }
  2620. else if (rcw2.includes(action.Class))
  2621. {
  2622. deg += 180;
  2623. cell.geometry.rotate90();
  2624. cell.geometry.rotate90();
  2625. }
  2626. if (deg != 0)
  2627. {
  2628. return 'rotation=' + deg + ';';
  2629. }
  2630. }
  2631. return '';
  2632. }
  2633. function getFlipH(properties)
  2634. {
  2635. if (properties.FlipX)
  2636. {
  2637. return 'flipH=1;';
  2638. }
  2639. return '';
  2640. }
  2641. function getFlipV(properties)
  2642. {
  2643. if (properties.FlipY)
  2644. {
  2645. return 'flipV=1;';
  2646. }
  2647. return '';
  2648. }
  2649. function getShadow(properties)
  2650. {
  2651. // Shadow is mapped simple shadow style
  2652. if (properties.Shadow != null)
  2653. {
  2654. return mxConstants.STYLE_SHADOW + '=1;';
  2655. }
  2656. return '';
  2657. }
  2658. function getFillColor(properties, action)
  2659. {
  2660. // Gradients and fill color
  2661. if (properties.FillColor != null)
  2662. {
  2663. if (!hardFill.includes(action.Class))
  2664. {
  2665. if (typeof properties.FillColor === 'object')
  2666. {
  2667. if (properties.FillColor.cs != null && properties.FillColor.cs.length > 1)
  2668. {
  2669. return createStyle(mxConstants.STYLE_FILLCOLOR, properties.FillColor.cs[0].c.substring(0, 7)) + createStyle(mxConstants.STYLE_GRADIENTCOLOR, properties.FillColor.cs[1].c.substring(0, 7));
  2670. }
  2671. }
  2672. else if (typeof properties.FillColor === 'string')
  2673. {
  2674. return createStyle(mxConstants.STYLE_FILLCOLOR, properties.FillColor.substring(0, 7), '#FFFFFF');
  2675. }
  2676. else
  2677. {
  2678. return createStyle(mxConstants.STYLE_FILLCOLOR, 'none');
  2679. }
  2680. }
  2681. }
  2682. return '';
  2683. }
  2684. function getStrokeStyle(properties)
  2685. {
  2686. // Stroke style
  2687. if (properties.StrokeStyle == 'dashed')
  2688. {
  2689. return 'dashed=1;';
  2690. }
  2691. else if (properties.StrokeStyle == 'dotted')
  2692. {
  2693. return 'dashed=1;dashPattern=1 4;';
  2694. }
  2695. else if (properties.StrokeStyle == 'dashdot')
  2696. {
  2697. return 'dashed=1;dashPattern=10 5 1 5;';
  2698. }
  2699. else if (properties.StrokeStyle == 'dotdotdot')
  2700. {
  2701. return 'dashed=1;dashPattern=1 1;';
  2702. }
  2703. return '';
  2704. }
  2705. function getStrokeWidth(properties)
  2706. {
  2707. return createStyle(mxConstants.STYLE_STROKEWIDTH, parseFloat(properties.LineWidth) * scale, '1');
  2708. }
  2709. function getImage(properties, action)
  2710. {
  2711. // Converts images
  2712. if (action.Class == 'ImageSearchBlock2')
  2713. {
  2714. return 'image=' + properties.URL + ';';
  2715. }
  2716. return '';
  2717. }
  2718. function updateCell(cell, obj)
  2719. {
  2720. var a = getAction(obj);
  2721. if (a != null)
  2722. {
  2723. var s = styleMap[a.Class] + ';';
  2724. if (s != null)
  2725. {
  2726. cell.style += s;
  2727. }
  2728. // else if (a.Class != null)
  2729. {
  2730. // console.log('no mapping', a.Class);
  2731. }
  2732. var p = (a.Properties != null) ? a.Properties : a;
  2733. if (p != null)
  2734. {
  2735. //adds label
  2736. cell.value = convertText(p);
  2737. cell.style += getFontSize(p) +
  2738. getFontColor(p) +
  2739. getFontStyle(p) +
  2740. getTextAlignment(p, cell) +
  2741. getTextLeftSpacing(p) +
  2742. getTextRightSpacing(p) +
  2743. getTextTopSpacing(p) +
  2744. getTextBottomSpacing(p) +
  2745. getTextGlobalSpacing(p) +
  2746. getTextVerticalAlignment(p) +
  2747. getStrokeColor(p, a) +
  2748. getOpacity(p, a) +
  2749. getRounded(p, a) +
  2750. getRotation(p, a, cell) +
  2751. getFlipH(p) +
  2752. getFlipV(p) +
  2753. getShadow(p) +
  2754. getFillColor(p, a) +
  2755. getStrokeStyle(p) +
  2756. getStrokeWidth(p) +
  2757. getImage(p, a);
  2758. // Edge style
  2759. if (cell.edge)
  2760. {
  2761. cell.style += 'rounded=1;arcSize=' + arcSize + ';';
  2762. if (p.Shape != 'diagonal')
  2763. {
  2764. if (p.ElbowPoints != null)
  2765. {
  2766. cell.geometry.points = [];
  2767. for (var i = 0; i < p.ElbowPoints.length; i++)
  2768. {
  2769. cell.geometry.points.push(new mxPoint(Math.round(p.ElbowPoints[i].x * scale + dx),
  2770. Math.round(p.ElbowPoints[i].y * scale + dy)));
  2771. }
  2772. }
  2773. else if (p.Shape == 'elbow')
  2774. {
  2775. if (p.Endpoint1.Block != null && p.Endpoint1.Block != null)
  2776. {
  2777. cell.style += 'edgeStyle=orthogonalEdgeStyle;';
  2778. }
  2779. else
  2780. {
  2781. cell.style += 'edgeStyle=elbowEdgeStyle;';
  2782. }
  2783. }
  2784. else if (p.Endpoint1.Block != null && p.Endpoint1.Block != null)
  2785. {
  2786. cell.style += 'edgeStyle=orthogonalEdgeStyle;';
  2787. if (p.Shape == 'curve')
  2788. {
  2789. cell.style += 'curved=1;';
  2790. }
  2791. }
  2792. }
  2793. if (p.Endpoint1.Style != null)
  2794. {
  2795. cell.style += 'startArrow=' + edgeStyleMap[p.Endpoint1.Style] + ';';
  2796. }
  2797. if (p.Endpoint2.Style != null)
  2798. {
  2799. cell.style += 'endArrow=' + edgeStyleMap[p.Endpoint2.Style].replace(/startSize/g, 'endSize') + ';';
  2800. }
  2801. // Anchor points and arrows
  2802. // TODO: Convert waypoints, elbowPoints
  2803. updateEndpoint(cell, p.Endpoint1, true);
  2804. updateEndpoint(cell, p.Endpoint2, false);
  2805. }
  2806. }
  2807. }
  2808. };
  2809. function createVertex(obj)
  2810. {
  2811. var p = getAction(obj).Properties;
  2812. var b = p.BoundingBox;
  2813. if (obj.Class != null && obj.Class.substring(0, 3) === "AWS")
  2814. {
  2815. b.h = b.h - 20;
  2816. }
  2817. v = new mxCell('', new mxGeometry(Math.round(b.x * scale + dx), Math.round(b.y * scale + dy),
  2818. Math.round(b.w * scale), Math.round(b.h * scale)), vertexStyle);
  2819. v.vertex = true;
  2820. updateCell(v, obj);
  2821. return v;
  2822. };
  2823. function createEdge(obj)
  2824. {
  2825. var e = new mxCell('', new mxGeometry(0, 0, 100, 100), edgeStyle);
  2826. e.geometry.relative = true;
  2827. e.edge = true;
  2828. updateCell(e, obj);
  2829. // Adds text labels
  2830. var a = getAction(obj);
  2831. var p = a.Properties;
  2832. var ta = (p != null) ? p.TextAreas : obj.TextAreas;
  2833. if (ta != null)
  2834. {
  2835. var count = 0;
  2836. while (ta['t' + count] != null)
  2837. {
  2838. var tmp = ta['t' + count];
  2839. e = insertLabel(tmp, e);
  2840. count++;
  2841. }
  2842. var count = 1;
  2843. while (ta['m' + count] != null)
  2844. {
  2845. var tmp = ta['m' + count];
  2846. e = insertLabel(tmp, e, obj);
  2847. count++;
  2848. }
  2849. if (ta.Text != null)
  2850. {
  2851. e = insertLabel(ta, e, obj);
  2852. }
  2853. var ta = (p != null) ? p.TextAreas : obj.TextAreas;
  2854. if (ta.Message != null)
  2855. {
  2856. e = insertLabel(ta.Message, e, obj);
  2857. }
  2858. }
  2859. return e;
  2860. }
  2861. function insertLabel(textArea, e, obj)
  2862. {
  2863. var x = (parseFloat(textArea.Location) - 0.5) * 2;
  2864. var lab = new mxCell(convertText(textArea), new mxGeometry(x, 0, 0, 0), labelStyle);
  2865. lab.geometry.relative = true
  2866. lab.vertex = true;
  2867. e.insert(lab);
  2868. return e;
  2869. };
  2870. function createStyle(key, prop, defaultValue, fn)
  2871. {
  2872. if (prop != null && fn != null)
  2873. {
  2874. prop = fn(prop);
  2875. }
  2876. if (prop != null && prop != defaultValue)
  2877. {
  2878. return key + '=' + prop + ';';
  2879. }
  2880. return '';
  2881. };
  2882. function updateEndpoint(cell, endpoint, source)
  2883. {
  2884. if (endpoint != null)
  2885. {
  2886. if (endpoint.LinkX != null && endpoint.LinkY != null)
  2887. {
  2888. cell.style += ((source) ? 'exitX' : 'entryX') + '=' + endpoint.LinkX + ';' +
  2889. ((source) ? 'exitY' : 'entryY') + '=' + endpoint.LinkY + ';' +
  2890. ((source) ? 'exitPerimeter' : 'entryPerimeter') + '=0;';
  2891. }
  2892. }
  2893. };
  2894. var hideObj = function(key, groups, hidden)
  2895. {
  2896. if (!hidden.includes(key))
  2897. {
  2898. hidden.push(key);
  2899. }
  2900. if (key in groups)
  2901. {
  2902. var obj = groups[key];
  2903. obj.id = key;
  2904. if (obj.Members != null)
  2905. {
  2906. for (var key2 in obj.Members)
  2907. {
  2908. hidden = hideObj(key2, groups, hidden);
  2909. }
  2910. }
  2911. }
  2912. return hidden;
  2913. };
  2914. EditorUi.prototype.pasteLucidChart = function(g, dx, dy, crop)
  2915. {
  2916. // Creates a new graph, inserts cells and returns XML for insert
  2917. var graph = this.editor.graph;
  2918. graph.getModel().beginUpdate();
  2919. try
  2920. {
  2921. var select = [];
  2922. var lookup = {};
  2923. var queue = [];
  2924. //collect IDs that are part of groups and hidden
  2925. var hidden = [];
  2926. var i = 0;
  2927. if (g.Groups != null)
  2928. {
  2929. for (var key in g.Groups)
  2930. {
  2931. var obj = g.Groups[key];
  2932. obj.id = key;
  2933. if (obj.Hidden == true && obj.Members != null)
  2934. {
  2935. if (!hidden.includes(key))
  2936. {
  2937. hidden.push(key);
  2938. }
  2939. for (var key2 in obj.Members)
  2940. {
  2941. hidden = hideObj(key2, g.Groups, hidden);
  2942. }
  2943. }
  2944. }
  2945. }
  2946. // Vertices first (populates lookup table for connecting edges)
  2947. if (g.Blocks != null)
  2948. {
  2949. for (var key in g.Blocks)
  2950. {
  2951. var obj = g.Blocks[key];
  2952. obj.id = key;
  2953. if (!hidden.includes(key))
  2954. {
  2955. var created = false;
  2956. if (styleMap[obj.Class] != null)
  2957. {
  2958. if (styleMap[obj.Class] == 'mxCompositeShape')
  2959. {
  2960. lookup[obj.id] = addCompositeShape(obj, select, graph);
  2961. queue.push(obj);
  2962. created = true;
  2963. }
  2964. }
  2965. if (!created)
  2966. {
  2967. lookup[obj.id] = createVertex(obj);
  2968. queue.push(obj);
  2969. }
  2970. }
  2971. }
  2972. }
  2973. else
  2974. {
  2975. for (var i = 0; i < g.Objects.length; i++)
  2976. {
  2977. var obj = g.Objects[i];
  2978. if (obj.IsBlock && obj.Action != null && obj.Action.Properties != null)
  2979. {
  2980. lookup[obj.id] = createVertex(obj);
  2981. }
  2982. queue.push(obj);
  2983. }
  2984. }
  2985. // Sorts all cells by ZOrder
  2986. queue.sort(function(a, b)
  2987. {
  2988. a = getAction(a);
  2989. b = getAction(b);
  2990. if (a.Properties != null)
  2991. {
  2992. if (b.Properties != null)
  2993. {
  2994. return a.Properties.ZOrder - b.Properties.ZOrder;
  2995. }
  2996. }
  2997. return 0;
  2998. });
  2999. function addLine(obj, p)
  3000. {
  3001. var src = (p.Endpoint1.Block != null) ? lookup[p.Endpoint1.Block] : null;
  3002. var trg = (p.Endpoint2.Block != null) ? lookup[p.Endpoint2.Block] : null;
  3003. var e = createEdge(obj);
  3004. if (src == null && p.Endpoint1 != null)
  3005. {
  3006. e.geometry.setTerminalPoint(new mxPoint(Math.round(p.Endpoint1.x * scale),
  3007. Math.round(p.Endpoint1.y * scale)), true);
  3008. }
  3009. if (trg == null && p.Endpoint2 != null)
  3010. {
  3011. e.geometry.setTerminalPoint(new mxPoint(Math.round(p.Endpoint2.x * scale),
  3012. Math.round(p.Endpoint2.y * scale)), false);
  3013. }
  3014. select.push(graph.addCell(e, null, null, src, trg));
  3015. };
  3016. // Inserts cells in ZOrder and connects edges via lookup
  3017. for (var i = 0; i < queue.length; i++)
  3018. {
  3019. var obj = queue[i];
  3020. var v = lookup[obj.id];
  3021. if (v != null)
  3022. {
  3023. select.push(graph.addCell(v));
  3024. }
  3025. else if (obj.IsLine && obj.Action != null && obj.Action.Properties != null)
  3026. {
  3027. var p = obj.Action.Properties;
  3028. addLine(obj, p);
  3029. }
  3030. }
  3031. if (g.Lines != null)
  3032. {
  3033. for (var key in g.Lines)
  3034. {
  3035. if (!hidden.includes(key))
  3036. {
  3037. var obj = g.Lines[key];
  3038. addLine(obj, obj);
  3039. }
  3040. }
  3041. }
  3042. if (crop && dx != null && dy != null)
  3043. {
  3044. if (graph.isGridEnabled())
  3045. {
  3046. dx = graph.snap(dx);
  3047. dy = graph.snap(dy);
  3048. }
  3049. var bounds = graph.getBoundingBoxFromGeometry(select, true);
  3050. if (bounds != null)
  3051. {
  3052. graph.moveCells(select, dx - bounds.x, dy - bounds.y);
  3053. }
  3054. }
  3055. graph.setSelectionCells(select);
  3056. }
  3057. finally
  3058. {
  3059. graph.getModel().endUpdate();
  3060. }
  3061. if (!graph.isSelectionEmpty())
  3062. {
  3063. graph.scrollCellToVisible(graph.getSelectionCell());
  3064. if (this.hoverIcons != null)
  3065. {
  3066. this.hoverIcons.update(graph.view.getState(graph.getSelectionCell()));
  3067. }
  3068. }
  3069. };
  3070. function addRouterEdge(x, y, edge, select, graph, cells, v, cell)
  3071. {
  3072. var dummy = new mxCell('', new mxGeometry(x, y, 0, 0), 'strokeColor=none;fillColor=none;');
  3073. dummy.vertex = true;
  3074. v.insert(dummy);
  3075. cells = [dummy];
  3076. var e = sb.cloneCell(edge);
  3077. cell.insertEdge(e, false);
  3078. dummy.insertEdge(e, true);
  3079. cells.push(e);
  3080. select.push(graph.addCell(e, null, null, null, null));
  3081. };
  3082. function addFloatingEdge(x1, y1, x2, y2, edge, select, graph, cells, v)
  3083. {
  3084. var dummy1 = new mxCell('', new mxGeometry(x1, y1, 0, 0), 'strokeColor=none;fillColor=none;');
  3085. dummy1.vertex = true;
  3086. v.insert(dummy1);
  3087. cells = [dummy1];
  3088. var dummy2 = new mxCell('', new mxGeometry(x2, y2, 0, 0), 'strokeColor=none;fillColor=none;');
  3089. dummy2.vertex = true;
  3090. v.insert(dummy2);
  3091. cells = [dummy2];
  3092. var e = sb.cloneCell(edge);
  3093. dummy1.insertEdge(e, true);
  3094. dummy2.insertEdge(e, false);
  3095. cells.push(e);
  3096. select.push(graph.addCell(e, null, null, null, null));
  3097. };
  3098. function addCompositeShape(obj, select, graph)
  3099. {
  3100. var a = getAction(obj);
  3101. var p = a.Properties;
  3102. var b = p.BoundingBox;
  3103. var w = Math.round(b.w * scale);
  3104. var h = Math.round(b.h * scale);
  3105. var x = Math.round(b.x * scale + dx);
  3106. var y = Math.round(b.y * scale + dy);
  3107. v = new mxCell('', new mxGeometry(x, y, w, h), vertexStyle);
  3108. v.vertex = true;
  3109. switch (obj.Class)
  3110. {
  3111. case 'BraceNoteBlock' :
  3112. case 'UI2BraceNoteBlock' :
  3113. var isRightBrace = false;
  3114. if (p.BraceDirection != null)
  3115. {
  3116. if (p.BraceDirection == 'Right')
  3117. {
  3118. isRightBrace = true;
  3119. }
  3120. }
  3121. var brace = null;
  3122. var label = null;
  3123. if (isRightBrace)
  3124. {
  3125. brace = new mxCell('', new mxGeometry(w - h * 0.125, 0, h * 0.125, h), 'shape=curlyBracket;rounded=1;');
  3126. label = new mxCell('', new mxGeometry(0, 0, w - h * 0.125, h), 'strokeColor=none;fillColor=none;');
  3127. }
  3128. else
  3129. {
  3130. brace = new mxCell('', new mxGeometry(0, 0, h * 0.125, h), 'shape=curlyBracket;rounded=1;flipH=1;');
  3131. label = new mxCell('', new mxGeometry(h * 0.125, 0, w - h * 0.125, h), 'strokeColor=none;fillColor=none;');
  3132. }
  3133. v.style = "strokeColor=none;fillColor=none;"
  3134. v.style += getRotation(p, a, v);
  3135. brace.vertex = true;
  3136. v.insert(brace);
  3137. brace.style += getStrokeColor(p, a) +
  3138. getOpacity(p, a) +
  3139. getShadow(p) +
  3140. getStrokeStyle(p) +
  3141. getStrokeWidth(p);
  3142. label.vertex = true;
  3143. label.value = convertText(p);
  3144. v.insert(label);
  3145. label.style += getFontSize(p) +
  3146. getFontColor(p) +
  3147. getFontStyle(p) +
  3148. getTextAlignment(p, label) +
  3149. getTextLeftSpacing(p) +
  3150. getTextRightSpacing(p) +
  3151. getTextTopSpacing(p) +
  3152. getTextBottomSpacing(p) +
  3153. getTextGlobalSpacing(p) +
  3154. getTextVerticalAlignment(p);
  3155. break;
  3156. case 'AdvancedSwimLaneBlockRotated' :
  3157. case 'AdvancedSwimLaneBlock' :
  3158. var lanesNum = 0;
  3159. if (p.Lanes != null)
  3160. {
  3161. lanesNum = p.Lanes.length;
  3162. }
  3163. v.style = "strokeColor=none;fillColor=none;"
  3164. var totalOffset = 0; //relative
  3165. var lane = new Array();
  3166. for (var i = 0; i < lanesNum; i++)
  3167. {
  3168. var currOffset = parseFloat(p.Lanes[i].p);
  3169. lane.push(new mxCell('', new mxGeometry(w * totalOffset, 0, w * currOffset, h), 'shape=swimlane;startSize=25;'));
  3170. lane[i].vertex = true;
  3171. v.insert(lane[i]);
  3172. lane[i].value = convertText(p["Lane_" + i]);
  3173. lane[i].style += getFontSize(p["Lane_" + i]) +
  3174. getFontColor(p["Lane_" + i]) +
  3175. getFontStyle(p["Lane_" + i]) +
  3176. getTextAlignment(p["Lane_" + i], lane[i]) +
  3177. getTextLeftSpacing(p["Lane_" + i]) +
  3178. getTextRightSpacing(p["Lane_" + i]) +
  3179. getTextTopSpacing(p["Lane_" + i]) +
  3180. getTextBottomSpacing(p["Lane_" + i]) +
  3181. getTextGlobalSpacing(p["Lane_" + i]) +
  3182. getTextVerticalAlignment(p["Lane_" + i]) +
  3183. getStrokeColor(p, a) +
  3184. getOpacity(p, a) +
  3185. getRounded(p, a) +
  3186. getRotation(p, a, lane[i]) +
  3187. getFlipH(p) +
  3188. getFlipV(p) +
  3189. getShadow(p) +
  3190. getFillColor(p, a) +
  3191. getStrokeStyle(p) +
  3192. getStrokeWidth(p);
  3193. totalOffset += currOffset;
  3194. }
  3195. break;
  3196. case 'AndroidDevice' :
  3197. if (p.AndroidDeviceName != null)
  3198. {
  3199. v.style = "fillColor=#000000;strokeColor=#000000;";
  3200. var background = null;
  3201. var keyboard = null;
  3202. var statusBar = null;
  3203. if (p.AndroidDeviceName == 'Tablet' || p.AndroidDeviceName == 'Mini Tablet')
  3204. {
  3205. v.style += "shape=mxgraph.android.tab2;"
  3206. background = new mxCell('', new mxGeometry(w * 0.112, h * 0.077, w * 0.77, h * 0.85), '');
  3207. if (p.KeyboardShown)
  3208. {
  3209. keyboard = new mxCell('', new mxGeometry(w * 0.112, h * 0.727, w * 0.77, h * 0.2), 'shape=mxgraph.android.keyboard;');
  3210. }
  3211. if (!p.FullScreen)
  3212. {
  3213. statusBar = new mxCell('', new mxGeometry(w * 0.112, h * 0.077, w * 0.77, h * 0.03), 'shape=mxgraph.android.statusBar;strokeColor=#33b5e5;fillColor=#000000;fontColor=#33b5e5;fontSize=' + h * 0.015 + ';');
  3214. }
  3215. }
  3216. else if (p.AndroidDeviceName == 'Large Phone' || p.AndroidDeviceName == 'Phone')
  3217. {
  3218. v.style += "shape=mxgraph.android.phone2;"
  3219. background = new mxCell('', new mxGeometry(w * 0.04, h * 0.092, w * 0.92, h * 0.816), '');
  3220. if (p.KeyboardShown)
  3221. {
  3222. keyboard = new mxCell('', new mxGeometry(w * 0.04, h * 0.708, w * 0.92, h * 0.2), 'shape=mxgraph.android.keyboard;');
  3223. }
  3224. if (!p.FullScreen)
  3225. {
  3226. statusBar = new mxCell('', new mxGeometry(w * 0.04, h * 0.092, w * 0.92, h * 0.03), 'shape=mxgraph.android.statusBar;strokeColor=#33b5e5;fillColor=#000000;fontColor=#33b5e5;fontSize=' + h * 0.015 + ';');
  3227. }
  3228. }
  3229. background.vertex = true;
  3230. v.insert(background);
  3231. if (p.Scheme == "Dark")
  3232. {
  3233. background.style += "fillColor=#111111;"
  3234. }
  3235. else if (p.Scheme == "Light")
  3236. {
  3237. background.style += "fillColor=#ffffff;"
  3238. }
  3239. if (keyboard != null)
  3240. {
  3241. keyboard.vertex = true;
  3242. v.insert(keyboard);
  3243. }
  3244. if (statusBar != null)
  3245. {
  3246. statusBar.vertex = true;
  3247. v.insert(statusBar);
  3248. }
  3249. }
  3250. break;
  3251. case 'AndroidAlertDialog' :
  3252. var dialog = new mxCell('', new mxGeometry(0, 0, w, 30), 'strokeColor=none;fillColor=none;spacingLeft=9;');
  3253. dialog.vertex = true;
  3254. v.insert(dialog);
  3255. var line = new mxCell('', new mxGeometry(0, 25, w, 10), 'shape=line;strokeColor=#33B5E5;');
  3256. line.vertex = true;
  3257. v.insert(line);
  3258. var dialogText = new mxCell('', new mxGeometry(0, 30, w, h - 30), 'strokeColor=none;fillColor=none;verticalAlign=top;');
  3259. dialogText.vertex = true;
  3260. v.insert(dialogText);
  3261. var cancelButton = new mxCell('', new mxGeometry(0, h - 25, w * 0.5, 25), 'fillColor=none;');
  3262. cancelButton.vertex = true;
  3263. v.insert(cancelButton);
  3264. var okButton = new mxCell('', new mxGeometry(w * 0.5, h - 25, w * 0.5, 25), 'fillColor=none;');
  3265. okButton.vertex = true;
  3266. v.insert(okButton);
  3267. dialog.value = convertText(p.DialogTitle);
  3268. dialog.style += getLabelStyle(p.DialogTitle);
  3269. dialogText.value = convertText(p.DialogText);
  3270. dialogText.style += getLabelStyle(p.DialogText);
  3271. cancelButton.value = convertText(p.Button_0);
  3272. cancelButton.style += getLabelStyle(p.Button_0);
  3273. okButton.value = convertText(p.Button_1);
  3274. okButton.style += getLabelStyle(p.Button_1);
  3275. if (p.Scheme == 'Dark')
  3276. {
  3277. v.style += 'strokeColor=#353535;fillColor=#282828;shadow=1;';
  3278. cancelButton.style += 'strokeColor=#353535;';
  3279. okButton.style += 'strokeColor=#353535;';
  3280. }
  3281. else
  3282. {
  3283. v.style += 'strokeColor=none;fillColor=#ffffff;shadow=1;';
  3284. cancelButton.style += 'strokeColor=#E2E2E2;';
  3285. okButton.style += 'strokeColor=#E2E2E2;';
  3286. }
  3287. break;
  3288. case 'AndroidDateDialog' :
  3289. case 'AndroidTimeDialog' :
  3290. var dialog = new mxCell('', new mxGeometry(0, 0, w, 30), 'strokeColor=none;fillColor=none;spacingLeft=9;');
  3291. dialog.vertex = true;
  3292. v.insert(dialog);
  3293. dialog.value = convertText(p.DialogTitle);
  3294. dialog.style += getLabelStyle(p.DialogTitle);
  3295. var line = new mxCell('', new mxGeometry(0, 25, w, 10), 'shape=line;strokeColor=#33B5E5;');
  3296. line.vertex = true;
  3297. v.insert(line);
  3298. var cancelButton = new mxCell('', new mxGeometry(0, h - 25, w * 0.5, 25), 'fillColor=none;');
  3299. cancelButton.vertex = true;
  3300. v.insert(cancelButton);
  3301. cancelButton.value = convertText(p.Button_0);
  3302. cancelButton.style += getLabelStyle(p.Button_0);
  3303. var okButton = new mxCell('', new mxGeometry(w * 0.5, h - 25, w * 0.5, 25), 'fillColor=none;');
  3304. okButton.vertex = true;
  3305. v.insert(okButton);
  3306. okButton.value = convertText(p.Button_1);
  3307. okButton.style += getLabelStyle(p.Button_1);
  3308. var triangle1 = new mxCell('', new mxGeometry(w * 0.5 - 4, 41, 8, 4), 'shape=triangle;direction=north;');
  3309. triangle1.vertex = true;
  3310. v.insert(triangle1);
  3311. var triangle2 = new mxCell('', new mxGeometry(w * 0.25 - 4, 41, 8, 4), 'shape=triangle;direction=north;');
  3312. triangle2.vertex = true;
  3313. v.insert(triangle2);
  3314. var triangle3 = new mxCell('', new mxGeometry(w * 0.75 - 4, 41, 8, 4), 'shape=triangle;direction=north;');
  3315. triangle3.vertex = true;
  3316. v.insert(triangle3);
  3317. var prevDate1 = new mxCell('', new mxGeometry(w * 0.375, 50, w * 0.2, 15), 'strokeColor=none;fillColor=none;');
  3318. prevDate1.vertex = true;
  3319. v.insert(prevDate1);
  3320. prevDate1.value = convertText(p.Label_1);
  3321. prevDate1.style += getLabelStyle(p.Label_1);
  3322. var prevDate2 = new mxCell('', new mxGeometry(w * 0.125, 50, w * 0.2, 15), 'strokeColor=none;fillColor=none;');
  3323. prevDate2.vertex = true;
  3324. v.insert(prevDate2);
  3325. prevDate2.value = convertText(p.Label_0);
  3326. prevDate2.style += getLabelStyle(p.Label_0);
  3327. var prevDate3 = null;
  3328. if (obj.Class == 'AndroidDateDialog')
  3329. {
  3330. prevDate3 = new mxCell('', new mxGeometry(w * 0.625, 50, w * 0.2, 15), 'strokeColor=none;fillColor=none;');
  3331. prevDate3.vertex = true;
  3332. v.insert(prevDate3);
  3333. prevDate3.value = convertText(p.Label_2);
  3334. prevDate3.style += getLabelStyle(p.Label_2);
  3335. }
  3336. var line1 = new mxCell('', new mxGeometry(w * 0.43, 60, w * 0.14, 10), 'shape=line;strokeColor=#33B5E5;');
  3337. line1.vertex = true;
  3338. v.insert(line1);
  3339. var line2 = new mxCell('', new mxGeometry(w * 0.18, 60, w * 0.14, 10), 'shape=line;strokeColor=#33B5E5;');
  3340. line2.vertex = true;
  3341. v.insert(line2);
  3342. var line3 = new mxCell('', new mxGeometry(w * 0.68, 60, w * 0.14, 10), 'shape=line;strokeColor=#33B5E5;');
  3343. line3.vertex = true;
  3344. v.insert(line3);
  3345. var date1 = new mxCell('', new mxGeometry(w * 0.375, 65, w * 0.2, 15), 'strokeColor=none;fillColor=none;');
  3346. date1.vertex = true;
  3347. v.insert(date1);
  3348. date1.value = convertText(p.Label_4);
  3349. date1.style += getLabelStyle(p.Label_4);
  3350. var sep = null;
  3351. if (obj.Class == 'AndroidTimeDialog')
  3352. {
  3353. sep = new mxCell('', new mxGeometry(w * 0.3, 65, w * 0.1, 15), 'strokeColor=none;fillColor=none;');
  3354. sep.vertex = true;
  3355. v.insert(sep);
  3356. sep.value = convertText(p.Label_Colon);
  3357. sep.style += getLabelStyle(p.Label_Colon);
  3358. }
  3359. var date2 = new mxCell('', new mxGeometry(w * 0.125, 65, w * 0.2, 15), 'strokeColor=none;fillColor=none;');
  3360. date2.vertex = true;
  3361. v.insert(date2);
  3362. date2.value = convertText(p.Label_3);
  3363. date2.style += getLabelStyle(p.Label_3);
  3364. var date3 = new mxCell('', new mxGeometry(w * 0.625, 65, w * 0.2, 15), 'strokeColor=none;fillColor=none;');
  3365. date3.vertex = true;
  3366. v.insert(date3);
  3367. date3.value = convertText(p.Label_5);
  3368. date3.style += getLabelStyle(p.Label_5);
  3369. var line4 = new mxCell('', new mxGeometry(w * 0.43, 75, w * 0.14, 10), 'shape=line;strokeColor=#33B5E5;');
  3370. line4.vertex = true;
  3371. v.insert(line4);
  3372. var line5 = new mxCell('', new mxGeometry(w * 0.18, 75, w * 0.14, 10), 'shape=line;strokeColor=#33B5E5;');
  3373. line5.vertex = true;
  3374. v.insert(line5);
  3375. var line6 = new mxCell('', new mxGeometry(w * 0.68, 75, w * 0.14, 10), 'shape=line;strokeColor=#33B5E5;');
  3376. line6.vertex = true;
  3377. v.insert(line6);
  3378. var nextDate1 = new mxCell('', new mxGeometry(w * 0.375, 80, w * 0.2, 15), 'strokeColor=none;fillColor=none;');
  3379. nextDate1.vertex = true;
  3380. v.insert(nextDate1);
  3381. nextDate1.value = convertText(p.Label_7);
  3382. nextDate1.style += getLabelStyle(p.Label_7);
  3383. var nextDate2 = new mxCell('', new mxGeometry(w * 0.125, 80, w * 0.2, 15), 'strokeColor=none;fillColor=none;');
  3384. nextDate2.vertex = true;
  3385. v.insert(nextDate2);
  3386. nextDate2.value = convertText(p.Label_6);
  3387. nextDate2.style += getLabelStyle(p.Label_6);
  3388. var nextDate3 = new mxCell('', new mxGeometry(w * 0.625, 80, w * 0.2, 15), 'strokeColor=none;fillColor=none;');
  3389. nextDate3.vertex = true;
  3390. v.insert(nextDate3);
  3391. nextDate3.value = convertText(p.Label_8);
  3392. nextDate3.style += getLabelStyle(p.Label_8);
  3393. var triangle4 = new mxCell('', new mxGeometry(w * 0.5 - 4, 99, 8, 4), 'shape=triangle;direction=south;');
  3394. triangle4.vertex = true;
  3395. v.insert(triangle4);
  3396. var triangle5 = new mxCell('', new mxGeometry(w * 0.25 - 4, 99, 8, 4), 'shape=triangle;direction=south;');
  3397. triangle5.vertex = true;
  3398. v.insert(triangle5);
  3399. var triangle6 = new mxCell('', new mxGeometry(w * 0.75 - 4, 99, 8, 4), 'shape=triangle;direction=south;');
  3400. triangle6.vertex = true;
  3401. v.insert(triangle6);
  3402. if (p.Scheme == 'Dark')
  3403. {
  3404. v.style += 'strokeColor=#353535;fillColor=#282828;shadow=1;';
  3405. cancelButton.style += 'strokeColor=#353535;';
  3406. okButton.style += 'strokeColor=#353535;';
  3407. triangle1.style += 'strokeColor=none;fillColor=#7E7E7E;';
  3408. triangle2.style += 'strokeColor=none;fillColor=#7E7E7E;';
  3409. triangle3.style += 'strokeColor=none;fillColor=#7E7E7E;';
  3410. triangle4.style += 'strokeColor=none;fillColor=#7E7E7E;';
  3411. triangle5.style += 'strokeColor=none;fillColor=#7E7E7E;';
  3412. triangle6.style += 'strokeColor=none;fillColor=#7E7E7E;';
  3413. }
  3414. else
  3415. {
  3416. v.style += 'strokeColor=none;fillColor=#ffffff;shadow=1;';
  3417. cancelButton.style += 'strokeColor=#E2E2E2;';
  3418. okButton.style += 'strokeColor=#E2E2E2;';
  3419. triangle1.style += 'strokeColor=none;fillColor=#939393;';
  3420. triangle2.style += 'strokeColor=none;fillColor=#939393;';
  3421. triangle3.style += 'strokeColor=none;fillColor=#939393;';
  3422. triangle4.style += 'strokeColor=none;fillColor=#939393;';
  3423. triangle5.style += 'strokeColor=none;fillColor=#939393;';
  3424. triangle6.style += 'strokeColor=none;fillColor=#939393;';
  3425. }
  3426. break;
  3427. case 'AndroidListItems' :
  3428. var itemFullH = h;
  3429. var startH = 0;
  3430. if (p.ShowHeader)
  3431. {
  3432. startH = 8;
  3433. var header = new mxCell('', new mxGeometry(0, 0, w, startH), 'strokeColor=none;fillColor=none;');
  3434. header.vertex = true;
  3435. v.insert(header);
  3436. header.value = convertText(p.Header);
  3437. header.style += getLabelStyle(p.Header);
  3438. itemFullH -= startH;
  3439. var lineH = new mxCell('', new mxGeometry(0, startH - 2, w, 4), 'shape=line;strokeColor=#999999;');
  3440. lineH.vertex = true;
  3441. v.insert(lineH);
  3442. }
  3443. var numItems = parseInt(p.Items);
  3444. if (numItems > 0)
  3445. {
  3446. itemFullH = itemFullH / numItems;
  3447. }
  3448. var item = new Array();
  3449. var line = new Array();
  3450. for (var i = 0; i < numItems; i++)
  3451. {
  3452. item[i] = new mxCell('', new mxGeometry(0, startH + i * itemFullH, w, itemFullH), 'strokeColor=none;fillColor=none;');
  3453. item[i].vertex = true;
  3454. v.insert(item[i]);
  3455. item[i].value = convertText(p["Item_" + i]);
  3456. item[i].style += getLabelStyle(p["Item_" + i]);
  3457. if (i > 0)
  3458. {
  3459. line[i] = new mxCell('', new mxGeometry(0, startH + i * itemFullH - 2, w, 4), 'shape=line;');
  3460. line[i].vertex = true;
  3461. v.insert(line[i]);
  3462. if (p.Scheme == 'Dark')
  3463. {
  3464. line[i].style += 'strokeColor=#ffffff;';
  3465. }
  3466. else
  3467. {
  3468. line[i].style += 'strokeColor=#D9D9D9;';
  3469. }
  3470. }
  3471. }
  3472. if (p.Scheme == 'Dark')
  3473. {
  3474. v.style += 'strokeColor=none;fillColor=#111111;';
  3475. }
  3476. else
  3477. {
  3478. v.style += 'strokeColor=none;fillColor=#ffffff;';
  3479. }
  3480. break;
  3481. case 'AndroidTabs' :
  3482. var numTabs = parseInt(p.Tabs);
  3483. var tabFullW = w;
  3484. if (numTabs > 0)
  3485. {
  3486. tabFullW = tabFullW / numTabs;
  3487. }
  3488. var tab = new Array();
  3489. var line = new Array();
  3490. for (var i = 0; i < numTabs; i++)
  3491. {
  3492. tab[i] = new mxCell('', new mxGeometry(i * tabFullW, 0, tabFullW, h), 'strokeColor=none;fillColor=none;');
  3493. tab[i].vertex = true;
  3494. v.insert(tab[i]);
  3495. tab[i].value = convertText(p["Tab_" + i]);
  3496. tab[i].style += getLabelStyle(p["Tab_" + i]);
  3497. if (i > 0)
  3498. {
  3499. line[i] = new mxCell('', new mxGeometry(i * tabFullW - 2, h * 0.2, 4, h * 0.6), 'shape=line;direction=north;');
  3500. line[i].vertex = true;
  3501. v.insert(line[i]);
  3502. if (p.Scheme == 'Dark')
  3503. {
  3504. line[i].style += 'strokeColor=#484848;';
  3505. }
  3506. else
  3507. {
  3508. line[i].style += 'strokeColor=#CCCCCC;';
  3509. }
  3510. }
  3511. }
  3512. var selectedMarker = new mxCell('', new mxGeometry(p.Selected * tabFullW + 2, h - 3, tabFullW - 4, 3), 'strokeColor=none;fillColor=#33B5E5;');
  3513. selectedMarker.vertex = true;
  3514. v.insert(selectedMarker);
  3515. if (p.Scheme == 'Dark')
  3516. {
  3517. v.style += 'strokeColor=none;fillColor=#333333;';
  3518. }
  3519. else
  3520. {
  3521. v.style += 'strokeColor=none;fillColor=#DDDDDD;';
  3522. }
  3523. break;
  3524. case 'AndroidProgressBar' :
  3525. v = new mxCell('', new mxGeometry(Math.round(x), Math.round(y + h * 0.25), Math.round(w), Math.round(h * 0.5)), vertexStyle);
  3526. v.vertex = true;
  3527. var progressBar = new mxCell('', new mxGeometry(0, 0, w * p.BarPosition, Math.round(h * 0.5)), 'strokeColor=none;fillColor=#33B5E5;');
  3528. progressBar.vertex = true;
  3529. v.insert(progressBar);
  3530. if (p.Scheme == 'Dark')
  3531. {
  3532. v.style += 'strokeColor=none;fillColor=#474747;';
  3533. }
  3534. else
  3535. {
  3536. v.style += 'strokeColor=none;fillColor=#BBBBBB;';
  3537. }
  3538. break;
  3539. case 'AndroidImageBlock' :
  3540. if (p.Scheme == 'Dark')
  3541. {
  3542. v.style += 'shape=mxgraph.mockup.graphics.simpleIcon;strokeColor=#7E7E7E;fillColor=#111111;';
  3543. }
  3544. else
  3545. {
  3546. v.style += 'shape=mxgraph.mockup.graphics.simpleIcon;strokeColor=#939393;fillColor=#ffffff;';
  3547. }
  3548. break;
  3549. case 'AndroidTextBlock' :
  3550. if (p.Scheme == 'Dark')
  3551. {
  3552. if (p.ShowBorder)
  3553. {
  3554. v.style += 'fillColor=#111111;strokeColor=#ffffff;';
  3555. }
  3556. else
  3557. {
  3558. v.style += 'fillColor=#111111;strokeColor=none;';
  3559. }
  3560. }
  3561. else
  3562. {
  3563. if (p.ShowBorder)
  3564. {
  3565. v.style += 'fillColor=#ffffff;strokeColor=#000000;';
  3566. }
  3567. else
  3568. {
  3569. v.style += 'fillColor=#ffffff;strokeColor=none;';
  3570. }
  3571. }
  3572. v.value = convertText(p.Label);
  3573. v.style += getLabelStyle(p.Label);
  3574. break;
  3575. case 'AndroidActionBar' :
  3576. v.style += 'strokeColor=none;';
  3577. switch (p.BarBackground)
  3578. {
  3579. case 'Blue' :
  3580. v.style += 'fillColor=#002E3E;';
  3581. break;
  3582. case 'Gray' :
  3583. v.style += 'fillColor=#DDDDDD;';
  3584. break;
  3585. case 'Dark Gray' :
  3586. v.style += 'fillColor=#474747;';
  3587. break;
  3588. case 'White' :
  3589. v.style += 'fillColor=#ffffff;';
  3590. break;
  3591. }
  3592. if (p.HighlightShow)
  3593. {
  3594. var highlight = null;
  3595. if (p.HighlightTop)
  3596. {
  3597. highlight = new mxCell('', new mxGeometry(0, 0, w, 2), 'strokeColor=none;');
  3598. }
  3599. else
  3600. {
  3601. highlight = new mxCell('', new mxGeometry(0, h - 2, w, 2), 'strokeColor=none;');
  3602. }
  3603. highlight.vertex = true;
  3604. v.insert(highlight);
  3605. switch (p.HighlightColor)
  3606. {
  3607. case 'Blue' :
  3608. highlight.style += 'fillColor=#33B5E5;';
  3609. break;
  3610. case 'Dark Gray' :
  3611. highlight.style += 'fillColor=#B0B0B0;';
  3612. break;
  3613. case 'White' :
  3614. highlight.style += 'fillColor=#ffffff;';
  3615. break;
  3616. }
  3617. }
  3618. if (p.VlignShow)
  3619. {
  3620. var vLine = new mxCell('', new mxGeometry(20, 5, 2, h - 10), 'shape=line;direction=north;');
  3621. vLine.vertex = true;
  3622. v.insert(vLine);
  3623. switch (p.VlignColor)
  3624. {
  3625. case 'Blue' :
  3626. vLine.style += 'strokeColor=#244C5A;';
  3627. break;
  3628. case 'White' :
  3629. vLine.style += 'strokeColor=#ffffff;';
  3630. break;
  3631. }
  3632. }
  3633. break;
  3634. case 'AndroidButton' :
  3635. v.value = convertText(p.Label);
  3636. v.style += getLabelStyle(p.Label) + 'shape=partialRectangle;left=0;right=0;';
  3637. if (p.Scheme == 'Dark')
  3638. {
  3639. v.style += 'fillColor=#474747;strokeColor=#C6C5C6;bottom=0;';
  3640. }
  3641. else
  3642. {
  3643. v.style += 'fillColor=#DFE0DF;strokeColor=#C6C5C6;top=0;';
  3644. }
  3645. break;
  3646. case 'AndroidTextBox' :
  3647. v.value = convertText(p.Label);
  3648. v.style += getLabelStyle(p.Label);
  3649. var underline = new mxCell('', new mxGeometry(2, h - 6, w - 4, 4), 'shape=partialRectangle;top=0;fillColor=none;');
  3650. underline.vertex = true;
  3651. v.insert(underline);
  3652. if (p.Scheme == 'Dark')
  3653. {
  3654. v.style += 'fillColor=#111111;strokeColor=none;';
  3655. }
  3656. else
  3657. {
  3658. v.style += 'fillColor=#ffffff;strokeColor=none;';
  3659. }
  3660. if (p.TextFocused)
  3661. {
  3662. underline.style += 'strokeColor=#33B5E5;';
  3663. }
  3664. else
  3665. {
  3666. underline.style += 'strokeColor=#A9A9A9;';
  3667. }
  3668. break;
  3669. case 'AndroidRadioButton' :
  3670. var dot = null;
  3671. if (p.Checked)
  3672. {
  3673. dot = new mxCell('', new mxGeometry(w * 0.15, h * 0.15, w * 0.7, h * 0.7), 'shape=ellipse;fillColor=#33B5E5;strokeWidth=0.6;');
  3674. dot.vertex = true;
  3675. v.insert(dot);
  3676. }
  3677. if (p.Scheme == 'Dark')
  3678. {
  3679. v.style += 'shape=ellipse;strokeWidth=0.6;strokeColor=#272727;';
  3680. if (p.Checked)
  3681. {
  3682. dot.style += 'strokeColor=#1F5C73;';
  3683. v.style += 'fillColor=#193C49;';
  3684. }
  3685. else
  3686. {
  3687. v.style += 'fillColor=#111111;';
  3688. }
  3689. }
  3690. else
  3691. {
  3692. v.style += 'shape=ellipse;strokeWidth=0.6;fillColor=#ffffff;strokeColor=#5C5C5C;';
  3693. if (p.Checked)
  3694. {
  3695. dot.style += 'strokeColor=#999999;';
  3696. }
  3697. }
  3698. break;
  3699. case 'AndroidCheckBox' :
  3700. var check = null;
  3701. if (p.Checked)
  3702. {
  3703. check = new mxCell('', new mxGeometry(w * 0.25, - h * 0.05, w, h * 0.8), 'shape=mxgraph.ios7.misc.check;strokeColor=#33B5E5;strokeWidth=2;');
  3704. check.vertex = true;
  3705. v.insert(check);
  3706. }
  3707. if (p.Scheme == 'Dark')
  3708. {
  3709. v.style += 'strokeWidth=0.6;strokeColor=#272727;fillColor=#111111;';
  3710. }
  3711. else
  3712. {
  3713. v.style += 'strokeWidth=0.6;strokeColor=#5C5C5C;fillColor=#ffffff;';
  3714. }
  3715. break;
  3716. case 'AndroidToggle' :
  3717. if (p.Scheme == 'Dark')
  3718. {
  3719. if (p.Checked)
  3720. {
  3721. v.style += 'shape=mxgraph.android.switch_on;fillColor=#666666;';
  3722. }
  3723. else
  3724. {
  3725. v.style += 'shape=mxgraph.android.switch_off;fillColor=#666666;';
  3726. }
  3727. }
  3728. else
  3729. {
  3730. if (p.Checked)
  3731. {
  3732. v.style += 'shape=mxgraph.android.switch_on;fillColor=#E6E6E6;';
  3733. }
  3734. else
  3735. {
  3736. v.style += 'shape=mxgraph.android.switch_off;fillColor=#E6E6E6;';
  3737. }
  3738. }
  3739. break;
  3740. case 'AndroidSlider' :
  3741. v.style += 'shape=mxgraph.android.progressScrubberFocused;dx=' + p.BarPosition + ';fillColor=#33b5e5;';
  3742. break;
  3743. case 'iOSSegmentedControl' :
  3744. var numTabs = parseInt(p.Tabs);
  3745. var tabFullW = w;
  3746. v.style += 'strokeColor=none;fillColor=none;';
  3747. if (numTabs > 0)
  3748. {
  3749. tabFullW = tabFullW / numTabs;
  3750. }
  3751. var tab = new Array();
  3752. var line = new Array();
  3753. for (var i = 0; i < numTabs; i++)
  3754. {
  3755. tab[i] = new mxCell('', new mxGeometry(i * tabFullW, 0, tabFullW, h), 'strokeColor=' + p.FillColor + ';');
  3756. tab[i].vertex = true;
  3757. v.insert(tab[i]);
  3758. tab[i].value = convertText(p["Tab_" + i]);
  3759. tab[i].style += getLabelStyle(p["Tab_" + i]);
  3760. if (p.Selected == i)
  3761. {
  3762. tab[i].style += getFillColor(p, a);
  3763. }
  3764. else
  3765. {
  3766. tab[i].style += 'fillColor=none;';
  3767. }
  3768. }
  3769. break;
  3770. case 'iOSSlider' :
  3771. v.style += 'shape=mxgraph.ios7ui.slider;strokeColor=' + p.FillColor + ';fillColor=#ffffff;strokeWidth=2;barPos=' + p.BarPosition * 100 + ';';
  3772. break;
  3773. case 'iOSProgressBar':
  3774. v = new mxCell('', new mxGeometry(Math.round(x), Math.round(y + h * 0.25), Math.round(w), Math.round(h * 0.5)), vertexStyle + 'strokeColor=none;fillColor=#B5B5B5;');
  3775. v.vertex = true;
  3776. var progressBar = new mxCell('', new mxGeometry(0, 0, w * p.BarPosition, Math.round(h * 0.5)), 'strokeColor=none;' + getFillColor(p, a));
  3777. progressBar.vertex = true;
  3778. v.insert(progressBar);
  3779. break;
  3780. case 'iOSPageControls' :
  3781. v.style += 'shape=mxgraph.ios7ui.pageControl;' + getFillColor(p, a) + 'strokeColor=#D6D6D6;';
  3782. break;
  3783. case 'iOSStatusBar' :
  3784. v.style += 'shape=mxgraph.ios7ui.appBar;' + getFillColor(p, a) + 'strokeColor=#000000;';
  3785. var text1 = new mxCell(convertText(p.Text), new mxGeometry(w * 0.35, 0, w * 0.3, h), 'strokeColor=none;fillColor=none;');
  3786. text1.vertex = true;
  3787. v.insert(text1);
  3788. text1.style += getLabelStyle(p.Text);
  3789. var text2 = new mxCell(convertText(p.Carrier), new mxGeometry(w * 0.09, 0, w * 0.2, h), 'strokeColor=none;fillColor=none;');
  3790. text2.vertex = true;
  3791. v.insert(text2);
  3792. text2.style += getLabelStyle(p.Carrier);
  3793. break;
  3794. case 'iOSSearchBar' :
  3795. v.style += 'strokeColor=none;' +
  3796. getFillColor(p, a) +
  3797. getOpacity(p, a) +
  3798. getRounded(p, a) +
  3799. getLabelStyle(p.Search);
  3800. v.value = convertText(p.Search);
  3801. var icon1 = new mxCell('', new mxGeometry(w * 0.3, h * 0.3, h * 0.4, h * 0.4), 'shape=mxgraph.ios7.icons.looking_glass;strokeColor=#000000;fillColor=none;');
  3802. icon1.vertex = true;
  3803. v.insert(icon1);
  3804. break;
  3805. case 'iOSNavBar' :
  3806. v.style += 'shape=partialRectangle;top=0;right=0;left=0;strokeColor=#979797;' + getFillColor(p, a) + getOpacity(p, a) + getLabelStyle(p.Title);
  3807. v.value = convertText(p.Title);
  3808. var text1 = new mxCell(convertText(p.LeftText), new mxGeometry(w * 0.03, 0, w * 0.3, h), 'strokeColor=none;fillColor=none;');
  3809. text1.vertex = true;
  3810. v.insert(text1);
  3811. text1.style += getLabelStyle(p.LeftText);
  3812. var text2 = new mxCell(convertText(p.RightText), new mxGeometry(w * 0.65, 0, w * 0.3, h), 'strokeColor=none;fillColor=none;');
  3813. text2.vertex = true;
  3814. v.insert(text2);
  3815. text2.style += getLabelStyle(p.RightText);
  3816. var icon1 = new mxCell('', new mxGeometry(w * 0.02, h * 0.2, h * 0.3, h * 0.5), 'shape=mxgraph.ios7.misc.left;strokeColor=#007AFF;strokeWidth=2;');
  3817. icon1.vertex = true;
  3818. v.insert(icon1);
  3819. break;
  3820. case 'iOSTabs' :
  3821. var numTabs = parseInt(p.Tabs);
  3822. var tabFullW = w;
  3823. v.style += 'shape=partialRectangle;right=0;left=0;bottom=0;strokeColor=#979797;' + getFillColor(p, a) + getOpacity(p, a);
  3824. if (numTabs > 0)
  3825. {
  3826. tabFullW = tabFullW / numTabs;
  3827. }
  3828. var tab = new Array();
  3829. var line = new Array();
  3830. for (var i = 0; i < numTabs; i++)
  3831. {
  3832. tab[i] = new mxCell('', new mxGeometry(i * tabFullW, 0, tabFullW, h), 'strokeColor=none;');
  3833. tab[i].vertex = true;
  3834. v.insert(tab[i]);
  3835. tab[i].value = convertText(p["Tab_" + i]);
  3836. tab[i].style += getFontSize(p["Tab_" + i]);
  3837. tab[i].style +=
  3838. getFontColor(p["Tab_" + i]) +
  3839. getFontStyle(p["Tab_" + i]) +
  3840. getTextAlignment(p["Tab_" + i]) +
  3841. getTextLeftSpacing(p["Tab_" + i]) +
  3842. getTextRightSpacing(p["Tab_" + i]) +
  3843. getTextTopSpacing(p["Tab_" + i]) +
  3844. getTextBottomSpacing(p["Tab_" + i]) +
  3845. getTextGlobalSpacing(p["Tab_" + i]);
  3846. tab[i].style += 'verticalAlign=bottom;';
  3847. if (p.Selected == i)
  3848. {
  3849. tab[i].style += 'fillColor=#BBBBBB;';
  3850. }
  3851. else
  3852. {
  3853. tab[i].style += 'fillColor=none;';
  3854. }
  3855. }
  3856. break;
  3857. case 'iOSDatePicker' :
  3858. var firstDate1 = new mxCell('', new mxGeometry(0, 0, w * 0.5, h * 0.2), 'strokeColor=none;fillColor=none;');
  3859. firstDate1.vertex = true;
  3860. v.insert(firstDate1);
  3861. firstDate1.value = convertText(p.Option11);
  3862. firstDate1.style += getLabelStyle(p.Option11);
  3863. var firstDate2 = new mxCell('', new mxGeometry(w * 0.5, 0, w * 0.15, h * 0.2), 'strokeColor=none;fillColor=none;');
  3864. firstDate2.vertex = true;
  3865. v.insert(firstDate2);
  3866. firstDate2.value = convertText(p.Option21);
  3867. firstDate2.style += getLabelStyle(p.Option21);
  3868. var firstDate3 = new mxCell('', new mxGeometry(w * 0.65, 0, w * 0.15, h * 0.2), 'strokeColor=none;fillColor=none;');
  3869. firstDate3.vertex = true;
  3870. v.insert(firstDate3);
  3871. firstDate3.value = convertText(p.Option31);
  3872. firstDate3.style += getLabelStyle(p.Option31);
  3873. var secondDate1 = new mxCell('', new mxGeometry(0, h * 0.2, w * 0.5, h * 0.2), 'strokeColor=none;fillColor=none;');
  3874. secondDate1.vertex = true;
  3875. v.insert(secondDate1);
  3876. secondDate1.value = convertText(p.Option12);
  3877. secondDate1.style += getLabelStyle(p.Option12);
  3878. var secondDate2 = new mxCell('', new mxGeometry(w * 0.5, h * 0.2, w * 0.15, h * 0.2), 'strokeColor=none;fillColor=none;');
  3879. secondDate2.vertex = true;
  3880. v.insert(secondDate2);
  3881. secondDate2.value = convertText(p.Option22);
  3882. secondDate2.style += getLabelStyle(p.Option22);
  3883. var secondDate3 = new mxCell('', new mxGeometry(w * 0.65, h * 0.2, w * 0.15, h * 0.2), 'strokeColor=none;fillColor=none;');
  3884. secondDate3.vertex = true;
  3885. v.insert(secondDate3);
  3886. secondDate3.value = convertText(p.Option32);
  3887. secondDate3.style += getLabelStyle(p.Option32);
  3888. var currDate1 = new mxCell('', new mxGeometry(0, h * 0.4, w * 0.5, h * 0.2), 'strokeColor=none;fillColor=none;');
  3889. currDate1.vertex = true;
  3890. v.insert(currDate1);
  3891. currDate1.value = convertText(p.Option13);
  3892. currDate1.style += getLabelStyle(p.Option13);
  3893. var currDate2 = new mxCell('', new mxGeometry(w * 0.5, h * 0.4, w * 0.15, h * 0.2), 'strokeColor=none;fillColor=none;');
  3894. currDate2.vertex = true;
  3895. v.insert(currDate2);
  3896. currDate2.value = convertText(p.Option23);
  3897. currDate2.style += getLabelStyle(p.Option23);
  3898. var currDate3 = new mxCell('', new mxGeometry(w * 0.65, h * 0.4, w * 0.15, h * 0.2), 'strokeColor=none;fillColor=none;');
  3899. currDate3.vertex = true;
  3900. v.insert(currDate3);
  3901. currDate3.value = convertText(p.Option33);
  3902. currDate3.style += getLabelStyle(p.Option33);
  3903. var currDate4 = new mxCell('', new mxGeometry(w * 0.80, h * 0.4, w * 0.15, h * 0.2), 'strokeColor=none;fillColor=none;');
  3904. currDate4.vertex = true;
  3905. v.insert(currDate4);
  3906. currDate4.value = convertText(p.Option43);
  3907. currDate4.style += getLabelStyle(p.Option43);
  3908. var fourthDate1 = new mxCell('', new mxGeometry(0, h * 0.6, w * 0.5, h * 0.2), 'strokeColor=none;fillColor=none;');
  3909. fourthDate1.vertex = true;
  3910. v.insert(fourthDate1);
  3911. fourthDate1.value = convertText(p.Option14);
  3912. fourthDate1.style += getLabelStyle(p.Option14);
  3913. var fourthDate2 = new mxCell('', new mxGeometry(w * 0.5, h * 0.6, w * 0.15, h * 0.2), 'strokeColor=none;fillColor=none;');
  3914. fourthDate2.vertex = true;
  3915. v.insert(fourthDate2);
  3916. fourthDate2.value = convertText(p.Option24);
  3917. fourthDate2.style += getLabelStyle(p.Option24);
  3918. var fourthDate3 = new mxCell('', new mxGeometry(w * 0.65, h * 0.6, w * 0.15, h * 0.2), 'strokeColor=none;fillColor=none;');
  3919. fourthDate3.vertex = true;
  3920. v.insert(fourthDate3);
  3921. fourthDate3.value = convertText(p.Option34);
  3922. fourthDate3.style += getLabelStyle(p.Option34);
  3923. var fourthDate4 = new mxCell('', new mxGeometry(w * 0.8, h * 0.6, w * 0.15, h * 0.2), 'strokeColor=none;fillColor=none;');
  3924. fourthDate4.vertex = true;
  3925. v.insert(fourthDate4);
  3926. fourthDate4.value = convertText(p.Option44);
  3927. fourthDate4.style += getLabelStyle(p.Option44);
  3928. var fifthDate1 = new mxCell('', new mxGeometry(0, h * 0.8, w * 0.5, h * 0.2), 'strokeColor=none;fillColor=none;');
  3929. fifthDate1.vertex = true;
  3930. v.insert(fifthDate1);
  3931. fifthDate1.value = convertText(p.Option15);
  3932. fifthDate1.style += getLabelStyle(p.Option15);
  3933. var fifthDate2 = new mxCell('', new mxGeometry(w * 0.5, h * 0.8, w * 0.15, h * 0.2), 'strokeColor=none;fillColor=none;');
  3934. fifthDate2.vertex = true;
  3935. v.insert(fifthDate2);
  3936. fifthDate2.value = convertText(p.Option25);
  3937. fifthDate2.style += getLabelStyle(p.Option25);
  3938. var fifthDate3 = new mxCell('', new mxGeometry(w * 0.65, h * 0.8, w * 0.15, h * 0.2), 'strokeColor=none;fillColor=none;');
  3939. fifthDate3.vertex = true;
  3940. v.insert(fifthDate3);
  3941. fifthDate3.value = convertText(p.Option35);
  3942. fifthDate3.style += getLabelStyle(p.Option35);
  3943. var line1 = new mxCell('', new mxGeometry(0, h * 0.4 - 2, w, 4), 'shape=line;strokeColor=#888888;');
  3944. line1.vertex = true;
  3945. v.insert(line1);
  3946. var line2 = new mxCell('', new mxGeometry(0, h * 0.6 - 2, w, 4), 'shape=line;strokeColor=#888888;');
  3947. line2.vertex = true;
  3948. v.insert(line2);
  3949. v.style += getFillColor(p, a) + getOpacity(p, a) + 'strokeColor=none;';
  3950. break;
  3951. case 'iOSTimePicker' :
  3952. var firstDate1 = new mxCell('', new mxGeometry(0, 0, w * 0.25, h * 0.2), 'strokeColor=none;fillColor=none;');
  3953. firstDate1.vertex = true;
  3954. v.insert(firstDate1);
  3955. firstDate1.value = convertText(p.Option11);
  3956. firstDate1.style += getLabelStyle(p.Option11);
  3957. var firstDate2 = new mxCell('', new mxGeometry(w * 0.25, 0, w * 0.3, h * 0.2), 'strokeColor=none;fillColor=none;');
  3958. firstDate2.vertex = true;
  3959. v.insert(firstDate2);
  3960. firstDate2.value = convertText(p.Option21);
  3961. firstDate2.style += getLabelStyle(p.Option21);
  3962. var secondDate1 = new mxCell('', new mxGeometry(0, h * 0.2, w * 0.25, h * 0.2), 'strokeColor=none;fillColor=none;');
  3963. secondDate1.vertex = true;
  3964. v.insert(secondDate1);
  3965. secondDate1.value = convertText(p.Option12);
  3966. secondDate1.style += getLabelStyle(p.Option12);
  3967. var secondDate2 = new mxCell('', new mxGeometry(w * 0.25, h * 0.2, w * 0.3, h * 0.2), 'strokeColor=none;fillColor=none;');
  3968. secondDate2.vertex = true;
  3969. v.insert(secondDate2);
  3970. secondDate2.value = convertText(p.Option22);
  3971. secondDate2.style += getLabelStyle(p.Option22);
  3972. var currDate1 = new mxCell('', new mxGeometry(0, h * 0.4, w * 0.25, h * 0.2), 'strokeColor=none;fillColor=none;');
  3973. currDate1.vertex = true;
  3974. v.insert(currDate1);
  3975. currDate1.value = convertText(p.Option13);
  3976. currDate1.style += getLabelStyle(p.Option13);
  3977. var currDate2 = new mxCell('', new mxGeometry(w * 0.25, h * 0.4, w * 0.3, h * 0.2), 'strokeColor=none;fillColor=none;');
  3978. currDate2.vertex = true;
  3979. v.insert(currDate2);
  3980. currDate2.value = convertText(p.Option23);
  3981. currDate2.style += getLabelStyle(p.Option23);
  3982. var currDate4 = new mxCell('', new mxGeometry(w * 0.7, h * 0.4, w * 0.15, h * 0.2), 'strokeColor=none;fillColor=none;');
  3983. currDate4.vertex = true;
  3984. v.insert(currDate4);
  3985. currDate4.value = convertText(p.Option33);
  3986. currDate4.style += getLabelStyle(p.Option33);
  3987. var fourthDate1 = new mxCell('', new mxGeometry(0, h * 0.6, w * 0.25, h * 0.2), 'strokeColor=none;fillColor=none;');
  3988. fourthDate1.vertex = true;
  3989. v.insert(fourthDate1);
  3990. fourthDate1.value = convertText(p.Option14);
  3991. fourthDate1.style += getLabelStyle(p.Option14);
  3992. var fourthDate2 = new mxCell('', new mxGeometry(w * 0.25, h * 0.6, w * 0.3, h * 0.2), 'strokeColor=none;fillColor=none;');
  3993. fourthDate2.vertex = true;
  3994. v.insert(fourthDate2);
  3995. fourthDate2.value = convertText(p.Option24);
  3996. fourthDate2.style += getLabelStyle(p.Option24);
  3997. var fourthDate4 = new mxCell('', new mxGeometry(w * 0.7, h * 0.6, w * 0.15, h * 0.2), 'strokeColor=none;fillColor=none;');
  3998. fourthDate4.vertex = true;
  3999. v.insert(fourthDate4);
  4000. fourthDate4.value = convertText(p.Option34);
  4001. fourthDate4.style += getLabelStyle(p.Option34);
  4002. var fifthDate1 = new mxCell('', new mxGeometry(0, h * 0.8, w * 0.25, h * 0.2), 'strokeColor=none;fillColor=none;');
  4003. fifthDate1.vertex = true;
  4004. v.insert(fifthDate1);
  4005. fifthDate1.value = convertText(p.Option15);
  4006. fifthDate1.style += getLabelStyle(p.Option15);
  4007. var fifthDate2 = new mxCell('', new mxGeometry(w * 0.25, h * 0.8, w * 0.3, h * 0.2), 'strokeColor=none;fillColor=none;');
  4008. fifthDate2.vertex = true;
  4009. v.insert(fifthDate2);
  4010. fifthDate2.value = convertText(p.Option25);
  4011. fifthDate2.style += getLabelStyle(p.Option25);
  4012. var line1 = new mxCell('', new mxGeometry(0, h * 0.4 - 2, w, 4), 'shape=line;strokeColor=#888888;');
  4013. line1.vertex = true;
  4014. v.insert(line1);
  4015. var line2 = new mxCell('', new mxGeometry(0, h * 0.6 - 2, w, 4), 'shape=line;strokeColor=#888888;');
  4016. line2.vertex = true;
  4017. v.insert(line2);
  4018. v.style += getFillColor(p, a) + getOpacity(p, a) + 'strokeColor=none;';
  4019. break;
  4020. case 'iOSCountdownPicker' :
  4021. var firstDate3 = new mxCell('', new mxGeometry(w * 0.45, 0, w * 0.2, h * 0.2), 'strokeColor=none;fillColor=none;');
  4022. firstDate3.vertex = true;
  4023. v.insert(firstDate3);
  4024. firstDate3.value = convertText(p.Option31);
  4025. firstDate3.style += getLabelStyle(p.Option31);
  4026. var secondDate3 = new mxCell('', new mxGeometry(w * 0.45, h * 0.2, w * 0.2, h * 0.2), 'strokeColor=none;fillColor=none;');
  4027. secondDate3.vertex = true;
  4028. v.insert(secondDate3);
  4029. secondDate3.value = convertText(p.Option32);
  4030. secondDate3.style += getLabelStyle(p.Option32);
  4031. var currDate1 = new mxCell('', new mxGeometry(0, h * 0.4, w * 0.25, h * 0.2), 'strokeColor=none;fillColor=none;');
  4032. currDate1.vertex = true;
  4033. v.insert(currDate1);
  4034. currDate1.value = convertText(p.Option13);
  4035. currDate1.style += getLabelStyle(p.Option13);
  4036. var currDate2 = new mxCell('', new mxGeometry(w * 0.2, h * 0.4, w * 0.25, h * 0.2), 'strokeColor=none;fillColor=none;');
  4037. currDate2.vertex = true;
  4038. v.insert(currDate2);
  4039. currDate2.value = convertText(p.Option23);
  4040. currDate2.style += getLabelStyle(p.Option23);
  4041. var currDate3 = new mxCell('', new mxGeometry(w * 0.45, h * 0.4, w * 0.2, h * 0.2), 'strokeColor=none;fillColor=none;');
  4042. currDate3.vertex = true;
  4043. v.insert(currDate3);
  4044. currDate3.value = convertText(p.Option33);
  4045. currDate3.style += getLabelStyle(p.Option33);
  4046. var currDate4 = new mxCell('', new mxGeometry(w * 0.6, h * 0.4, w * 0.2, h * 0.2), 'strokeColor=none;fillColor=none;');
  4047. currDate4.vertex = true;
  4048. v.insert(currDate4);
  4049. currDate4.value = convertText(p.Option43);
  4050. currDate4.style += getLabelStyle(p.Option43);
  4051. var fourthDate1 = new mxCell('', new mxGeometry(0, h * 0.6, w * 0.25, h * 0.2), 'strokeColor=none;fillColor=none;');
  4052. fourthDate1.vertex = true;
  4053. v.insert(fourthDate1);
  4054. fourthDate1.value = convertText(p.Option14);
  4055. fourthDate1.style += getLabelStyle(p.Option14);
  4056. var fourthDate3 = new mxCell('', new mxGeometry(w * 0.45, h * 0.6, w * 0.2, h * 0.2), 'strokeColor=none;fillColor=none;');
  4057. fourthDate3.vertex = true;
  4058. v.insert(fourthDate3);
  4059. fourthDate3.value = convertText(p.Option34);
  4060. fourthDate3.style += getLabelStyle(p.Option34);
  4061. var fifthDate1 = new mxCell('', new mxGeometry(0, h * 0.8, w * 0.25, h * 0.2), 'strokeColor=none;fillColor=none;');
  4062. fifthDate1.vertex = true;
  4063. v.insert(fifthDate1);
  4064. fifthDate1.value = convertText(p.Option15);
  4065. fifthDate1.style += getLabelStyle(p.Option15);
  4066. var fifthDate3 = new mxCell('', new mxGeometry(w * 0.45, h * 0.8, w * 0.2, h * 0.2), 'strokeColor=none;fillColor=none;');
  4067. fifthDate3.vertex = true;
  4068. v.insert(fifthDate3);
  4069. fifthDate3.value = convertText(p.Option35);
  4070. fifthDate3.style += getLabelStyle(p.Option35);
  4071. var line1 = new mxCell('', new mxGeometry(0, h * 0.4 - 2, w, 4), 'shape=line;strokeColor=#888888;');
  4072. line1.vertex = true;
  4073. v.insert(line1);
  4074. var line2 = new mxCell('', new mxGeometry(0, h * 0.6 - 2, w, 4), 'shape=line;strokeColor=#888888;');
  4075. line2.vertex = true;
  4076. v.insert(line2);
  4077. v.style += getFillColor(p, a) + getOpacity(p, a) + 'strokeColor=none;';
  4078. break;
  4079. case 'iOSBasicCell' :
  4080. v.style += 'shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;spacing=0;align=left;spacingLeft=' + (p.SeparatorInset * scale) + ';';
  4081. v.style += getFontSize(p.text) +
  4082. getFontColor(p.text) +
  4083. getFontStyle(p.text) +
  4084. getTextVerticalAlignment(p.text);
  4085. v.value = convertText(p.text);
  4086. switch (p.AccessoryIndicatorType)
  4087. {
  4088. case 'Disclosure' :
  4089. var icon1 = new mxCell('', new mxGeometry(w * 0.91, h * 0.35, h * 0.15, h * 0.3), 'shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;');
  4090. icon1.vertex = true;
  4091. v.insert(icon1);
  4092. break;
  4093. case 'DetailDisclosure' :
  4094. var icon1 = new mxCell('', new mxGeometry(w * 0.91, h * 0.35, h * 0.15, h * 0.3), 'shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;');
  4095. icon1.vertex = true;
  4096. v.insert(icon1);
  4097. var icon2 = new mxCell('', new mxGeometry(w * 0.79, h * 0.25, h * 0.5, h * 0.5), 'shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;');
  4098. icon2.vertex = true;
  4099. v.insert(icon2);
  4100. break;
  4101. case 'DetailIndicator' :
  4102. var icon2 = new mxCell('', new mxGeometry(w * 0.87, h * 0.25, h * 0.5, h * 0.5), 'shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;');
  4103. icon2.vertex = true;
  4104. v.insert(icon2);
  4105. break;
  4106. case 'CheckMark' :
  4107. var icon1 = new mxCell('', new mxGeometry(w * 0.89, h * 0.37, h * 0.4, h * 0.26), 'shape=mxgraph.ios7.misc.check;strokeColor=#007AFF;strokeWidth=2;');
  4108. icon1.vertex = true;
  4109. v.insert(icon1);
  4110. break;
  4111. }
  4112. break;
  4113. case 'iOSSubtitleCell' :
  4114. v.style += 'shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;align=left;spacing=0;verticalAlign=top;spacingLeft=' + (p.SeparatorInset * scale) + ';';
  4115. v.style += getFontSize(p.subtext) +
  4116. getFontColor(p.subtext) +
  4117. getFontStyle(p.subtext);
  4118. v.value = convertText(p.subtext);
  4119. var subtext = new mxCell('', new mxGeometry(0, h * 0.4, w, h * 0.6), 'fillColor=none;strokeColor=none;spacing=0;align=left;verticalAlign=bottom;spacingLeft=' + (p.SeparatorInset * scale) + ';');
  4120. subtext.vertex = true;
  4121. v.insert(subtext);
  4122. subtext.style += getFontSize(p.text) +
  4123. getFontColor(p.text) +
  4124. getFontStyle(p.text);
  4125. subtext.value = convertText(p.text);
  4126. switch (p.AccessoryIndicatorType)
  4127. {
  4128. case 'Disclosure' :
  4129. var icon1 = new mxCell('', new mxGeometry(w * 0.91, h * 0.35, h * 0.15, h * 0.3), 'shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;');
  4130. icon1.vertex = true;
  4131. v.insert(icon1);
  4132. break;
  4133. case 'DetailDisclosure' :
  4134. var icon1 = new mxCell('', new mxGeometry(w * 0.91, h * 0.35, h * 0.15, h * 0.3), 'shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;');
  4135. icon1.vertex = true;
  4136. v.insert(icon1);
  4137. var icon2 = new mxCell('', new mxGeometry(w * 0.79, h * 0.25, h * 0.5, h * 0.5), 'shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;');
  4138. icon2.vertex = true;
  4139. v.insert(icon2);
  4140. break;
  4141. case 'DetailIndicator' :
  4142. var icon2 = new mxCell('', new mxGeometry(w * 0.87, h * 0.25, h * 0.5, h * 0.5), 'shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;');
  4143. icon2.vertex = true;
  4144. v.insert(icon2);
  4145. break;
  4146. case 'CheckMark' :
  4147. var icon1 = new mxCell('', new mxGeometry(w * 0.89, h * 0.37, h * 0.4, h * 0.26), 'shape=mxgraph.ios7.misc.check;strokeColor=#007AFF;strokeWidth=2;');
  4148. icon1.vertex = true;
  4149. v.insert(icon1);
  4150. break;
  4151. }
  4152. break;
  4153. case 'iOSRightDetailCell' :
  4154. v.style += 'shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;align=left;spacing=0;verticalAlign=middle;spacingLeft=' + (p.SeparatorInset * scale) + ';';
  4155. v.style += getFontSize(p.subtext) +
  4156. getFontColor(p.subtext) +
  4157. getFontStyle(p.subtext);
  4158. v.value = convertText(p.subtext);
  4159. var subtext = null;
  4160. switch (p.AccessoryIndicatorType)
  4161. {
  4162. case 'Disclosure' :
  4163. var icon1 = new mxCell('', new mxGeometry(w * 0.91, h * 0.35, h * 0.15, h * 0.3), 'shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;');
  4164. icon1.vertex = true;
  4165. v.insert(icon1);
  4166. subtext = new mxCell('', new mxGeometry(w * 0.55, 0, w * 0.3, h), 'fillColor=none;strokeColor=none;spacing=0;align=right;');
  4167. break;
  4168. case 'DetailDisclosure' :
  4169. var icon1 = new mxCell('', new mxGeometry(w * 0.91, h * 0.35, h * 0.15, h * 0.3), 'shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;');
  4170. icon1.vertex = true;
  4171. v.insert(icon1);
  4172. var icon2 = new mxCell('', new mxGeometry(w * 0.79, h * 0.25, h * 0.5, h * 0.5), 'shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;');
  4173. icon2.vertex = true;
  4174. v.insert(icon2);
  4175. subtext = new mxCell('', new mxGeometry(w * 0.45, 0, w * 0.3, h), 'fillColor=none;strokeColor=none;spacing=0;align=right;');
  4176. break;
  4177. case 'DetailIndicator' :
  4178. var icon2 = new mxCell('', new mxGeometry(w * 0.87, h * 0.25, h * 0.5, h * 0.5), 'shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;');
  4179. icon2.vertex = true;
  4180. v.insert(icon2);
  4181. subtext = new mxCell('', new mxGeometry(w * 0.52, 0, w * 0.3, h), 'fillColor=none;strokeColor=none;spacing=0;align=right;');
  4182. break;
  4183. case 'CheckMark' :
  4184. var icon1 = new mxCell('', new mxGeometry(w * 0.89, h * 0.37, h * 0.4, h * 0.26), 'shape=mxgraph.ios7.misc.check;strokeColor=#007AFF;strokeWidth=2;');
  4185. icon1.vertex = true;
  4186. v.insert(icon1);
  4187. subtext = new mxCell('', new mxGeometry(w * 0.55, 0, w * 0.3, h), 'fillColor=none;strokeColor=none;spacing=0;align=right;');
  4188. break;
  4189. default :
  4190. subtext = new mxCell('', new mxGeometry(w * 0.65, 0, w * 0.3, h), 'fillColor=none;strokeColor=none;spacing=0;align=right;');
  4191. }
  4192. subtext.vertex = true;
  4193. v.insert(subtext);
  4194. subtext.style += getFontSize(p.text) +
  4195. getFontColor(p.text) +
  4196. getFontStyle(p.text);
  4197. subtext.value = convertText(p.text);
  4198. break;
  4199. case 'iOSLeftDetailCell' :
  4200. v.style += 'shape=partialRectangle;left=0;top=0;right=0;fillColor=#ffffff;strokeColor=#C8C7CC;';
  4201. var text = new mxCell('', new mxGeometry(0, 0, w * 0.25, h), 'fillColor=none;strokeColor=none;spacing=0;align=right;verticalAlign=middle;spacingRight=3;');
  4202. text.vertex = true;
  4203. v.insert(text);
  4204. text.style += getFontSize(p.subtext) +
  4205. getFontColor(p.subtext) +
  4206. getFontStyle(p.subtext);
  4207. text.value = convertText(p.subtext);
  4208. var subtext = new mxCell('', new mxGeometry(w * 0.25, 0, w * 0.5, h), 'fillColor=none;strokeColor=none;spacing=0;align=left;verticalAlign=middle;spacingLeft=3;');
  4209. subtext.vertex = true;
  4210. v.insert(subtext);
  4211. subtext.style += getFontSize(p.text) +
  4212. getFontColor(p.text) +
  4213. getFontStyle(p.text);
  4214. subtext.value = convertText(p.text);
  4215. switch (p.AccessoryIndicatorType)
  4216. {
  4217. case 'Disclosure' :
  4218. var icon1 = new mxCell('', new mxGeometry(w * 0.91, h * 0.35, h * 0.15, h * 0.3), 'shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;');
  4219. icon1.vertex = true;
  4220. v.insert(icon1);
  4221. break;
  4222. case 'DetailDisclosure' :
  4223. var icon1 = new mxCell('', new mxGeometry(w * 0.91, h * 0.35, h * 0.15, h * 0.3), 'shape=mxgraph.ios7.misc.right;strokeColor=#D2D2D6;');
  4224. icon1.vertex = true;
  4225. v.insert(icon1);
  4226. var icon2 = new mxCell('', new mxGeometry(w * 0.79, h * 0.25, h * 0.5, h * 0.5), 'shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;');
  4227. icon2.vertex = true;
  4228. v.insert(icon2);
  4229. break;
  4230. case 'DetailIndicator' :
  4231. var icon2 = new mxCell('', new mxGeometry(w * 0.87, h * 0.25, h * 0.5, h * 0.5), 'shape=mxgraph.ios7.icons.info;strokeColor=#007AFF;fillColor=#ffffff;');
  4232. icon2.vertex = true;
  4233. v.insert(icon2);
  4234. break;
  4235. case 'CheckMark' :
  4236. var icon1 = new mxCell('', new mxGeometry(w * 0.89, h * 0.37, h * 0.4, h * 0.26), 'shape=mxgraph.ios7.misc.check;strokeColor=#007AFF;strokeWidth=2;');
  4237. icon1.vertex = true;
  4238. v.insert(icon1);
  4239. break;
  4240. }
  4241. break;
  4242. case 'iOSTableGroupedSectionBreak' :
  4243. v.style += 'shape=partialRectangle;left=0;right=0;fillColor=#EFEFF4;strokeColor=#C8C7CC;';
  4244. var text1 = new mxCell('', new mxGeometry(0, 0, w, h * 0.4), 'fillColor=none;strokeColor=none;spacing=10;align=left;');
  4245. text1.vertex = true;
  4246. v.insert(text1);
  4247. text1.style += getFontSize(p.text) +
  4248. getFontColor(p.text) +
  4249. getFontStyle(p.text);
  4250. text1.value = convertText(p.text);
  4251. var text2 = new mxCell('', new mxGeometry(0, h * 0.6, w, h * 0.4), 'fillColor=none;strokeColor=none;spacing=10;align=left;');
  4252. text2.vertex = true;
  4253. v.insert(text2);
  4254. text2.style += getFontSize(p["bottom-text"]) +
  4255. getFontColor(p["bottom-text"]) +
  4256. getFontStyle(p["bottom-text"]);
  4257. text2.value = convertText(p["bottom-text"]);
  4258. break;
  4259. case 'iOSTablePlainHeaderFooter' :
  4260. v.style += 'fillColor=#F7F7F7;strokeColor=none;align=left;spacingLeft=5;spacing=0;';
  4261. v.style += getFontSize(p.text) +
  4262. getFontColor(p.text) +
  4263. getFontStyle(p.text);
  4264. v.value = convertText(p.text);
  4265. break;
  4266. case 'SMPage' :
  4267. if (p.Group)
  4268. {
  4269. v.style += 'strokeColor=none;fillColor=none;'
  4270. var item1 = new mxCell('', new mxGeometry(0, 0, w * 0.9, h * 0.9), 'part=1;');
  4271. item1.vertex = true;
  4272. v.insert(item1);
  4273. item1.style += getStrokeColor(p, a) +
  4274. getFillColor(p, a) +
  4275. getOpacity(p, a) +
  4276. getShadow(p) +
  4277. getStrokeWidth(p);
  4278. var item2 = new mxCell('', new mxGeometry(w * 0.1, h * 0.1, w * 0.9, h * 0.9), 'part=1;');
  4279. item2.vertex = true;
  4280. v.insert(item2);
  4281. item2.style += getStrokeColor(p, a) +
  4282. getFillColor(p, a) +
  4283. getOpacity(p, a) +
  4284. getShadow(p) +
  4285. getStrokeWidth(p) +
  4286. getLabelStyle(p);
  4287. item2.value = convertText(p.Text);
  4288. if (p.Future)
  4289. {
  4290. item1.style += 'dashed=1;';
  4291. item2.style += 'dashed=1;';
  4292. }
  4293. }
  4294. else
  4295. {
  4296. if (p.Future)
  4297. {
  4298. v.style += 'dashed=1;';
  4299. }
  4300. v.style += getStrokeColor(p, a) +
  4301. getFillColor(p, a) +
  4302. getOpacity(p, a) +
  4303. getShadow(p) +
  4304. getStrokeWidth(p) +
  4305. getLabelStyle(p);
  4306. v.value = convertText(p.Text);
  4307. }
  4308. break;
  4309. case 'SMHome' :
  4310. case 'SMPrint' :
  4311. case 'SMSearch' :
  4312. case 'SMSettings' :
  4313. case 'SMSitemap' :
  4314. case 'SMSuccess' :
  4315. case 'SMVideo' :
  4316. case 'SMAudio' :
  4317. case 'SMCalendar' :
  4318. case 'SMChart' :
  4319. case 'SMCloud' :
  4320. case 'SMDocument' :
  4321. case 'SMForm' :
  4322. case 'SMGame' :
  4323. case 'SMUpload' :
  4324. v.style += getStrokeColor(p, a) +
  4325. getFillColor(p, a) +
  4326. getOpacity(p, a) +
  4327. getShadow(p) +
  4328. getStrokeWidth(p);
  4329. var item1 = null;
  4330. switch (obj.Class)
  4331. {
  4332. case 'SMHome' :
  4333. item1 = new mxCell('', new mxGeometry(w * 0.5 - h * 0.4, h * 0.1, h * 0.8, h * 0.8), 'part=1;shape=mxgraph.office.concepts.home;flipH=1;fillColor=#e6e6e6;opacity=50;strokeColor=none;');
  4334. break;
  4335. case 'SMPrint' :
  4336. item1 = new mxCell('', new mxGeometry(w * 0.5 - h * 0.4, h * 0.19, h * 0.8, h * 0.62), 'part=1;shape=mxgraph.office.devices.printer;fillColor=#e6e6e6;opacity=50;strokeColor=none;');
  4337. break;
  4338. case 'SMSearch' :
  4339. item1 = new mxCell('', new mxGeometry(w * 0.5 - h * 0.4, h * 0.1, h * 0.8, h * 0.8), 'part=1;shape=mxgraph.office.concepts.search;flipH=1;fillColor=#e6e6e6;opacity=50;strokeColor=none;');
  4340. break;
  4341. case 'SMSettings' :
  4342. item1 = new mxCell('', new mxGeometry(w * 0.5 - h * 0.35, h * 0.15, h * 0.7, h * 0.7), 'part=1;shape=mxgraph.mscae.enterprise.settings;fillColor=#e6e6e6;opacity=50;strokeColor=none;');
  4343. break;
  4344. case 'SMSitemap' :
  4345. item1 = new mxCell('', new mxGeometry(w * 0.5 - h * 0.35, h * 0.2, h * 0.7, h * 0.6), 'part=1;shape=mxgraph.office.sites.site_collection;fillColor=#e6e6e6;opacity=50;strokeColor=none;');
  4346. break;
  4347. case 'SMSuccess' :
  4348. item1 = new mxCell('', new mxGeometry(w * 0.5 - h * 0.3, h * 0.25, h * 0.6, h * 0.5), 'part=1;shape=mxgraph.mscae.general.checkmark;fillColor=#e6e6e6;opacity=50;strokeColor=none;');
  4349. break;
  4350. case 'SMVideo' :
  4351. item1 = new mxCell('', new mxGeometry(w * 0.5 - h * 0.4, h * 0.2, h * 0.8, h * 0.6), 'part=1;shape=mxgraph.office.concepts.video_play;fillColor=#e6e6e6;opacity=50;strokeColor=none;');
  4352. break;
  4353. case 'SMAudio' :
  4354. item1 = new mxCell('', new mxGeometry(w * 0.5 - h * 0.3, h * 0.2, h * 0.6, h * 0.6), 'part=1;shape=mxgraph.mscae.general.audio;fillColor=#e6e6e6;opacity=50;strokeColor=none;');
  4355. break;
  4356. case 'SMCalendar' :
  4357. item1 = new mxCell('', new mxGeometry(w * 0.5 - h * 0.4, h * 0.15, h * 0.8, h * 0.7), 'part=1;shape=mxgraph.office.concepts.form;fillColor=#e6e6e6;opacity=50;strokeColor=none;');
  4358. break;
  4359. case 'SMChart' :
  4360. var fc = getFillColor(p, a);
  4361. if (fc == '')
  4362. {
  4363. fc = '#ffffff;'
  4364. }
  4365. else
  4366. {
  4367. fc = fc.replace('fillColor=', '');
  4368. }
  4369. item1 = new mxCell('', new mxGeometry(w * 0.5 - h * 0.35, h * 0.15, h * 0.7, h * 0.7), 'part=1;shape=mxgraph.ios7.icons.pie_chart;fillColor=#e6e6e6;fillOpacity=50;strokeWidth=4;strokeColor=' + fc);
  4370. break;
  4371. case 'SMCloud' :
  4372. item1 = new mxCell('', new mxGeometry(w * 0.5 - h * 0.4, h * 0.27, h * 0.8, h * 0.46), 'part=1;shape=mxgraph.networks.cloud;fillColor=#e6e6e6;opacity=50;strokeColor=none;');
  4373. break;
  4374. case 'SMDocument' :
  4375. item1 = new mxCell('', new mxGeometry(w * 0.5 - h * 0.25, h * 0.15, h * 0.5, h * 0.7), 'part=1;shape=mxgraph.mscae.enterprise.document;fillColor=#e6e6e6;opacity=50;strokeColor=none;');
  4376. break;
  4377. case 'SMForm' :
  4378. item1 = new mxCell('', new mxGeometry(w * 0.5 - h * 0.4, h * 0.15, h * 0.8, h * 0.7), 'part=1;shape=mxgraph.office.concepts.form;fillColor=#e6e6e6;opacity=50;strokeColor=none;');
  4379. break;
  4380. case 'SMGame' :
  4381. item1 = new mxCell('', new mxGeometry(w * 0.5 - h * 0.4, h * 0.2, h * 0.8, h * 0.6), 'part=1;shape=mxgraph.mscae.general.game_controller;fillColor=#e6e6e6;opacity=50;strokeColor=none;');
  4382. break;
  4383. case 'SMUpload' :
  4384. item1 = new mxCell('', new mxGeometry(w * 0.5 - h * 0.4, h * 0.2, h * 0.8, h * 0.6), 'part=1;shape=mxgraph.mscae.enterprise.backup_online;fillColor=#e6e6e6;opacity=50;strokeColor=none;');
  4385. break;
  4386. }
  4387. item1.vertex = true;
  4388. v.insert(item1);
  4389. item1.style += getLabelStyle(p);
  4390. item1.value = convertText(p.Text);
  4391. break;
  4392. case 'UMLMultiplicityBlock' :
  4393. v.style += 'strokeColor=none;fillColor=none;'
  4394. var item1 = new mxCell('', new mxGeometry(w * 0.1, 0, w * 0.9, h * 0.9), 'part=1;');
  4395. item1.vertex = true;
  4396. v.insert(item1);
  4397. item1.style += getStrokeColor(p, a) +
  4398. getFillColor(p, a) +
  4399. getOpacity(p, a) +
  4400. getShadow(p) +
  4401. getStrokeWidth(p);
  4402. var item2 = new mxCell('', new mxGeometry(0, h * 0.1, w * 0.9, h * 0.9), 'part=1;');
  4403. item2.vertex = true;
  4404. v.insert(item2);
  4405. item2.style += getStrokeColor(p, a) +
  4406. getFillColor(p, a) +
  4407. getOpacity(p, a) +
  4408. getShadow(p) +
  4409. getStrokeWidth(p) +
  4410. getLabelStyle(p.Text);
  4411. item2.value = convertText(p.Text);
  4412. break;
  4413. case 'UMLConstraintBlock' :
  4414. var brace1 = new mxCell('', new mxGeometry(0, 0, h * 0.25, h), 'shape=curlyBracket;rounded=1;');
  4415. brace1.vertex = true;
  4416. v.insert(brace1);
  4417. var brace2 = new mxCell('', new mxGeometry(w - h * 0.25, 0, h * 0.25, h), 'shape=curlyBracket;rounded=1;flipH=1;');
  4418. brace2.vertex = true;
  4419. v.insert(brace2);
  4420. var label = new mxCell('', new mxGeometry(h * 0.25, 0, w - h * 0.5, h), 'strokeColor=none;fillColor=none;');
  4421. label.vertex = true;
  4422. label.value = convertText(p);
  4423. v.insert(label);
  4424. v.style = "strokeColor=none;fillColor=none;"
  4425. v.style += getRotation(p, a, v);
  4426. brace1.style += getStrokeColor(p, a) +
  4427. getOpacity(p, a) +
  4428. getShadow(p) +
  4429. getStrokeStyle(p) +
  4430. getStrokeWidth(p);
  4431. brace2.style += getStrokeColor(p, a) +
  4432. getOpacity(p, a) +
  4433. getShadow(p) +
  4434. getStrokeStyle(p) +
  4435. getStrokeWidth(p);
  4436. label.style += getFontSize(p) +
  4437. getFontColor(p) +
  4438. getFontStyle(p) +
  4439. getTextAlignment(p) +
  4440. getTextLeftSpacing(p) +
  4441. getTextRightSpacing(p) +
  4442. getTextTopSpacing(p) +
  4443. getTextBottomSpacing(p) +
  4444. getTextGlobalSpacing(p) +
  4445. getTextVerticalAlignment(p);
  4446. break;
  4447. case 'UMLTextBlock' :
  4448. v.style += 'strokeColor=none;' +
  4449. getOpacity(p, a) +
  4450. getShadow(p) +
  4451. getStrokeStyle(p) +
  4452. getStrokeWidth(p) +
  4453. getLabelStyle(p.Text);
  4454. v.value = convertText(p.Text);
  4455. break;
  4456. case 'UMLMultiLanePoolBlock' :
  4457. break;
  4458. case 'UMLMultiLanePoolRotatedBlock' :
  4459. break;
  4460. case 'UMLMultidimensionalSwimlane' :
  4461. break;
  4462. case 'UMLComponentBoxBlock' :
  4463. break;
  4464. case 'BPMNActivity' :
  4465. switch (p.bpmnActivityType)
  4466. {
  4467. case 1:
  4468. v.style += getFillColor(p, a) +
  4469. getStrokeColor(p, a) +
  4470. getOpacity(p, a) +
  4471. getShadow(p) +
  4472. getStrokeStyle(p) +
  4473. getStrokeWidth(p) +
  4474. getLabelStyle(p.Text);
  4475. v.value = convertText(p.Text);
  4476. break
  4477. case 2:
  4478. v.style += 'shape=ext;double=1;' +
  4479. getFillColor(p, a) +
  4480. getStrokeColor(p, a) +
  4481. getOpacity(p, a) +
  4482. getShadow(p) +
  4483. getStrokeStyle(p) +
  4484. getStrokeWidth(p) +
  4485. getLabelStyle(p.Text);
  4486. v.value = convertText(p.Text);
  4487. break
  4488. case 3:
  4489. v.style += 'shape=ext;dashed=1;dashPattern=2 1;' +
  4490. getFillColor(p, a) +
  4491. getStrokeColor(p, a) +
  4492. getOpacity(p, a) +
  4493. getShadow(p) +
  4494. getStrokeWidth(p) +
  4495. getLabelStyle(p.Text);
  4496. v.value = convertText(p.Text);
  4497. break
  4498. case 4:
  4499. v.style += 'shape=ext;strokeWidth=2;' +
  4500. getFillColor(p, a) +
  4501. getStrokeColor(p, a) +
  4502. getOpacity(p, a) +
  4503. getShadow(p) +
  4504. getStrokeStyle(p) +
  4505. getLabelStyle(p.Text);
  4506. v.value = convertText(p.Text);
  4507. break
  4508. }
  4509. if (p.bpmnTaskType != 0)
  4510. {
  4511. switch (p.bpmnTaskType)
  4512. {
  4513. case 1:
  4514. var item1 = new mxCell('', new mxGeometry(0, 0, 19, 12), 'shape=message;');
  4515. item1.geometry.offset = new mxPoint(4, 7);
  4516. break;
  4517. case 2:
  4518. var item1 = new mxCell('', new mxGeometry(0, 0, 19, 12), 'shape=message;');
  4519. item1.geometry.offset = new mxPoint(4, 7);
  4520. break;
  4521. case 3:
  4522. var item1 = new mxCell('', new mxGeometry(0, 0, 15, 15), 'shape=mxgraph.bpmn.user_task;');
  4523. item1.geometry.offset = new mxPoint(4, 5);
  4524. break;
  4525. case 4:
  4526. var item1 = new mxCell('', new mxGeometry(0, 0, 15, 10), 'shape=mxgraph.bpmn.manual_task;');
  4527. item1.geometry.offset = new mxPoint(4, 7);
  4528. break;
  4529. case 5:
  4530. var item1 = new mxCell('', new mxGeometry(0, 0, 18, 13), 'shape=mxgraph.bpmn.business_rule_task;');
  4531. item1.geometry.offset = new mxPoint(4, 7);
  4532. break;
  4533. case 6:
  4534. var item1 = new mxCell('', new mxGeometry(0, 0, 15, 15), 'shape=mxgraph.bpmn.service_task;');
  4535. item1.geometry.offset = new mxPoint(4, 5);
  4536. break;
  4537. case 7:
  4538. var item1 = new mxCell('', new mxGeometry(0, 0, 15, 15), 'shape=mxgraph.bpmn.script_task;');
  4539. item1.geometry.offset = new mxPoint(4, 5);
  4540. break;
  4541. }
  4542. if (p.bpmnTaskType == 1)
  4543. {
  4544. var sc = getFillColor(p, a);
  4545. var fc = getStrokeColor(p, a);
  4546. fc = fc.replace('strokeColor', 'fillColor');
  4547. sc = sc.replace('fillColor', 'strokeColor');
  4548. if (fc == '')
  4549. {
  4550. fc = 'fillColor=#000000;'
  4551. }
  4552. if (sc == '')
  4553. {
  4554. sc = 'strokeColor=#ffffff;'
  4555. }
  4556. item1.style += sc + fc + 'part=1;';
  4557. }
  4558. else
  4559. {
  4560. item1.style += getFillColor(p, a) + getStrokeColor(p, a) + 'part=1;';
  4561. }
  4562. item1.geometry.relative = true;
  4563. item1.vertex = true;
  4564. v.insert(item1);
  4565. }
  4566. var numIcons = 0;
  4567. if (p.bpmnActivityMarker1 != 0)
  4568. {
  4569. numIcons++;
  4570. }
  4571. if (p.bpmnActivityMarker2 != 0)
  4572. {
  4573. numIcons++;
  4574. }
  4575. var iconX = 0;
  4576. var iconY = h - 20;
  4577. if (numIcons == 1)
  4578. {
  4579. iconX = -7.5;
  4580. }
  4581. else if (numIcons == 2)
  4582. {
  4583. iconX = -19;
  4584. }
  4585. if (p.bpmnActivityMarker1 != 0)
  4586. {
  4587. switch (p.bpmnActivityMarker1)
  4588. {
  4589. case 1:
  4590. var item1 = new mxCell('', new mxGeometry(0.5, 1, 15, 15), 'shape=plus;part=1;');
  4591. item1.geometry.offset = new mxPoint(iconX, -20);
  4592. item1.style += getFillColor(p, a) + getStrokeColor(p, a);
  4593. break;
  4594. case 2:
  4595. var item1 = new mxCell('', new mxGeometry(0.5, 1, 15, 15), 'shape=mxgraph.bpmn.loop;part=1;');
  4596. item1.geometry.offset = new mxPoint(iconX, -20);
  4597. item1.style += getFillColor(p, a) + getStrokeColor(p, a);
  4598. break;
  4599. case 3:
  4600. var item1 = new mxCell('', new mxGeometry(0.5, 1, 15, 15), 'shape=parallelMarker;part=1;');
  4601. item1.geometry.offset = new mxPoint(iconX, -20);
  4602. item1.style += getFillColor(p, a) + getStrokeColor(p, a);
  4603. break;
  4604. case 4:
  4605. var item1 = new mxCell('', new mxGeometry(0.5, 1, 15, 15), 'shape=parallelMarker;direction=south;part=1;');
  4606. item1.geometry.offset = new mxPoint(iconX, -20);
  4607. item1.style += getFillColor(p, a) + getStrokeColor(p, a);
  4608. break;
  4609. case 5:
  4610. var item1 = new mxCell('', new mxGeometry(0.5, 1, 15, 10), 'shape=mxgraph.bpmn.ad_hoc;strokeColor=none;flipH=1;part=1;');
  4611. item1.geometry.offset = new mxPoint(iconX, -17);
  4612. var fc = getStrokeColor(p, a);
  4613. fc = fc.replace('strokeColor', 'fillColor');
  4614. if (fc == '')
  4615. {
  4616. fc = 'fillColor=#000000;'
  4617. }
  4618. item1.style += fc;
  4619. break;
  4620. case 6:
  4621. var item1 = new mxCell('', new mxGeometry(0.5, 1, 15, 11), 'shape=mxgraph.bpmn.compensation;part=1;');
  4622. item1.geometry.offset = new mxPoint(iconX, -18);
  4623. item1.style += getFillColor(p, a) + getStrokeColor(p, a);
  4624. break;
  4625. }
  4626. item1.geometry.relative = true;
  4627. item1.vertex = true;
  4628. v.insert(item1);
  4629. }
  4630. if (numIcons == 2)
  4631. {
  4632. iconX = 5;
  4633. }
  4634. if (p.bpmnActivityMarker2 != 0)
  4635. {
  4636. switch (p.bpmnActivityMarker2)
  4637. {
  4638. case 1:
  4639. var item1 = new mxCell('', new mxGeometry(0.5, 1, 15, 15), 'shape=plus;part=1;');
  4640. item1.geometry.offset = new mxPoint(iconX, -20);
  4641. item1.style += getFillColor(p, a) + getStrokeColor(p, a);
  4642. break;
  4643. case 2:
  4644. var item1 = new mxCell('', new mxGeometry(0.5, 1, 15, 15), 'shape=mxgraph.bpmn.loop;part=1;');
  4645. item1.geometry.offset = new mxPoint(iconX, -20);
  4646. item1.style += getFillColor(p, a) + getStrokeColor(p, a);
  4647. break;
  4648. case 3:
  4649. var item1 = new mxCell('', new mxGeometry(0.5, 1, 15, 15), 'shape=parallelMarker;part=1;');
  4650. item1.geometry.offset = new mxPoint(iconX, -20);
  4651. item1.style += getFillColor(p, a) + getStrokeColor(p, a);
  4652. break;
  4653. case 4:
  4654. var item1 = new mxCell('', new mxGeometry(0.5, 1, 15, 15), 'shape=parallelMarker;direction=south;part=1;');
  4655. item1.geometry.offset = new mxPoint(iconX, -20);
  4656. item1.style += getFillColor(p, a) + getStrokeColor(p, a);
  4657. break;
  4658. case 5:
  4659. var item1 = new mxCell('', new mxGeometry(0.5, 1, 15, 10), 'shape=mxgraph.bpmn.ad_hoc;strokeColor=none;flipH=1;part=1;');
  4660. item1.geometry.offset = new mxPoint(iconX, -17);
  4661. var fc = getStrokeColor(p, a);
  4662. fc = fc.replace('strokeColor', 'fillColor');
  4663. if (fc == '')
  4664. {
  4665. fc = 'fillColor=#000000;'
  4666. }
  4667. item1.style += fc;
  4668. break;
  4669. case 6:
  4670. var item1 = new mxCell('', new mxGeometry(0.5, 1, 15, 11), 'shape=mxgraph.bpmn.compensation;part=1;');
  4671. item1.geometry.offset = new mxPoint(iconX, -18);
  4672. item1.style += getFillColor(p, a) + getStrokeColor(p, a);
  4673. break;
  4674. }
  4675. item1.geometry.relative = true;
  4676. item1.vertex = true;
  4677. v.insert(item1);
  4678. }
  4679. break;
  4680. case 'BPMNEvent' :
  4681. v.style += 'shape=mxgraph.bpmn.shape;verticalLabelPosition=bottom;verticalAlign=top;' +
  4682. getFillColor(p, a) +
  4683. getStrokeColor(p, a) +
  4684. getOpacity(p, a) +
  4685. getShadow(p) +
  4686. getStrokeStyle(p) +
  4687. getStrokeWidth(p) +
  4688. getFontSize(p) +
  4689. getFontColor(p) +
  4690. getFontStyle(p) +
  4691. getTextAlignment(p) +
  4692. getTextLeftSpacing(p) +
  4693. getTextRightSpacing(p) +
  4694. getTextTopSpacing(p) +
  4695. getTextBottomSpacing(p) +
  4696. getTextGlobalSpacing(p);
  4697. v.value = convertText(p.Text);
  4698. if (p.bpmnDashed == true)
  4699. {
  4700. switch (p.bpmnEventGroup)
  4701. {
  4702. case 0:
  4703. v.style += 'outline=eventNonint;';
  4704. break;
  4705. case 1:
  4706. v.style += 'outline=boundNonint;';
  4707. break;
  4708. case 2:
  4709. v.style += 'outline=end;';
  4710. break;
  4711. }
  4712. }
  4713. else
  4714. {
  4715. switch (p.bpmnEventGroup)
  4716. {
  4717. case 0:
  4718. v.style += 'outline=standard;';
  4719. break;
  4720. case 1:
  4721. v.style += 'outline=throwing;';
  4722. break;
  4723. case 2:
  4724. v.style += 'outline=end;';
  4725. break;
  4726. }
  4727. }
  4728. switch(p.bpmnEventType)
  4729. {
  4730. case 1:
  4731. v.style += 'symbol=message;';
  4732. break;
  4733. case 2:
  4734. v.style += 'symbol=timer;';
  4735. break;
  4736. case 3:
  4737. v.style += 'symbol=escalation;';
  4738. break;
  4739. case 4:
  4740. v.style += 'symbol=conditional;';
  4741. break;
  4742. case 5:
  4743. v.style += 'symbol=link;';
  4744. break;
  4745. case 6:
  4746. v.style += 'symbol=error;';
  4747. break;
  4748. case 7:
  4749. v.style += 'symbol=cancel;';
  4750. break;
  4751. case 8:
  4752. v.style += 'symbol=compensation;';
  4753. break;
  4754. case 9:
  4755. v.style += 'symbol=signal;';
  4756. break;
  4757. case 10:
  4758. v.style += 'symbol=multiple;';
  4759. break;
  4760. case 11:
  4761. v.style += 'symbol=parallelMultiple;';
  4762. break;
  4763. case 12:
  4764. v.style += 'symbol=terminate;';
  4765. break;
  4766. }
  4767. break;
  4768. case 'BPMNChoreography' :
  4769. break;
  4770. case 'BPMNConversation' :
  4771. v.style += 'shape=hexagon;' +
  4772. getFillColor(p, a) +
  4773. getStrokeColor(p, a) +
  4774. getOpacity(p, a) +
  4775. getShadow(p) +
  4776. getStrokeStyle(p) +
  4777. getLabelStyle(p);
  4778. v.value = convertText(p.Text);
  4779. if (p.bpmnConversationType == 0)
  4780. {
  4781. v.style += getStrokeWidth(p);
  4782. }
  4783. else
  4784. {
  4785. v.style += 'strokeWidth=2;';
  4786. }
  4787. if (p.bpmnIsSubConversation)
  4788. {
  4789. var item1 = new mxCell('', new mxGeometry(0.5, 1, 12, 12), 'shape=plus;part=1;');
  4790. item1.geometry.offset = new mxPoint(-6, -17);
  4791. item1.style += getFillColor(p, a) + getStrokeColor(p, a);
  4792. item1.geometry.relative = true;
  4793. item1.vertex = true;
  4794. v.insert(item1);
  4795. }
  4796. break;
  4797. case 'BPMNGateway' :
  4798. v.style += 'shape=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;' +
  4799. getFillColor(p, a) +
  4800. getStrokeColor(p, a) +
  4801. getOpacity(p, a) +
  4802. getShadow(p) +
  4803. getStrokeStyle(p) +
  4804. getLabelStyle(p);
  4805. switch (p.bpmnGatewayType)
  4806. {
  4807. case 0:
  4808. v.style += 'outline=none;symbol=general;';
  4809. break;
  4810. case 1:
  4811. v.style += 'outline=none;symbol=exclusiveGw;';
  4812. break;
  4813. case 2:
  4814. v.style += 'outline=catching;symbol=multiple;';
  4815. break;
  4816. case 3:
  4817. v.style += 'outline=none;symbol=parallelGw;';
  4818. break;
  4819. case 4:
  4820. v.style += 'outline=end;symbol=general;';
  4821. break;
  4822. case 5:
  4823. v.style += 'outline=standard;symbol=multiple;';
  4824. break;
  4825. case 6:
  4826. v.style += 'outline=none;symbol=complexGw;';
  4827. break;
  4828. case 7:
  4829. v.style += 'outline=standard;symbol=parallelMultiple;';
  4830. break;
  4831. }
  4832. break;
  4833. case 'BPMNData' :
  4834. v.style += 'shape=note;size=14;' +
  4835. getFillColor(p, a) +
  4836. getStrokeColor(p, a) +
  4837. getOpacity(p, a) +
  4838. getShadow(p) +
  4839. getStrokeStyle(p) +
  4840. getLabelStyle(p);
  4841. switch (p.bpmnDataType)
  4842. {
  4843. case 0:
  4844. break;
  4845. case 1:
  4846. var item1 = new mxCell('', new mxGeometry(0.5, 1, 12, 10), 'shape=parallelMarker;part=1;');
  4847. item1.geometry.offset = new mxPoint(-6, -15);
  4848. item1.style += getFillColor(p, a) + getStrokeColor(p, a);
  4849. item1.geometry.relative = true;
  4850. item1.vertex = true;
  4851. v.insert(item1);
  4852. break;
  4853. case 2:
  4854. var item1 = new mxCell('', new mxGeometry(0, 0, 12, 10), 'shape=singleArrow;part=1;arrowWidth=0.4;arrowSize=0.4;');
  4855. item1.geometry.offset = new mxPoint(3, 3);
  4856. item1.style += getFillColor(p, a) + getStrokeColor(p, a);
  4857. item1.geometry.relative = true;
  4858. item1.vertex = true;
  4859. v.insert(item1);
  4860. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;';
  4861. var text1 = new mxCell('', new mxGeometry(0, 0, w, 20), 'strokeColor=none;fillColor=none;');
  4862. text1.geometry.offset = new mxPoint(0, 14);
  4863. text1.geometry.relative = true;
  4864. text1.vertex = true;
  4865. v.insert(text1);
  4866. text1.value = convertText(p.Text);
  4867. text1.style += getLabelStyle(p);
  4868. break;
  4869. case 3:
  4870. var item1 = new mxCell('', new mxGeometry(0, 0, 12, 10), 'shape=singleArrow;part=1;arrowWidth=0.4;arrowSize=0.4;');
  4871. item1.geometry.offset = new mxPoint(3, 3);
  4872. item1.style += getStrokeColor(p, a);
  4873. item1.geometry.relative = true;
  4874. item1.vertex = true;
  4875. v.insert(item1);
  4876. var fc = getStrokeColor(p, a);
  4877. fc = fc.replace('strokeColor', 'fillColor');
  4878. if (fc == '')
  4879. {
  4880. fc = 'fillColor=#000000;'
  4881. }
  4882. item1.style += fc;
  4883. var text1 = new mxCell('', new mxGeometry(0, 0, w, 20), 'strokeColor=none;fillColor=none;');
  4884. text1.geometry.offset = new mxPoint(0, 14);
  4885. text1.geometry.relative = true;
  4886. text1.vertex = true;
  4887. v.insert(text1);
  4888. text1.value = convertText(p.Text);
  4889. text1.style += getLabelStyle(p);
  4890. break;
  4891. }
  4892. break;
  4893. case 'BPMNAdvancedPoolBlock' :
  4894. break;
  4895. case 'BPMNAdvancedPoolBlockRotated' :
  4896. break;
  4897. case 'BPMNBlackPool' :
  4898. v.style += getFillColor(p, a) +
  4899. getStrokeColor(p, a) +
  4900. getOpacity(p, a) +
  4901. getShadow(p) +
  4902. getStrokeStyle(p) +
  4903. getLabelStyle(p);
  4904. v.value = convertText(p.Text);
  4905. var item1 = new mxCell('', new mxGeometry(0, 0, w, h), 'fillColor=#000000;strokeColor=none;opacity=30;');
  4906. item1.vertex = true;
  4907. v.insert(item1);
  4908. break;
  4909. case 'DFDExternalEntityBlock' :
  4910. v.style += 'strokeColor=none;fillColor=none;'
  4911. var item1 = new mxCell('', new mxGeometry(0, 0, w * 0.95, h * 0.95), 'part=1;');
  4912. item1.vertex = true;
  4913. v.insert(item1);
  4914. item1.style += getStrokeColor(p, a) +
  4915. getFillColor(p, a) +
  4916. getOpacity(p, a) +
  4917. getShadow(p) +
  4918. getStrokeWidth(p);
  4919. var item2 = new mxCell('', new mxGeometry(w * 0.05, h * 0.05, w * 0.95, h * 0.95), 'part=1;');
  4920. item2.vertex = true;
  4921. v.insert(item2);
  4922. item2.style += getStrokeColor(p, a) +
  4923. getFillColor(p, a) +
  4924. getOpacity(p, a) +
  4925. getShadow(p) +
  4926. getStrokeWidth(p) +
  4927. getLabelStyle(p.Text);
  4928. item2.value = convertText(p.Text);
  4929. break;
  4930. case 'GSDFDDataStoreBlock' :
  4931. v.style += 'shape=partialRectangle;right=0;' +
  4932. getStrokeColor(p, a) +
  4933. getFillColor(p, a) +
  4934. getOpacity(p, a) +
  4935. getShadow(p) +
  4936. getStrokeWidth(p) +
  4937. getLabelStyle(p.Text);
  4938. v.value = convertText(p.Text);
  4939. var item1 = new mxCell('', new mxGeometry(0, 0, w * 0.2, h), 'part=1;');
  4940. item1.vertex = true;
  4941. v.insert(item1);
  4942. item1.style += getStrokeColor(p, a) +
  4943. getFillColor(p, a) +
  4944. getOpacity(p, a) +
  4945. getShadow(p) +
  4946. getStrokeWidth(p) +
  4947. getLabelStyle(p.Number);
  4948. item1.value = convertText(p.Number);
  4949. break;
  4950. case 'DefaultTableBlock' :
  4951. break;
  4952. case 'VSMDedicatedProcessBlock' :
  4953. case 'VSMProductionControlBlock' :
  4954. v.style += 'shape=mxgraph.lean_mapping.manufacturing_process;spacingTop=15;';
  4955. if (obj.Class == 'VSMDedicatedProcessBlock')
  4956. {
  4957. v.value = convertText(p.Text);
  4958. }
  4959. else if (obj.Class == 'VSMProductionControlBlock')
  4960. {
  4961. v.value = convertText(p.Resources);
  4962. }
  4963. v.style += getStrokeColor(p, a) +
  4964. getFillColor(p, a) +
  4965. getOpacity(p, a) +
  4966. getShadow(p) +
  4967. getStrokeWidth(p) +
  4968. getFontSize(p) +
  4969. getFontColor(p) +
  4970. getFontStyle(p) +
  4971. getTextAlignment(p) +
  4972. getTextLeftSpacing(p) +
  4973. getTextRightSpacing(p) +
  4974. getTextBottomSpacing(p) +
  4975. getTextGlobalSpacing(p) +
  4976. getTextVerticalAlignment(p);
  4977. if (obj.Class == 'VSMDedicatedProcessBlock')
  4978. {
  4979. var item1 = new mxCell('', new mxGeometry(0, 1, 11, 9), 'part=1;shape=mxgraph.lean_mapping.operator;');
  4980. item1.geometry.relative = true;
  4981. item1.geometry.offset = new mxPoint(4, -13);
  4982. item1.vertex = true;
  4983. v.insert(item1);
  4984. item1.style += getStrokeColor(p, a) +
  4985. getFillColor(p, a) +
  4986. getOpacity(p, a) +
  4987. getShadow(p) +
  4988. getStrokeWidth(p);
  4989. }
  4990. var text1 = new mxCell('', new mxGeometry(0, 0, w, 15), 'strokeColor=none;fillColor=none;part=1;');
  4991. text1.vertex = true;
  4992. v.insert(text1);
  4993. text1.value = convertText(p.Title);
  4994. text1.style += getLabelStyle(p.Title);
  4995. break;
  4996. case 'VSMSharedProcessBlock' :
  4997. v.style += 'shape=mxgraph.lean_mapping.manufacturing_process_shared;spacingTop=-5;verticalAlign=top;';
  4998. v.value = convertText(p.Text);
  4999. v.style += getStrokeColor(p, a) +
  5000. getFillColor(p, a) +
  5001. getOpacity(p, a) +
  5002. getShadow(p) +
  5003. getStrokeWidth(p) +
  5004. getFontSize(p) +
  5005. getFontColor(p) +
  5006. getFontStyle(p) +
  5007. getTextAlignment(p) +
  5008. getTextLeftSpacing(p) +
  5009. getTextRightSpacing(p) +
  5010. getTextBottomSpacing(p) +
  5011. getTextTopSpacing(p) +
  5012. getTextGlobalSpacing(p)
  5013. var text1 = new mxCell('', new mxGeometry(w * 0.1, h * 0.3, w * 0.8, h * 0.6), 'part=1;');
  5014. text1.vertex = true;
  5015. v.insert(text1);
  5016. text1.value = convertText(p.Resource);
  5017. text1.style += getStrokeColor(p, a) +
  5018. getFillColor(p, a) +
  5019. getOpacity(p, a) +
  5020. getShadow(p) +
  5021. getStrokeWidth(p) +
  5022. getLabelStyle(p.Resource);
  5023. break;
  5024. case 'VSMWorkcellBlock' :
  5025. v.style += 'shape=mxgraph.lean_mapping.work_cell;verticalAlign=top;spacingTop=-2;';
  5026. v.style += getStrokeColor(p, a) +
  5027. getFillColor(p, a) +
  5028. getOpacity(p, a) +
  5029. getShadow(p) +
  5030. getStrokeWidth(p) +
  5031. getFontSize(p) +
  5032. getFontColor(p) +
  5033. getFontStyle(p) +
  5034. getTextAlignment(p) +
  5035. getTextLeftSpacing(p) +
  5036. getTextRightSpacing(p) +
  5037. getTextBottomSpacing(p) +
  5038. getTextGlobalSpacing(p);
  5039. v.value = convertText(p.Text);
  5040. break;
  5041. case 'VSMSafetyBufferStockBlock' :
  5042. case 'VSMDatacellBlock' :
  5043. v.style += 'strokeColor=none;fillColor=none;';
  5044. var itemFullH = h;
  5045. var numItems = parseInt(p.Cells);
  5046. var st = getStrokeColor(p, a) +
  5047. getFillColor(p, a) +
  5048. getOpacity(p, a) +
  5049. getShadow(p) +
  5050. getStrokeWidth(p) + 'part=1;';
  5051. if (numItems > 0)
  5052. {
  5053. itemFullH = itemFullH / numItems;
  5054. }
  5055. var item = new Array();
  5056. var line = new Array();
  5057. for (var i = 1; i <= numItems; i++)
  5058. {
  5059. item[i] = new mxCell('', new mxGeometry(0, (i - 1) * itemFullH, w, itemFullH), st);
  5060. item[i].vertex = true;
  5061. v.insert(item[i]);
  5062. item[i].value = convertText(p["cell_" + i]);
  5063. item[i].style += getLabelStyle(p["cell_" + i]);
  5064. }
  5065. break;
  5066. case 'VSMInventoryBlock' :
  5067. v.style += 'shape=mxgraph.lean_mapping.inventory_box;verticalLabelPosition=bottom;verticalAlign=top;' +
  5068. getStrokeColor(p, a) +
  5069. getFillColor(p, a) +
  5070. getOpacity(p, a) +
  5071. getShadow(p) +
  5072. getStrokeWidth(p) +
  5073. getFontSize(p) +
  5074. getFontColor(p) +
  5075. getFontStyle(p) +
  5076. getTextAlignment(p) +
  5077. getTextLeftSpacing(p) +
  5078. getTextRightSpacing(p) +
  5079. getTextTopSpacing(p) +
  5080. getTextBottomSpacing(p) +
  5081. getTextGlobalSpacing(p);
  5082. v.value = convertText(p.Text);
  5083. break;
  5084. case 'VSMSupermarketBlock' :
  5085. v.style += 'strokeColor=none;' + getFillColor(p, a);
  5086. var itemFullH = h;
  5087. var numItems = parseInt(p.Cells);
  5088. var st = getStrokeColor(p, a) +
  5089. getOpacity(p, a) +
  5090. getStrokeWidth(p) + 'part=1;fillColor=none;';
  5091. if (numItems > 0)
  5092. {
  5093. itemFullH = itemFullH / numItems;
  5094. }
  5095. var item = new Array();
  5096. var text = new Array();
  5097. for (var i = 1; i <= numItems; i++)
  5098. {
  5099. item[i] = new mxCell('', new mxGeometry(w * 0.5, (i - 1) * itemFullH, w * 0.5, itemFullH), 'shape=partialRectangle;left=0;' + st);
  5100. item[i].vertex = true;
  5101. v.insert(item[i]);
  5102. text[i] = new mxCell('', new mxGeometry(0, (i - 1) * itemFullH, w, itemFullH), 'strokeColor=none;fillColor=none;part=1;');
  5103. text[i].vertex = true;
  5104. v.insert(text[i]);
  5105. text[i].value = convertText(p["cell_" + i]);
  5106. text[i].style += getLabelStyle(p["cell_" + i]);
  5107. }
  5108. break;
  5109. case 'VSMFIFOLaneBlock' :
  5110. v.style += 'shape=mxgraph.lean_mapping.fifo_sequence_flow;fontStyle=0;fontSize=18';
  5111. v.value = 'FIFO';
  5112. break;
  5113. case 'VSMGoSeeProductionBlock' :
  5114. v.style += 'shape=ellipse;' +
  5115. getStrokeColor(p, a) +
  5116. getFillColor(p, a) +
  5117. getOpacity(p, a) +
  5118. getShadow(p) +
  5119. getStrokeWidth(p) +
  5120. getLabelStyle(p);
  5121. v.value = convertText(p.Text);
  5122. var item1 = new mxCell('', new mxGeometry(w * 0.17, h * 0.2, 13, 6), 'shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;whiteSpace=wrap;html=1;');
  5123. item1.vertex = true;
  5124. v.insert(item1);
  5125. item1.style += getStrokeColor(p, a) +
  5126. getFillColor(p, a) +
  5127. getOpacity(p, a) +
  5128. getStrokeWidth(p);
  5129. break;
  5130. case 'VSMProductionKanbanBatchBlock' :
  5131. v.style += 'strokeColor=none;fillColor=none;'
  5132. var st = 'shape=card;size=18;flipH=1;part=1;' +
  5133. getStrokeColor(p, a) +
  5134. getFillColor(p, a) +
  5135. getOpacity(p, a) +
  5136. getStrokeWidth(p);
  5137. var item1 = new mxCell('', new mxGeometry(w * 0.1, 0, w * 0.9, h * 0.8), 'shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;');
  5138. item1.vertex = true;
  5139. v.insert(item1);
  5140. item1.style += st;
  5141. var item2 = new mxCell('', new mxGeometry(w * 0.05, h * 0.1, w * 0.9, h * 0.8), 'shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;');
  5142. item2.vertex = true;
  5143. v.insert(item2);
  5144. item2.style += st;
  5145. var item3 = new mxCell('', new mxGeometry(0, h * 0.2, w * 0.9, h * 0.8), 'shape=mxgraph.lean_mapping.go_see_production_scheduling;flipH=1;part=1;whiteSpace=wrap;html=1;spacing=2;');
  5146. item3.vertex = true;
  5147. v.insert(item3);
  5148. item3.style += st +
  5149. getLabelStyle(p);
  5150. item3.value = convertText(p.Text);
  5151. break;
  5152. case 'VSMTimelineBlock' :
  5153. break;
  5154. case 'AWSRoundedRectangleContainerBlock2' :
  5155. v.style += 'strokeColor=none;fillColor=none;';
  5156. if (p.Spotfleet)
  5157. {
  5158. var item1 = new mxCell('', new mxGeometry(0, 0, w, h - 20), 'resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;');
  5159. item1.geometry.offset = new mxPoint(0, 20);
  5160. item1.geometry.relative = true;
  5161. item1.vertex = true;
  5162. v.insert(item1);
  5163. item1.style += getStrokeColor(p, a) +
  5164. getLabelStyle(p.Title) +
  5165. getStrokeStyle(p) +
  5166. getStrokeWidth(p);
  5167. item1.value = convertText(p.Title);
  5168. var item2 = new mxCell('', new mxGeometry(0, 0, 35, 40), 'strokeColor=none;shape=mxgraph.aws3.spot_instance;fillColor=#f58536;');
  5169. item2.geometry.relative = true;
  5170. item2.geometry.offset = new mxPoint(30, 0);
  5171. item2.vertex = true;
  5172. v.insert(item2);
  5173. }
  5174. else if (p.Beanstalk)
  5175. {
  5176. var item1 = new mxCell('', new mxGeometry(0, 0, w, h - 20), 'resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;');
  5177. item1.geometry.offset = new mxPoint(0, 20);
  5178. item1.geometry.relative = true;
  5179. item1.vertex = true;
  5180. v.insert(item1);
  5181. item1.style += getStrokeColor(p, a) +
  5182. getLabelStyle(p.Title) +
  5183. getStrokeStyle(p) +
  5184. getStrokeWidth(p);
  5185. item1.value = convertText(p.Title);
  5186. var item2 = new mxCell('', new mxGeometry(0, 0, 30, 40), 'strokeColor=none;shape=mxgraph.aws3.elastic_beanstalk;fillColor=#759C3E;');
  5187. item2.geometry.relative = true;
  5188. item2.geometry.offset = new mxPoint(30, 0);
  5189. item2.vertex = true;
  5190. v.insert(item2);
  5191. }
  5192. else if (p.EC2)
  5193. {
  5194. var item1 = new mxCell('', new mxGeometry(0, 0, w, h - 20), 'resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;');
  5195. item1.geometry.offset = new mxPoint(0, 20);
  5196. item1.geometry.relative = true;
  5197. item1.vertex = true;
  5198. v.insert(item1);
  5199. item1.style += getStrokeColor(p, a) +
  5200. getLabelStyle(p.Title) +
  5201. getStrokeStyle(p) +
  5202. getStrokeWidth(p);
  5203. item1.value = convertText(p.Title);
  5204. var item2 = new mxCell('', new mxGeometry(0, 0, 32, 40), 'strokeColor=none;shape=mxgraph.aws3.ec2;fillColor=#F58534;');
  5205. item2.geometry.relative = true;
  5206. item2.geometry.offset = new mxPoint(30, 0);
  5207. item2.vertex = true;
  5208. v.insert(item2);
  5209. }
  5210. else if (p.Subnet)
  5211. {
  5212. var item1 = new mxCell('', new mxGeometry(0, 0, w, h - 20), 'resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;');
  5213. item1.geometry.offset = new mxPoint(0, 20);
  5214. item1.geometry.relative = true;
  5215. item1.vertex = true;
  5216. v.insert(item1);
  5217. item1.style += getStrokeColor(p, a) +
  5218. getLabelStyle(p.Title) +
  5219. getStrokeStyle(p) +
  5220. getStrokeWidth(p);
  5221. item1.value = convertText(p.Title);
  5222. var item2 = new mxCell('', new mxGeometry(0, 0, 32, 40), 'strokeColor=none;shape=mxgraph.aws3.permissions;fillColor=#146EB4;');
  5223. item2.geometry.relative = true;
  5224. item2.geometry.offset = new mxPoint(30, 0);
  5225. item2.vertex = true;
  5226. v.insert(item2);
  5227. }
  5228. else if (p.VPC)
  5229. {
  5230. var item1 = new mxCell('', new mxGeometry(0, 0, w, h - 20), 'resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;');
  5231. item1.geometry.offset = new mxPoint(0, 20);
  5232. item1.geometry.relative = true;
  5233. item1.vertex = true;
  5234. v.insert(item1);
  5235. item1.style += getStrokeColor(p, a) +
  5236. getLabelStyle(p.Title) +
  5237. getStrokeStyle(p) +
  5238. getStrokeWidth(p);
  5239. item1.value = convertText(p.Title);
  5240. var item2 = new mxCell('', new mxGeometry(0, 0, 60, 40), 'strokeColor=none;shape=mxgraph.aws3.virtual_private_cloud;fillColor=#146EB4;');
  5241. item2.geometry.relative = true;
  5242. item2.geometry.offset = new mxPoint(30, 0);
  5243. item2.vertex = true;
  5244. v.insert(item2);
  5245. }
  5246. else if (p.AWS)
  5247. {
  5248. var item1 = new mxCell('', new mxGeometry(0, 0, w, h - 20), 'resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;');
  5249. item1.geometry.offset = new mxPoint(0, 20);
  5250. item1.geometry.relative = true;
  5251. item1.vertex = true;
  5252. v.insert(item1);
  5253. item1.style += getStrokeColor(p, a) +
  5254. getLabelStyle(p.Title) +
  5255. getStrokeStyle(p) +
  5256. getStrokeWidth(p);
  5257. item1.value = convertText(p.Title);
  5258. var item2 = new mxCell('', new mxGeometry(0, 0, 60, 40), 'strokeColor=none;shape=mxgraph.aws3.cloud;fillColor=#F58534;');
  5259. item2.geometry.relative = true;
  5260. item2.geometry.offset = new mxPoint(30, 0);
  5261. item2.vertex = true;
  5262. v.insert(item2);
  5263. }
  5264. else if (p.Corporate)
  5265. {
  5266. var item1 = new mxCell('', new mxGeometry(0, 0, w, h - 20), 'resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;');
  5267. item1.geometry.offset = new mxPoint(0, 20);
  5268. item1.geometry.relative = true;
  5269. item1.vertex = true;
  5270. v.insert(item1);
  5271. item1.style += getStrokeColor(p, a) +
  5272. getLabelStyle(p.Title) +
  5273. getStrokeStyle(p) +
  5274. getStrokeWidth(p);
  5275. item1.value = convertText(p.Title);
  5276. var item2 = new mxCell('', new mxGeometry(0, 0, 25, 40), 'strokeColor=none;shape=mxgraph.aws3.corporate_data_center;fillColor=#7D7C7C;');
  5277. item2.geometry.relative = true;
  5278. item2.geometry.offset = new mxPoint(30, 0);
  5279. item2.vertex = true;
  5280. v.insert(item2);
  5281. }
  5282. else
  5283. {
  5284. v.style = 'resizeWidth=1;resizeHeight=1;fillColor=none;align=center;verticalAlign=bottom;spacing=2;rounded=1;arcSize=10;' +
  5285. getStrokeColor(p, a) +
  5286. getLabelStyle(p.Title) +
  5287. getStrokeStyle(p) +
  5288. getStrokeWidth(p);
  5289. v.value = convertText(p.Title);
  5290. }
  5291. break;
  5292. case 'AWSElasticComputeCloudBlock2' :
  5293. v.style += 'strokeColor=none;shape=mxgraph.aws3.ec2;verticalLabelPosition=bottom;align=center;verticalAlign=top;' +
  5294. getLabelStyle(p.Title) +
  5295. getFillColor(p, a) +
  5296. getOpacity(p, a) +
  5297. getShadow(p);
  5298. v.value = convertText(p.Title);
  5299. break;
  5300. case 'AWSRoute53Block2' :
  5301. v.style += 'strokeColor=none;shape=mxgraph.aws3.route_53;verticalLabelPosition=bottom;align=center;verticalAlign=top;' +
  5302. getLabelStyle(p.Title) +
  5303. getFillColor(p, a) +
  5304. getOpacity(p, a) +
  5305. getShadow(p);
  5306. v.value = convertText(p.Title);
  5307. break;
  5308. case 'AWSRDBSBlock2' :
  5309. v.style += 'strokeColor=none;shape=mxgraph.aws3.rds;verticalLabelPosition=bottom;align=center;verticalAlign=top;' +
  5310. getLabelStyle(p.Title) +
  5311. getFillColor(p, a) +
  5312. getOpacity(p, a) +
  5313. getShadow(p);
  5314. v.value = convertText(p.Title);
  5315. break;
  5316. case 'NET_RingNetwork' :
  5317. v.style += 'strokeColor=none;fillColor=none;';
  5318. var cell = new mxCell('', new mxGeometry(w * 0.25, h * 0.25, w * 0.5, h * 0.5), 'html=1;shape=ellipse;perimeter=ellipsePerimeter;strokeColor=#29AAE1;strokeWidth=2;');
  5319. cell.vertex = true;
  5320. v.insert(cell);
  5321. var cells = [cell];
  5322. cell.style += getFillColor(p, a);
  5323. var edge = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;rounded=0;endArrow=none;dashed=0;html=1;strokeColor=#29AAE1;strokeWidth=2;');
  5324. edge.geometry.relative = true;
  5325. edge.edge = true;
  5326. addRouterEdge(w * 0.5, 0, edge, select, graph, cells, v, cell);
  5327. addRouterEdge(w * 0.855, h * 0.145, edge, select, graph, cells, v, cell);
  5328. addRouterEdge(w, h * 0.5, edge, select, graph, cells, v, cell);
  5329. addRouterEdge(w * 0.855, h * 0.855, edge, select, graph, cells, v, cell);
  5330. addRouterEdge(w * 0.5, h, edge, select, graph, cells, v, cell);
  5331. addRouterEdge(w * 0.145, h * 0.855, edge, select, graph, cells, v, cell);
  5332. addRouterEdge(0, h * 0.5, edge, select, graph, cells, v, cell);
  5333. addRouterEdge(w * 0.145, h * 0.145, edge, select, graph, cells, v, cell);
  5334. break;
  5335. case 'NET_Ethernet' :
  5336. v.style += 'strokeColor=none;fillColor=none;';
  5337. var cell = new mxCell('', new mxGeometry(0, h * 0.5 - 10, w, 20), 'shape=mxgraph.networks.bus;gradientColor=none;gradientDirection=north;fontColor=#ffffff;perimeter=backbonePerimeter;backboneSize=20;fillColor=#29AAE1;strokeColor=#29AAE1;');
  5338. cell.vertex = true;
  5339. v.insert(cell);
  5340. var cells = [cell];
  5341. var edge = new mxCell('', new mxGeometry(0, 0, 0, 0), 'strokeColor=#29AAE1;edgeStyle=none;rounded=0;endArrow=none;html=1;strokeWidth=2;');
  5342. edge.geometry.relative = true;
  5343. edge.edge = true;
  5344. var cells = [cell];
  5345. var stepX = w / p.NumTopNodes;
  5346. for (var i = 0; i < p.NumTopNodes; i++)
  5347. {
  5348. addRouterEdge(stepX * 0.5 + i * stepX, 0, edge, select, graph, cells, v, cell);
  5349. }
  5350. stepX = w / p.NumBottomNodes;
  5351. for (var i = 0; i < p.NumBottomNodes; i++)
  5352. {
  5353. addRouterEdge(stepX * 0.5 + i * stepX, h, edge, select, graph, cells, v, cell);
  5354. }
  5355. break;
  5356. case 'EE_OpAmp' :
  5357. v.style += 'shape=mxgraph.electrical.abstract.operational_amp_1;' +
  5358. getStrokeColor(p, a) +
  5359. getFillColor(p, a) +
  5360. getOpacity(p, a) +
  5361. getShadow(p) +
  5362. getStrokeWidth(p) +
  5363. getLabelStyle(p);
  5364. v.value = convertText(p.Title);
  5365. if (p.ToggleCharge)
  5366. {
  5367. v.style += 'flipV=1;';
  5368. }
  5369. break;
  5370. case 'EIMessageChannelBlock' :
  5371. case 'EIDatatypeChannelBlock' :
  5372. case 'EIInvalidMessageChannelBlock' :
  5373. case 'EIDeadLetterChannelBlock' :
  5374. case 'EIGuaranteedDeliveryBlock' :
  5375. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;' +
  5376. getStrokeColor(p, a) +
  5377. getFillColor(p, a) +
  5378. getOpacity(p, a) +
  5379. getShadow(p) +
  5380. getStrokeWidth(p) +
  5381. getStrokeStyle(p) +
  5382. getLabelStyle(p);
  5383. v.value = convertText(p.Text);
  5384. if (obj.Class == 'EIMessageChannelBlock')
  5385. {
  5386. var item1 = new mxCell('', new mxGeometry(0.5, 0.5, w * 0.9, 20), 'shape=mxgraph.eip.messageChannel;fillColor=#818181;part=1;');
  5387. item1.geometry.offset = new mxPoint( - w * 0.45, 0);
  5388. }
  5389. else if (obj.Class == 'EIDatatypeChannelBlock')
  5390. {
  5391. var item1 = new mxCell('', new mxGeometry(0.5, 0.5, w * 0.9, 20), 'shape=mxgraph.eip.dataChannel;fillColor=#818181;part=1;');
  5392. item1.geometry.offset = new mxPoint( - w * 0.45, 0);
  5393. }
  5394. else if (obj.Class == 'EIInvalidMessageChannelBlock')
  5395. {
  5396. var item1 = new mxCell('', new mxGeometry(0.5, 0.5, w * 0.9, 20), 'shape=mxgraph.eip.invalidMessageChannel;fillColor=#818181;part=1;');
  5397. item1.geometry.offset = new mxPoint( - w * 0.45, 0);
  5398. }
  5399. else if (obj.Class == 'EIDeadLetterChannelBlock')
  5400. {
  5401. var item1 = new mxCell('', new mxGeometry(0.5, 0.5, w * 0.9, 20), 'shape=mxgraph.eip.deadLetterChannel;fillColor=#818181;part=1;');
  5402. item1.geometry.offset = new mxPoint( - w * 0.45, 0);
  5403. }
  5404. else if (obj.Class == 'EIGuaranteedDeliveryBlock')
  5405. {
  5406. var item1 = new mxCell('', new mxGeometry(0.5, 0.5, 20, 27), 'shape=cylinder;fillColor=#818181;part=1;');
  5407. item1.geometry.offset = new mxPoint( -10, -7);
  5408. }
  5409. item1.geometry.relative = true;
  5410. item1.vertex = true;
  5411. v.insert(item1);
  5412. item1.style +=
  5413. getStrokeColor(p, a) +
  5414. getOpacity(p, a) +
  5415. getStrokeWidth(p);
  5416. var edge = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;');
  5417. edge.geometry.relative = true;
  5418. edge.edge = true;
  5419. addFloatingEdge(w * 0.15, h * 0.25, w * 0.85, h * 0.25, edge, select, graph, cells, v, cell);
  5420. break;
  5421. case 'EIChannelAdapterBlock' :
  5422. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;' +
  5423. getStrokeColor(p, a) +
  5424. getFillColor(p, a) +
  5425. getOpacity(p, a) +
  5426. getShadow(p) +
  5427. getStrokeWidth(p) +
  5428. getStrokeStyle(p) +
  5429. getLabelStyle(p);
  5430. v.value = convertText(p.Text);
  5431. var item1 = new mxCell('', new mxGeometry(0, h * 0.07, w * 0.21, h * 0.86), 'fillColor=#FFFF33;part=1;');
  5432. item1.vertex = true;
  5433. v.insert(item1);
  5434. item1.style +=
  5435. getStrokeColor(p, a) +
  5436. getOpacity(p, a) +
  5437. getStrokeWidth(p) +
  5438. getStrokeStyle(p);
  5439. var item2 = new mxCell('', new mxGeometry(w * 0.26, h * 0.09, w * 0.2, h * 0.82), 'shape=mxgraph.eip.channel_adapter;fillColor=#4CA3D9;part=1;');
  5440. item2.vertex = true;
  5441. v.insert(item2);
  5442. item2.style +=
  5443. getStrokeColor(p, a) +
  5444. getOpacity(p, a) +
  5445. getStrokeWidth(p) +
  5446. getStrokeStyle(p);
  5447. var item3 = new mxCell('', new mxGeometry(1, 0.5, w * 0.35, 20), 'shape=mxgraph.eip.messageChannel;fillColor=#818181;part=1;');
  5448. item3.geometry.relative = true;
  5449. item3.geometry.offset = new mxPoint( - w * 0.4, -10);
  5450. item3.vertex = true;
  5451. v.insert(item3);
  5452. item3.style +=
  5453. getStrokeColor(p, a) +
  5454. getOpacity(p, a) +
  5455. getStrokeWidth(p) +
  5456. getStrokeStyle(p);
  5457. edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=1;exitY=0.5;entryX=0;entryY=0.5;endArrow=none;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=2;');
  5458. edge1.geometry.relative = true;
  5459. edge1.edge = true;
  5460. item1.insertEdge(edge1, true);
  5461. item2.insertEdge(edge1, false);
  5462. edge1.style += getStrokeColor(p, a);
  5463. select.push(graph.addCell(edge1, null, null, null, null));
  5464. edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=1;exitY=0.5;entryX=0;entryY=0.5;endArrow=block;startArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=2;startFill=1;startSize=2;');
  5465. edge2.geometry.relative = true;
  5466. edge2.edge = true;
  5467. item2.insertEdge(edge2, true);
  5468. item3.insertEdge(edge2, false);
  5469. select.push(graph.addCell(edge2, null, null, null, null));
  5470. break;
  5471. case 'EIMessageBlock' :
  5472. case 'EICommandMessageBlock' :
  5473. case 'EIDocumentMessageBlock' :
  5474. case 'EIEventMessageBlock' :
  5475. v.style += 'strokeColor=none;fillColor=none;verticalLabelPosition=bottom;verticalAlign=top;' +
  5476. getLabelStyle(p);
  5477. v.value = convertText(p.Text);
  5478. var item1 = new mxCell('', new mxGeometry(0, 0, 17, 17), 'shape=ellipse;fillColor=#808080;part=1;');
  5479. item1.vertex = true;
  5480. v.insert(item1);
  5481. item1.style +=
  5482. getStrokeColor(p, a) +
  5483. getStrokeWidth(p);
  5484. var messagesNum = p.Messages;
  5485. var oneH = (h - 17) / messagesNum;
  5486. var item2 = new Array();
  5487. var edge = new Array();
  5488. for (var i = 0; i < messagesNum; i++)
  5489. {
  5490. var currY = oneH * (i + 1) - 3;
  5491. item2[i] = new mxCell('', new mxGeometry(w - 20, currY, 20, 20), 'part=1;');
  5492. item2[i].vertex = true;
  5493. v.insert(item2[i]);
  5494. item2[i].style +=
  5495. getStrokeColor(p, a) +
  5496. getFillColor(p, a) +
  5497. getOpacity(p, a) +
  5498. getShadow(p) +
  5499. getStrokeWidth(p) +
  5500. getStrokeStyle(p);
  5501. switch(obj.Class)
  5502. {
  5503. case 'EIMessageBlock' :
  5504. item2[i].value = convertText(p['message_' + (i + 1)]);
  5505. item2.style += getLabelStyle(p['message_' + (i + 1)]);
  5506. break;
  5507. case 'EICommandMessageBlock' :
  5508. item2[i].value = 'C';
  5509. item2[i].style += 'fontStyle=1;fontSize=10;';
  5510. break;
  5511. case 'EIDocumentMessageBlock' :
  5512. item2[i].value = 'D';
  5513. item2[i].style += 'fontStyle=1;fontSize=10;';
  5514. break;
  5515. case 'EIEventMessageBlock' :
  5516. item2[i].value = 'E';
  5517. item2[i].style += 'fontStyle=1;fontSize=10;';
  5518. break;
  5519. }
  5520. edge[i] = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;');
  5521. edge[i].geometry.relative = true;
  5522. edge[i].edge = true;
  5523. item1.insertEdge(edge[i], false);
  5524. item2[i].insertEdge(edge[i], true);
  5525. edge[i].style +=
  5526. getStrokeColor(p, a) +
  5527. getStrokeWidth(p);
  5528. var wp = new Array();
  5529. wp.push(new mxPoint(x + 8.5, y + currY + 10));
  5530. edge[i].geometry.points = wp;
  5531. select.push(graph.addCell(edge[i], null, null, null, null));
  5532. }
  5533. break;
  5534. case 'EIMessageEndpointBlock' :
  5535. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;' +
  5536. getStrokeColor(p, a) +
  5537. getFillColor(p, a) +
  5538. getOpacity(p, a) +
  5539. getShadow(p) +
  5540. getStrokeWidth(p) +
  5541. getStrokeStyle(p) +
  5542. getLabelStyle(p);
  5543. v.value = convertText(p.Text);
  5544. var item1 = new mxCell('', new mxGeometry(w * 0.45, h * 0.25, w * 0.3, h * 0.5), 'part=1;');
  5545. item1.vertex = true;
  5546. v.insert(item1);
  5547. item1.style +=
  5548. getStrokeColor(p, a) +
  5549. getOpacity(p, a) +
  5550. getStrokeWidth(p);
  5551. var edge = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;');
  5552. edge.geometry.relative = true;
  5553. edge.edge = true;
  5554. addFloatingEdge(0, h * 0.5, w * 0.4, h * 0.5, edge, select, graph, cells, v, cell);
  5555. break;
  5556. case 'EIPublishSubscribeChannelBlock' :
  5557. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;' +
  5558. getStrokeColor(p, a) +
  5559. getFillColor(p, a) +
  5560. getOpacity(p, a) +
  5561. getShadow(p) +
  5562. getStrokeWidth(p) +
  5563. getStrokeStyle(p) +
  5564. getLabelStyle(p);
  5565. v.value = convertText(p.Text);
  5566. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;');
  5567. edge1.geometry.relative = true;
  5568. edge1.edge = true;
  5569. addFloatingEdge(w * 0.05, h * 0.5, w * 0.85, h * 0.5, edge1, select, graph, cells, v, cell);
  5570. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;');
  5571. edge2.geometry.relative = true;
  5572. edge2.edge = true;
  5573. addFloatingEdge(w * 0.05, h * 0.5, w * 0.85, h * 0.15, edge2, select, graph, cells, v, cell);
  5574. var edge3 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;');
  5575. edge3.geometry.relative = true;
  5576. edge3.edge = true;
  5577. addFloatingEdge(w * 0.05, h * 0.5, w * 0.85, h * 0.85, edge3, select, graph, cells, v, cell);
  5578. break;
  5579. case 'EIMessageBusBlock' :
  5580. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;' +
  5581. getStrokeColor(p, a) +
  5582. getFillColor(p, a) +
  5583. getOpacity(p, a) +
  5584. getShadow(p) +
  5585. getStrokeWidth(p) +
  5586. getStrokeStyle(p) +
  5587. getLabelStyle(p);
  5588. v.value = convertText(p.Text);
  5589. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;');
  5590. edge1.geometry.relative = true;
  5591. edge1.edge = true;
  5592. edge1.style += getStrokeColor(p, a);
  5593. addFloatingEdge(w * 0.05, h * 0.5, w * 0.95, h * 0.5, edge1, select, graph, cells, v, cell);
  5594. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;');
  5595. edge2.geometry.relative = true;
  5596. edge2.edge = true;
  5597. edge2.style += getStrokeColor(p, a);
  5598. addFloatingEdge(w * 0.3, h * 0.1, w * 0.3, h * 0.5, edge2, select, graph, cells, v, cell);
  5599. var edge3 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;');
  5600. edge3.geometry.relative = true;
  5601. edge3.edge = true;
  5602. edge3.style += getStrokeColor(p, a);
  5603. addFloatingEdge(w * 0.7, h * 0.1, w * 0.7, h * 0.5, edge3, select, graph, cells, v, cell);
  5604. var edge4 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;dashed=0;html=1;strokeWidth=1;endFill=1;endSize=4;startArrow=block;startFill=1;startSize=4;');
  5605. edge4.geometry.relative = true;
  5606. edge4.edge = true;
  5607. edge4.style += getStrokeColor(p, a);
  5608. addFloatingEdge(w * 0.5, h * 0.5, w * 0.5, h * 0.9, edge4, select, graph, cells, v, cell);
  5609. break;
  5610. case 'EIRequestReplyBlock' :
  5611. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;' +
  5612. getStrokeColor(p, a) +
  5613. getFillColor(p, a) +
  5614. getOpacity(p, a) +
  5615. getShadow(p) +
  5616. getStrokeWidth(p) +
  5617. getStrokeStyle(p) +
  5618. getLabelStyle(p);
  5619. v.value = convertText(p.Text);
  5620. var item1 = new mxCell('', new mxGeometry(w * 0.2, h * 0.21, w * 0.16, h * 0.24), 'part=1;');
  5621. item1.vertex = true;
  5622. v.insert(item1);
  5623. item1.style +=
  5624. getStrokeColor(p, a) +
  5625. getOpacity(p, a) +
  5626. getStrokeWidth(p);
  5627. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;');
  5628. edge1.geometry.relative = true;
  5629. edge1.edge = true;
  5630. addFloatingEdge(w * 0.45, h * 0.33, w * 0.8, h * 0.33, edge1, select, graph, cells, v, cell);
  5631. var item2 = new mxCell('', new mxGeometry(w * 0.64, h * 0.55, w * 0.16, h * 0.24), 'part=1;');
  5632. item2.vertex = true;
  5633. v.insert(item2);
  5634. item2.style +=
  5635. getStrokeColor(p, a) +
  5636. getOpacity(p, a) +
  5637. getStrokeWidth(p);
  5638. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=none;rounded=0;endArrow=block;dashed=0;html=1;strokeColor=#818181;strokeWidth=1;endFill=1;endSize=6;');
  5639. edge2.geometry.relative = true;
  5640. edge2.edge = true;
  5641. addFloatingEdge(w * 0.55, h * 0.67, w * 0.2, h * 0.67, edge2, select, graph, cells, v, cell);
  5642. break;
  5643. case 'EIReturnAddressBlock' :
  5644. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;' +
  5645. getStrokeColor(p, a) +
  5646. getFillColor(p, a) +
  5647. getOpacity(p, a) +
  5648. getShadow(p) +
  5649. getStrokeWidth(p) +
  5650. getStrokeStyle(p) +
  5651. getLabelStyle(p);
  5652. v.value = convertText(p.Text);
  5653. var item1 = new mxCell('', new mxGeometry(w * 0.1, h * 0.15, w * 0.8, h * 0.7), 'part=1;shape=mxgraph.eip.retAddr;fillColor=#FFE040;');
  5654. item1.vertex = true;
  5655. v.insert(item1);
  5656. item1.style +=
  5657. getStrokeColor(p, a) +
  5658. getOpacity(p, a) +
  5659. getStrokeWidth(p);
  5660. break;
  5661. case 'EICorrelationIDBlock' :
  5662. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;' +
  5663. getStrokeColor(p, a) +
  5664. getFillColor(p, a) +
  5665. getOpacity(p, a) +
  5666. getShadow(p) +
  5667. getStrokeWidth(p) +
  5668. getStrokeStyle(p) +
  5669. getLabelStyle(p);
  5670. v.value = convertText(p.Text);
  5671. var item1 = new mxCell('', new mxGeometry(w * 0.04, h * 0.06, w * 0.18, h * 0.28), 'shape=ellipse;fillColor=#808080;part=1;');
  5672. item1.vertex = true;
  5673. v.insert(item1);
  5674. item1.style +=
  5675. getStrokeColor(p, a) +
  5676. getStrokeWidth(p);
  5677. item2 = new mxCell('', new mxGeometry(w * 0.2, h * 0.56, w * 0.2, h * 0.32), 'part=1;');
  5678. item2.vertex = true;
  5679. v.insert(item2);
  5680. item2.style +=
  5681. getStrokeColor(p, a) +
  5682. getOpacity(p, a) +
  5683. getStrokeWidth(p) +
  5684. getStrokeStyle(p);
  5685. item2.value = 'A';
  5686. item2.style += 'fontStyle=1;fontSize=10;';
  5687. edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;part=1;');
  5688. edge1.geometry.relative = true;
  5689. edge1.edge = true;
  5690. item1.insertEdge(edge1, false);
  5691. item2.insertEdge(edge1, true);
  5692. edge1.style +=
  5693. getStrokeColor(p, a) +
  5694. getStrokeWidth(p);
  5695. var wp = new Array();
  5696. wp.push(new mxPoint(x + w * 0.13, y + h * 0.72));
  5697. edge1.geometry.points = wp;
  5698. select.push(graph.addCell(edge1, null, null, null, null));
  5699. var item3 = new mxCell('', new mxGeometry(w * 0.6, h * 0.06, w * 0.18, h * 0.28), 'shape=ellipse;fillColor=#808080;part=1;');
  5700. item3.vertex = true;
  5701. v.insert(item3);
  5702. item3.style +=
  5703. getStrokeColor(p, a) +
  5704. getStrokeWidth(p);
  5705. item4 = new mxCell('', new mxGeometry(w * 0.76, h * 0.56, w * 0.2, h * 0.32), 'part=1;');
  5706. item4.vertex = true;
  5707. v.insert(item4);
  5708. item4.style +=
  5709. getStrokeColor(p, a) +
  5710. getOpacity(p, a) +
  5711. getStrokeWidth(p) +
  5712. getStrokeStyle(p);
  5713. item4.value = 'B';
  5714. item4.style += 'fontStyle=1;fontSize=10;';
  5715. edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;part=1;');
  5716. edge2.geometry.relative = true;
  5717. edge2.edge = true;
  5718. item3.insertEdge(edge2, false);
  5719. item4.insertEdge(edge2, true);
  5720. edge2.style +=
  5721. getStrokeColor(p, a) +
  5722. getStrokeWidth(p);
  5723. var wp2 = new Array();
  5724. wp2.push(new mxPoint(x + w * 0.69, y + h * 0.72));
  5725. edge2.geometry.points = wp2;
  5726. select.push(graph.addCell(edge2, null, null, null, null));
  5727. edge3 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;endArrow=block;endFill=1;endSize=6;part=1;');
  5728. edge3.geometry.relative = true;
  5729. edge3.edge = true;
  5730. item1.insertEdge(edge3, false);
  5731. item3.insertEdge(edge3, true);
  5732. edge3.style +=
  5733. getStrokeColor(p, a) +
  5734. getStrokeWidth(p);
  5735. select.push(graph.addCell(edge3, null, null, null, null));
  5736. break;
  5737. case 'EIMessageSequenceBlock' :
  5738. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;' +
  5739. getStrokeColor(p, a) +
  5740. getFillColor(p, a) +
  5741. getOpacity(p, a) +
  5742. getShadow(p) +
  5743. getStrokeWidth(p) +
  5744. getStrokeStyle(p) +
  5745. getLabelStyle(p);
  5746. v.value = convertText(p.Text);
  5747. var item1 = new mxCell('1', new mxGeometry(w * 0.2, h * 0.4, w * 0.1, h * 0.19), 'fontStyle=1;fontSize=10;part=1;');
  5748. item1.vertex = true;
  5749. v.insert(item1);
  5750. item1.style +=
  5751. getStrokeColor(p, a) +
  5752. getStrokeWidth(p);
  5753. var item2 = new mxCell('2', new mxGeometry(w * 0.45, h * 0.4, w * 0.1, h * 0.19), 'fontStyle=1;fontSize=10;part=1;');
  5754. item2.vertex = true;
  5755. v.insert(item2);
  5756. item2.style +=
  5757. getStrokeColor(p, a) +
  5758. getStrokeWidth(p);
  5759. var item3 = new mxCell('3', new mxGeometry(w * 0.7, h * 0.4, w * 0.1, h * 0.19), 'fontStyle=1;fontSize=10;part=1;');
  5760. item3.vertex = true;
  5761. v.insert(item3);
  5762. item3.style +=
  5763. getStrokeColor(p, a) +
  5764. getStrokeWidth(p);
  5765. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'curved=1;endArrow=block;html=1;endSize=3;part=1;');
  5766. item1.insertEdge(edge1, false);
  5767. item2.insertEdge(edge1, true);
  5768. edge1.geometry.points = [new mxPoint(x + w * 0.375, y + h * 0.15)];
  5769. edge1.geometry.relative = true;
  5770. edge1.edge = true;
  5771. edge1.style +=
  5772. getStrokeColor(p, a) +
  5773. getStrokeWidth(p);
  5774. select.push(graph.addCell(edge1, null, null, null, null));
  5775. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'curved=1;endArrow=block;html=1;endSize=3;part=1;');
  5776. item2.insertEdge(edge2, false);
  5777. item3.insertEdge(edge2, true);
  5778. edge2.geometry.points = [new mxPoint(x + w * 0.675, y + h * 0.15)];
  5779. edge2.geometry.relative = true;
  5780. edge2.edge = true;
  5781. edge2.style +=
  5782. getStrokeColor(p, a) +
  5783. getStrokeWidth(p);
  5784. select.push(graph.addCell(edge2, null, null, null, null));
  5785. break;
  5786. case 'EIMessageExpirationBlock' :
  5787. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;' +
  5788. getStrokeColor(p, a) +
  5789. getFillColor(p, a) +
  5790. getOpacity(p, a) +
  5791. getShadow(p) +
  5792. getStrokeWidth(p) +
  5793. getStrokeStyle(p) +
  5794. getLabelStyle(p);
  5795. v.value = convertText(p.Text);
  5796. var item1 = new mxCell('', new mxGeometry(w * 0.3, h * 0.2, w * 0.4, h * 0.6), 'shape=mxgraph.ios7.icons.clock;flipH=1;part=1;');
  5797. item1.vertex = true;
  5798. v.insert(item1);
  5799. item1.style +=
  5800. getStrokeColor(p, a) +
  5801. getStrokeWidth(p);
  5802. break;
  5803. case 'EIMessageBrokerBlock' :
  5804. v.style += 'strokeColor=none;fillColor=none;verticalLabelPosition=bottom;verticalAlign=top;' +
  5805. getFontSize(p) +
  5806. getFontColor(p) +
  5807. getFontStyle(p) +
  5808. getTextAlignment(p);
  5809. v.value = convertText(p.Text);
  5810. var item1 = new mxCell('', new mxGeometry(w * 0.38, h * 0.42, w * 0.24, h * 0.16), 'part=1;fillColor=#aefe7d;');
  5811. item1.vertex = true;
  5812. v.insert(item1);
  5813. item1.style +=
  5814. getStrokeColor(p, a) +
  5815. getStrokeWidth(p);
  5816. var item2 = new mxCell('', new mxGeometry(w * 0.38, 0, w * 0.24, h * 0.16), 'part=1;');
  5817. item2.vertex = true;
  5818. v.insert(item2);
  5819. item2.style +=
  5820. getFillColor(p, a) +
  5821. getStrokeColor(p, a) +
  5822. getStrokeWidth(p);
  5823. var item3 = new mxCell('', new mxGeometry(w * 0.76, h * 0.23, w * 0.24, h * 0.16), 'part=1;');
  5824. item3.vertex = true;
  5825. v.insert(item3);
  5826. item3.style = item2.style;
  5827. var item4 = new mxCell('', new mxGeometry(w * 0.76, h * 0.61, w * 0.24, h * 0.16), 'part=1;');
  5828. item4.vertex = true;
  5829. v.insert(item4);
  5830. item4.style = item2.style;
  5831. var item5 = new mxCell('', new mxGeometry(w * 0.38, h * 0.84, w * 0.24, h * 0.16), 'part=1;');
  5832. item5.vertex = true;
  5833. v.insert(item5);
  5834. item5.style = item2.style;
  5835. var item6 = new mxCell('', new mxGeometry(0, h * 0.61, w * 0.24, h * 0.16), 'part=1;');
  5836. item6.vertex = true;
  5837. v.insert(item6);
  5838. item6.style = item2.style;
  5839. var item7 = new mxCell('', new mxGeometry(0, h * 0.23, w * 0.24, h * 0.16), 'part=1;');
  5840. item7.vertex = true;
  5841. v.insert(item7);
  5842. item7.style = item2.style;
  5843. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;part=1;');
  5844. item1.insertEdge(edge1, false);
  5845. item2.insertEdge(edge1, true);
  5846. edge1.edge = true;
  5847. edge1.style +=
  5848. getStrokeColor(p, a) +
  5849. getStrokeWidth(p);
  5850. select.push(graph.addCell(edge1, null, null, null, null));
  5851. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;part=1;');
  5852. item1.insertEdge(edge2, false);
  5853. item3.insertEdge(edge2, true);
  5854. edge2.edge = true;
  5855. edge2.style +=
  5856. getStrokeColor(p, a) +
  5857. getStrokeWidth(p);
  5858. select.push(graph.addCell(edge2, null, null, null, null));
  5859. var edge3 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;part=1;');
  5860. item1.insertEdge(edge3, false);
  5861. item4.insertEdge(edge3, true);
  5862. edge3.edge = true;
  5863. edge3.style +=
  5864. getStrokeColor(p, a) +
  5865. getStrokeWidth(p);
  5866. select.push(graph.addCell(edge3, null, null, null, null));
  5867. var edge4 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;part=1;');
  5868. item1.insertEdge(edge4, false);
  5869. item5.insertEdge(edge4, true);
  5870. edge4.edge = true;
  5871. edge4.style +=
  5872. getStrokeColor(p, a) +
  5873. getStrokeWidth(p);
  5874. select.push(graph.addCell(edge4, null, null, null, null));
  5875. var edge5 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;part=1;');
  5876. item1.insertEdge(edge5, false);
  5877. item6.insertEdge(edge5, true);
  5878. edge5.edge = true;
  5879. edge5.style +=
  5880. getStrokeColor(p, a) +
  5881. getStrokeWidth(p);
  5882. select.push(graph.addCell(edge5, null, null, null, null));
  5883. var edge6 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'endArrow=none;part=1;');
  5884. item1.insertEdge(edge6, false);
  5885. item7.insertEdge(edge6, true);
  5886. edge6.edge = true;
  5887. edge6.style +=
  5888. getStrokeColor(p, a) +
  5889. getStrokeWidth(p);
  5890. select.push(graph.addCell(edge6, null, null, null, null));
  5891. break;
  5892. case 'EIDurableSubscriberBlock' :
  5893. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;' +
  5894. getStrokeColor(p, a) +
  5895. getFillColor(p, a) +
  5896. getOpacity(p, a) +
  5897. getShadow(p) +
  5898. getStrokeWidth(p) +
  5899. getStrokeStyle(p) +
  5900. getLabelStyle(p);
  5901. v.value = convertText(p.Text);
  5902. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;endFill=1;endSize=6;');
  5903. edge1.geometry.relative = true;
  5904. edge1.edge = true;
  5905. addFloatingEdge(w * 0.05, h * 0.5, w * 0.6, h * 0.25, edge1, select, graph, cells, v, cell);
  5906. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=elbowEdgeStyle;rounded=0;endArrow=block;endFill=1;endSize=6;');
  5907. edge2.geometry.relative = true;
  5908. edge2.edge = true;
  5909. addFloatingEdge(w * 0.05, h * 0.5, w * 0.6, h * 0.75, edge2, select, graph, cells, v, cell);
  5910. var item1 = new mxCell('', new mxGeometry(w * 0.7, h * 0.1, w * 0.15, h * 0.32), 'shape=mxgraph.eip.durable_subscriber;part=1;fillColor=#818181;');
  5911. item1.vertex = true;
  5912. v.insert(item1);
  5913. item1.style +=
  5914. getStrokeColor(p, a) +
  5915. getStrokeWidth(p);
  5916. break;
  5917. case 'EIControlBusBlock' :
  5918. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;' +
  5919. getStrokeColor(p, a) +
  5920. getFillColor(p, a) +
  5921. getOpacity(p, a) +
  5922. getShadow(p) +
  5923. getStrokeWidth(p) +
  5924. getStrokeStyle(p) +
  5925. getLabelStyle(p);
  5926. v.value = convertText(p.Text);
  5927. var item1 = new mxCell('', new mxGeometry(w * 0.25, h * 0.25, w * 0.5, h * 0.5), 'shape=mxgraph.eip.control_bus;part=1;');
  5928. item1.vertex = true;
  5929. v.insert(item1);
  5930. item1.style +=
  5931. getStrokeColor(p, a) +
  5932. getStrokeWidth(p);
  5933. break;
  5934. case 'EIMessageHistoryBlock' :
  5935. v.style += 'strokeColor=none;fillColor=none;verticalLabelPosition=bottom;verticalAlign=top;' +
  5936. getLabelStyle(p);
  5937. v.value = convertText(p.Text);
  5938. var item1 = new mxCell('', new mxGeometry(0, 0, 17, 17), 'shape=ellipse;fillColor=#808080;part=1;');
  5939. item1.vertex = true;
  5940. v.insert(item1);
  5941. item1.style +=
  5942. getStrokeColor(p, a) +
  5943. getStrokeWidth(p);
  5944. var item3 = new mxCell('', new mxGeometry(w - 45, 30, 30, 20), 'shape=mxgraph.mockup.misc.mail2;fillColor=#FFE040;part=1;');
  5945. item3.vertex = true;
  5946. v.insert(item3);
  5947. item3.style +=
  5948. getStrokeColor(p, a) +
  5949. getStrokeWidth(p);
  5950. edge3 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;');
  5951. edge3.geometry.relative = true;
  5952. edge3.edge = true;
  5953. item1.insertEdge(edge3, false);
  5954. item3.insertEdge(edge3, true);
  5955. edge3.style +=
  5956. getStrokeColor(p, a) +
  5957. getStrokeWidth(p);
  5958. edge3.geometry.points = [new mxPoint(x + 8.5, y + 40)];
  5959. select.push(graph.addCell(edge3, null, null, null, null));
  5960. var item4 = new mxCell('', new mxGeometry(w - 45, h - 20, 20, 20), 'part=1;');
  5961. item4.vertex = true;
  5962. v.insert(item4);
  5963. item4.value = convertText(p.message_0);
  5964. item4.style += getLabelStyle(p.message_0);
  5965. item4.style +=
  5966. getStrokeColor(p, a) +
  5967. getFillColor(p, a) +
  5968. getOpacity(p, a) +
  5969. getShadow(p) +
  5970. getStrokeWidth(p) +
  5971. getStrokeStyle(p);
  5972. edge4 = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;');
  5973. edge4.geometry.relative = true;
  5974. edge4.edge = true;
  5975. item1.insertEdge(edge4, false);
  5976. item4.insertEdge(edge4, true);
  5977. edge4.style +=
  5978. getStrokeColor(p, a) +
  5979. getStrokeWidth(p);
  5980. edge4.geometry.points = [new mxPoint(x + 8.5, y + h - 10)];
  5981. select.push(graph.addCell(edge4, null, null, null, null));
  5982. var messagesNum = p.HistoryMessages;
  5983. var oneH = (h - 75) / messagesNum;
  5984. var item2 = new Array();
  5985. var edge = new Array();
  5986. for (var i = 0; i < messagesNum; i++)
  5987. {
  5988. var currY = oneH * (i + 1) + 30;
  5989. item2[i] = new mxCell('', new mxGeometry(w - 20, currY, 20, 20), 'part=1;');
  5990. item2[i].vertex = true;
  5991. item2[i].value = convertText(p['message_' + (i + 1)]);
  5992. item2.style += getLabelStyle(p['message_' + (i + 1)]);
  5993. v.insert(item2[i]);
  5994. item2[i].style +=
  5995. getStrokeColor(p, a) +
  5996. getFillColor(p, a) +
  5997. getOpacity(p, a) +
  5998. getShadow(p) +
  5999. getStrokeWidth(p) +
  6000. getStrokeStyle(p);
  6001. edge[i] = new mxCell('', new mxGeometry(0, 0, 0, 0), 'edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0;exitY=0.5;endArrow=none;dashed=0;html=1;');
  6002. edge[i].geometry.relative = true;
  6003. edge[i].edge = true;
  6004. item3.insertEdge(edge[i], false);
  6005. item2[i].insertEdge(edge[i], true);
  6006. edge[i].style +=
  6007. getStrokeColor(p, a) +
  6008. getStrokeWidth(p);
  6009. var wp = new Array();
  6010. wp.push(new mxPoint(x + w - 30, y + currY + 10));
  6011. edge[i].geometry.points = wp;
  6012. select.push(graph.addCell(edge[i], null, null, null, null));
  6013. }
  6014. break;
  6015. case 'Equation' :
  6016. break;
  6017. case 'fpDoor' :
  6018. v.style += 'shape=mxgraph.floorplan.doorRight;' +
  6019. getStrokeColor(p, a) +
  6020. getOpacity(p, a) +
  6021. getShadow(p) +
  6022. getStrokeWidth(p) +
  6023. getRotation(p, a, v)
  6024. getStrokeStyle(p);
  6025. if (p.DoorAngle < 0)
  6026. {
  6027. v.style += 'flipV=1;'
  6028. }
  6029. break;
  6030. case 'fpDoubleDoor' :
  6031. v.style += 'shape=mxgraph.floorplan.doorDouble;' +
  6032. getStrokeColor(p, a) +
  6033. getOpacity(p, a) +
  6034. getShadow(p) +
  6035. getStrokeWidth(p) +
  6036. getRotation(p, a, v) +
  6037. getStrokeStyle(p);
  6038. if (p.DoorAngle > 0)
  6039. {
  6040. v.style += 'flipV=1;'
  6041. }
  6042. break;
  6043. case 'fpRestroomLights' :
  6044. v.style += 'strokeColor=none;fillColor=none;' +
  6045. getRotation(p, a, v);
  6046. var item1 = new mxCell('', new mxGeometry(0, 0, w, h * 0.25), 'part=1;');
  6047. item1.vertex = true;
  6048. v.insert(item1);
  6049. item1.style +=
  6050. getStrokeColor(p, a) +
  6051. getFillColor(p, a) +
  6052. getStrokeWidth(p) +
  6053. getOpacity(p, a) +
  6054. getShadow(p) +
  6055. getStrokeStyle(p);
  6056. var item2 = new Array();
  6057. var lightOffset = w * 0.02;
  6058. var lightW = (w - lightOffset * 2) / p.LightCount;
  6059. var trueW = lightW * 0.8;
  6060. for (var i = 0; i < p.LightCount; i++)
  6061. {
  6062. item2[i] = new mxCell('', new mxGeometry(lightOffset + lightW * i + (lightW - trueW) / 2, h * 0.25, trueW, h * 0.75), 'part=1;shape=ellipse;');
  6063. item2[i].vertex = true;
  6064. v.insert(item2[i]);
  6065. item2[i].style +=
  6066. getStrokeColor(p, a) +
  6067. getFillColor(p, a) +
  6068. getStrokeWidth(p) +
  6069. getOpacity(p, a) +
  6070. getShadow(p) +
  6071. getStrokeStyle(p);
  6072. }
  6073. break;
  6074. case 'fpRestroomSinks' :
  6075. v.style += 'strokeColor=none;fillColor=none;' +
  6076. getRotation(p, a, v);
  6077. var item1 = new Array();
  6078. var sinkW = w / p.SinkCount;
  6079. for (var i = 0; i < p.SinkCount; i++)
  6080. {
  6081. item1[i] = new mxCell('', new mxGeometry(sinkW * i, 0, sinkW, h), 'part=1;shape=mxgraph.floorplan.sink_2;');
  6082. item1[i].vertex = true;
  6083. v.insert(item1[i]);
  6084. item1[i].style +=
  6085. getStrokeColor(p, a) +
  6086. getFillColor(p, a) +
  6087. getStrokeWidth(p) +
  6088. getOpacity(p, a) +
  6089. getShadow(p) +
  6090. getStrokeStyle(p);
  6091. }
  6092. break;
  6093. case 'fpRestroomStalls' :
  6094. v.style += 'strokeColor=none;fillColor=none;';
  6095. var wallW = w * 0.1 / p.StallCount;
  6096. var item1 = new mxCell('', new mxGeometry(0, 0, wallW, h), 'fillColor=#000000;part=1;');
  6097. item1.vertex = true;
  6098. v.insert(item1);
  6099. item1.style +=
  6100. getStrokeColor(p, a) +
  6101. getStrokeWidth(p);
  6102. var stallW = (w - wallW) / p.StallCount;
  6103. var wall = new Array();
  6104. var toilet = new Array();
  6105. var door = new Array();
  6106. var paper = new Array();
  6107. var fc = getStrokeColor(p, a);
  6108. if (fc == '')
  6109. {
  6110. fc = '#000000;'
  6111. }
  6112. else
  6113. {
  6114. fc = fc.replace('stokreColor=', '');
  6115. }
  6116. var wallStyle = 'part=1;fillColor=' + fc +
  6117. getStrokeColor(p, a) +
  6118. getStrokeWidth(p);
  6119. var otherStyle =
  6120. getFillColor(p, a) +
  6121. getStrokeColor(p, a) +
  6122. getStrokeWidth(p);
  6123. for (var i = 0; i < p.StallCount; i++)
  6124. {
  6125. wall[i] = new mxCell('', new mxGeometry((i + 1) * stallW, 0, wallW, h), wallStyle);
  6126. wall[i].vertex = true;
  6127. v.insert(wall[i]);
  6128. door[i] = new mxCell('', new mxGeometry(wallW + i * stallW + (stallW - wallW) * 0.05, h - (stallW - wallW) * 0.92, (stallW - wallW) * 0.9, (stallW - wallW) * 0.92), 'shape=mxgraph.floorplan.doorRight;flipV=1;part=1;');
  6129. door[i].vertex = true;
  6130. v.insert(door[i]);
  6131. door[i].style += otherStyle;
  6132. toilet[i] = new mxCell('', new mxGeometry(wallW + i * stallW + (stallW - wallW) * 0.2, 0, (stallW - wallW) * 0.6, (stallW - wallW) * 0.8), 'shape=mxgraph.floorplan.toilet;part=1;');
  6133. toilet[i].vertex = true;
  6134. v.insert(toilet[i]);
  6135. toilet[i].style += otherStyle;
  6136. paper[i] = new mxCell('', new mxGeometry(wallW + i * stallW, h * 0.42, (stallW - wallW) * 0.15, (stallW - wallW) * 0.12), 'part=1;');
  6137. paper[i].vertex = true;
  6138. v.insert(paper[i]);
  6139. paper[i].style += otherStyle;
  6140. }
  6141. break;
  6142. case 'PEOneToMany' :
  6143. v.style += 'strokeColor=none;fillColor=none;';
  6144. var edgeStyle = 'edgeStyle=none;endArrow=none;part=1;' +
  6145. getStrokeColor(p, a) +
  6146. getStrokeWidth(p) +
  6147. getOpacity(p, a) +
  6148. getShadow(p) +
  6149. getStrokeStyle(p);
  6150. var fc = getStrokeColor(p, a);
  6151. if (fc == '')
  6152. {
  6153. fc = '#000000;'
  6154. }
  6155. else
  6156. {
  6157. fc = fc.replace('stokreColor=', '');
  6158. }
  6159. var endStyle = 'shape=triangle;part=1;fillColor=' + fc +
  6160. getStrokeColor(p, a) +
  6161. getStrokeWidth(p) +
  6162. getOpacity(p, a) +
  6163. getShadow(p) +
  6164. getStrokeStyle(p);
  6165. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), edgeStyle);
  6166. edge1.geometry.relative = true;
  6167. edge1.edge = true;
  6168. addFloatingEdge(0, h * 0.5, w * 0.65, h * 0.5, edge1, select, graph, cells, v, cell);
  6169. var itemH = h / p.numLines;
  6170. var edge2 = new Array();
  6171. var endArrow = new Array();
  6172. for (var i = 0; i < p.numLines; i++)
  6173. {
  6174. edge2[i] = new mxCell('', new mxGeometry(0, 0, 0, 0), edgeStyle);
  6175. edge2[i].geometry.relative = true;
  6176. edge2[i].edge = true;
  6177. addFloatingEdge(w * 0.65, h * 0.5, w * 0.96, (i + 0.5) * itemH, edge2[i], select, graph, cells, v, cell);
  6178. endArrow[i] = new mxCell('', new mxGeometry(w * 0.95, (i + 0.2) * itemH, w * 0.05, itemH * 0.6), endStyle);
  6179. endArrow[i].vertex = true;
  6180. v.insert(endArrow[i]);
  6181. }
  6182. break;
  6183. case 'PEMultilines' :
  6184. v.style += 'strokeColor=none;fillColor=none;';
  6185. var edgeStyle = 'edgeStyle=none;endArrow=none;part=1;' +
  6186. getStrokeColor(p, a) +
  6187. getStrokeWidth(p) +
  6188. getOpacity(p, a) +
  6189. getShadow(p) +
  6190. getStrokeStyle(p);
  6191. var fc = getStrokeColor(p, a);
  6192. if (fc == '')
  6193. {
  6194. fc = '#000000;'
  6195. }
  6196. else
  6197. {
  6198. fc = fc.replace('stokreColor=', '');
  6199. }
  6200. var endStyle = 'shape=triangle;part=1;fillColor=' + fc +
  6201. getStrokeColor(p, a) +
  6202. getStrokeWidth(p) +
  6203. getOpacity(p, a) +
  6204. getShadow(p) +
  6205. getStrokeStyle(p);
  6206. var itemH = h / p.numLines;
  6207. var edge2 = new Array();
  6208. var endArrow = new Array();
  6209. for (var i = 0; i < p.numLines; i++)
  6210. {
  6211. edge2[i] = new mxCell('', new mxGeometry(0, 0, 0, 0), edgeStyle);
  6212. edge2[i].geometry.relative = true;
  6213. edge2[i].edge = true;
  6214. addFloatingEdge(0, (i + 0.5) * itemH, w * 0.96, (i + 0.5) * itemH, edge2[i], select, graph, cells, v, cell);
  6215. endArrow[i] = new mxCell('', new mxGeometry(w * 0.95, (i + 0.2) * itemH, w * 0.05, itemH * 0.6), endStyle);
  6216. endArrow[i].vertex = true;
  6217. v.insert(endArrow[i]);
  6218. }
  6219. break;
  6220. case 'PEVesselBlock' :
  6221. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;' +
  6222. getStrokeColor(p, a) +
  6223. getFillColor(p,a) +
  6224. getStrokeWidth(p) +
  6225. getOpacity(p, a) +
  6226. getShadow(p) +
  6227. getStrokeStyle(p) +
  6228. getLabelStyle(p);
  6229. v.value = convertText(p.Text);
  6230. switch (p.vesselType)
  6231. {
  6232. case 1 :
  6233. v.style += 'shape=mxgraph.pid.vessels.pressurized_vessel;';
  6234. break;
  6235. case 2 :
  6236. v.style += 'shape=hexagon;size=0.10;direction=south;';
  6237. break;
  6238. }
  6239. break;
  6240. case 'PEClosedTankBlock' :
  6241. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;' +
  6242. getStrokeColor(p, a) +
  6243. getFillColor(p,a) +
  6244. getStrokeWidth(p) +
  6245. getOpacity(p, a) +
  6246. getShadow(p) +
  6247. getStrokeStyle(p) +
  6248. getLabelStyle(p);
  6249. v.value = convertText(p.Text);
  6250. if (p.peakedRoof == 1 && p.stumpType == 0)
  6251. {
  6252. v.style += 'shape=mxgraph.pid.vessels.tank_(conical_roof);';
  6253. }
  6254. else if (p.stumpType == 1)
  6255. {
  6256. v.style += 'shape=mxgraph.pid.vessels.tank_(boot);';
  6257. }
  6258. break;
  6259. case 'PEColumnBlock' :
  6260. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;' +
  6261. getStrokeColor(p, a) +
  6262. getFillColor(p,a) +
  6263. getStrokeWidth(p) +
  6264. getOpacity(p, a) +
  6265. getShadow(p) +
  6266. getStrokeStyle(p) +
  6267. getLabelStyle(p);
  6268. v.value = convertText(p.Text);
  6269. if (p.columnType == 0)
  6270. {
  6271. v.style += 'shape=mxgraph.pid.vessels.pressurized_vessel;';
  6272. }
  6273. else
  6274. {
  6275. v.style += 'shape=mxgraph.pid.vessels.tank;';
  6276. }
  6277. break;
  6278. case 'PECompressorTurbineBlock' :
  6279. v.style += 'strokeColor=none;fillColor=none;' +
  6280. getRotation(p, a, v) +
  6281. getLabelStyle(p);
  6282. v.value = convertText(p.Text);
  6283. var st =
  6284. getStrokeColor(p, a) +
  6285. getFillColor(p, a) +
  6286. getStrokeWidth(p) +
  6287. getOpacity(p, a) +
  6288. getShadow(p) +
  6289. getStrokeStyle(p);
  6290. var item1 = new mxCell('', new mxGeometry(0, h * 0.2, w, h * 0.6), 'part=1;shape=trapezoid;direction=south;');
  6291. item1.vertex = true;
  6292. v.insert(item1);
  6293. item1.style += st;
  6294. st += 'endSize=4;endArrow=block;endFill=1;';
  6295. if (p.compressorType == 0)
  6296. {
  6297. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), '');
  6298. edge1.geometry.relative = true;
  6299. edge1.edge = true;
  6300. edge1.style += st;
  6301. addFloatingEdge(0, 0, 0, h * 0.2, edge1, select, graph, cells, v, cell);
  6302. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), '');
  6303. edge2.geometry.relative = true;
  6304. edge2.edge = true;
  6305. edge2.style += st;
  6306. addFloatingEdge(w, h * 0.67, w, h, edge2, select, graph, cells, v, cell);
  6307. }
  6308. else
  6309. {
  6310. item1.style += 'flipH=1;'
  6311. var edge1 = new mxCell('', new mxGeometry(0, 0, 0, 0), '');
  6312. edge1.geometry.relative = true;
  6313. edge1.edge = true;
  6314. edge1.style += st;
  6315. addFloatingEdge(0, 0, 0, h * 0.33, edge1, select, graph, cells, v, cell);
  6316. var edge2 = new mxCell('', new mxGeometry(0, 0, 0, 0), '');
  6317. edge2.geometry.relative = true;
  6318. edge2.edge = true;
  6319. edge2.style += st;
  6320. addFloatingEdge(w, h * 0.8, w, h, edge2, select, graph, cells, v, cell);
  6321. }
  6322. if (p.centerLineType == 1)
  6323. {
  6324. var edge3 = new mxCell('', new mxGeometry(0, 0, 0, 0), '');
  6325. edge3.geometry.relative = true;
  6326. edge3.edge = true;
  6327. edge3.style += st;
  6328. addFloatingEdge(w * 0.2, h * 0.5, w * 0.8, h * 0.5, edge3, select, graph, cells, v, cell);
  6329. }
  6330. break;
  6331. case 'PEMotorDrivenTurbineBlock' :
  6332. var st =
  6333. getStrokeColor(p, a) +
  6334. getFillColor(p, a) +
  6335. getStrokeWidth(p) +
  6336. getOpacity(p, a) +
  6337. getStrokeStyle(p);
  6338. v.style += 'shape=ellipse;' +
  6339. getShadow(p) +
  6340. getRotation(p, a, v) +
  6341. getLabelStyle(p);
  6342. v.value = convertText(p.Text);
  6343. var item1 = new mxCell('', new mxGeometry(w * 0.2, h * 0.2, w * 0.6, h * 0.6), 'part=1;shape=trapezoid;direction=south;');
  6344. item1.vertex = true;
  6345. v.insert(item1);
  6346. item1.style += st;
  6347. break;
  6348. case 'PEFanBlades2Block' :
  6349. break;
  6350. case 'PECentrifugalPumpBlock' :
  6351. break;
  6352. case 'PEIndicatorBlock' :
  6353. case 'PEIndicator2Block' :
  6354. case 'PESharedIndicatorBlock' :
  6355. case 'PEComputerIndicatorBlock' :
  6356. case 'PESharedIndicator2Block' :
  6357. case 'PEProgrammableIndicatorBlock' :
  6358. var st = getOpacity(p, a);
  6359. v.style += st +
  6360. getStrokeColor(p, a) +
  6361. getFillColor(p, a) +
  6362. getStrokeWidth(p) +
  6363. getStrokeStyle(p) +
  6364. getShadow(p) +
  6365. getRotation(p, a, v);
  6366. switch(obj.Class)
  6367. {
  6368. case 'PEIndicatorBlock' :
  6369. v.style += 'shape=mxgraph.pid2inst.discInst;';
  6370. break;
  6371. case 'PEIndicator2Block' :
  6372. v.style += 'shape=mxgraph.pid2inst.indicator;indType=inst;';
  6373. break;
  6374. case 'PESharedIndicatorBlock' :
  6375. v.style += 'shape=mxgraph.pid2inst.sharedCont;';
  6376. break;
  6377. case 'PEComputerIndicatorBlock' :
  6378. v.style += 'shape=mxgraph.pid2inst.compFunc;';
  6379. break;
  6380. case 'PESharedIndicator2Block' :
  6381. v.style += 'shape=mxgraph.pid2inst.indicator;indType=ctrl;';
  6382. break;
  6383. case 'PEProgrammableIndicatorBlock' :
  6384. v.style += 'shape=mxgraph.pid2inst.progLogCont;';
  6385. break;
  6386. }
  6387. if (obj.Class == 'PEIndicator2Block' || obj.Class == 'PESharedIndicator2Block')
  6388. {
  6389. //scale labels to width
  6390. var item1 = new mxCell('', new mxGeometry(0, 0, w, w * 0.5), 'part=1;strokeColor=none;fillColor=none;');
  6391. item1.vertex = true;
  6392. v.insert(item1);
  6393. item1.style += st +
  6394. getLabelStyle(p.TopText);
  6395. item1.value = convertText(p.TopText);
  6396. var item2 = new mxCell('', new mxGeometry(0, w * 0.5, w, w * 0.5), 'part=1;strokeColor=none;fillColor=none;');
  6397. item2.vertex = true;
  6398. v.insert(item2);
  6399. item2.style += st;
  6400. getLabelStyle(p.BotText);
  6401. item2.value = convertText(p.BotText);
  6402. }
  6403. else
  6404. {
  6405. //scale labels as usual
  6406. var item1 = new mxCell('', new mxGeometry(0, 0, w, h * 0.5), 'part=1;strokeColor=none;fillColor=none;');
  6407. item1.vertex = true;
  6408. v.insert(item1);
  6409. item1.style += st +
  6410. getLabelStyle(p.TopText);
  6411. item1.value = convertText(p.TopText);
  6412. var item2 = new mxCell('', new mxGeometry(0, h * 0.5, w, h * 0.5), 'part=1;strokeColor=none;fillColor=none;');
  6413. item2.vertex = true;
  6414. v.insert(item2);
  6415. item2.style += st;
  6416. getLabelStyle(p.BotText);
  6417. item2.value = convertText(p.BotText);
  6418. }
  6419. switch(p.instrumentLocation)
  6420. {
  6421. case 0 :
  6422. v.style += 'mounting=field;';
  6423. break;
  6424. case 1 :
  6425. v.style += 'mounting=inaccessible;';
  6426. break;
  6427. case 2 :
  6428. v.style += 'mounting=room;';
  6429. break;
  6430. case 3 :
  6431. v.style += 'mounting=local;';
  6432. break;
  6433. }
  6434. break;
  6435. case 'PEGateValveBlock' :
  6436. case 'PEGlobeValveBlock' :
  6437. case 'PEAngleValveBlock' :
  6438. case 'PEAngleGlobeValveBlock' :
  6439. case 'PEPoweredValveBlock' :
  6440. var actuator = false;
  6441. if (obj.Class == 'PEPoweredValveBlock')
  6442. {
  6443. if (p.poweredHandOperated != 1)
  6444. {
  6445. actuator = true;
  6446. }
  6447. }
  6448. else
  6449. {
  6450. if (p.handOperated != 1)
  6451. {
  6452. actuator = true;
  6453. }
  6454. }
  6455. if (actuator)
  6456. {
  6457. var p = getAction(obj).Properties;
  6458. var b = p.BoundingBox;
  6459. var oldH = b.h;
  6460. if (obj.Class == 'PEAngleValveBlock' || obj.Class == 'PEAngleGlobeValveBlock')
  6461. {
  6462. b.h = b.h * 0.7;
  6463. }
  6464. else
  6465. {
  6466. b.h = b.h * 0.6;
  6467. }
  6468. v = new mxCell('', new mxGeometry(Math.round(b.x * scale + dx), Math.round((b.y + oldH - b.h) * scale + dy),
  6469. Math.round(b.w * scale), Math.round(b.h * scale)), '');
  6470. v.vertex = true;
  6471. updateCell(v, obj);
  6472. }
  6473. if (obj.Class == 'PEPoweredValveBlock')
  6474. {
  6475. v.style += 'shape=mxgraph.pid2valves.valve;verticalLabelPosition=bottom;verticalAlign=top;' +
  6476. getOpacity(p, a) +
  6477. getStrokeColor(p, a) +
  6478. getFillColor(p, a) +
  6479. getStrokeWidth(p) +
  6480. getStrokeStyle(p) +
  6481. getShadow(p) +
  6482. getRotation(p, a, v);
  6483. if (p.poweredHandOperated == 1)
  6484. {
  6485. v.style += 'valveType=gate;actuator=powered;';
  6486. var item1 = new mxCell('', new mxGeometry(w * 0.325, 0, w * 0.35, h * 0.35), 'part=1;strokeColor=none;fillColor=none;spacingTop=2;');
  6487. item1.vertex = true;
  6488. v.insert(item1);
  6489. item1.style += st +
  6490. getOpacity(p, a) +
  6491. getStrokeColor(p, a) +
  6492. getFillColor(p, a) +
  6493. getStrokeWidth(p) +
  6494. getStrokeStyle(p) +
  6495. getShadow(p) +
  6496. 'fontSize=6;' +
  6497. getFontColor(p.PoweredText) +
  6498. getFontStyle(p.PoweredText) +
  6499. getTextAlignment(p.PoweredText) +
  6500. getTextLeftSpacing(p.PoweredText) +
  6501. getTextRightSpacing(p.PoweredText) +
  6502. getTextBottomSpacing(p.PoweredText) +
  6503. getTextGlobalSpacing(p.PoweredText) +
  6504. getTextVerticalAlignment(p.PoweredText);
  6505. item1.value = convertText(p.PoweredText);
  6506. }
  6507. else
  6508. {
  6509. v.style += 'valveType=gate;';
  6510. }
  6511. }
  6512. else
  6513. {
  6514. v.style += 'verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.pid2valves.valve;' +
  6515. getOpacity(p, a) +
  6516. getStrokeColor(p, a) +
  6517. getFillColor(p, a) +
  6518. getStrokeWidth(p) +
  6519. getStrokeStyle(p) +
  6520. getShadow(p) +
  6521. getRotation(p, a, v) +
  6522. getFontSize(p) +
  6523. getFontColor(p) +
  6524. getFontStyle(p) +
  6525. getTextAlignment(p);
  6526. v.value = convertText(p.Text);
  6527. switch (obj.Class)
  6528. {
  6529. case 'PEGateValveBlock' :
  6530. v.style += 'valveType=gate;';
  6531. break;
  6532. case 'PEGlobeValveBlock' :
  6533. v.style += 'valveType=globe;';
  6534. break;
  6535. case 'PEAngleValveBlock' :
  6536. v.style += 'valveType=angle;';
  6537. break;
  6538. case 'PEAngleGlobeValveBlock' :
  6539. v.style += 'valveType=angleGlobe;flipH=1;';
  6540. break;
  6541. }
  6542. if (p.handOperated == 1)
  6543. {
  6544. v.style += 'actuator=man;';
  6545. }
  6546. }
  6547. break;
  6548. case 'UI2BrowserBlock' :
  6549. v.style += 'shape=mxgraph.mockup.containers.browserWindow;mainText=;' +
  6550. getOpacity(p, a) +
  6551. getStrokeColor(p, a) +
  6552. getFillColor(p, a) +
  6553. getStrokeWidth(p) +
  6554. getStrokeStyle(p) +
  6555. getShadow(p) +
  6556. getRotation(p, a, v);
  6557. if (p.vScroll == 1)
  6558. {
  6559. if (p.hScroll == 1)
  6560. {
  6561. var item3 = new mxCell('', new mxGeometry(1, 0, 20, h - 130), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;');
  6562. }
  6563. else
  6564. {
  6565. var item3 = new mxCell('', new mxGeometry(1, 0, 20, h - 110), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;');
  6566. }
  6567. item3.geometry.relative = true;
  6568. item3.geometry.offset = new mxPoint(-20, 110);
  6569. item3.vertex = true;
  6570. v.insert(item3);
  6571. v.style += 'spacingRight=20;';
  6572. }
  6573. if (p.hScroll == 1)
  6574. {
  6575. if (p.vScroll == 1)
  6576. {
  6577. var item4 = new mxCell('', new mxGeometry(0, 1, w - 20, 20), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;');
  6578. }
  6579. else
  6580. {
  6581. var item4 = new mxCell('', new mxGeometry(0, 1, w, 20), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;');
  6582. }
  6583. item4.geometry.relative = true;
  6584. item4.geometry.offset = new mxPoint(0, -20);
  6585. item4.vertex = true;
  6586. v.insert(item4);
  6587. }
  6588. break;
  6589. case 'UI2WindowBlock' :
  6590. v.style += 'shape=mxgraph.mockup.containers.window;mainText=;align=center;verticalAlign=top;spacing=5;' +
  6591. getOpacity(p, a) +
  6592. getStrokeColor(p, a) +
  6593. getFillColor(p, a) +
  6594. getStrokeWidth(p) +
  6595. getStrokeStyle(p) +
  6596. getShadow(p) +
  6597. getRotation(p, a, v) +
  6598. getFontSize(p.Title) +
  6599. getFontColor(p.Title) +
  6600. getFontStyle(p.Title);
  6601. v.value = convertText(p.Title);
  6602. if (p.vScroll == 1)
  6603. {
  6604. if (p.hScroll == 1)
  6605. {
  6606. var item3 = new mxCell('', new mxGeometry(1, 0, 20, h - 50), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;');
  6607. }
  6608. else
  6609. {
  6610. var item3 = new mxCell('', new mxGeometry(1, 0, 20, h - 30), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;');
  6611. }
  6612. item3.geometry.relative = true;
  6613. item3.geometry.offset = new mxPoint(-20, 30);
  6614. item3.vertex = true;
  6615. v.insert(item3);
  6616. v.style += 'spacingRight=20;';
  6617. }
  6618. if (p.hScroll == 1)
  6619. {
  6620. if (p.vScroll == 1)
  6621. {
  6622. var item4 = new mxCell('', new mxGeometry(0, 1, w - 20, 20), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;');
  6623. }
  6624. else
  6625. {
  6626. var item4 = new mxCell('', new mxGeometry(0, 1, w, 20), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;');
  6627. }
  6628. item4.geometry.relative = true;
  6629. item4.geometry.offset = new mxPoint(0, -20);
  6630. item4.vertex = true;
  6631. v.insert(item4);
  6632. }
  6633. break;
  6634. case 'UI2DialogBlock' :
  6635. v.style +=
  6636. getOpacity(p, a) +
  6637. getStrokeColor(p, a) +
  6638. getFillColor(p, a) +
  6639. getStrokeWidth(p) +
  6640. getStrokeStyle(p) +
  6641. getShadow(p) +
  6642. getRotation(p, a, v) +
  6643. getLabelStyle(p.Text);
  6644. v.value = convertText(p.Text);
  6645. var item1 = new mxCell('', new mxGeometry(0, 0, w, 30), 'part=1;resizeHeight=0;');
  6646. item1.vertex = true;
  6647. v.insert(item1);
  6648. item1.style += st +
  6649. getLabelStyle(p.Title);
  6650. item1.value = convertText(p.Title);
  6651. var item2 = new mxCell('', new mxGeometry(1, 0.5, 20, 20), 'part=1;shape=ellipse;strokeColor=#008cff;resizable=0;fillColor=none;html=1;');
  6652. item2.geometry.relative = true;
  6653. item2.geometry.offset = new mxPoint(-25, -10);
  6654. item2.vertex = true;
  6655. item1.insert(item2);
  6656. if (p.vScroll == 1)
  6657. {
  6658. if (p.hScroll == 1)
  6659. {
  6660. var item3 = new mxCell('', new mxGeometry(1, 0, 20, h - 50), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;');
  6661. }
  6662. else
  6663. {
  6664. var item3 = new mxCell('', new mxGeometry(1, 0, 20, h - 30), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;');
  6665. }
  6666. item3.geometry.relative = true;
  6667. item3.geometry.offset = new mxPoint(-20, 30);
  6668. item3.vertex = true;
  6669. v.insert(item3);
  6670. v.style += 'spacingRight=20;';
  6671. }
  6672. if (p.hScroll == 1)
  6673. {
  6674. if (p.vScroll == 1)
  6675. {
  6676. var item4 = new mxCell('', new mxGeometry(0, 1, w - 20, 20), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;');
  6677. }
  6678. else
  6679. {
  6680. var item4 = new mxCell('', new mxGeometry(0, 1, w, 20), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;');
  6681. }
  6682. item4.geometry.relative = true;
  6683. item4.geometry.offset = new mxPoint(0, -20);
  6684. item4.vertex = true;
  6685. v.insert(item4);
  6686. }
  6687. break;
  6688. case 'UI2AccordionBlock' :
  6689. v.style +=
  6690. getOpacity(p, a) +
  6691. getStrokeColor(p, a) +
  6692. getFillColor(p, a) +
  6693. getStrokeWidth(p) +
  6694. getStrokeStyle(p) +
  6695. getShadow(p) +
  6696. getRotation(p, a, v);
  6697. var item1 = new Array();
  6698. var itemH = 25;
  6699. for (var i = 0; i <= (p.Panels - 1); i++)
  6700. {
  6701. if (i < (p.Selected - 1))
  6702. {
  6703. item1[i] = new mxCell('', new mxGeometry(0, i * itemH, w, itemH), 'part=1;fillColor=#000000;fillOpacity=25;');
  6704. item1[i].vertex = true;
  6705. v.insert(item1[i]);
  6706. item1[i].style +=
  6707. getLabelStyle(p['Panel_' + (i + 1)]);
  6708. item1[i].value = convertText(p['Panel_' + (i + 1)]);
  6709. }
  6710. else if (i == (p.Selected - 1))
  6711. {
  6712. item1[i] = new mxCell('', new mxGeometry(0, i * itemH, w, itemH), 'part=1;fillColor=none;');
  6713. item1[i].vertex = true;
  6714. v.insert(item1[i]);
  6715. item1[i].style +=
  6716. getLabelStyle(p['Panel_' + (i + 1)]);
  6717. item1[i].value = convertText(p['Panel_' + (i + 1)]);
  6718. }
  6719. else
  6720. {
  6721. item1[i] = new mxCell('', new mxGeometry(0, h - (p.Panels - p.Selected) * itemH + (i - p.Selected) * itemH, w, itemH), 'part=1;fillColor=#000000;fillOpacity=25;');
  6722. item1[i].vertex = true;
  6723. v.insert(item1[i]);
  6724. item1[i].style +=
  6725. getLabelStyle(p['Panel_' + (i + 1)]);
  6726. item1[i].value = convertText(p['Panel_' + (i + 1)]);
  6727. }
  6728. if (!item1[i].style.includes(';align='))
  6729. {
  6730. item1[i].style += 'align=left;spacingLeft=5;';
  6731. }
  6732. }
  6733. var fc2 = getStrokeColor(p, a);
  6734. fc2 = fc2.replace('strokeColor', 'fillColor2');
  6735. if (fc2 == '')
  6736. {
  6737. fc2 = 'fillColor2=#000000;'
  6738. }
  6739. if (p.vScroll == 1)
  6740. {
  6741. if (p.hScroll == 1)
  6742. {
  6743. var item2 = new mxCell('', new mxGeometry(1, 0, 20, h - p.Selected * itemH -20 - (p.Panels - p.Selected) * itemH), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;');
  6744. }
  6745. else
  6746. {
  6747. var item2 = new mxCell('', new mxGeometry(1, 0, 20, h - p.Selected * itemH - (p.Panels - p.Selected) * itemH), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;');
  6748. }
  6749. item2.geometry.relative = true;
  6750. item2.geometry.offset = new mxPoint(-20, p.Selected * itemH);
  6751. item2.vertex = true;
  6752. v.insert(item2);
  6753. v.style += 'spacingRight=20;';
  6754. item2.style += fc2 +
  6755. getOpacity(p, a) +
  6756. getStrokeColor(p, a) +
  6757. getFillColor(p, a) +
  6758. getStrokeWidth(p) +
  6759. getStrokeStyle(p);
  6760. }
  6761. if (p.hScroll == 1)
  6762. {
  6763. if (p.vScroll == 1)
  6764. {
  6765. var item3 = new mxCell('', new mxGeometry(0, 1, w - 20, 20), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;');
  6766. }
  6767. else
  6768. {
  6769. var item3 = new mxCell('', new mxGeometry(0, 1, w, 20), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;');
  6770. }
  6771. item3.geometry.relative = true;
  6772. item3.geometry.offset = new mxPoint(0, -20 - (p.Panels - p.Selected) * itemH);
  6773. item3.vertex = true;
  6774. v.insert(item3);
  6775. item3.style += fc2 +
  6776. getOpacity(p, a) +
  6777. getStrokeColor(p, a) +
  6778. getFillColor(p, a) +
  6779. getStrokeWidth(p) +
  6780. getStrokeStyle(p);
  6781. }
  6782. if (p.vScroll == 1)
  6783. {
  6784. item4 = new mxCell('', new mxGeometry(0, p.Selected * itemH, w - 20, h - p.Selected * itemH -20 - (p.Panels - p.Selected) * itemH), 'part=1;fillColor=none;strokeColor=none;');
  6785. }
  6786. else
  6787. {
  6788. item4 = new mxCell('', new mxGeometry(0, p.Selected * itemH, w - 20, h - p.Selected * itemH - (p.Panels - p.Selected) * itemH), 'part=1;fillColor=none;strokeColor=none;');
  6789. }
  6790. item4.vertex = true;
  6791. v.insert(item4);
  6792. item4.style +=
  6793. getLabelStyle(p['Content_1']);
  6794. if (!item4.style.includes(';align='))
  6795. {
  6796. item4.style += 'align=left;spacingLeft=5;';
  6797. }
  6798. item4.value = convertText(p['Content_1']);
  6799. break;
  6800. case 'UI2TabBarContainerBlock' :
  6801. v.style += 'strokeColor=none;fillColor=none;';
  6802. var item1 = new Array();
  6803. var item2 = new Array();
  6804. var itemH = 25;
  6805. var itemS = 3; // tab spacing
  6806. var itemW = (w + itemS) / (p.Tabs + 1);
  6807. var startW = 10;
  6808. var bg = new mxCell('', new mxGeometry(0, itemH, w, h - itemH), 'part=1;');
  6809. bg.vertex = true;
  6810. v.insert(bg);
  6811. bg.style +=
  6812. getOpacity(p, a) +
  6813. getStrokeColor(p, a) +
  6814. getFillColor(p, a) +
  6815. getStrokeWidth(p) +
  6816. getStrokeStyle(p) +
  6817. getShadow(p) +
  6818. getRotation(p, a, v);
  6819. for (var i = 0; i <= (p.Tabs - 1); i++)
  6820. {
  6821. if (i == (p.Selected - 1))
  6822. {
  6823. item2[i] = new mxCell('', new mxGeometry(startW + i * itemW, 0, itemW - itemS, itemH), '');
  6824. item2[i].vertex = true;
  6825. v.insert(item2[i]);
  6826. item2[i].style +=
  6827. getOpacity(p, a) +
  6828. getStrokeColor(p, a) +
  6829. getFillColor(p, a) +
  6830. getStrokeWidth(p) +
  6831. getStrokeStyle(p) +
  6832. getShadow(p) +
  6833. getLabelStyle(p['Tab_' + (i + 1)]);
  6834. item2[i].value = convertText(p['Tab_' + (i + 1)]);
  6835. }
  6836. else
  6837. {
  6838. item1[i] = new mxCell('', new mxGeometry(startW + i * itemW, 0, itemW - itemS, itemH), 'strokeColor=none;');
  6839. item1[i].vertex = true;
  6840. v.insert(item1[i]);
  6841. item1[i].style +=
  6842. getOpacity(p, a) +
  6843. getFillColor(p, a) +
  6844. getShadow(p);
  6845. item2[i] = new mxCell('', new mxGeometry(0, 0, itemW - itemS, itemH), 'fillColor=#000000;fillOpacity=25;');
  6846. item2[i].vertex = true;
  6847. item1[i].insert(item2[i]);
  6848. item2[i].style +=
  6849. getStrokeColor(p, a) +
  6850. getStrokeWidth(p) +
  6851. getStrokeStyle(p) +
  6852. getLabelStyle(p['Tab_' + (i + 1)]);
  6853. item2[i].value = convertText(p['Tab_' + (i + 1)]);
  6854. }
  6855. if (!item2[i].style.includes(';align='))
  6856. {
  6857. item2[i].style += 'align=left;spacingLeft=2;';
  6858. }
  6859. }
  6860. var fc2 = getStrokeColor(p, a);
  6861. fc2 = fc2.replace('strokeColor', 'fillColor2');
  6862. if (fc2 == '')
  6863. {
  6864. fc2 = 'fillColor2=#000000;'
  6865. }
  6866. if (p.vScroll == 1)
  6867. {
  6868. if (p.hScroll == 1)
  6869. {
  6870. var item2 = new mxCell('', new mxGeometry(1, 0, 20, h -20 - itemH), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;');
  6871. }
  6872. else
  6873. {
  6874. var item2 = new mxCell('', new mxGeometry(1, 0, 20, h - itemH), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;');
  6875. }
  6876. item2.geometry.relative = true;
  6877. item2.geometry.offset = new mxPoint(-20, itemH);
  6878. item2.vertex = true;
  6879. v.insert(item2);
  6880. v.style += 'spacingRight=20;';
  6881. item2.style += fc2 +
  6882. getOpacity(p, a) +
  6883. getStrokeColor(p, a) +
  6884. getFillColor(p, a) +
  6885. getStrokeWidth(p) +
  6886. getStrokeStyle(p);
  6887. }
  6888. if (p.hScroll == 1)
  6889. {
  6890. if (p.vScroll == 1)
  6891. {
  6892. var item3 = new mxCell('', new mxGeometry(0, 1, w - 20, 20), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;');
  6893. }
  6894. else
  6895. {
  6896. var item3 = new mxCell('', new mxGeometry(0, 1, w, 20), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;');
  6897. }
  6898. item3.geometry.relative = true;
  6899. item3.geometry.offset = new mxPoint(0, -20);
  6900. item3.vertex = true;
  6901. v.insert(item3);
  6902. item3.style += fc2 +
  6903. getOpacity(p, a) +
  6904. getStrokeColor(p, a) +
  6905. getFillColor(p, a) +
  6906. getStrokeWidth(p) +
  6907. getStrokeStyle(p);
  6908. }
  6909. break;
  6910. case 'UI2TabBar2ContainerBlock' :
  6911. v.style += 'strokeColor=none;fillColor=none;';
  6912. var item1 = new Array();
  6913. var item2 = new Array();
  6914. var itemH = 25; // tab height
  6915. var itemS = 3; // tab spacing
  6916. var itemW = (w + itemS) / p.Tabs; //tab width (including spacing)
  6917. var bg = new mxCell('', new mxGeometry(0, itemH, w, h - itemH), 'part=1;');
  6918. bg.vertex = true;
  6919. v.insert(bg);
  6920. bg.style +=
  6921. getOpacity(p, a) +
  6922. getStrokeColor(p, a) +
  6923. getFillColor(p, a) +
  6924. getStrokeWidth(p) +
  6925. getStrokeStyle(p) +
  6926. getShadow(p) +
  6927. getRotation(p, a, v);
  6928. for (var i = 0; i <= (p.Tabs - 1); i++)
  6929. {
  6930. if (i == (p.Selected - 1))
  6931. {
  6932. item2[i] = new mxCell('', new mxGeometry(i * itemW, 0, itemW - itemS, itemH), '');
  6933. item2[i].vertex = true;
  6934. v.insert(item2[i]);
  6935. item2[i].style +=
  6936. getOpacity(p, a) +
  6937. getStrokeColor(p, a) +
  6938. getFillColor(p, a) +
  6939. getStrokeWidth(p) +
  6940. getStrokeStyle(p) +
  6941. getShadow(p) +
  6942. getLabelStyle(p['Tab_' + (i + 1)]);
  6943. item2[i].value = convertText(p['Tab_' + (i + 1)]);
  6944. }
  6945. else
  6946. {
  6947. item1[i] = new mxCell('', new mxGeometry(i * itemW, 0, itemW - itemS, itemH), 'strokeColor=none;');
  6948. item1[i].vertex = true;
  6949. v.insert(item1[i]);
  6950. item1[i].style +=
  6951. getOpacity(p, a) +
  6952. getFillColor(p, a) +
  6953. getShadow(p);
  6954. item2[i] = new mxCell('', new mxGeometry(0, 0, itemW - itemS, itemH), 'fillColor=#000000;fillOpacity=25;');
  6955. item2[i].vertex = true;
  6956. item1[i].insert(item2[i]);
  6957. item2[i].style +=
  6958. getStrokeColor(p, a) +
  6959. getStrokeWidth(p) +
  6960. getStrokeStyle(p) +
  6961. getLabelStyle(p['Tab_' + (i + 1)]);
  6962. item2[i].value = convertText(p['Tab_' + (i + 1)]);
  6963. }
  6964. if (!item2[i].style.includes(';align='))
  6965. {
  6966. item2[i].style += 'align=left;spacingLeft=2;';
  6967. }
  6968. }
  6969. var fc2 = getStrokeColor(p, a);
  6970. fc2 = fc2.replace('strokeColor', 'fillColor2');
  6971. if (fc2 == '')
  6972. {
  6973. fc2 = 'fillColor2=#000000;'
  6974. }
  6975. if (p.vScroll == 1)
  6976. {
  6977. if (p.hScroll == 1)
  6978. {
  6979. var item2 = new mxCell('', new mxGeometry(1, 0, 20, h -20 - itemH), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;');
  6980. }
  6981. else
  6982. {
  6983. var item2 = new mxCell('', new mxGeometry(1, 0, 20, h - itemH), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;');
  6984. }
  6985. item2.geometry.relative = true;
  6986. item2.geometry.offset = new mxPoint(-20, itemH);
  6987. item2.vertex = true;
  6988. v.insert(item2);
  6989. v.style += 'spacingRight=20;';
  6990. item2.style += fc2 +
  6991. getOpacity(p, a) +
  6992. getStrokeColor(p, a) +
  6993. getFillColor(p, a) +
  6994. getStrokeWidth(p) +
  6995. getStrokeStyle(p);
  6996. }
  6997. if (p.hScroll == 1)
  6998. {
  6999. if (p.vScroll == 1)
  7000. {
  7001. var item3 = new mxCell('', new mxGeometry(0, 1, w - 20, 20), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;');
  7002. }
  7003. else
  7004. {
  7005. var item3 = new mxCell('', new mxGeometry(0, 1, w, 20), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;');
  7006. }
  7007. item3.geometry.relative = true;
  7008. item3.geometry.offset = new mxPoint(0, -20);
  7009. item3.vertex = true;
  7010. v.insert(item3);
  7011. item3.style += fc2 +
  7012. getOpacity(p, a) +
  7013. getStrokeColor(p, a) +
  7014. getFillColor(p, a) +
  7015. getStrokeWidth(p) +
  7016. getStrokeStyle(p);
  7017. }
  7018. break;
  7019. case 'UI2VTabBarContainerBlock' :
  7020. v.style += 'strokeColor=none;fillColor=none;';
  7021. var item1 = new Array();
  7022. var item2 = new Array();
  7023. var itemS = 3; // tab spacing
  7024. var itemH = 25 + itemS; // tab height (including spacing)
  7025. var itemW = 80; //tab width
  7026. var startH = 10;
  7027. var bg = new mxCell('', new mxGeometry(itemW, 0, w - itemW, h), 'part=1;');
  7028. bg.vertex = true;
  7029. v.insert(bg);
  7030. bg.style +=
  7031. getOpacity(p, a) +
  7032. getStrokeColor(p, a) +
  7033. getFillColor(p, a) +
  7034. getStrokeWidth(p) +
  7035. getStrokeStyle(p) +
  7036. getShadow(p) +
  7037. getRotation(p, a, v);
  7038. for (var i = 0; i <= (p.Tabs - 1); i++)
  7039. {
  7040. if (i == (p.Selected - 1))
  7041. {
  7042. item2[i] = new mxCell('', new mxGeometry(0, startH + i * itemH, itemW, itemH - itemS), '');
  7043. item2[i].vertex = true;
  7044. v.insert(item2[i]);
  7045. item2[i].style +=
  7046. getOpacity(p, a) +
  7047. getStrokeColor(p, a) +
  7048. getFillColor(p, a) +
  7049. getStrokeWidth(p) +
  7050. getStrokeStyle(p) +
  7051. getShadow(p) +
  7052. getLabelStyle(p['Tab_' + (i + 1)]);
  7053. item2[i].value = convertText(p['Tab_' + (i + 1)]);
  7054. }
  7055. else
  7056. {
  7057. item1[i] = new mxCell('', new mxGeometry(0, startH + i * itemH, itemW, itemH - itemS), 'strokeColor=none;');
  7058. item1[i].vertex = true;
  7059. v.insert(item1[i]);
  7060. item1[i].style +=
  7061. getOpacity(p, a) +
  7062. getFillColor(p, a) +
  7063. getShadow(p);
  7064. item2[i] = new mxCell('', new mxGeometry(0, 0, itemW, itemH - itemS), 'fillColor=#000000;fillOpacity=25;');
  7065. item2[i].vertex = true;
  7066. item1[i].insert(item2[i]);
  7067. item2[i].style +=
  7068. getStrokeColor(p, a) +
  7069. getStrokeWidth(p) +
  7070. getStrokeStyle(p) +
  7071. getLabelStyle(p['Tab_' + (i + 1)]);
  7072. item2[i].value = convertText(p['Tab_' + (i + 1)]);
  7073. }
  7074. if (!item2[i].style.includes(';align='))
  7075. {
  7076. item2[i].style += 'align=left;spacingLeft=2;';
  7077. }
  7078. }
  7079. var fc2 = getStrokeColor(p, a);
  7080. fc2 = fc2.replace('strokeColor', 'fillColor2');
  7081. if (fc2 == '')
  7082. {
  7083. fc2 = 'fillColor2=#000000;'
  7084. }
  7085. if (p.vScroll == 1)
  7086. {
  7087. if (p.hScroll == 1)
  7088. {
  7089. var item2 = new mxCell('', new mxGeometry(1, 0, 20, h -20), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;');
  7090. }
  7091. else
  7092. {
  7093. var item2 = new mxCell('', new mxGeometry(1, 0, 20, h), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=95;direction=north;resizeHeight=1;');
  7094. }
  7095. item2.geometry.relative = true;
  7096. item2.geometry.offset = new mxPoint(-20, 0);
  7097. item2.vertex = true;
  7098. v.insert(item2);
  7099. v.style += 'spacingRight=20;';
  7100. item2.style += fc2 +
  7101. getOpacity(p, a) +
  7102. getStrokeColor(p, a) +
  7103. getFillColor(p, a) +
  7104. getStrokeWidth(p) +
  7105. getStrokeStyle(p);
  7106. }
  7107. if (p.hScroll == 1)
  7108. {
  7109. if (p.vScroll == 1)
  7110. {
  7111. var item3 = new mxCell('', new mxGeometry(itemW, 1, w - 20 - itemW, 20), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;');
  7112. }
  7113. else
  7114. {
  7115. var item3 = new mxCell('', new mxGeometry(itemW, 1, w - itemW, 20), 'part=1;shape=mxgraph.mockup.navigation.scrollBar;barPos=5;resizeWidth=1;');
  7116. }
  7117. item3.geometry.relative = true;
  7118. item3.geometry.offset = new mxPoint(0, -20);
  7119. item3.vertex = true;
  7120. v.insert(item3);
  7121. item3.style += fc2 +
  7122. getOpacity(p, a) +
  7123. getStrokeColor(p, a) +
  7124. getFillColor(p, a) +
  7125. getStrokeWidth(p) +
  7126. getStrokeStyle(p);
  7127. }
  7128. break;
  7129. case 'UI2CheckBoxBlock' :
  7130. v.style += 'strokeColor=none;fillColor=none;';
  7131. var itemH = h / p.Options;
  7132. var item1 = new Array(); //checkbox
  7133. var item2 = new Array(); //checkmark
  7134. for (var i = 0; i < p.Options; i++)
  7135. {
  7136. item1[i] = new mxCell('', new mxGeometry(0, i * itemH + itemH * 0.5 - 5, 10, 10), 'labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;');
  7137. item1[i].vertex = true;
  7138. v.insert(item1[i]);
  7139. item1[i].style +=
  7140. getOpacity(p, a) +
  7141. getStrokeColor(p, a) +
  7142. getFillColor(p, a) +
  7143. getStrokeWidth(p) +
  7144. getStrokeStyle(p) +
  7145. getShadow(p) +
  7146. getLabelStyle(p['Option_' + (i + 1)]);
  7147. if (p.Selected[i + 1] != null)
  7148. {
  7149. if (p.Selected[i + 1] == 1)
  7150. {
  7151. var fc = getStrokeColor(p, a);
  7152. fc = fc.replace('strokeColor', 'fillColor');
  7153. if (fc == '')
  7154. {
  7155. fc = 'fillColor=#000000;'
  7156. }
  7157. item2[i] = new mxCell('', new mxGeometry(2, 2, 6, 6), 'shape=mxgraph.mscae.general.checkmark;part=1;');
  7158. item2[i].vertex = true;
  7159. item1[i].insert(item2[i]);
  7160. item2[i].style += fc +
  7161. getOpacity(p, a) +
  7162. getStrokeColor(p, a) +
  7163. getStrokeWidth(p) +
  7164. getStrokeStyle(p);
  7165. }
  7166. }
  7167. item1[i].value = convertText(p['Option_' + (i + 1)]);
  7168. }
  7169. break;
  7170. case 'UI2HorizontalCheckBoxBlock' :
  7171. v.style += 'strokeColor=none;fillColor=none;';
  7172. var itemW = w / p.Options;
  7173. var item1 = new Array(); //checkbox
  7174. var item2 = new Array(); //checkmark
  7175. for (var i = 0; i < p.Options; i++)
  7176. {
  7177. item1[i] = new mxCell('', new mxGeometry(i * itemW, h * 0.5 - 5, 10, 10), 'labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;');
  7178. item1[i].vertex = true;
  7179. v.insert(item1[i]);
  7180. item1[i].style +=
  7181. getOpacity(p, a) +
  7182. getStrokeColor(p, a) +
  7183. getFillColor(p, a) +
  7184. getStrokeWidth(p) +
  7185. getStrokeStyle(p) +
  7186. getShadow(p) +
  7187. getLabelStyle(p['Option_' + (i + 1)]);
  7188. if (p.Selected[i + 1] != null)
  7189. {
  7190. if (p.Selected[i + 1] == 1)
  7191. {
  7192. var fc = getStrokeColor(p, a);
  7193. fc = fc.replace('strokeColor', 'fillColor');
  7194. if (fc == '')
  7195. {
  7196. fc = 'fillColor=#000000;'
  7197. }
  7198. item2[i] = new mxCell('', new mxGeometry(2, 2, 6, 6), 'shape=mxgraph.mscae.general.checkmark;part=1;');
  7199. item2[i].vertex = true;
  7200. item1[i].insert(item2[i]);
  7201. item2[i].style += fc +
  7202. getOpacity(p, a) +
  7203. getStrokeColor(p, a) +
  7204. getStrokeWidth(p) +
  7205. getStrokeStyle(p);
  7206. }
  7207. }
  7208. item1[i].value = convertText(p['Option_' + (i + 1)]);
  7209. }
  7210. break;
  7211. case 'UI2RadioBlock' :
  7212. v.style += 'strokeColor=none;fillColor=none;';
  7213. var itemH = h / p.Options;
  7214. var item1 = new Array(); //checkbox
  7215. var item2 = new Array(); //checkmark
  7216. for (var i = 0; i < p.Options; i++)
  7217. {
  7218. item1[i] = new mxCell('', new mxGeometry(0, i * itemH + itemH * 0.5 - 5, 10, 10), 'shape=ellipse;labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;');
  7219. item1[i].vertex = true;
  7220. v.insert(item1[i]);
  7221. item1[i].style +=
  7222. getOpacity(p, a) +
  7223. getStrokeColor(p, a) +
  7224. getFillColor(p, a) +
  7225. getStrokeWidth(p) +
  7226. getStrokeStyle(p) +
  7227. getShadow(p) +
  7228. getLabelStyle(p['Option_' + (i + 1)]);
  7229. if (p.Selected != null)
  7230. {
  7231. if (p.Selected == (i + 1))
  7232. {
  7233. var fc = getStrokeColor(p, a);
  7234. fc = fc.replace('strokeColor', 'fillColor');
  7235. if (fc == '')
  7236. {
  7237. fc = 'fillColor=#000000;'
  7238. }
  7239. item2[i] = new mxCell('', new mxGeometry(2.5, 2.5, 5, 5), 'shape=ellipse;');
  7240. item2[i].vertex = true;
  7241. item1[i].insert(item2[i]);
  7242. item2[i].style += fc +
  7243. getOpacity(p, a) +
  7244. getStrokeColor(p, a) +
  7245. getStrokeWidth(p) +
  7246. getStrokeStyle(p);
  7247. }
  7248. }
  7249. item1[i].value = convertText(p['Option_' + (i + 1)]);
  7250. }
  7251. break;
  7252. case 'UI2HorizontalRadioBlock' :
  7253. v.style += 'strokeColor=none;fillColor=none;';
  7254. var itemW = w / p.Options;
  7255. var item1 = new Array(); //checkbox
  7256. var item2 = new Array(); //checkmark
  7257. for (var i = 0; i < p.Options; i++)
  7258. {
  7259. item1[i] = new mxCell('', new mxGeometry(i * itemW, h * 0.5 - 5, 10, 10), 'shape=ellipse;labelPosition=right;part=1;verticalLabelPosition=middle;align=left;verticalAlign=middle;spacingLeft=3;');
  7260. item1[i].vertex = true;
  7261. v.insert(item1[i]);
  7262. item1[i].style +=
  7263. getOpacity(p, a) +
  7264. getStrokeColor(p, a) +
  7265. getFillColor(p, a) +
  7266. getStrokeWidth(p) +
  7267. getStrokeStyle(p) +
  7268. getShadow(p) +
  7269. getLabelStyle(p['Option_' + (i + 1)]);
  7270. if (p.Selected != null)
  7271. {
  7272. if (p.Selected == (i + 1))
  7273. {
  7274. var fc = getStrokeColor(p, a);
  7275. fc = fc.replace('strokeColor', 'fillColor');
  7276. if (fc == '')
  7277. {
  7278. fc = 'fillColor=#000000;'
  7279. }
  7280. item2[i] = new mxCell('', new mxGeometry(2, 2, 6, 6), 'shape=ellipse;part=1;');
  7281. item2[i].vertex = true;
  7282. item1[i].insert(item2[i]);
  7283. item2[i].style += fc +
  7284. getOpacity(p, a) +
  7285. getStrokeColor(p, a) +
  7286. getStrokeWidth(p) +
  7287. getStrokeStyle(p);
  7288. }
  7289. }
  7290. item1[i].value = convertText(p['Option_' + (i + 1)]);
  7291. }
  7292. break;
  7293. case 'UI2HSliderBlock' :
  7294. case 'UI2VSliderBlock' :
  7295. v.style += 'shape=mxgraph.mockup.forms.horSlider;sliderStyle=basic;handleStyle=handle;' +
  7296. getOpacity(p, a) +
  7297. getStrokeColor(p, a) +
  7298. getFillColor(p, a) +
  7299. getStrokeWidth(p) +
  7300. getStrokeStyle(p) +
  7301. getShadow(p);
  7302. if (obj.Class == 'UI2VSliderBlock')
  7303. {
  7304. v.style += 'direction=south;';
  7305. }
  7306. v.style += 'sliderPos=' + (p.ScrollVal * 100) + ';';
  7307. break;
  7308. case 'UI2DatePickerBlock' :
  7309. v.style += 'strokeColor=none;fillColor=none;';
  7310. var item1 = new mxCell('', new mxGeometry(0, 0, w * 0.6, h), 'part=1;');
  7311. item1.vertex = true;
  7312. v.insert(item1);
  7313. item1.style +=
  7314. getOpacity(p, a) +
  7315. getStrokeColor(p, a) +
  7316. getStrokeWidth(p) +
  7317. getStrokeStyle(p) +
  7318. getShadow(p) +
  7319. getLabelStyle(p.Date);
  7320. item1.value = convertText(p.Date);
  7321. var fc = getStrokeColor(p, a);
  7322. fc = fc.replace('strokeColor', 'fillColor');
  7323. if (fc == '')
  7324. {
  7325. fc = 'fillColor=#000000;'
  7326. }
  7327. var item2 = new mxCell('', new mxGeometry(w * 0.75, 0, w * 0.25, h), 'part=1;shape=mxgraph.gmdl.calendar;');
  7328. item2.vertex = true;
  7329. v.insert(item2);
  7330. item2.style += fc +
  7331. getOpacity(p, a) +
  7332. getStrokeColor(p, a) +
  7333. getFillColor(p, a) +
  7334. getStrokeWidth(p) +
  7335. getStrokeStyle(p) +
  7336. getShadow(p);
  7337. break;
  7338. case 'UI2SearchBlock' :
  7339. v.style += 'shape=mxgraph.mockup.forms.searchBox;mainText=;flipH=1;align=left;spacingLeft=26;' +
  7340. getOpacity(p, a) +
  7341. getStrokeColor(p, a) +
  7342. getStrokeWidth(p) +
  7343. getStrokeStyle(p) +
  7344. getShadow(p) +
  7345. getFontSize(p.Search) +
  7346. getFontColor(p.Search) +
  7347. getFontStyle(p.Search);
  7348. v.value = convertText(p.Search);
  7349. break;
  7350. case 'UI2NumericStepperBlock' :
  7351. var fc = getStrokeColor(p, a);
  7352. fc = fc.replace('strokeColor', 'fillColor');
  7353. if (fc == '')
  7354. {
  7355. fc = 'fillColor=#000000;'
  7356. }
  7357. v.style += 'shape=mxgraph.mockup.forms.spinner;spinLayout=right;spinStyle=normal;adjStyle=triangle;mainText=;align=left;spacingLeft=8;' + fc +
  7358. getOpacity(p, a) +
  7359. getStrokeColor(p, a) +
  7360. getStrokeWidth(p) +
  7361. getStrokeStyle(p) +
  7362. getShadow(p) +
  7363. getFontSize(p.Number) +
  7364. getFontColor(p.Number) +
  7365. getFontStyle(p.Number);
  7366. v.value = convertText(p.Number);
  7367. break;
  7368. case 'UI2TableBlock' :
  7369. break;
  7370. case 'UI2ButtonBarBlock' :
  7371. v.style +=
  7372. getOpacity(p, a) +
  7373. getStrokeColor(p, a) +
  7374. getStrokeWidth(p) +
  7375. getStrokeStyle(p) +
  7376. getShadow(p);
  7377. var item1 = new Array();
  7378. var item2 = new Array();
  7379. var itemW = w / p.Buttons;
  7380. for (var i = 0; i <= (p.Buttons - 1); i++)
  7381. {
  7382. if (i == (p.Selected - 1))
  7383. {
  7384. item2[i] = new mxCell('', new mxGeometry(i * itemW, 0, itemW, h), '');
  7385. item2[i].vertex = true;
  7386. v.insert(item2[i]);
  7387. item2[i].style +=
  7388. getOpacity(p, a) +
  7389. getStrokeColor(p, a) +
  7390. getFillColor(p, a) +
  7391. getStrokeWidth(p) +
  7392. getStrokeStyle(p) +
  7393. getShadow(p) +
  7394. getLabelStyle(p['Button_' + (i + 1)]);
  7395. item2[i].value = convertText(p['Button_' + (i + 1)]);
  7396. }
  7397. else
  7398. {
  7399. item1[i] = new mxCell('', new mxGeometry(i * itemW, 0, itemW, h), 'strokeColor=none;');
  7400. item1[i].vertex = true;
  7401. v.insert(item1[i]);
  7402. item1[i].style +=
  7403. getOpacity(p, a) +
  7404. getFillColor(p, a) +
  7405. getShadow(p);
  7406. item2[i] = new mxCell('', new mxGeometry(0, 0, itemW, h), 'fillColor=#000000;fillOpacity=25;');
  7407. item2[i].vertex = true;
  7408. item1[i].insert(item2[i]);
  7409. item2[i].style +=
  7410. getStrokeColor(p, a) +
  7411. getStrokeWidth(p) +
  7412. getStrokeStyle(p) +
  7413. getLabelStyle(p['Button_' + (i + 1)]);
  7414. item2[i].value = convertText(p['Button_' + (i + 1)]);
  7415. }
  7416. }
  7417. break;
  7418. case 'UI2VerticalButtonBarBlock' :
  7419. v.style +=
  7420. getOpacity(p, a) +
  7421. getStrokeColor(p, a) +
  7422. getStrokeWidth(p) +
  7423. getStrokeStyle(p) +
  7424. getShadow(p);
  7425. var item1 = new Array();
  7426. var item2 = new Array();
  7427. var itemH = h / p.Buttons;
  7428. for (var i = 0; i <= (p.Buttons - 1); i++)
  7429. {
  7430. if (i == (p.Selected - 1))
  7431. {
  7432. item2[i] = new mxCell('', new mxGeometry(0, i * itemH, w, itemH), '');
  7433. item2[i].vertex = true;
  7434. v.insert(item2[i]);
  7435. item2[i].style +=
  7436. getOpacity(p, a) +
  7437. getStrokeColor(p, a) +
  7438. getFillColor(p, a) +
  7439. getStrokeWidth(p) +
  7440. getStrokeStyle(p) +
  7441. getShadow(p) +
  7442. getLabelStyle(p['Button_' + (i + 1)]);
  7443. item2[i].value = convertText(p['Button_' + (i + 1)]);
  7444. }
  7445. else
  7446. {
  7447. item1[i] = new mxCell('', new mxGeometry(0, i * itemH, w, itemH), 'strokeColor=none;');
  7448. item1[i].vertex = true;
  7449. v.insert(item1[i]);
  7450. item1[i].style +=
  7451. getOpacity(p, a) +
  7452. getFillColor(p, a) +
  7453. getShadow(p);
  7454. item2[i] = new mxCell('', new mxGeometry(0, 0, w, itemH), 'fillColor=#000000;fillOpacity=25;');
  7455. item2[i].vertex = true;
  7456. item1[i].insert(item2[i]);
  7457. item2[i].style +=
  7458. getStrokeColor(p, a) +
  7459. getStrokeWidth(p) +
  7460. getStrokeStyle(p) +
  7461. getLabelStyle(p['Button_' + (i + 1)]);
  7462. item2[i].value = convertText(p['Button_' + (i + 1)]);
  7463. }
  7464. }
  7465. break;
  7466. case 'UI2LinkBarBlock' :
  7467. v.style += 'strokeColor=none;fillColor=none;' +
  7468. getOpacity(p, a) +
  7469. getStrokeColor(p, a) +
  7470. getStrokeWidth(p) +
  7471. getStrokeStyle(p) +
  7472. getShadow(p);
  7473. var item1 = new Array();
  7474. var item2 = new Array();
  7475. var itemW = w / p.Links;
  7476. for (var i = 0; i < (p.Links); i++)
  7477. {
  7478. if (i != 0)
  7479. {
  7480. item2[i] = new mxCell('', new mxGeometry(i * itemW, 0, itemW, h), 'shape=partialRectangle;top=0;bottom=0;right=0;fillColor=none;');
  7481. item2[i].style +=
  7482. getOpacity(p, a) +
  7483. getShadow(p) +
  7484. getStrokeColor(p, a) +
  7485. getStrokeWidth(p) +
  7486. getStrokeStyle(p);
  7487. }
  7488. else
  7489. {
  7490. item2[i] = new mxCell('', new mxGeometry(i * itemW, 0, itemW, h), 'fillColor=none;strokeColor=none;');
  7491. }
  7492. item2[i].vertex = true;
  7493. v.insert(item2[i]);
  7494. item2[i].style +=
  7495. getLabelStyle(p['Link_' + (i + 1)]);
  7496. item2[i].value = convertText(p['Link_' + (i + 1)]);
  7497. }
  7498. break;
  7499. case 'UI2BreadCrumbsBlock' :
  7500. v.style += 'strokeColor=none;fillColor=none;' +
  7501. getOpacity(p, a) +
  7502. getStrokeColor(p, a) +
  7503. getStrokeWidth(p) +
  7504. getStrokeStyle(p) +
  7505. getShadow(p);
  7506. var item1 = new Array();
  7507. var item2 = new Array();
  7508. var itemW = w / p.Links;
  7509. for (var i = 0; i < (p.Links); i++)
  7510. {
  7511. item1[i] = new mxCell('', new mxGeometry(i * itemW, 0, itemW, h), 'fillColor=none;strokeColor=none;');
  7512. item1[i].vertex = true;
  7513. v.insert(item1[i]);
  7514. item1[i].style +=
  7515. getLabelStyle(p['Link_' + (i + 1)]);
  7516. item1[i].value = convertText(p['Link_' + (i + 1)]);
  7517. }
  7518. for (var i = 1; i < (p.Links); i++)
  7519. {
  7520. item2[i] = new mxCell('', new mxGeometry(i / p.Links, 0.5, 6, 10), 'shape=mxgraph.ios7.misc.right;');
  7521. item2[i].geometry.relative = true;
  7522. item2[i].geometry.offset = new mxPoint(-3, -5);
  7523. item2[i].vertex = true;
  7524. v.insert(item2[i]);
  7525. }
  7526. break;
  7527. case 'UI2MenuBarBlock' :
  7528. v.style += 'strokeColor=none;' +
  7529. getOpacity(p, a) +
  7530. getFillColor(p, a) +
  7531. getShadow(p);
  7532. var item1 = new Array();
  7533. var itemW = w / (p.Buttons + 1);
  7534. for (var i = 0; i <= (p.Buttons - 1); i++)
  7535. {
  7536. if (i != (p.Selected - 1))
  7537. {
  7538. item1[i] = new mxCell('', new mxGeometry(0, 0, itemW, h), 'strokeColor=none;fillColor=none;resizeHeight=1;');
  7539. }
  7540. else
  7541. {
  7542. item1[i] = new mxCell('', new mxGeometry(0, 0, itemW, h), 'fillColor=#000000;fillOpacity=25;strokeColor=none;resizeHeight=1;');
  7543. }
  7544. item1[i].geometry.relative = true;
  7545. item1[i].geometry.offset = new mxPoint(i * itemW, 0);
  7546. item1[i].vertex = true;
  7547. v.insert(item1[i]);
  7548. item1[i].style +=
  7549. getLabelStyle(p['MenuItem_' + (i + 1)]);
  7550. item1[i].value = convertText(p['MenuItem_' + (i + 1)]);
  7551. }
  7552. break;
  7553. case 'UI2AtoZBlock' :
  7554. v.style += 'fillColor=none;strokeColor=none;' +
  7555. getLabelStyle(p['Text_0']);
  7556. v.value = '0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z';
  7557. break;
  7558. case 'UI2PaginationBlock' :
  7559. v.style += 'fillColor=none;strokeColor=none;' +
  7560. getLabelStyle(p.Text_prev);
  7561. v.value = convertText(p.Text_prev) + ' ';
  7562. for (var i = 0; i < p.Links; i++)
  7563. {
  7564. v.value += convertText(p['Link_' + (i + 1)]) + ' ';
  7565. }
  7566. v.value += convertText(p.Text_next);
  7567. break;
  7568. case 'UI2ContextMenuBlock' :
  7569. v.style +=
  7570. getOpacity(p, a) +
  7571. getFillColor(p, a) +
  7572. getStrokeColor(p, a) +
  7573. getStrokeWidth(p) +
  7574. getStrokeStyle(p) +
  7575. getShadow(p);
  7576. var item = new Array();
  7577. var icon = new Array();
  7578. var shortcut = new Array();
  7579. var itemH = h / p.Lines;
  7580. var st = null;
  7581. for (var i = 0; i < p.Lines; i++)
  7582. {
  7583. //add label
  7584. if (p['Item_' + (i + 1)] != null)
  7585. {
  7586. if (st == null)
  7587. {
  7588. st = '' +
  7589. getFontSize(p['Item_' + (i + 1)]) +
  7590. getFontColor(p['Item_' + (i + 1)]) +
  7591. getFontStyle(p['Item_' + (i + 1)]);
  7592. }
  7593. item[i] = new mxCell('', new mxGeometry(0, i * h / p.Lines, w, itemH), 'strokeColor=none;fillColor=none;spacingLeft=20;align=left;html=1;');
  7594. item[i].vertex = true;
  7595. v.insert(item[i]);
  7596. item[i].style += st;
  7597. item[i].value = convertText(p['Item_' + (i + 1)]);
  7598. }
  7599. //add icon
  7600. if (p.Icons[(i + 1)] != null && item[i] != null)
  7601. {
  7602. if (p.Icons[(i + 1)] == 'dot')
  7603. {
  7604. icon[i] = new mxCell('', new mxGeometry(0, 0.5, 8, 8), 'shape=ellipse;strokeColor=none;');
  7605. icon[i].geometry.offset = new mxPoint(6, -4);
  7606. }
  7607. else if (p.Icons[(i + 1)] == 'check')
  7608. {
  7609. icon[i] = new mxCell('', new mxGeometry(0, 0.5, 7, 8), 'shape=mxgraph.mscae.general.checkmark;strokeColor=none;');
  7610. icon[i].geometry.offset = new mxPoint(6.5, -4);
  7611. }
  7612. if (icon[i] != null)
  7613. {
  7614. icon[i].geometry.relative = true;
  7615. icon[i].vertex = true;
  7616. item[i].insert(icon[i]);
  7617. var fc = getStrokeColor(p, a);
  7618. fc = fc.replace('strokeColor', 'fillColor');
  7619. if (fc == '')
  7620. {
  7621. fc = 'fillColor=#000000;'
  7622. }
  7623. icon[i].style += fc;
  7624. }
  7625. }
  7626. //add shortcut
  7627. if (p['Shortcut_' + (i + 1)] != null)
  7628. {
  7629. if (st == null)
  7630. {
  7631. st = '' +
  7632. getFontSize(p['Shortcut_' + (i + 1)]) +
  7633. getFontColor(p['Shortcut_' + (i + 1)]) +
  7634. getFontStyle(p['Shortcut_' + (i + 1)]);
  7635. }
  7636. shortcut[i] = new mxCell('', new mxGeometry(w * 0.6, i * h / p.Lines, w * 0.4, itemH), 'strokeColor=none;fillColor=none;spacingRight=3;align=right;html=1;');
  7637. shortcut[i].vertex = true;
  7638. v.insert(shortcut[i]);
  7639. shortcut[i].style += st;
  7640. shortcut[i].value = convertText(p['Shortcut_' + (i + 1)]);
  7641. }
  7642. //add line
  7643. if (p.Dividers[(i + 1)] != null)
  7644. {
  7645. item[i] = new mxCell('', new mxGeometry(w * 0.05, i * h / p.Lines, w * 0.9, itemH), 'shape=line;strokeWidth=0.25;');
  7646. item[i].vertex = true;
  7647. v.insert(item[i]);
  7648. item[i].style += getStrokeColor(p, a);
  7649. }
  7650. }
  7651. break;
  7652. case 'UI2TreePaneBlock' :
  7653. break;
  7654. case 'UI2ProgressBarBlock' :
  7655. v.style += 'shape=mxgraph.mockup.misc.progressBar;fillColor2=#888888;barPos=' + (p.ScrollVal * 100) + ';';
  7656. break;
  7657. case 'UI2TooltipSquareBlock' :
  7658. v.style += 'html=1;shape=callout;flipV=1;base=13;size=7;position=0.5;position2=0.66;rounded=1;arcSize=' + (p.RoundCorners) + ';' +
  7659. getOpacity(p, a) +
  7660. getFillColor(p, a) +
  7661. getStrokeColor(p, a) +
  7662. getStrokeWidth(p) +
  7663. getStrokeStyle(p) +
  7664. getShadow(p) +
  7665. getLabelStyle(p.Tip);
  7666. v.value = convertText(p.Tip);
  7667. break;
  7668. case 'UI2CalloutBlock' :
  7669. v.style += 'shape=ellipse;' +
  7670. getOpacity(p, a) +
  7671. getFillColor(p, a) +
  7672. getStrokeColor(p, a) +
  7673. getStrokeWidth(p) +
  7674. getStrokeStyle(p) +
  7675. getShadow(p) +
  7676. getLabelStyle(p.Txt);
  7677. v.value = convertText(p.Txt);
  7678. break;
  7679. case 'UI2AlertBlock' :
  7680. v.style +=
  7681. getOpacity(p, a) +
  7682. getStrokeColor(p, a) +
  7683. getFillColor(p, a) +
  7684. getStrokeWidth(p) +
  7685. getStrokeStyle(p) +
  7686. getShadow(p) +
  7687. getRotation(p, a, v) +
  7688. getLabelStyle(p.Txt);
  7689. v.value = convertText(p.Txt);
  7690. var item1 = new mxCell('', new mxGeometry(0, 0, w, 30), 'part=1;resizeHeight=0;');
  7691. item1.vertex = true;
  7692. v.insert(item1);
  7693. item1.style += st +
  7694. getOpacity(p, a) +
  7695. getStrokeColor(p, a) +
  7696. getFillColor(p, a) +
  7697. getStrokeWidth(p) +
  7698. getStrokeStyle(p) +
  7699. getLabelStyle(p.Title);
  7700. item1.value = convertText(p.Title);
  7701. var item2 = new mxCell('', new mxGeometry(1, 0.5, 20, 20), 'part=1;shape=ellipse;strokeColor=#008cff;resizable=0;fillColor=none;html=1;');
  7702. item2.geometry.relative = true;
  7703. item2.geometry.offset = new mxPoint(-25, -10);
  7704. item2.vertex = true;
  7705. item1.insert(item2);
  7706. var bw = 45;
  7707. var bh = 20;
  7708. var bs = 10;
  7709. var totalW = bw * p.Buttons + (bs * p.Buttons - 1)
  7710. item3 = new Array();
  7711. for (var i = 0; i < p.Buttons; i++)
  7712. {
  7713. item3[i] = new mxCell('', new mxGeometry(0.5, 1, bw, bh), 'part=1;html=1;');
  7714. item3[i].geometry.relative = true;
  7715. item3[i].geometry.offset = new mxPoint(-totalW * 0.5 + i * (bw + bs), -40);
  7716. item3[i].vertex = true;
  7717. v.insert(item3[i]);
  7718. item3[i].style +=
  7719. getOpacity(p, a) +
  7720. getStrokeColor(p, a) +
  7721. getFillColor(p, a) +
  7722. getStrokeWidth(p) +
  7723. getStrokeStyle(p) +
  7724. getLabelStyle(p['Button_' + (i + 1)]);
  7725. item3[i].value = convertText(p['Button_' + (i + 1)]);
  7726. }
  7727. break;
  7728. case 'UMLClassBlock' :
  7729. if (p.Simple == 0)
  7730. {
  7731. var st = getFillColor(p, a);
  7732. var th = p.TitleHeight * scale;
  7733. st = st.replace('fillColor', 'swimlaneFillColor');
  7734. if (st == '')
  7735. {
  7736. st = 'swimlaneFillColor=#ffffff;'
  7737. }
  7738. v.style += 'swimlane;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;' + st +
  7739. 'startSize=' + th + ';' +
  7740. getOpacity(p, a) +
  7741. getStrokeColor(p, a) +
  7742. getFillColor(p, a) +
  7743. getStrokeWidth(p) +
  7744. getStrokeStyle(p) +
  7745. getLabelStyle(p.Title);
  7746. v.value = convertText(p.Title);
  7747. var item = new Array();
  7748. var divider = new Array();
  7749. var currH = th / h;
  7750. for (var i = 0; i <= p.Attributes; i++)
  7751. {
  7752. if (i > 0)
  7753. {
  7754. divider[i] = new mxCell('', new mxGeometry(0, 0, 40, 8), 'line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;');
  7755. divider[i].vertex = true;
  7756. v.insert(divider[i]);
  7757. }
  7758. var itemH = 0;
  7759. if (i < p.Attributes)
  7760. {
  7761. itemH = p['Text' + (i + 1) + 'Percent'];
  7762. currH += itemH;
  7763. }
  7764. else
  7765. {
  7766. itemH = 1 - currH;
  7767. }
  7768. item[i] = new mxCell('', new mxGeometry(0, 0, w, (h - th) * itemH), 'part=1;resizeHeight=0;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;');
  7769. item[i].vertex = true;
  7770. v.insert(item[i]);
  7771. item[i].style += st +
  7772. getOpacity(p, a) +
  7773. getFontSize(p['Text' + (i + 1)]) +
  7774. getFontColor(p['Text' + (i + 1)]) +
  7775. getFontStyle(p['Text' + (i + 1)]);
  7776. item[i].value = convertText(p['Text' + (i + 1)]);
  7777. }
  7778. }
  7779. else
  7780. {
  7781. v.style +=
  7782. getOpacity(p, a) +
  7783. getStrokeColor(p, a) +
  7784. getFillColor(p, a) +
  7785. getStrokeWidth(p) +
  7786. getStrokeStyle(p) +
  7787. getLabelStyle(p.Title);
  7788. v.value = convertText(p.Title);
  7789. }
  7790. break;
  7791. case 'ERDEntityBlock' :
  7792. var st = getFillColor(p, a);
  7793. var th = p.Name_h * scale;
  7794. st = st.replace('fillColor', 'swimlaneFillColor');
  7795. if (st == '')
  7796. {
  7797. st = 'swimlaneFillColor=#ffffff;'
  7798. }
  7799. v.style += 'swimlane;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;' + st +
  7800. 'startSize=' + th + ';' +
  7801. getOpacity(p, a) +
  7802. getStrokeColor(p, a) +
  7803. getStrokeWidth(p) +
  7804. getStrokeStyle(p) +
  7805. getLabelStyle(p.Name);
  7806. if (p.ShadedHeader)
  7807. {
  7808. v.style += 'fillColor=#e0e0e0;';
  7809. }
  7810. else
  7811. {
  7812. v.style += getFillColor(p, a);
  7813. }
  7814. v.value = convertText(p.Name);
  7815. var item = new Array();
  7816. var currH = th / h;
  7817. for (var i = 0; i < p.Fields; i++)
  7818. {
  7819. var itemH = 0;
  7820. item[i] = new mxCell('', new mxGeometry(0, 0, w, p['Field' + (i + 1) + '_h'] * scale), 'part=1;resizeHeight=0;strokeColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;');
  7821. item[i].vertex = true;
  7822. v.insert(item[i]);
  7823. item[i].style += st +
  7824. getFontSize(p['Field' + (i + 1)]) +
  7825. getFontColor(p['Field' + (i + 1)]) +
  7826. getFontStyle(p['Field' + (i + 1)]);
  7827. if (p.AltRows == 1 && (i % 2 != 0))
  7828. {
  7829. item[i].style += 'fillColor=#000000;opacity=5;';
  7830. }
  7831. else
  7832. {
  7833. item[i].style += 'fillColor=none;' +
  7834. getOpacity(p, a);
  7835. }
  7836. item[i].value = convertText(p['Field' + (i + 1)]);
  7837. }
  7838. break;
  7839. case 'ERDEntityBlock2' :
  7840. var st = getFillColor(p, a);
  7841. var th = p.Name_h * scale;
  7842. st = st.replace('fillColor', 'swimlaneFillColor');
  7843. if (st == '')
  7844. {
  7845. st = 'swimlaneFillColor=#ffffff;'
  7846. }
  7847. v.style += 'swimlane;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;' + st +
  7848. 'startSize=' + th + ';' +
  7849. getOpacity(p, a) +
  7850. getStrokeColor(p, a) +
  7851. getStrokeWidth(p) +
  7852. getStrokeStyle(p) +
  7853. getLabelStyle(p.Name);
  7854. if (p.ShadedHeader)
  7855. {
  7856. v.style += 'fillColor=#e0e0e0;';
  7857. }
  7858. else
  7859. {
  7860. v.style += getFillColor(p, a);
  7861. }
  7862. v.value = convertText(p.Name);
  7863. var item = new Array();
  7864. var key = new Array();
  7865. var currH = th;
  7866. var keyW = 30;
  7867. if (p.Column1 != null)
  7868. {
  7869. keyW = p.Column1 * scale;
  7870. }
  7871. for (var i = 0; i < p.Fields; i++)
  7872. {
  7873. var itemH = 0;
  7874. key[i] = new mxCell('', new mxGeometry(0, currH, keyW, p['Key' + (i + 1) + '_h'] * scale), 'strokeColor=none;part=1;resizeHeight=0;align=center;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;');
  7875. key[i].vertex = true;
  7876. v.insert(key[i]);
  7877. key[i].style += st +
  7878. getFontSize(p['Key' + (i + 1)]) +
  7879. getFontColor(p['Key' + (i + 1)]) +
  7880. getFontStyle(p['Key' + (i + 1)]);
  7881. if (p.AltRows == 1 && (i % 2 != 0))
  7882. {
  7883. key[i].style += 'fillColor=#000000;fillOpacity=5;';
  7884. }
  7885. else
  7886. {
  7887. key[i].style += 'fillColor=none;' +
  7888. getOpacity(p, a);
  7889. }
  7890. key[i].value = convertText(p['Key' + (i + 1)]);
  7891. item[i] = new mxCell('', new mxGeometry(keyW, currH, w - keyW, p['Field' + (i + 1) + '_h'] * scale), 'shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;');
  7892. item[i].vertex = true;
  7893. v.insert(item[i]);
  7894. item[i].style += st +
  7895. getStrokeColor(p, a) +
  7896. getStrokeWidth(p) +
  7897. getStrokeStyle(p) +
  7898. getFontSize(p['Field' + (i + 1)]) +
  7899. getFontColor(p['Field' + (i + 1)]) +
  7900. getFontStyle(p['Field' + (i + 1)]);
  7901. if (p.AltRows == 1 && (i % 2 != 0))
  7902. {
  7903. item[i].style += 'fillColor=#000000;fillOpacity=5;';
  7904. }
  7905. else
  7906. {
  7907. item[i].style += 'fillColor=none;' +
  7908. getOpacity(p, a);
  7909. }
  7910. item[i].value = convertText(p['Field' + (i + 1)]);
  7911. currH += p['Key' + (i + 1) + '_h'] * scale;
  7912. }
  7913. break;
  7914. case 'ERDEntityBlock3' :
  7915. var st = getFillColor(p, a);
  7916. var th = p.Name_h * scale;
  7917. st = st.replace('fillColor', 'swimlaneFillColor');
  7918. if (st == '')
  7919. {
  7920. st = 'swimlaneFillColor=#ffffff;'
  7921. }
  7922. v.style += 'swimlane;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;' + st +
  7923. 'startSize=' + th + ';' +
  7924. getOpacity(p, a) +
  7925. getStrokeColor(p, a) +
  7926. getStrokeWidth(p) +
  7927. getStrokeStyle(p) +
  7928. getLabelStyle(p.Name);
  7929. if (p.ShadedHeader)
  7930. {
  7931. v.style += 'fillColor=#e0e0e0;';
  7932. }
  7933. else
  7934. {
  7935. v.style += getFillColor(p, a);
  7936. }
  7937. v.value = convertText(p.Name);
  7938. var item = new Array();
  7939. var key = new Array();
  7940. var currH = th;
  7941. var keyW = 30;
  7942. if (p.Column1 != null)
  7943. {
  7944. keyW = p.Column1 * scale;
  7945. }
  7946. for (var i = 0; i < p.Fields; i++)
  7947. {
  7948. var itemH = 0;
  7949. key[i] = new mxCell('', new mxGeometry(0, currH, keyW, p['Field' + (i + 1) + '_h'] * scale), 'strokeColor=none;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;');
  7950. key[i].vertex = true;
  7951. v.insert(key[i]);
  7952. key[i].style += st +
  7953. getFontSize(p['Field' + (i + 1)]) +
  7954. getFontColor(p['Field' + (i + 1)]) +
  7955. getFontStyle(p['Field' + (i + 1)]);
  7956. if (p.AltRows == 1 && (i % 2 != 0))
  7957. {
  7958. key[i].style += 'fillColor=#000000;fillOpacity=5;';
  7959. }
  7960. else
  7961. {
  7962. key[i].style += 'fillColor=none;' +
  7963. getOpacity(p, a);
  7964. }
  7965. key[i].value = convertText(p['Field' + (i + 1)]);
  7966. item[i] = new mxCell('', new mxGeometry(keyW, currH, w - keyW, p['Type' + (i + 1) + '_h'] * scale), 'shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;');
  7967. item[i].vertex = true;
  7968. v.insert(item[i]);
  7969. item[i].style += st +
  7970. getStrokeColor(p, a) +
  7971. getStrokeWidth(p) +
  7972. getStrokeStyle(p) +
  7973. getFontSize(p['Type' + (i + 1)]) +
  7974. getFontColor(p['Type' + (i + 1)]) +
  7975. getFontStyle(p['Type' + (i + 1)]);
  7976. if (p.AltRows == 1 && (i % 2 != 0))
  7977. {
  7978. item[i].style += 'fillColor=#000000;fillOpacity=5;';
  7979. }
  7980. else
  7981. {
  7982. item[i].style += 'fillColor=none;' +
  7983. getOpacity(p, a);
  7984. }
  7985. item[i].value = convertText(p['Type' + (i + 1)]);
  7986. currH += p['Field' + (i + 1) + '_h'] * scale;
  7987. }
  7988. break;
  7989. case 'ERDEntityBlock4' :
  7990. var st = getFillColor(p, a);
  7991. var th = p.Name_h * scale;
  7992. st = st.replace('fillColor', 'swimlaneFillColor');
  7993. if (st == '')
  7994. {
  7995. st = 'swimlaneFillColor=#ffffff;'
  7996. }
  7997. v.style += 'swimlane;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;' + st +
  7998. 'startSize=' + th + ';' +
  7999. getOpacity(p, a) +
  8000. getStrokeColor(p, a) +
  8001. getStrokeWidth(p) +
  8002. getStrokeStyle(p) +
  8003. getLabelStyle(p.Name);
  8004. if (p.ShadedHeader)
  8005. {
  8006. v.style += 'fillColor=#e0e0e0;';
  8007. }
  8008. else
  8009. {
  8010. v.style += getFillColor(p, a);
  8011. }
  8012. v.value = convertText(p.Name);
  8013. var item = new Array();
  8014. var key = new Array();
  8015. var type = new Array();
  8016. var currH = th;
  8017. var keyW = 30;
  8018. var typeW = 40;
  8019. if (p.Column1 != null)
  8020. {
  8021. keyW = p.Column1 * scale;
  8022. }
  8023. if (p.Column2 != null)
  8024. {
  8025. typeW = p.Column2 * scale;
  8026. }
  8027. for (var i = 0; i < p.Fields; i++)
  8028. {
  8029. var itemH = 0;
  8030. key[i] = new mxCell('', new mxGeometry(0, currH, keyW, p['Key' + (i + 1) + '_h'] * scale), 'strokeColor=none;part=1;resizeHeight=0;align=center;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;');
  8031. key[i].vertex = true;
  8032. v.insert(key[i]);
  8033. key[i].style += st +
  8034. getFontSize(p['Key' + (i + 1)]) +
  8035. getFontColor(p['Key' + (i + 1)]) +
  8036. getFontStyle(p['Key' + (i + 1)]);
  8037. if (p.AltRows == 1 && (i % 2 != 0))
  8038. {
  8039. key[i].style += 'fillColor=#000000;fillOpacity=5;';
  8040. }
  8041. else
  8042. {
  8043. key[i].style += 'fillColor=none;' +
  8044. getOpacity(p, a);
  8045. }
  8046. key[i].value = convertText(p['Key' + (i + 1)]);
  8047. item[i] = new mxCell('', new mxGeometry(keyW, currH, w - keyW - typeW, p['Field' + (i + 1) + '_h'] * scale), 'shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;');
  8048. item[i].vertex = true;
  8049. v.insert(item[i]);
  8050. item[i].style += st +
  8051. getStrokeColor(p, a) +
  8052. getStrokeWidth(p) +
  8053. getStrokeStyle(p) +
  8054. getFontSize(p['Field' + (i + 1)]) +
  8055. getFontColor(p['Field' + (i + 1)]) +
  8056. getFontStyle(p['Field' + (i + 1)]);
  8057. if (p.AltRows == 1 && (i % 2 != 0))
  8058. {
  8059. item[i].style += 'fillColor=#000000;fillOpacity=5;';
  8060. }
  8061. else
  8062. {
  8063. item[i].style += 'fillColor=none;' +
  8064. getOpacity(p, a);
  8065. }
  8066. item[i].value = convertText(p['Field' + (i + 1)]);
  8067. type[i] = new mxCell('', new mxGeometry(w - typeW, currH, typeW, p['Type' + (i + 1) + '_h'] * scale), 'shape=partialRectangle;top=0;right=0;bottom=0;part=1;resizeHeight=0;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;');
  8068. type[i].vertex = true;
  8069. v.insert(type[i]);
  8070. type[i].style += st +
  8071. getStrokeColor(p, a) +
  8072. getStrokeWidth(p) +
  8073. getStrokeStyle(p) +
  8074. getFontSize(p['Type' + (i + 1)]) +
  8075. getFontColor(p['Type' + (i + 1)]) +
  8076. getFontStyle(p['Type' + (i + 1)]);
  8077. if (p.AltRows == 1 && (i % 2 != 0))
  8078. {
  8079. type[i].style += 'fillColor=#000000;fillOpacity=5;';
  8080. }
  8081. else
  8082. {
  8083. type[i].style += 'fillColor=none;' +
  8084. getOpacity(p, a);
  8085. }
  8086. type[i].value = convertText(p['Type' + (i + 1)]);
  8087. currH += p['Key' + (i + 1) + '_h'] * scale;
  8088. }
  8089. break;
  8090. }
  8091. return v;
  8092. };
  8093. })();