%% 
%%  A DANTE-Edition example
%% 
%%  Example 32-02-1 on page 653.
%% 
%%  Copyright (C) 2010 Herbert Voss
%% 
%%  It may be distributed and/or modified under the conditions
%%  of the LaTeX Project Public License, either version 1.3
%%  of this license or (at your option) any later version.
%% 
%%  See http://www.latex-project.org/lppl.txt for details.
%% 
%% 
%% ==== 
% Show page(s) 1
%% 
\documentclass[]{article}
\pagestyle{empty}
\setlength\textwidth{375.57637pt}
\setlength\parindent{0pt}

\usepackage{uml}

\begin{document}
\umlDiagram[grayness=0.92,box=,sizeX=0.9\linewidth,sizeY=12.5cm,
    ref=approachDiagram,innerBorder=2mm]{}
\scriptsize\setlength\umlNodeSep{3em}%
\umlSchema[pos=\umlTop{approachDiagram},posDelta={0,-.5em},refpoint=t,
    abstract=,comment=-comment-]{Drawable}{%
  \umlAttribute[type=color]{import}
  \umlAttribute[type=String,propertyString={quasi-static}]{type}
}{}{%
  \umlArgument{[named options]}\umlArgument{Contents}}{}{}%
\umlSchema[pos=\umlBottomSep{Drawable},refpoint=t,comment=-comment-]{Element}{%
  \umlAttribute{reference}   \umlAttribute{stereotype}
  \umlAttribute{subof}       \umlAttribute[type=bool]{abstract}
  \umlAttribute{importedFrom}\umlAttribute{comment}
}{}{\umlArgument{[named options]} \umlArgument{Contents}}{}{}%
\umlSubclass{Element}{Drawable}%
\umlSchema[pos=\umlBottomSep{Element},refpoint=t]{Box}{%
  \umlAttribute[type=position]{pos[XY ]}\umlAttribute[type=position]{posDelta[XY ]}
  \umlAttribute{refpoint}               \umlAttribute[default=true]{box}
  \umlAttribute[type=length]{size[XY]}  \umlAttribute[type=real 0--1]{grayness}
  \umlAttribute[type=colorName, default=umlFillColor]{fillcolorCommand}
  \umlAttribute[type=length]{border}    \umlAttribute[default=solid]{borderLine}
  \umlAttribute[type=length]{outerBorder}\umlAttribute[type=length]{innerBorder}
}{}{}{}{}%
\umlSubclass{Box}{Element}%
\umlSchema[pos=\umlTopRight{Box},refpoint=tl,posDelta={2em,-4em}]{Diagram}{%
  \umlAttribute[colorset=\umlColorsSub,
    default={\umlColorsDefault\umlColorsAdjust always true}]{box}%
}{}{}{Size given\\contents placed\\~~according to size\\}{}%
\umlSubclass{Diagram}{Box}%
\umlSchema[pos=\umlTopLeft{Box},refpoint=tr,posDelta={-2em,-4em}]{Stretchbox}{%
  \umlAttribute{name}   \umlAttribute[visibility=-]{graphicalName}
}{}{%
  \umlArgument{[named options]} \umlArgument{Name}
  \umlArgument{Contents}}{Size according to contents\\}{}%
\umlSubclass{Stretchbox}{Box}%
\umlSchema[pos=\umlBottomRight{Stretchbox},posDelta={0em,-2em},
    refpoint=tr]{Package}{}{}{}{}{}%
\umlSubclass{Package}{Stretchbox}
\end{document}
