]> git.llucax.com Git - software/bife/bife-all.git/blobdiff - doc/bife.xmi
- Added a new simple template system: Hooks + IT = HIT.
[software/bife/bife-all.git] / doc / bife.xmi
index d2bb8fd5479e73202e88eff4264cd51df3c09741..a6ebdee7cc5cccc02116f0c35439d1031537d3fb 100644 (file)
@@ -5,20 +5,31 @@
    <XMI.exporter>umbrello uml modeller http://uml.sf.net</XMI.exporter>
    <XMI.exporterVersion>1.1</XMI.exporterVersion>
   </XMI.documentation>
    <XMI.exporter>umbrello uml modeller http://uml.sf.net</XMI.exporter>
    <XMI.exporterVersion>1.1</XMI.exporterVersion>
   </XMI.documentation>
-  <XMI.model xmi.name="bife" href="/mnt/burns/luca/website/www/test/bife/doc/bife.xmi" />
+  <XMI.model xmi.name="bife" href="/home/luca/website/www/test/bife/doc/bife.xmi" />
   <XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" />
  </XMI.header>
  <XMI.content>
   <XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" />
  </XMI.header>
  <XMI.content>
-  <docsettings viewid="2" documentation="" uniqueid="75" />
+  <docsettings viewid="116" documentation="Parse XML data getting widgets." uniqueid="129" />
   <umlobjects>
    <UML:Class stereotype="" package="BIFE" xmi.id="3" abstract="1" documentation="Base widget class." name="Widget" static="0" scope="200" >
   <umlobjects>
    <UML:Class stereotype="" package="BIFE" xmi.id="3" abstract="1" documentation="Base widget class." name="Widget" static="0" scope="200" >
+    <UML:Operation stereotype="" package="" xmi.id="126" type="void" abstract="0" documentation="Constructor." name="BIFE_Widget" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="127" type="void" abstract="0" documentation="Constructor." name="__construct" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+    </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="4" type="string" abstract="1" documentation="Renders the widget using a template returning a string with the results." name="render" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;HTML_Template_Sigma" abstract="0" documentation="Template object to render the widget." name="template" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="4" type="string" abstract="1" documentation="Renders the widget using a template returning a string with the results." name="render" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;HTML_Template_Sigma" abstract="0" documentation="Template object to render the widget." name="template" static="0" scope="200" />
     </UML:Operation>
+    <UML:Attribute stereotype="" package="" xmi.id="125" value="array()" type="array" abstract="0" documentation="Attribute list." name="attrs" static="0" scope="202" />
    </UML:Class>
    <UML:Class stereotype="" package="BIFE" xmi.id="5" abstract="1" documentation="Base container widget class." name="Container" static="0" scope="200" >
    </UML:Class>
    <UML:Class stereotype="" package="BIFE" xmi.id="5" abstract="1" documentation="Base container widget class." name="Container" static="0" scope="200" >
-    <UML:Operation stereotype="" package="" xmi.id="48" type="void" abstract="0" documentation="Constructor." name="BIFE_Container" static="0" scope="200" />
-    <UML:Operation stereotype="" package="" xmi.id="50" type="void" abstract="0" documentation="Constructor." name="__construct" static="0" scope="200" />
+    <UML:Operation stereotype="" package="" xmi.id="48" type="void" abstract="0" documentation="Constructor." name="BIFE_Container" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="50" type="void" abstract="0" documentation="Constructor." name="__construct" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+    </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="6" type="void" abstract="0" documentation="Adds contents to the container." name="addContents" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;mixed" abstract="0" documentation="Contents to add to the container." name="contents" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="6" type="void" abstract="0" documentation="Adds contents to the container." name="addContents" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;mixed" abstract="0" documentation="Contents to add to the container." name="contents" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="51" type="void" abstract="0" documentation="Constructor." name="__construct" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="51" type="void" abstract="0" documentation="Constructor." name="__construct" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
     </UML:Operation>
-    <UML:Operation stereotype="" package="" xmi.id="11" type="void" abstract="0" documentation="Add contents to the widget." name="addContents" static="0" scope="200" >
+    <UML:Operation stereotype="" package="" xmi.id="11" type="void" abstract="0" documentation="Add contents to the container." name="addContents" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;mixed" abstract="0" documentation="Contents to add." name="contents" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="12" type="string" abstract="0" documentation="Renders the widget." name="render" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;HTML_Template_Sigma" abstract="0" documentation="Template to use to render the widget." name="template" static="0" scope="200" />
     </UML:Operation>
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;mixed" abstract="0" documentation="Contents to add." name="contents" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="12" type="string" abstract="0" documentation="Renders the widget." name="render" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;HTML_Template_Sigma" abstract="0" documentation="Template to use to render the widget." name="template" static="0" scope="200" />
     </UML:Operation>
-    <UML:Attribute stereotype="" package="" xmi.id="8" value="" type="array" abstract="0" documentation="Attribute list." name="attrs" static="0" scope="200" />
    </UML:Class>
    <UML:Class stereotype="" package="BIFE" xmi.id="14" abstract="0" documentation="Page widget." name="Page" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="15" type="void" abstract="0" documentation="Constructor." name="BIFE_Page" static="0" scope="200" >
    </UML:Class>
    <UML:Class stereotype="" package="BIFE" xmi.id="14" abstract="0" documentation="Page widget." name="Page" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="15" type="void" abstract="0" documentation="Constructor." name="BIFE_Page" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="53" type="void" abstract="0" documentation="Constructor." name="__construct" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="53" type="void" abstract="0" documentation="Constructor." name="__construct" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
     </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="93" type="void" abstract="0" documentation="Adds contents to the container." name="addContents" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;mixed" abstract="0" documentation="Contents to add." name="contents" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="90" type="string" abstract="0" documentation="Returns the rendered widget as a string." name="render" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;HTML_Template_Sigma" abstract="0" documentation="Template to use to render the widget." name="template" static="0" scope="200" />
+    </UML:Operation>
    </UML:Class>
    <UML:Class stereotype="" package="BIFE" xmi.id="17" abstract="0" documentation="Title widget." name="Title" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="18" type="void" abstract="0" documentation="Constructor." name="BIFE_Title" static="0" scope="200" >
    </UML:Class>
    <UML:Class stereotype="" package="BIFE" xmi.id="17" abstract="0" documentation="Title widget." name="Title" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="18" type="void" abstract="0" documentation="Constructor." name="BIFE_Title" static="0" scope="200" >
@@ -58,9 +74,7 @@
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
     </UML:Operation>
    </UML:Class>
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
     </UML:Operation>
    </UML:Class>
-   <UML:Class stereotype="" package="BIFE" xmi.id="20" abstract="0" documentation="Photo album widget.
-
-[TODO: Make a better explanation]" name="Album" static="0" scope="200" >
+   <UML:Class stereotype="" package="BIFE" xmi.id="20" abstract="0" documentation="Photo album widget. [TODO: Make a better explanation]" name="Album" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="22" type="void" abstract="0" documentation="Constructor." name="BIFE_Album" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="22" type="void" abstract="0" documentation="Constructor." name="BIFE_Album" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="23" type="string" abstract="0" documentation="Renders the widget." name="render" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;HTML_Template_Sigma" abstract="0" documentation="Template to use to render the widget." name="template" static="0" scope="200" />
     </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="23" type="string" abstract="0" documentation="Renders the widget." name="render" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;HTML_Template_Sigma" abstract="0" documentation="Template to use to render the widget." name="template" static="0" scope="200" />
     </UML:Operation>
-    <UML:Attribute stereotype="" package="" xmi.id="21" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+    <UML:Operation stereotype="" package="" xmi.id="95" type="array" abstract="0" documentation="Gets a list of photos with their descriptions and thumbnails.
+
+Returns an array of associative arrays with this keys:
+&lt;ul>
+&lt;li>&lt;b>file:&lt;/b> Photo filename.&lt;/li>
+&lt;li>&lt;b>desc:&lt;/b> Photo Description.&lt;/li>
+&lt;li>&lt;b>thumb:&lt;/b> Photo thumbnail filename.&lt;/li>
+&lt;/ul>
+" name="getList" static="0" scope="202" />
+    <UML:Operation stereotype="" package="" xmi.id="97" type="string" abstract="0" documentation="Creates an image thumbnail, returning his filename." name="makeThumb" static="0" scope="202" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="Filename of the image to create the thumb." name="filename" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="2" value="100" type="int" abstract="0" documentation="Maximum thumbnail size." name="size" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="98" type="string" abstract="0" documentation="Returns the filename of an image thumb." name="getThumbFilename" static="0" scope="202" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="Filename of the image to get the thumb name." name="filename" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="102" type="string" abstract="0" documentation="Returns the description of the album." name="getDescription" static="0" scope="202" />
+    <UML:Operation stereotype="" package="" xmi.id="100" type="array" abstract="0" documentation="Splits a filename returning an array with the path, name and extension." name="splitFilename" static="1" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="Filename to split." name="filename" static="0" scope="200" />
+    </UML:Operation>
    </UML:Class>
    <UML:Class stereotype="" package="BIFE" xmi.id="25" abstract="0" documentation="This is the XML Parser." name="Parser" static="0" scope="200" >
    </UML:Class>
    <UML:Class stereotype="" package="BIFE" xmi.id="25" abstract="0" documentation="This is the XML Parser." name="Parser" static="0" scope="200" >
-    <UML:Operation stereotype="" package="" xmi.id="30" type="void" abstract="0" documentation="Constructor." name="BIFE_Parser" static="0" scope="200" />
-    <UML:Operation stereotype="" package="" xmi.id="31" type="void" abstract="0" documentation="Constructor." name="__construct" static="0" scope="200" />
+    <UML:Operation stereotype="" package="" xmi.id="30" type="void" abstract="0" documentation="Constructor." name="BIFE_Parser" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="''" type="string" abstract="0" documentation="Fallback class name (none if empty)." name="fallback" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="31" type="void" abstract="0" documentation="Constructor." name="__construct" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="''" type="string" abstract="0" documentation="Fallback class name (none if empty)." name="fallback" static="0" scope="200" />
+    </UML:Operation>
     <UML:Operation stereotype="" package="" xmi.id="32" type="void" abstract="0" documentation="Destructor." name="__destruct" static="0" scope="200" />
     <UML:Operation stereotype="" package="" xmi.id="33" type="void" abstract="0" documentation="XML parser start of element handler." name="startElement" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="resource" abstract="0" documentation="XML parser resource." name="parser" static="0" scope="200" />
     <UML:Operation stereotype="" package="" xmi.id="32" type="void" abstract="0" documentation="Destructor." name="__destruct" static="0" scope="200" />
     <UML:Operation stereotype="" package="" xmi.id="33" type="void" abstract="0" documentation="XML parser start of element handler." name="startElement" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="resource" abstract="0" documentation="XML parser resource." name="parser" static="0" scope="200" />
     </UML:Operation>
     <UML:Attribute stereotype="" package="" xmi.id="26" value="" type="BIFE_Widget" abstract="0" documentation="Top level widget." name="root" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="27" value="" type="resource" abstract="0" documentation="XML parser resource." name="parser" static="0" scope="200" />
     </UML:Operation>
     <UML:Attribute stereotype="" package="" xmi.id="26" value="" type="BIFE_Widget" abstract="0" documentation="Top level widget." name="root" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="27" value="" type="resource" abstract="0" documentation="XML parser resource." name="parser" static="0" scope="200" />
-    <UML:Attribute stereotype="" package="" xmi.id="28" value="" type="HTML_Template_Sigma" abstract="0" documentation="Template to use to render the parsed file." name="template" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="29" value="" type="array" abstract="0" documentation="BIFE widgets stack." name="stack" static="0" scope="200" />
     <UML:Attribute stereotype="" package="" xmi.id="29" value="" type="array" abstract="0" documentation="BIFE widgets stack." name="stack" static="0" scope="200" />
+    <UML:Attribute stereotype="" package="" xmi.id="84" value="" type="string" abstract="0" documentation="" name="fallback" static="0" scope="200" />
    </UML:Class>
    <UML:Class stereotype="" package="BIFE" xmi.id="61" abstract="1" documentation="Fallback widget to use when no specific widget is implemented." name="Fallback" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="62" type="void" abstract="0" documentation="Constructor." name="BIFE_Fallback" static="0" scope="200" >
    </UML:Class>
    <UML:Class stereotype="" package="BIFE" xmi.id="61" abstract="1" documentation="Fallback widget to use when no specific widget is implemented." name="Fallback" static="0" scope="200" >
     <UML:Operation stereotype="" package="" xmi.id="62" type="void" abstract="0" documentation="Constructor." name="BIFE_Fallback" static="0" scope="200" >
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="Name of the widget." name="name" static="0" scope="200" />
      <UML:Parameter stereotype="" package="" xmi.id="2" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
     </UML:Operation>
      <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="Name of the widget." name="name" static="0" scope="200" />
      <UML:Parameter stereotype="" package="" xmi.id="2" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
     </UML:Operation>
+    <UML:Attribute stereotype="" package="" xmi.id="129" value="" type="string" abstract="0" documentation="" name="name" static="0" scope="200" />
+   </UML:Class>
+   <UML:Class stereotype="" package="BIFE" xmi.id="76" abstract="0" documentation="Fallback widget that copies the XML." name="Copy" static="0" scope="200" >
+    <UML:Operation stereotype="" package="" xmi.id="79" type="void" abstract="0" documentation="Constructor." name="BIFE_Copy" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="Widget name." name="name" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="2" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="80" type="void" abstract="0" documentation="Constructor." name="__construct" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="Widget name." name="name" static="0" scope="200" />
+     <UML:Parameter stereotype="" package="" xmi.id="2" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="82" type="void" abstract="0" documentation="Renders the widget returning a string with the results." name="render" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;HTML_Template_Sigma" abstract="0" documentation="Template to use to render the widget." name="template" static="0" scope="200" />
+    </UML:Operation>
+   </UML:Class>
+   <UML:Class stereotype="" package="BIFE" xmi.id="85" abstract="0" documentation="Root container class." name="Root" static="0" scope="200" >
+    <UML:Operation stereotype="" package="" xmi.id="87" type="void" abstract="0" documentation="Constructor." name="BIFE_Root" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="88" type="void" abstract="0" documentation="Constructor." name="__construct" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="string" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+    </UML:Operation>
+   </UML:Class>
+   <UML:Class stereotype="" package="BIFE" xmi.id="103" abstract="0" documentation="Photo widget." name="AlbumPhoto" static="0" scope="200" >
+    <UML:Operation stereotype="" package="" xmi.id="106" type="void" abstract="0" documentation="Constructor." name="BIFE_AlbumPhoto" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="107" type="void" abstract="0" documentation="Constructor." name="__construct" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="108" type="string" abstract="0" documentation="Renders the widget using a template returning a string with the results." name="render" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;HTML_Template_Sigma" abstract="0" documentation="Template to use to render the widget." name="template" static="0" scope="200" />
+    </UML:Operation>
+   </UML:Class>
+   <UML:Class stereotype="" package="BIFE" xmi.id="110" abstract="0" documentation="Link to another page." name="Link" static="0" scope="200" >
+    <UML:Operation stereotype="" package="" xmi.id="111" type="void" abstract="0" documentation="Constructor." name="BIFE_Link" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="112" type="void" abstract="0" documentation="Constructor." name="__construct" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+    </UML:Operation>
+   </UML:Class>
+   <UML:Class stereotype="" package="BIFE" xmi.id="115" abstract="0" documentation="Dynamic Menu." name="Menu" static="0" scope="200" >
+    <UML:Operation stereotype="" package="" xmi.id="121" type="void" abstract="0" documentation="Constructor." name="BIFE_Menu" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="122" type="void" abstract="0" documentation="Constructor." name="__construct" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="array" abstract="0" documentation="Attributes." name="attrs" static="0" scope="200" />
+    </UML:Operation>
+    <UML:Operation stereotype="" package="" xmi.id="117" type="string" abstract="0" documentation="Renders the widget using a template returning a string with the results." name="render" static="0" scope="200" >
+     <UML:Parameter stereotype="" package="" xmi.id="1" value="" type="&amp;HTML_Template_Sigma" abstract="0" documentation="Template to use to render the widget." name="template" static="0" scope="200" />
+    </UML:Operation>
    </UML:Class>
   </umlobjects>
   <diagrams>
    </UML:Class>
   </umlobjects>
   <diagrams>
-   <diagram snapgrid="1" showattsig="1" fillcolor="#ffffc0" showgrid="1" showopsig="1" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="2" documentation="" type="402" showops="1" showpackage="1" name="Class Diagram" localid="30000" showstereotype="0" showscope="1" font="Helvetica,10,-1,5,48,0,0,0,0,0" linecolor="#ff0000" >
+   <diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" showgrid="1" showopsig="0" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="2" documentation="" type="402" showops="1" showpackage="1" name="Core Classes" localid="30000" showstereotype="0" showscope="1" font="Helvetica,9,-1,5,48,0,0,0,0,0" linecolor="#ff0000" >
     <widgets>
     <widgets>
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="104" showattsigs="601" usesdiagramusefillcolour="0" x="270" linecolour="#ff0000" y="30" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="42" usefillcolor="1" showattributes="1" xmi.id="3" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,10,-1,5,48,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="145" showattsigs="601" usesdiagramusefillcolour="0" x="160" linecolour="#ff0000" y="130" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="102" usefillcolor="1" showattributes="1" xmi.id="5" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,10,-1,5,48,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="131" showattsigs="601" usesdiagramusefillcolour="0" x="100" linecolour="#ff0000" y="290" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="102" usefillcolor="1" showattributes="1" xmi.id="7" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,10,-1,5,48,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="120" showattsigs="601" usesdiagramusefillcolour="0" x="30" linecolour="#ff0000" y="460" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="59" usefillcolor="1" showattributes="1" xmi.id="14" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,10,-1,5,48,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="120" showattsigs="600" usesdiagramusefillcolour="0" x="190" linecolour="#ff0000" y="460" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="59" usefillcolor="1" showattributes="1" xmi.id="17" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,10,-1,5,48,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="120" showattsigs="601" usesdiagramusefillcolour="0" x="360" linecolour="#ff0000" y="130" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="85" usefillcolor="1" showattributes="1" xmi.id="20" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,10,-1,5,48,0,0,0,0,0" />
-     <UML:ConceptWidget usesdiagramfillcolour="0" width="134" showattsigs="601" usesdiagramusefillcolour="0" x="260" linecolour="#ff0000" y="290" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="59" usefillcolor="1" showattributes="1" xmi.id="61" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,10,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="148" showattsigs="601" usesdiagramusefillcolour="0" x="80" linecolour="#ff0000" y="20" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="75" usefillcolor="1" showattributes="1" xmi.id="3" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="127" showattsigs="601" usesdiagramusefillcolour="0" x="91" linecolour="#ff0000" y="150" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="90" usefillcolor="1" showattributes="1" xmi.id="5" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="118" showattsigs="601" usesdiagramusefillcolour="0" x="31" linecolour="#ff0000" y="319" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="60" usefillcolor="1" showattributes="1" xmi.id="61" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="107" showattsigs="601" usesdiagramusefillcolour="0" x="191" linecolour="#ff0000" y="319" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="52" usefillcolor="1" showattributes="1" xmi.id="85" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="137" showattsigs="601" usesdiagramusefillcolour="0" x="350" linecolour="#ff0000" y="80" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="210" usefillcolor="1" showattributes="1" xmi.id="25" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
     </widgets>
     <messages/>
     <associations>
     </widgets>
     <messages/>
     <associations>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="3" widgetaid="5" documentation="" type="500" >
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="3" widgetaid="5" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="154" starty="150" />
+       <endpoint endx="154" endy="95" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="5" widgetaid="61" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="90" starty="319" />
+       <endpoint endx="133" endy="240" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="2" widgetbid="5" widgetaid="85" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="244" starty="319" />
+       <endpoint endx="175" endy="240" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="3" widgetaid="25" documentation="Parse XML getting widgets." type="512" >
+      <UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="340" linecolour="none" y="164" operation="" usesdiagramlinecolour="1" role="701" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="" font="helvetica,-1,12,0,50,0,0,0,0,0" />
+      <UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="230" linecolour="none" y="59" operation="" usesdiagramlinecolour="1" role="702" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="" font="helvetica,-1,12,0,50,0,0,0,0,0" />
+      <UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="289" linecolour="none" y="121" operation="" usesdiagramlinecolour="1" role="703" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="gets" font="helvetica,-1,12,0,50,0,0,0,0,0" />
+      <linepath>
+       <startpoint startx="350" starty="185" />
+       <endpoint endx="228" endy="57" />
+      </linepath>
+     </UML:AssocWidget>
+    </associations>
+   </diagram>
+   <diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" showgrid="1" showopsig="0" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="113" documentation="Class diagram for the basic classes." type="402" showops="1" showpackage="1" name="Basic Classes" localid="30000" showstereotype="0" showscope="1" font="Helvetica,9,-1,5,48,0,0,0,0,0" linecolor="#ff0000" >
+    <widgets>
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="107" showattsigs="601" usesdiagramusefillcolour="0" x="56" linecolour="#ff0000" y="350" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="67" usefillcolor="1" showattributes="1" xmi.id="76" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="117" showattsigs="601" usesdiagramusefillcolour="1" x="265" linecolour="none" y="180" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="82" usefillcolor="1" showattributes="1" xmi.id="7" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="107" showattsigs="601" usesdiagramusefillcolour="1" x="345" linecolour="none" y="350" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="52" usefillcolor="1" showattributes="1" xmi.id="110" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="109" showattsigs="601" usesdiagramusefillcolour="0" x="499" linecolour="#ff0000" y="350" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="82" usefillcolor="1" showattributes="1" xmi.id="14" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="107" showattsigs="601" usesdiagramusefillcolour="1" x="205" linecolour="none" y="350" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="52" usefillcolor="1" showattributes="1" xmi.id="17" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="118" showattsigs="601" usesdiagramusefillcolour="0" x="50" linecolour="#ff0000" y="180" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#dcdcdc" height="60" usefillcolor="1" showattributes="1" xmi.id="61" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="107" showattsigs="601" usesdiagramusefillcolour="0" x="500" linecolour="#ff0000" y="180" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#dcdcdc" height="52" usefillcolor="1" showattributes="1" xmi.id="85" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="127" showattsigs="601" usesdiagramusefillcolour="0" x="260" linecolour="#ff0000" y="30" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#dcdcdc" height="90" usefillcolor="1" showattributes="1" xmi.id="5" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+    </widgets>
+    <messages/>
+    <associations>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="7" widgetaid="17" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="258" starty="350" />
+       <endpoint endx="304" endy="262" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="2" widgetbid="7" widgetaid="110" documentation="" type="500" >
       <linepath>
       <linepath>
-       <startpoint startx="232" starty="130" />
-       <endpoint endx="304" endy="72" />
+       <startpoint startx="398" starty="350" />
+       <endpoint endx="343" endy="262" />
       </linepath>
      </UML:AssocWidget>
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="5" widgetaid="7" documentation="" type="500" >
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="61" widgetaid="76" documentation="" type="500" >
       <linepath>
       <linepath>
-       <startpoint startx="165" starty="290" />
-       <endpoint endx="208" endy="232" />
+       <startpoint startx="109" starty="350" />
+       <endpoint endx="109" endy="240" />
       </linepath>
      </UML:AssocWidget>
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="7" widgetaid="14" documentation="" type="500" >
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="85" widgetaid="14" documentation="" type="500" >
       <linepath>
       <linepath>
-       <startpoint startx="90" starty="460" />
-       <endpoint endx="143" endy="392" />
+       <startpoint startx="553" starty="350" />
+       <endpoint endx="553" endy="232" />
       </linepath>
      </UML:AssocWidget>
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="2" widgetbid="7" widgetaid="17" documentation="" type="500" >
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="5" widgetaid="7" documentation="" type="500" >
       <linepath>
       <linepath>
-       <startpoint startx="250" starty="460" />
-       <endpoint endx="187" endy="392" />
+       <startpoint startx="323" starty="180" />
+       <endpoint endx="323" endy="120" />
       </linepath>
      </UML:AssocWidget>
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="2" widgetbid="3" widgetaid="20" documentation="" type="500" >
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="5" widgetaid="85" documentation="" type="500" >
       <linepath>
       <linepath>
-       <startpoint startx="420" starty="130" />
-       <endpoint endx="339" endy="72" />
+       <startpoint startx="553" starty="180" />
+       <endpoint endx="387" endy="75" />
       </linepath>
      </UML:AssocWidget>
       </linepath>
      </UML:AssocWidget>
-     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="2" widgetbid="5" widgetaid="61" documentation="" type="500" >
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="5" widgetaid="61" documentation="" type="500" >
       <linepath>
       <linepath>
-       <startpoint startx="327" starty="290" />
-       <endpoint endx="256" endy="232" />
+       <startpoint startx="109" starty="180" />
+       <endpoint endx="260" endy="75" />
       </linepath>
      </UML:AssocWidget>
     </associations>
    </diagram>
       </linepath>
      </UML:AssocWidget>
     </associations>
    </diagram>
-   <diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" showgrid="0" showopsig="1" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="41" documentation="" type="403" showops="1" showpackage="0" name="Parse" localid="29998" showstereotype="0" showscope="1" font="Helvetica,12,-1,5,50,0,0,0,0,0" linecolor="#ff0000" >
+   <diagram snapgrid="1" showattsig="1" fillcolor="#ffffc0" showgrid="1" showopsig="0" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="114" documentation="" type="402" showops="1" showpackage="1" name="Album Classes" localid="30000" showstereotype="0" showscope="1" font="Helvetica,9,-1,5,48,0,0,0,0,0" linecolor="#ff0000" >
     <widgets>
     <widgets>
-     <UML:ObjectWidget usesdiagramfillcolour="0" width="71" usesdiagramusefillcolour="0" x="62" linecolour="#ff0000" y="49" instancename="" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="29" usefillcolor="1" length="250" xmi.id="25" decon="0" localid="29999" multipleinstance="0" drawasactor="0" font="Helvetica,12,-1,5,50,0,0,0,0,0" />
-     <UML:ObjectWidget usesdiagramfillcolour="0" width="74" usesdiagramusefillcolour="0" x="478" linecolour="#ff0000" y="49" instancename="" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="29" usefillcolor="1" length="250" xmi.id="3" decon="0" localid="29998" multipleinstance="0" drawasactor="0" font="Helvetica,12,-1,5,50,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="148" showattsigs="601" usesdiagramusefillcolour="0" x="140" linecolour="#ff0000" y="20" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#dcdcdc" height="75" usefillcolor="1" showattributes="1" xmi.id="3" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="144" showattsigs="601" usesdiagramusefillcolour="0" x="50" linecolour="#ff0000" y="190" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="142" usefillcolor="1" showattributes="1" xmi.id="20" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="142" showattsigs="601" usesdiagramusefillcolour="0" x="240" linecolour="#ff0000" y="190" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="67" usefillcolor="1" showattributes="1" xmi.id="103" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
     </widgets>
     </widgets>
-    <messages>
-     <UML:MessageWidget usesdiagramfillcolour="1" width="416" usesdiagramusefillcolour="1" x="98" linecolour="none" y="119" operation="render(template : &amp;HTML_Template_Sigma) : void" widgetbid="29998" usesdiagramlinecolour="1" fillcolour="none" height="8" usefillcolor="1" seqnum="" widgetaid="29999" textid="42" xmi.id="43" font="helvetica,12,-1,5,50,0,0,0,0,0" />
-    </messages>
-    <associations/>
+    <messages/>
+    <associations>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="3" widgetaid="20" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="122" starty="190" />
+       <endpoint endx="189" endy="95" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="2" widgetbid="3" widgetaid="103" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="311" starty="190" />
+       <endpoint endx="238" endy="95" />
+      </linepath>
+     </UML:AssocWidget>
+    </associations>
+   </diagram>
+   <diagram snapgrid="0" showattsig="1" fillcolor="#ffffc0" showgrid="1" showopsig="0" usefillcolor="1" snapx="10" snapy="10" showatts="1" xmi.id="116" documentation="" type="402" showops="1" showpackage="1" name="Menu Classes" localid="30000" showstereotype="0" showscope="1" font="Helvetica,9,-1,5,48,0,0,0,0,0" linecolor="#ff0000" >
+    <widgets>
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="107" showattsigs="601" usesdiagramusefillcolour="0" x="141" linecolour="#ff0000" y="207" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#ffffc0" height="67" usefillcolor="1" showattributes="1" xmi.id="115" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="0" width="148" showattsigs="601" usesdiagramusefillcolour="0" x="120" linecolour="#ff0000" y="40" showopsigs="600" usesdiagramlinecolour="0" fillcolour="#dcdcdc" height="75" usefillcolor="1" showattributes="1" xmi.id="3" showoperations="1" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+    </widgets>
+    <messages/>
+    <associations>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="3" widgetaid="115" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="194" starty="207" />
+       <endpoint endx="194" endy="115" />
+      </linepath>
+     </UML:AssocWidget>
+    </associations>
+   </diagram>
+   <diagram snapgrid="0" showattsig="0" fillcolor="#ffffc0" showgrid="1" showopsig="0" usefillcolor="1" snapx="10" snapy="10" showatts="0" xmi.id="128" documentation="" type="402" showops="0" showpackage="1" name="_All Classes" localid="30000" showstereotype="0" showscope="1" font="Helvetica,9,-1,5,48,0,0,0,0,0" linecolor="#ff0000" >
+    <widgets>
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="96" showattsigs="600" usesdiagramusefillcolour="1" x="265" linecolour="none" y="360" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="7" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="106" showattsigs="600" usesdiagramusefillcolour="1" x="260" linecolour="none" y="250" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="5" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="90" showattsigs="600" usesdiagramusefillcolour="1" x="230" linecolour="none" y="120" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="3" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="89" showattsigs="600" usesdiagramusefillcolour="1" x="231" linecolour="none" y="30" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="25" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="97" showattsigs="600" usesdiagramusefillcolour="1" x="425" linecolour="none" y="360" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="61" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="79" showattsigs="600" usesdiagramusefillcolour="1" x="125" linecolour="none" y="360" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="85" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="87" showattsigs="600" usesdiagramusefillcolour="1" x="40" linecolour="none" y="250" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="20" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="121" showattsigs="600" usesdiagramusefillcolour="1" x="400" linecolour="none" y="250" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="103" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="80" showattsigs="600" usesdiagramusefillcolour="1" x="433" linecolour="none" y="450" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="76" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="75" showattsigs="600" usesdiagramusefillcolour="1" x="335" linecolour="none" y="450" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="110" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="79" showattsigs="600" usesdiagramusefillcolour="1" x="125" linecolour="none" y="450" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="14" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="76" showattsigs="600" usesdiagramusefillcolour="1" x="225" linecolour="none" y="450" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="17" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+     <UML:ConceptWidget usesdiagramfillcolour="1" width="84" showattsigs="600" usesdiagramusefillcolour="1" x="150" linecolour="none" y="250" showopsigs="600" usesdiagramlinecolour="1" fillcolour="none" height="25" usefillcolor="1" showattributes="0" xmi.id="115" showoperations="0" showpackage="1" showscope="1" showstereotype="0" font="Helvetica,9,-1,5,48,0,0,0,0,0" />
+    </widgets>
+    <messages/>
+    <associations>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="5" indexb="3" widgetbid="3" widgetaid="5" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="313" starty="250" />
+       <endpoint endx="284" endy="145" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="4" indexb="2" widgetbid="5" widgetaid="7" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="313" starty="360" />
+       <endpoint endx="313" endy="275" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="4" indexb="3" widgetbid="5" widgetaid="61" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="473" starty="360" />
+       <endpoint endx="339" endy="275" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="4" indexb="1" widgetbid="5" widgetaid="85" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="164" starty="360" />
+       <endpoint endx="286" endy="275" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="5" indexb="1" widgetbid="3" widgetaid="20" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="83" starty="250" />
+       <endpoint endx="248" endy="145" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="5" indexb="4" widgetbid="3" widgetaid="103" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="460" starty="250" />
+       <endpoint endx="302" endy="145" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="61" widgetaid="76" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="473" starty="450" />
+       <endpoint endx="473" endy="385" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="2" widgetbid="7" widgetaid="110" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="372" starty="450" />
+       <endpoint endx="329" endy="385" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="3" indexb="1" widgetbid="7" widgetaid="17" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="263" starty="450" />
+       <endpoint endx="297" endy="385" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="85" widgetaid="14" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="164" starty="450" />
+       <endpoint endx="164" endy="385" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="5" indexb="2" widgetbid="3" widgetaid="115" documentation="" type="500" >
+      <linepath>
+       <startpoint startx="192" starty="250" />
+       <endpoint endx="266" endy="145" />
+      </linepath>
+     </UML:AssocWidget>
+     <UML:AssocWidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" widgetbid="3" widgetaid="25" documentation="" type="512" >
+      <UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="265" linecolour="none" y="57" operation="" usesdiagramlinecolour="1" role="701" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="" font="helvetica,-1,12,0,50,0,0,0,0,0" />
+      <UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="265" linecolour="none" y="99" operation="" usesdiagramlinecolour="1" role="702" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="" font="helvetica,-1,12,0,50,0,0,0,0,0" />
+      <UML:FloatingTextWidget usesdiagramfillcolour="1" width="0" usesdiagramusefillcolour="1" x="275" linecolour="none" y="87" operation="" usesdiagramlinecolour="1" role="703" fillcolour="none" height="0" usefillcolor="1" seqnum="" xmi.id="-1" text="gets" font="helvetica,-1,12,0,50,0,0,0,0,0" />
+      <linepath>
+       <startpoint startx="275" starty="55" />
+       <endpoint endx="275" endy="120" />
+      </linepath>
+     </UML:AssocWidget>
+    </associations>
    </diagram>
   </diagrams>
   <listview>
    <listitem open="1" type="800" id="-1" label="Views" >
     <listitem open="1" type="801" id="-1" label="Logical View" >
    </diagram>
   </diagrams>
   <listview>
    <listitem open="1" type="800" id="-1" label="Views" >
     <listitem open="1" type="801" id="-1" label="Logical View" >
-     <listitem open="1" type="803" id="-1" label="Parser" >
-      <listitem open="1" type="810" id="41" label="Parse" />
-      <listitem open="0" type="813" id="25" label="Parser" >
-       <listitem open="0" type="815" id="30" label="BIFE_Parser" />
-       <listitem open="0" type="815" id="31" label="__construct" />
-       <listitem open="0" type="815" id="32" label="__destruct" />
-       <listitem open="0" type="815" id="35" label="characterData" />
-       <listitem open="0" type="815" id="34" label="endElement" />
-       <listitem open="0" type="814" id="26" label="root" />
-       <listitem open="0" type="815" id="36" label="parse" />
-       <listitem open="0" type="815" id="37" label="parseFile" />
-       <listitem open="0" type="815" id="74" label="parseString" />
-       <listitem open="0" type="814" id="27" label="parser" />
-       <listitem open="0" type="814" id="29" label="stack" />
-       <listitem open="0" type="815" id="33" label="startElement" />
-       <listitem open="0" type="814" id="28" label="template" />
-      </listitem>
-     </listitem>
-     <listitem open="1" type="803" id="-1" label="Widgets" >
+     <listitem open="1" type="803" id="-1" label="Album" >
       <listitem open="0" type="813" id="20" label="Album" >
        <listitem open="0" type="815" id="22" label="BIFE_Album" />
        <listitem open="0" type="815" id="57" label="__construct" />
       <listitem open="0" type="813" id="20" label="Album" >
        <listitem open="0" type="815" id="22" label="BIFE_Album" />
        <listitem open="0" type="815" id="57" label="__construct" />
-       <listitem open="0" type="814" id="21" label="attrs" />
+       <listitem open="0" type="815" id="102" label="getDescription" />
+       <listitem open="0" type="815" id="95" label="getList" />
+       <listitem open="0" type="815" id="98" label="getThumbFilename" />
+       <listitem open="0" type="815" id="97" label="makeThumb" />
        <listitem open="0" type="815" id="23" label="render" />
        <listitem open="0" type="815" id="23" label="render" />
+       <listitem open="0" type="815" id="100" label="splitFilename" />
       </listitem>
       </listitem>
-      <listitem open="0" type="807" id="2" label="Class Diagram" />
-      <listitem open="0" type="813" id="5" label="Container" >
-       <listitem open="0" type="815" id="48" label="BIFE_Container" />
-       <listitem open="0" type="815" id="50" label="__construct" />
-       <listitem open="0" type="815" id="6" label="addContents" />
-       <listitem open="0" type="814" id="47" label="contents" />
-       <listitem open="0" type="815" id="59" label="render" />
+      <listitem open="1" type="807" id="114" label="Album Classes" />
+      <listitem open="0" type="813" id="103" label="AlbumPhoto" >
+       <listitem open="0" type="815" id="106" label="BIFE_AlbumPhoto" />
+       <listitem open="0" type="815" id="107" label="__construct" />
+       <listitem open="0" type="815" id="108" label="render" />
       </listitem>
       </listitem>
-      <listitem open="0" type="813" id="61" label="Fallback" >
-       <listitem open="0" type="815" id="62" label="BIFE_Fallback" />
-       <listitem open="0" type="815" id="63" label="__construct" />
+     </listitem>
+     <listitem open="1" type="803" id="-1" label="Basic" >
+      <listitem open="0" type="807" id="113" label="Basic Classes" />
+      <listitem open="0" type="813" id="76" label="Copy" >
+       <listitem open="0" type="815" id="79" label="BIFE_Copy" />
+       <listitem open="0" type="815" id="80" label="__construct" />
+       <listitem open="0" type="815" id="82" label="render" />
       </listitem>
       <listitem open="0" type="813" id="7" label="Generic" >
        <listitem open="0" type="815" id="10" label="BIFE_Generic" />
        <listitem open="0" type="815" id="51" label="__construct" />
        <listitem open="0" type="815" id="11" label="addContents" />
       </listitem>
       <listitem open="0" type="813" id="7" label="Generic" >
        <listitem open="0" type="815" id="10" label="BIFE_Generic" />
        <listitem open="0" type="815" id="51" label="__construct" />
        <listitem open="0" type="815" id="11" label="addContents" />
-       <listitem open="0" type="814" id="8" label="attrs" />
        <listitem open="0" type="815" id="12" label="render" />
       </listitem>
        <listitem open="0" type="815" id="12" label="render" />
       </listitem>
+      <listitem open="0" type="813" id="110" label="Link" >
+       <listitem open="0" type="815" id="111" label="BIFE_Link" />
+       <listitem open="0" type="815" id="112" label="__construct" />
+      </listitem>
       <listitem open="0" type="813" id="14" label="Page" >
        <listitem open="0" type="815" id="15" label="BIFE_Page" />
        <listitem open="0" type="815" id="53" label="__construct" />
       <listitem open="0" type="813" id="14" label="Page" >
        <listitem open="0" type="815" id="15" label="BIFE_Page" />
        <listitem open="0" type="815" id="53" label="__construct" />
+       <listitem open="0" type="815" id="93" label="addContents" />
+       <listitem open="0" type="815" id="90" label="render" />
       </listitem>
       <listitem open="0" type="813" id="17" label="Title" >
        <listitem open="0" type="815" id="18" label="BIFE_Title" />
        <listitem open="0" type="815" id="55" label="__construct" />
       </listitem>
       </listitem>
       <listitem open="0" type="813" id="17" label="Title" >
        <listitem open="0" type="815" id="18" label="BIFE_Title" />
        <listitem open="0" type="815" id="55" label="__construct" />
       </listitem>
+     </listitem>
+     <listitem open="1" type="803" id="-1" label="Core" >
+      <listitem open="0" type="813" id="5" label="Container" >
+       <listitem open="0" type="815" id="48" label="BIFE_Container" />
+       <listitem open="0" type="815" id="50" label="__construct" />
+       <listitem open="0" type="815" id="6" label="addContents" />
+       <listitem open="0" type="814" id="47" label="contents" />
+       <listitem open="0" type="815" id="59" label="render" />
+      </listitem>
+      <listitem open="0" type="807" id="2" label="Core Classes" />
+      <listitem open="0" type="813" id="61" label="Fallback" >
+       <listitem open="0" type="815" id="62" label="BIFE_Fallback" />
+       <listitem open="0" type="815" id="63" label="__construct" />
+       <listitem open="0" type="814" id="129" label="name" />
+      </listitem>
+      <listitem open="0" type="813" id="25" label="Parser" >
+       <listitem open="0" type="815" id="30" label="BIFE_Parser" />
+       <listitem open="0" type="815" id="31" label="__construct" />
+       <listitem open="0" type="815" id="32" label="__destruct" />
+       <listitem open="0" type="815" id="35" label="characterData" />
+       <listitem open="0" type="815" id="34" label="endElement" />
+       <listitem open="0" type="814" id="84" label="fallback" />
+       <listitem open="0" type="815" id="36" label="parse" />
+       <listitem open="0" type="815" id="37" label="parseFile" />
+       <listitem open="0" type="815" id="74" label="parseString" />
+       <listitem open="0" type="814" id="27" label="parser" />
+       <listitem open="0" type="814" id="26" label="root" />
+       <listitem open="0" type="814" id="29" label="stack" />
+       <listitem open="0" type="815" id="33" label="startElement" />
+      </listitem>
+      <listitem open="0" type="813" id="85" label="Root" >
+       <listitem open="0" type="815" id="87" label="BIFE_Root" />
+       <listitem open="0" type="815" id="88" label="__construct" />
+      </listitem>
       <listitem open="0" type="813" id="3" label="Widget" >
       <listitem open="0" type="813" id="3" label="Widget" >
+       <listitem open="0" type="815" id="126" label="BIFE_Widget" />
+       <listitem open="0" type="815" id="127" label="__construct" />
+       <listitem open="0" type="814" id="125" label="attrs" />
        <listitem open="0" type="815" id="4" label="render" />
       </listitem>
      </listitem>
        <listitem open="0" type="815" id="4" label="render" />
       </listitem>
      </listitem>
+     <listitem open="1" type="803" id="-1" label="Menu" >
+      <listitem open="0" type="813" id="115" label="Menu" >
+       <listitem open="0" type="815" id="121" label="BIFE_Menu" />
+       <listitem open="0" type="815" id="122" label="__construct" />
+       <listitem open="1" type="815" id="117" label="render" />
+      </listitem>
+      <listitem open="1" type="807" id="116" label="Menu Classes" />
+     </listitem>
+     <listitem open="1" type="807" id="128" label="_All Classes" />
     </listitem>
     <listitem open="1" type="802" id="-1" label="Use Case View" />
    </listitem>
     </listitem>
     <listitem open="1" type="802" id="-1" label="Use Case View" />
    </listitem>