<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<diagram program="umlet" version="11.5.1">
  <help_text>// Uncomment the following line to change the fontsize:
// fontsize=14


//////////////////////////////////////////////////////////////////////////////////////////////
// Welcome to UMLet!
//
// Double-click on UML elements to add them to the diagram, or to copy them
// Edit elements by modifying the text in this panel
// Hold Ctrl to select multiple elements
// Use Ctrl+mouse to select via lasso
//
// Use ± or Ctrl+mouse wheel to zoom
// Drag a whole relation at its central square icon
//
// Press Ctrl+C to copy the whole diagram to the system clipboard (then just paste it to, eg, Word)
// Edit the files in the "palettes" directory to create your own element palettes
//
// Select "Custom Elements &gt; New..." to create new element types
//////////////////////////////////////////////////////////////////////////////////////////////


// This text will be stored with each diagram;  use it for notes.</help_text>
  <zoom_level>10</zoom_level>
  <element>
    <type>com.umlet.element.Class</type>
    <coordinates>
      <x>120</x>
      <y>300</y>
      <w>270</w>
      <h>110</h>
    </coordinates>
    <panel_attributes>FacesViewer
bg=gray
--
 
--
main -- Constructs and makes visible
a 500 by 400 JFrame that has on it
a JComponent that draws Face objects</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <type>com.umlet.element.Class</type>
    <coordinates>
      <x>160</x>
      <y>50</y>
      <w>190</w>
      <h>170</h>
    </coordinates>
    <panel_attributes>JFrame
bg=yellow
--
 
--
setSize
setTitle
setDefaultCloseOperation
 
add
 
setVisible</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <type>com.umlet.element.Relation</type>
    <coordinates>
      <x>220</x>
      <y>190</y>
      <w>50</w>
      <h>130</h>
    </coordinates>
    <panel_attributes>lt=&lt;-</panel_attributes>
    <additional_attributes>30;30;30;110</additional_attributes>
  </element>
  <element>
    <type>com.umlet.element.Class</type>
    <coordinates>
      <x>430</x>
      <y>200</y>
      <w>280</w>
      <h>90</h>
    </coordinates>
    <panel_attributes>FacesApplet
bg=gray
--
 
--
init -- Constructs and adds a JComponent
that draws Face objects</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <type>com.umlet.element.Class</type>
    <coordinates>
      <x>480</x>
      <y>50</y>
      <w>190</w>
      <h>100</h>
    </coordinates>
    <panel_attributes>JApplet
bg=yellow
--
 
--
setSize
 
add
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <type>com.umlet.element.Relation</type>
    <coordinates>
      <x>540</x>
      <y>120</y>
      <w>50</w>
      <h>100</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;-</panel_attributes>
    <additional_attributes>30;30;30;80</additional_attributes>
  </element>
  <element>
    <type>com.umlet.element.Class</type>
    <coordinates>
      <x>470</x>
      <y>450</y>
      <w>210</w>
      <h>70</h>
    </coordinates>
    <panel_attributes>FacesComponent
bg=gray
--
 
--
paintComponent - draws Faces</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <type>com.umlet.element.Class</type>
    <coordinates>
      <x>220</x>
      <y>440</y>
      <w>130</w>
      <h>70</h>
    </coordinates>
    <panel_attributes>JComponent
bg=yellow
--
 
--
paintComponent</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <type>com.umlet.element.Relation</type>
    <coordinates>
      <x>320</x>
      <y>450</y>
      <w>170</w>
      <h>50</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;-</panel_attributes>
    <additional_attributes>30;30;150;30</additional_attributes>
  </element>
  <element>
    <type>com.umlet.element.Relation</type>
    <coordinates>
      <x>360</x>
      <y>380</y>
      <w>130</w>
      <h>90</h>
    </coordinates>
    <panel_attributes>lt=&lt;-
r1=                          constructs</panel_attributes>
    <additional_attributes>110;70;30;30</additional_attributes>
  </element>
  <element>
    <type>com.umlet.element.Relation</type>
    <coordinates>
      <x>560</x>
      <y>260</y>
      <w>86</w>
      <h>210</h>
    </coordinates>
    <panel_attributes>lt=&lt;-
r1=                    constructs</panel_attributes>
    <additional_attributes>50;190;50;30</additional_attributes>
  </element>
  <element>
    <type>com.umlet.element.Class</type>
    <coordinates>
      <x>780</x>
      <y>50</y>
      <w>270</w>
      <h>570</h>
    </coordinates>
    <panel_attributes>Face
bg=gray
--
 
double centerX
double centerY
double radius
double angle
Color faceColor
Color outlineColor
Color eyeColor
Color mouthColor
 
--
 
Face()
Face(all fields)
 
drawOn(Graphics2D)
translate(double x, double y)
rotate(double degrees)

 
-- drawCircle is an optional helper method 
   which draws or fills a circle centered at
   the given position, with the given
   radius and color, filled if isFill is true
   (and drawn otherwise), onto the
   given Graphics2D object.
 
private void drawCircle(
         double centerX,
         double centerY,
         double radius,
         Color color,
         boolean isFill,
         Graphics2D graphics)
 
</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <type>com.umlet.element.Note</type>
    <coordinates>
      <x>450</x>
      <y>320</y>
      <w>130</w>
      <h>90</h>
    </coordinates>
    <panel_attributes>Note..
bg=blue
Run either
as an Application
or as an Applet</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <type>com.umlet.element.Note</type>
    <coordinates>
      <x>120</x>
      <y>560</y>
      <w>120</w>
      <h>140</h>
    </coordinates>
    <panel_attributes>Note..
bg=blue
Students, you
implement the
gray classes.
The yellow
ones are
Swing classes.</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <type>com.umlet.element.Relation</type>
    <coordinates>
      <x>650</x>
      <y>450</y>
      <w>150</w>
      <h>50</h>
    </coordinates>
    <panel_attributes>lt=&lt;-
m1=          1..*</panel_attributes>
    <additional_attributes>130;30;30;30</additional_attributes>
  </element>
  <element>
    <type>com.umlet.element.Class</type>
    <coordinates>
      <x>720</x>
      <y>670</y>
      <w>120</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>Arc2D.Double
bg=yellow</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <type>com.umlet.element.Relation</type>
    <coordinates>
      <x>810</x>
      <y>590</y>
      <w>90</w>
      <h>170</h>
    </coordinates>
    <panel_attributes>lt=&lt;.</panel_attributes>
    <additional_attributes>30;150;70;30</additional_attributes>
  </element>
  <element>
    <type>com.umlet.element.Relation</type>
    <coordinates>
      <x>850</x>
      <y>590</y>
      <w>80</w>
      <h>130</h>
    </coordinates>
    <panel_attributes>lt=&lt;.</panel_attributes>
    <additional_attributes>60;110;30;30</additional_attributes>
  </element>
  <element>
    <type>com.umlet.element.Class</type>
    <coordinates>
      <x>890</x>
      <y>700</y>
      <w>110</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>Graphics2D
bg=yellow</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <type>com.umlet.element.Class</type>
    <coordinates>
      <x>520</x>
      <y>690</y>
      <w>140</w>
      <h>50</h>
    </coordinates>
    <panel_attributes>&lt;&lt;interface&gt;&gt;
Shape
bg=yellow</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <type>com.umlet.element.Relation</type>
    <coordinates>
      <x>630</x>
      <y>650</y>
      <w>110</w>
      <h>70</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>30;50;90;30</additional_attributes>
  </element>
  <element>
    <type>com.umlet.element.Relation</type>
    <coordinates>
      <x>630</x>
      <y>690</y>
      <w>110</w>
      <h>80</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>30;30;90;60</additional_attributes>
  </element>
  <element>
    <type>com.umlet.element.Note</type>
    <coordinates>
      <x>260</x>
      <y>530</y>
      <w>230</w>
      <h>240</h>
    </coordinates>
    <panel_attributes>Key..
 
bg=pink
is-a, extends
 
is-a, implements
 
has-a
 (association)
 annotation indicates construction
 and/or multiplicity
 
uses
 (dependency)</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <type>com.umlet.element.Relation</type>
    <coordinates>
      <x>330</x>
      <y>540</y>
      <w>140</w>
      <h>50</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;-</panel_attributes>
    <additional_attributes>120;30;30;30</additional_attributes>
  </element>
  <element>
    <type>com.umlet.element.Relation</type>
    <coordinates>
      <x>350</x>
      <y>580</y>
      <w>120</w>
      <h>50</h>
    </coordinates>
    <panel_attributes>lt=&lt;&lt;.</panel_attributes>
    <additional_attributes>100;30;30;30</additional_attributes>
  </element>
  <element>
    <type>com.umlet.element.Relation</type>
    <coordinates>
      <x>330</x>
      <y>620</y>
      <w>140</w>
      <h>50</h>
    </coordinates>
    <panel_attributes>lt=&lt;-</panel_attributes>
    <additional_attributes>120;30;30;30</additional_attributes>
  </element>
  <element>
    <type>com.umlet.element.Relation</type>
    <coordinates>
      <x>790</x>
      <y>590</y>
      <w>110</w>
      <h>100</h>
    </coordinates>
    <panel_attributes>lt=&lt;.</panel_attributes>
    <additional_attributes>30;80;90;30</additional_attributes>
  </element>
  <element>
    <type>com.umlet.element.Class</type>
    <coordinates>
      <x>720</x>
      <y>740</y>
      <w>140</w>
      <h>30</h>
    </coordinates>
    <panel_attributes>Ellipse2D.Double
bg=yellow</panel_attributes>
    <additional_attributes/>
  </element>
  <element>
    <type>com.umlet.element.Relation</type>
    <coordinates>
      <x>290</x>
      <y>700</y>
      <w>180</w>
      <h>50</h>
    </coordinates>
    <panel_attributes>lt=&lt;.</panel_attributes>
    <additional_attributes>160;30;30;30</additional_attributes>
  </element>
</diagram>
