|
@@ -0,0 +1,240 @@
|
|
|
+%!
|
|
|
+% we need to define metric units
|
|
|
+/mm {2.834 mul} def
|
|
|
+/cm {28.34 mul } def
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+% Configurable section
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+% sets the line width of the class graph to 0.5 points
|
|
|
+/SetLineWidth { 0.5 setlinewidth} def
|
|
|
+
|
|
|
+% sets the line color of the class graph to black
|
|
|
+/SetLineColor { 0 0 0 setrgbcolor } def
|
|
|
+
|
|
|
+% sets the default font for class names
|
|
|
+/SetClassFont
|
|
|
+{
|
|
|
+/ArialMT findfont
|
|
|
+10 scalefont
|
|
|
+setfont
|
|
|
+} def
|
|
|
+
|
|
|
+% RGB colors of the texts
|
|
|
+/StandardTextColor { 0 0 0 } def
|
|
|
+/MissedTextColor { 0.50 0.50 0.50 } def
|
|
|
+
|
|
|
+% RGB colors of the boxes
|
|
|
+/MissedColor { 0.92 0.92 0.92 } def
|
|
|
+/IncompleteColor { 1 0.5 0.5 } def
|
|
|
+/UntestedColor { 1 1 0.6} def
|
|
|
+/ReadyColor { 0.7 1 0.7 } def
|
|
|
+
|
|
|
+% Starting point of the class graph
|
|
|
+% (0,0) is the lower left corner of the paper
|
|
|
+/nextx { 0 mm } def
|
|
|
+/nexty { 300 mm } def
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+% End of Configurable section
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+/Missed {0} def
|
|
|
+/Incomplete {1} def
|
|
|
+/Untested {2} def
|
|
|
+/Ready {3} def
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+% drawbox
|
|
|
+% takes two parameters:
|
|
|
+% classname........name of the class
|
|
|
+% status......status of development
|
|
|
+/drawbox
|
|
|
+{
|
|
|
+ % save parameters
|
|
|
+ /status exch def
|
|
|
+ /classname exch def
|
|
|
+ % save enviroment
|
|
|
+ gsave
|
|
|
+ newpath
|
|
|
+
|
|
|
+ % determine the size of the class name
|
|
|
+ SetClassFont
|
|
|
+ classname
|
|
|
+ stringwidth
|
|
|
+
|
|
|
+ % and save it ...
|
|
|
+ /widthy exch def
|
|
|
+ /widthx exch def
|
|
|
+
|
|
|
+ % moveto start point of the box
|
|
|
+ nextx 8 mm add
|
|
|
+ nexty
|
|
|
+ moveto
|
|
|
+
|
|
|
+ % calculate the place for the icons
|
|
|
+ nextx 8 mm add
|
|
|
+ widthx 4.5 mm add add
|
|
|
+ /nexticonx exch def
|
|
|
+
|
|
|
+ % set box color
|
|
|
+ status Missed eq { MissedColor setrgbcolor } if
|
|
|
+ status Incomplete eq { IncompleteColor setrgbcolor } if
|
|
|
+ status Untested eq { UntestedColor setrgbcolor } if
|
|
|
+ status Ready eq { ReadyColor setrgbcolor } if
|
|
|
+
|
|
|
+ % draw box
|
|
|
+ 0 mm 2.1 mm rlineto
|
|
|
+ widthx 3 mm add 0 mm rlineto
|
|
|
+ 0 mm -4.2 mm rlineto
|
|
|
+ 0 widthx 3 mm add sub 0 mm rlineto
|
|
|
+ 0 mm 2.1 mm rlineto
|
|
|
+ closepath
|
|
|
+ fill
|
|
|
+
|
|
|
+ % set text color
|
|
|
+ status Missed eq { MissedTextColor setrgbcolor }
|
|
|
+ { StandardTextColor setrgbcolor } ifelse
|
|
|
+
|
|
|
+ % set text pos and write text
|
|
|
+ nextx 9.5 mm add
|
|
|
+ nexty 1.25 mm sub
|
|
|
+ moveto
|
|
|
+ classname
|
|
|
+ show
|
|
|
+
|
|
|
+ grestore
|
|
|
+} def
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+% newchildclass
|
|
|
+% draws a new class
|
|
|
+% takes two parameters:
|
|
|
+% name of the class
|
|
|
+% status of development
|
|
|
+/newchildclass
|
|
|
+{
|
|
|
+ % save parameters
|
|
|
+ /status exch def
|
|
|
+ /classname exch def
|
|
|
+ % save enviroment
|
|
|
+ % push this on the stack for onelevelback
|
|
|
+ nexty
|
|
|
+ newpath
|
|
|
+ SetLineWidth
|
|
|
+ SetLineColor
|
|
|
+ nexty -2.1 mm add
|
|
|
+ /nexty exch def
|
|
|
+ nextx 11 mm add
|
|
|
+ /nextx exch def
|
|
|
+ nextx nexty moveto
|
|
|
+ 0 mm -2.9 mm rlineto
|
|
|
+ 8 mm 0 mm rlineto stroke
|
|
|
+ nexty -2.9 mm add
|
|
|
+ /nexty exch def
|
|
|
+ classname
|
|
|
+ status
|
|
|
+ drawbox
|
|
|
+} def
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+% newclass
|
|
|
+% draws a new class
|
|
|
+% takes two parameters:
|
|
|
+% name of the class
|
|
|
+% status of development
|
|
|
+/newclass
|
|
|
+{
|
|
|
+ gsave
|
|
|
+ newpath
|
|
|
+ SetLineWidth
|
|
|
+ SetLineColor
|
|
|
+ nextx nexty moveto
|
|
|
+ 0 mm -5 mm rlineto
|
|
|
+ 8 mm 0 mm rlineto stroke
|
|
|
+ nexty -5 mm add
|
|
|
+ /nexty exch def
|
|
|
+ drawbox
|
|
|
+ grestore
|
|
|
+} def
|
|
|
+/onelevelback
|
|
|
+{
|
|
|
+ /oldy exch def
|
|
|
+ newpath
|
|
|
+ SetLineWidth
|
|
|
+ SetLineColor
|
|
|
+% nexty -5 mm add
|
|
|
+% /nexty exch def
|
|
|
+ nextx -11 mm add
|
|
|
+ /nextx exch def
|
|
|
+ nextx oldy moveto
|
|
|
+ nextx nexty lineto stroke
|
|
|
+} def
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+% Linuxonly
|
|
|
+% draws the linux icon
|
|
|
+/Linuxonly
|
|
|
+{
|
|
|
+ gsave
|
|
|
+ newpath
|
|
|
+ nexticonx
|
|
|
+ nexty 1.25 mm sub
|
|
|
+ moveto
|
|
|
+ SetClassFont
|
|
|
+ StandardTextColor setrgbcolor
|
|
|
+ (Linux)
|
|
|
+ show
|
|
|
+ grestore
|
|
|
+} def
|
|
|
+
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+% Win32only
|
|
|
+% draws the win32 icon
|
|
|
+/Win32only
|
|
|
+{
|
|
|
+ gsave
|
|
|
+ newpath
|
|
|
+ nexticonx
|
|
|
+ nexty 1.25 mm sub
|
|
|
+ moveto
|
|
|
+ SetClassFont
|
|
|
+ StandardTextColor setrgbcolor
|
|
|
+ (Win32)
|
|
|
+ show
|
|
|
+ grestore
|
|
|
+} def
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+% Both
|
|
|
+% dummy
|
|
|
+/Both
|
|
|
+{
|
|
|
+} def
|
|
|
+
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+% here the class tree follows
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+% TObject
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+(TObject) Ready drawbox
|
|
|
+
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+% Exception classes
|
|
|
+%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
+
|
|
|
+(Exception) Missed newchildclass
|
|
|
+(EAbort) Incomplete newchildclass
|
|
|
+ (ENewAbort) Untested newchildclass
|
|
|
+ (ECustomAbort) Ready newclass
|
|
|
+ onelevelback
|
|
|
+(EAbstractError) Missed newclass Linuxonly
|
|
|
+(EDatabaseError) Missed newclass Linuxonly
|
|
|
+ (EDBCLient) Missed newchildclass
|
|
|
+ (EReconcileError) Missed newchildclass Linuxonly
|
|
|
+ onelevelback
|
|
|
+ (EDBEngineError) Missed newclass Win32only
|
|
|
+ (ENoResultSet) Missed newclass
|
|
|
+ (EUpdateError) Missed newclass
|
|
|
+ onelevelback
|
|
|
+(EDBEditError) Missed newclass
|
|
|
+(EDSWriter) Missed newclass
|
|
|
+showpage
|
|
|
+
|
|
|
+
|
|
|
+
|