/* Copyright 2008 Google Inc. | |
This work is licensed under a Creative Commons Attribution 2.5 License. | |
For information, see: | |
http://creativecommons.org/licenses/by/2.5/ | |
For the actual license text, see: | |
http://creativecommons.org/licenses/by/2.5/legalcode | |
*/ | |
digraph SoCOverview { | |
/* 11 inches x 96 DPI is 1056 pixels wide */ | |
size="11,11"; | |
node [shape=box]; | |
subgraph cluster0 { | |
color="white"; | |
AppEngine | |
[shape=record style=filled fillcolor=lightgrey color=black | |
label="{{ <DatastoreAPI> Datastore API | <UsersAPI> Users API | <DjangoForms> Django Forms }| Google App Engine}"] | |
00 [style=invis]; | |
/* manually assigned "level" ranks to produce an easier-to-read graph */ | |
{ rank=same; | |
"00"; "AppEngine"; | |
}; | |
}; | |
/* invisible "level" graph to enable assigned of levels to groups of nodes */ | |
01 [style=invis]; | |
01 -> 00 [style=invis]; | |
10 -> 01 [style=invis]; | |
subgraph cluster1 { | |
label="SoC Framework"; | |
style=filled; | |
color=black; | |
fillcolor=lightgrey; | |
node [shape=box style=filled color=black fillcolor=white]; | |
SoCModels [label="Common Models (Person, Work, Group, Program, etc.)"]; | |
SoCViews [label="Common Views (Models, Actions, Reports, etc.)"]; | |
SoCTemplates | |
[label="Base Django Templates" shape=ellipse style=solid color=white]; | |
SoCControllers | |
[label="Generic Controllers (Auth, Membership, Attach, etc.)" shape=diamond]; | |
12 [style=invis]; | |
11 [style=invis]; | |
10 [style=invis]; | |
{ rank=same; | |
"12"; "SoCViews"; | |
}; | |
{ rank=same; | |
"10"; "SoCControllers"; "SoCModels"; | |
}; | |
}; | |
13 [style=invis]; | |
13 -> 12 [style=invis]; | |
12 -> 11 [style=invis]; | |
11 -> 10 [style=invis]; | |
SoCViews -> AppEngine:DjangoForms; | |
SoCControllers -> AppEngine:UsersAPI; | |
SoCModels -> AppEngine:DatastoreAPI; | |
SoCViews -> SoCModels; | |
SoCViews -> SoCTemplates [constraint=false]; | |
SoCModels -> SoCViews [style=dashed constraint=false]; | |
SoCViews -> SoCControllers [style=dashed]; | |
SoCControllers -> SoCViews [constraint=false]; | |
SoCControllers -> SoCModels [constraint=false]; | |
} |