Changeset - b3943d0b8126
[Not reviewed]
default
0 2 6
Michael Guravage - 15 years ago 2010-10-07 17:16:03
michael.guravage@cwi.nl
Added a Q3FileDialog in canvas.cpp:Main::exportCellData() inquire
where to write the exportCellData.

--
user: Michael Guravage <michael.guravage@cwi.nl>
branch 'default'
added doc/Makefile
added doc/stylesheet.json
added doc/v1.html
added doc/v1.pdf
added doc/v1.rst
added src/leaficon.png
changed src/ChangeLog
changed src/canvas.cpp
8 files changed with 2499 insertions and 6 deletions:
0 comments (0 inline, 0 general)
doc/Makefile
Show inline comments
 
new file 100644
 
.SUFFIXES : .rst .html .pdf
 

	
 
.rst.pdf :
 
	rst2pdf -s stylesheet.json $< -o $@
 

	
 
.rst.html :
 
	rst2html.py $< $@
 

	
 
all: v1.pdf v1.html
 

	
 
v1.pdf : v1.rst
 

	
 
v1.html : v1.rst
 

	
 
clean:
 
	/bin/rm -f v1.pdf v1.html
 

	
 
#finis
 
\ No newline at end of file
doc/stylesheet.json
Show inline comments
 
new file 100644
 
{
 
  "embeddedFonts" : [ ],
 
  "pageSetup" : {
 
    "size": "A4",
 
    "width": null,
 
    "height": null,
 
    "margin-top": "2cm",
 
    "margin-bottom": "2cm",
 
    "margin-left": "2cm",
 
    "margin-right": "2cm",
 
    "margin-gutter": "0cm",
 
    "spacing-header": "5mm",
 
    "spacing-footer": "5mm",
 
    "firstTemplate": "oneColumn"
 
  },
 
  "pageTemplates" : {
 
    "coverPage": {
 
        "frames": [
 
            ["0cm", "0cm", "100%", "100%"]
 
        ],
 
        "showHeader" : false,
 
        "showFooter" : false
 
    },
 
    "oneColumn": {
 
        "frames": [
 
            ["0cm", "0cm", "100%", "100%"]
 
        ],
 
        "showHeader" : true,
 
        "showFooter" : true
 
    },
 
    "twoColumn": {
 
        "frames": [
 
            ["0cm", "0cm", "49%", "100%"],
 
            ["51%", "0cm", "49%", "100%"]
 
        ],
 
        "showHeader" : true,
 
        "showFooter" : true
 
    },
 
    "threeColumn": {
 
        "frames": [
 
            ["2%", "0cm", "29.333%", "100%"],
 
            ["35.333%", "0cm", "29.333%", "100%"],
 
            ["68.666%", "0cm", "29.333%", "100%"]
 
        ],
 
        "showHeader" : true,
 
        "showFooter" : true
 
    },
 
    "cutePage": {
 
        "frames": [
 
            ["0%", "0%", "100%", "100%"]
 
        ],
 
        "showHeader" : true,
 
        "showFooter" : true,
 
        "defaultFooter" : "###Page###",
 
        "defaultHeader" : "###Section###"
 
    }
 
  },
 
  "fontsAlias" : {
 
    "stdFont": "Helvetica",     
 
    "stdBold": "Helvetica-Bold",
 
    "stdItalic": "Helvetica-Oblique",
 
    "stdBoldItalic": "Helvetica-BoldOblique",
 
    "stdSans": "Helvetica",
 
    "stdSansBold": "Helvetica-Bold",
 
    "stdSansItalic": "Helvetica-Oblique",
 
    "stdSansBoldItalic": "Helvetica-BoldOblique",
 
    "stdMono": "Courier",
 
    "stdMonoItalic": "Courier-Oblique",
 
    "stdMonoBold": "Courier-Bold",
 
    "stdMonoBoldItalic": "Courier-BoldOblique",
 
    "stdSerif": "Times-Roman"
 
  },
 
  "linkColor" : "navy",
 
  "styles" : [
 
    [ "base" , {
 
      "parent": null,
 
      "fontName": "stdFont",
 
      "fontSize":10,
 
      "leading":12,
 
      "leftIndent":0,
 
      "rightIndent":0,
 
      "firstLineIndent":0,
 
      "alignment":"TA_LEFT",
 
      "spaceBefore":0,
 
      "spaceAfter":0,
 
      "bulletFontName":"stdFont",
 
      "bulletFontSize":10,
 
      "bulletIndent":0,
 
      "textColor": "black",
 
      "backColor": null,
 
      "wordWrap": null,
 
      "borderWidth": 0,
 
      "borderPadding": 0,
 
      "borderColor": null,
 
      "borderRadius": null,
 
      "allowWidows": false,
 
      "allowOrphans": false,
 
      "hyphenation": false,
 
      "kerning": false
 
    }] ,
 
    ["normal" , {
 
      "parent": "base"
 
    }],
 
    ["title_reference" , {
 
      "parent": "normal",
 
      "fontName": "stdItalic"
 
    }],
 
    ["bodytext" , {
 
      "parent": "normal",
 
      "spaceBefore":6,
 
      "alignment": "TA_JUSTIFY",
 
      "hyphenation": true
 
    }],
 
    ["toc" , {
 
      "parent": "normal"
 
    }],
 
    ["blockquote" , {
 
      "parent": "bodytext",
 
      "leftIndent": 20
 
    }],
 
    ["lineblock" , {
 
      "parent": "bodytext"
 
    }],
 
    ["toc1" , {
 
      "parent": "toc",
 
      "fontName": "stdBold"
 
    }],
 
    ["toc2" , {
 
      "parent": "toc",
 
      "leftIndent": 20
 
    }],
 
    ["toc3" , {
 
      "parent": "toc",
 
      "leftIndent": 40
 
    }],
 
    ["toc4" , {
 
      "parent": "toc",
 
      "leftIndent": 60
 
    }],
 
    ["toc5" , {
 
      "parent": "toc",
 
      "leftIndent": 80
 
    }],
 
    ["toc6" , {
 
      "parent": "toc",
 
      "leftIndent": 100
 
    }],
 
    ["toc7" , {
 
      "parent": "toc",
 
      "leftIndent": 100
 
    }],
 
    ["toc8" , {
 
      "parent": "toc",
 
      "leftIndent": 100
 
    }],
 
    ["toc9" , {
 
      "parent": "toc",
 
      "leftIndent": 100
 
    }],
 
    ["toc10" , {
 
      "parent": "toc",
 
      "leftIndent": 100
 
    }],
 
    ["toc11" , {
 
      "parent": "toc",
 
      "leftIndent": 100
 
    }],
 
    ["toc12" , {
 
      "parent": "toc",
 
      "leftIndent": 100
 
    }],
 
    ["toc13" , {
 
      "parent": "toc",
 
      "leftIndent": 100
 
    }],
 
    ["toc14" , {
 
      "parent": "toc",
 
      "leftIndent": 100
 
    }],
 
    ["toc15" , {
 
      "parent": "toc",
 
      "leftIndent": 100
 
    }],
 
    ["footer" , {
 
      "parent": "normal",
 
      "alignment": "TA_CENTER"
 
    }],
 
    ["header" , {
 
      "parent": "normal",
 
      "alignment": "TA_CENTER"
 
    }],
 
    ["attribution" , {
 
      "parent": "bodytext",
 
      "alignment": "TA_RIGHT"
 
    }],
 
    ["figure" , {
 
      "parent": "bodytext",
 
      "alignment": "TA_CENTER"
 
    }],
 
    ["figure-caption" , {
 
      "parent": "bodytext",
 
      "fontName": "stdItalic",
 
      "alignment": "TA_CENTER"
 
    }],
 
    ["figure-legend" , {
 
      "parent": "bodytext",
 
      "alignment": "TA_CENTER"
 
    }],
 
    ["bullet_list_item" , {
 
      "parent": "bodytext",
 
      "spaceBefore":-3
 
    }],
 
    ["item_list_item" , {
 
      "parent": "bodytext",
 
      "spaceBefore":-3
 
    }],
 
    ["enumerated_list" , {
 
      "parent": "bodytext",
 
      "spaceBefore": 0
 
    }],
 
    ["enumerated_list_item" , {
 
      "parent": "bodytext"
 
    }],
 
    ["definition_list_term" , {
 
      "parent": "normal",
 
      "fontName": "stdBold",
 
      "spaceBefore": 4,
 
      "spaceAfter": 0,
 
      "keepWithNext": true
 
    }],
 
    ["definition_list_classifier" , {
 
      "parent": "normal",
 
      "fontName": "stdItalic"
 
    }],
 
    ["definition" , {
 
      "parent": "bodytext",
 
      "firstLineIndent": 0,
 
      "bulletIndent": 0,
 
      "spaceBefore": 0
 
    }],
 
    ["fieldname" , {
 
      "parent": "bodytext",
 
      "alignment": "TA_RIGHT",
 
      "fontName": "stdBold"
 
    }],
 
    ["fieldvalue" , {
 
      "parent": "bodytext"
 
    }],
 
    ["rubric" , {
 
      "parent": "bodytext",
 
      "textColor": "darkred",
 
      "alignment": "TA_CENTER"
 
    }],
 
    ["italic" , {
 
      "parent": "bodytext",
 
      "fontName": "stdItalic"
 
    }],
 
    ["heading" , {
 
      "parent": "normal",
 
      "keepWithNext": true,
 
      "spaceBefore": 12,
 
      "spaceAfter": 6
 
    }],
 
    ["title" , {
 
      "parent": "heading",
 
      "fontName": "stdBold",
 
      "fontSize": "200%",
 
      "alignment": "TA_LEFT",
 
      "keepWithNext": false,
 
      "spaceAfter": 10
 
    }],
 
    ["subtitle" , {
 
      "parent": "title",
 
      "spaceBefore": 12,
 
      "fontSize": "75%"
 
    }],
 
    ["heading1" , {
 
      "parent": "heading",
 
      "fontName": "stdBold",
 
      "fontSize": "175%"
 
    }],
 
    ["heading2" , {
 
      "parent": "heading",
 
      "fontName": "stdBold",
 
      "fontSize": "150%"
 
    }],
 
    ["heading3" , {
 
      "parent": "heading",
 
      "fontName": "stdBoldItalic",
 
      "fontSize": "125%"
 
    }],
 
    ["heading4" , {
 
      "parent": "heading",
 
      "fontName": "stdBoldItalic"
 
    }],
 
    ["heading5" , {
 
      "parent": "heading",
 
      "fontName": "stdBoldItalic"
 
    }],
 
    ["heading6" , {
 
      "parent": "heading",
 
      "fontName": "stdBoldItalic"
 
    }],
 
    ["topic-title" , {
 
      "parent": "heading3"
 
    }],
 
    ["sidebar-title" , {
 
      "parent": "heading3"
 
    }],
 
    ["sidebar-subtitle" , {
 
      "parent": "heading4"
 
    }],
 
    ["sidebar" , {
 
      "float": "none",
 
      "width": "100%",
 
      "parent": "normal",
 
      "backColor": "beige",
 
      "borderColor": "darkgray",
 
      "borderPadding": 8,
 
      "borderWidth": 0.5
 
    }],
 
    ["admonition" , {
 
      "parent": "normal",
 
      "spaceBefore": 12,
 
      "spaceAfter": 6,
 
      "borderPadding": [16,16,16,16],
 
      "backColor": "beige",
 
      "borderColor": "darkgray",
 
      "borderWidth": 0.5,
 
      "commands":[
 
            [ "VALIGN", [ 0, 0 ], [ -1, -1 ], "TOP" ]
 
      ]
 
    }],
 
    ["attention" , {
 
      "parent": "admonition"
 
    }],
 
    ["caution" , {
 
      "parent": "admonition"
 
    }],
 
    ["danger" , {
 
      "parent": "admonition"
 
    }],
 
    ["error" , {
 
      "parent": "admonition"
 
    }],
 
    ["hint" , {
 
      "parent": "admonition"
 
    }],
 
    ["important" , {
 
      "parent": "admonition"
 
    }],
 
    ["note" , {
 
      "parent": "admonition"
 
    }],
 
    ["tip" , {
 
      "parent": "admonition"
 
    }],
 
    ["warning" , {
 
      "parent": "admonition"
 
    }],
 
    ["admonition-title" , {
 
      "parent": "heading3"
 
    }],
 
    ["admonition-heading" , {
 
      "parent": "heading3"
 
    }],
 
    ["attention-heading" , {
 
      "parent": "admonition-heading"
 
    }],
 
    ["caution-heading" , {
 
      "parent": "admonition-heading"
 
    }],
 
    ["danger-heading" , {
 
      "parent": "admonition-heading"
 
    }],
 
    ["error-heading" , {
 
      "parent": "admonition-heading"
 
    }],
 
    ["hint-heading" , {
 
      "parent": "admonition-heading"
 
    }],
 
    ["important-heading" , {
 
      "parent": "admonition-heading"
 
    }],
 
    ["note-heading" , {
 
      "parent": "admonition-heading"
 
    }],
 
    ["tip-heading" , {
 
      "parent": "admonition-heading"
 
    }],
 
    ["warning-heading" , {
 
      "parent": "admonition-heading"
 
    }],
 
    ["literal" , {
 
      "parent": "normal",
 
      "fontName": "stdMono",
 
      "firstLineIndent": 0,
 
      "hyphenation": false
 
    }],
 
    ["aafigure" , {
 
      "parent": "literal"
 
    }],
 
    ["table" , {
 
      "spaceBefore":6,
 
      "spaceAfter":0,
 
      "commands": [
 
            [ "VALIGN", [ 0, 0 ], [ -1, -1 ], "TOP" ], 
 
            [ "INNERGRID", [ 0, 0 ], [ -1, -1 ], 0.25, "black" ], 
 
            [ "ROWBACKGROUNDS", [0, 0], [-1, -1], ["white","#E0E0E0"]],
 
            [ "BOX", [ 0, 0 ], [ -1, -1 ], 0.25, "black" ]
 
      ]
 
    }],
 
    ["table-title" , {
 
      "parent" : "heading4",
 
      "alignment" : "TA_CENTER"
 
    }],
 
    ["table-heading" , {
 
      "parent" : "heading",
 
      "backColor" : "beige",
 
      "alignment" : "TA_CENTER",
 
      "valign" : "BOTTOM",
 
      "borderPadding" : 0
 
    }],
 
    ["dedication" , {
 
      "parent" : "normal"
 
    }],
 
    ["abstract" , {
 
      "parent" : "normal"
 
    }],
 
    ["contents" , {
 
      "parent" : "normal"
 
    }],
 
    ["tableofcontents" , {
 
      "parent" : "normal"
 
    }],
 
    ["code" , {
 
      "parent": "literal",
 
      "leftIndent": 0,
 
      "spaceBefore": 8,
 
      "spaceAfter": 8,
 
      "backColor": "beige",
 
      "borderColor": "darkgray",
 
      "borderWidth": 0.5,
 
      "borderPadding": 6
 
    }],
 
    ["pygments-n" , {"parent": "code"}],
 
    ["pygments-nx" , {"parent": "code"}],
 
    ["pygments-p" , {"parent": "code"}],
 
    ["pygments-hll", {"parent": "code", "backColor": "#ffffcc"}],
 
    ["pygments-c", {"textColor": "#008800", "parent": "code"}],
 
    ["pygments-err", {"parent": "code"}],
 
    ["pygments-k", {"textColor": "#AA22FF", "parent": "code"}],
 
    ["pygments-o", {"textColor": "#666666", "parent": "code"}],
 
    ["pygments-cm", {"textColor": "#008800", "parent": "code"}],
 
    ["pygments-cp", {"textColor": "#008800", "parent": "code"}],
 
    ["pygments-c1", {"textColor": "#008800", "parent": "code"}],
 
    ["pygments-cs", {"textColor": "#008800", "parent": "code"}],
 
    ["pygments-gd", {"textColor": "#A00000", "parent": "code"}],
 
    ["pygments-ge", {"parent": "code"}],
 
    ["pygments-gr", {"textColor": "#FF0000", "parent": "code"}],
 
    ["pygments-gh", {"textColor": "#000080", "parent": "code"}],
 
    ["pygments-gi", {"textColor": "#00A000", "parent": "code"}],
 
    ["pygments-go", {"textColor": "#808080", "parent": "code"}],
 
    ["pygments-gp", {"textColor": "#000080", "parent": "code"}],
 
    ["pygments-gs", {"parent": "code"}],
 
    ["pygments-gu", {"textColor": "#800080", "parent": "code"}],
 
    ["pygments-gt", {"textColor": "#0040D0", "parent": "code"}],
 
    ["pygments-kc", {"textColor": "#AA22FF", "parent": "code"}],
 
    ["pygments-kd", {"textColor": "#AA22FF", "parent": "code"}],
 
    ["pygments-kn", {"textColor": "#AA22FF", "parent": "code"}],
 
    ["pygments-kp", {"textColor": "#AA22FF", "parent": "code"}],
 
    ["pygments-kr", {"textColor": "#AA22FF", "parent": "code"}],
 
    ["pygments-kt", {"textColor": "#00BB00", "parent": "code"}],
 
    ["pygments-m", {"textColor": "#666666", "parent": "code"}],
 
    ["pygments-s", {"textColor": "#BB4444", "parent": "code"}],
 
    ["pygments-na", {"textColor": "#BB4444", "parent": "code"}],
 
    ["pygments-nb", {"textColor": "#AA22FF", "parent": "code"}],
 
    ["pygments-nc", {"textColor": "#0000FF", "parent": "code"}],
 
    ["pygments-no", {"textColor": "#880000", "parent": "code"}],
 
    ["pygments-nd", {"textColor": "#AA22FF", "parent": "code"}],
 
    ["pygments-ni", {"textColor": "#999999", "parent": "code"}],
 
    ["pygments-ne", {"textColor": "#D2413A", "parent": "code"}],
 
    ["pygments-nf", {"textColor": "#00A000", "parent": "code"}],
 
    ["pygments-nl", {"textColor": "#A0A000", "parent": "code"}],
 
    ["pygments-nn", {"textColor": "#0000FF", "parent": "code"}],
 
    ["pygments-nt", {"textColor": "#008000", "parent": "code"}],
 
    ["pygments-nv", {"textColor": "#B8860B", "parent": "code"}],
 
    ["pygments-ow", {"textColor": "#AA22FF", "parent": "code"}],
 
    ["pygments-w", {"textColor": "#bbbbbb", "parent": "code"}],
 
    ["pygments-mf", {"textColor": "#666666", "parent": "code"}],
 
    ["pygments-mh", {"textColor": "#666666", "parent": "code"}],
 
    ["pygments-mi", {"textColor": "#666666", "parent": "code"}],
 
    ["pygments-mo", {"textColor": "#666666", "parent": "code"}],
 
    ["pygments-sb", {"textColor": "#BB4444", "parent": "code"}],
 
    ["pygments-sc", {"textColor": "#BB4444", "parent": "code"}],
 
    ["pygments-sd", {"textColor": "#BB4444", "parent": "code"}],
 
    ["pygments-s2", {"textColor": "#BB4444", "parent": "code"}],
 
    ["pygments-se", {"textColor": "#BB6622", "parent": "code"}],
 
    ["pygments-sh", {"textColor": "#BB4444", "parent": "code"}],
 
    ["pygments-si", {"textColor": "#BB6688", "parent": "code"}],
 
    ["pygments-sx", {"textColor": "#008000", "parent": "code"}],
 
    ["pygments-sr", {"textColor": "#BB6688", "parent": "code"}],
 
    ["pygments-s1", {"textColor": "#BB4444", "parent": "code"}],
 
    ["pygments-ss", {"textColor": "#B8860B", "parent": "code"}],
 
    ["pygments-bp", {"textColor": "#AA22FF", "parent": "code"}],
 
    ["pygments-vc", {"textColor": "#B8860B", "parent": "code"}],
 
    ["pygments-vg", {"textColor": "#B8860B", "parent": "code"}],
 
    ["pygments-vi", {"textColor": "#B8860B", "parent": "code"}],
 
    ["pygments-il", {"textColor": "#666666", "parent": "code"}],
 
    
 
    ["item_list", { 
 
      "parent": "bodytext",
 
      "spaceBefore": 0,
 
      "commands": [
 
            [ "VALIGN", [ 0, 0 ], [ -1, -1 ], "TOP" ], 
 
            [ "RIGHTPADDING", [ 0, 0 ], [ 1, -1 ], 0 ] 
 
        ],
 
        "colWidths": ["20pt",null]
 
    }],
 
    ["bullet_list", {
 
      "parent": "bodytext",
 
      "spaceBefore": 0,
 
      "commands": [
 
            [ "VALIGN", [ 0, 0 ], [ -1, -1 ], "TOP" ],
 
            [ "RIGHTPADDING", [ 0, 0 ], [ 1, -1 ], 0 ] 
 
        ], 
 
        "colWidths": ["20",null]
 
    }],
 
     [ "endnote", {
 
         "parent": "bodytext",
 
         "commands": [
 
            [ "VALIGN", [ 0, 0 ], [ -1, -1 ], "TOP" ],
 
            [ "TOPPADDING", [ 0, 0 ], [ -1, -1 ], 0 ], 
 
            [ "BOTTOMPADDING", [ 0, 0 ], [ -1, -1 ], 0 ], 
 
            [ "RIGHTPADDING", [ 0, 0 ], [ 1, -1 ], 0 ] 
 
        ], 
 
        "colWidths": ["3cm",null]
 
    }],
 
    [ "field_list", {
 
         "parent": "bodytext",
 
         "commands": [
 
            [ "VALIGN", [ 0, 0 ], [ -1, -1 ], "TOP" ], 
 
            [ "TOPPADDING", [ 0, 0 ], [ -1, -1 ], 0 ]
 
        ], 
 
        "colWidths": ["3cm",null],
 
        "spaceBefore": 6
 
    }],
 
    [ "option_list", {
 
         "commands": [
 
            [ "VALIGN", [ 0, 0 ], [ -1, -1 ], "TOP" ], 
 
            [ "TOPPADDING", [ 0, 0 ], [ -1, -1 ], 0 ]
 
        ],
 
        "colWidths": [null,null]
 
    }]
 
  ]
 
}
 

	
doc/v1.html
Show inline comments
 
new file 100644
 
<?xml version="1.0" encoding="utf-8" ?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
<meta name="generator" content="Docutils 0.6: http://docutils.sourceforge.net/" />
 
<title>The Virtual Leaf</title>
 
<style type="text/css">
 

	
 
/*
 
:Author: David Goodger (goodger@python.org)
 
:Id: $Id: html4css1.css 5951 2009-05-18 18:03:10Z milde $
 
:Copyright: This stylesheet has been placed in the public domain.
 

	
 
Default cascading style sheet for the HTML output of Docutils.
 

	
 
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
 
customize this style sheet.
 
*/
 

	
 
/* used to remove borders from tables and images */
 
.borderless, table.borderless td, table.borderless th {
 
  border: 0 }
 

	
 
table.borderless td, table.borderless th {
 
  /* Override padding for "table.docutils td" with "! important".
 
     The right padding separates the table cells. */
 
  padding: 0 0.5em 0 0 ! important }
 

	
 
.first {
 
  /* Override more specific margin styles with "! important". */
 
  margin-top: 0 ! important }
 

	
 
.last, .with-subtitle {
 
  margin-bottom: 0 ! important }
 

	
 
.hidden {
 
  display: none }
 

	
 
a.toc-backref {
 
  text-decoration: none ;
 
  color: black }
 

	
 
blockquote.epigraph {
 
  margin: 2em 5em ; }
 

	
 
dl.docutils dd {
 
  margin-bottom: 0.5em }
 

	
 
/* Uncomment (and remove this text!) to get bold-faced definition list terms
 
dl.docutils dt {
 
  font-weight: bold }
 
*/
 

	
 
div.abstract {
 
  margin: 2em 5em }
 

	
 
div.abstract p.topic-title {
 
  font-weight: bold ;
 
  text-align: center }
 

	
 
div.admonition, div.attention, div.caution, div.danger, div.error,
 
div.hint, div.important, div.note, div.tip, div.warning {
 
  margin: 2em ;
 
  border: medium outset ;
 
  padding: 1em }
 

	
 
div.admonition p.admonition-title, div.hint p.admonition-title,
 
div.important p.admonition-title, div.note p.admonition-title,
 
div.tip p.admonition-title {
 
  font-weight: bold ;
 
  font-family: sans-serif }
 

	
 
div.attention p.admonition-title, div.caution p.admonition-title,
 
div.danger p.admonition-title, div.error p.admonition-title,
 
div.warning p.admonition-title {
 
  color: red ;
 
  font-weight: bold ;
 
  font-family: sans-serif }
 

	
 
/* Uncomment (and remove this text!) to get reduced vertical space in
 
   compound paragraphs.
 
div.compound .compound-first, div.compound .compound-middle {
 
  margin-bottom: 0.5em }
 

	
 
div.compound .compound-last, div.compound .compound-middle {
 
  margin-top: 0.5em }
 
*/
 

	
 
div.dedication {
 
  margin: 2em 5em ;
 
  text-align: center ;
 
  font-style: italic }
 

	
 
div.dedication p.topic-title {
 
  font-weight: bold ;
 
  font-style: normal }
 

	
 
div.figure {
 
  margin-left: 2em ;
 
  margin-right: 2em }
 

	
 
div.footer, div.header {
 
  clear: both;
 
  font-size: smaller }
 

	
 
div.line-block {
 
  display: block ;
 
  margin-top: 1em ;
 
  margin-bottom: 1em }
 

	
 
div.line-block div.line-block {
 
  margin-top: 0 ;
 
  margin-bottom: 0 ;
 
  margin-left: 1.5em }
 

	
 
div.sidebar {
 
  margin: 0 0 0.5em 1em ;
 
  border: medium outset ;
 
  padding: 1em ;
 
  background-color: #ffffee ;
 
  width: 40% ;
 
  float: right ;
 
  clear: right }
 

	
 
div.sidebar p.rubric {
 
  font-family: sans-serif ;
 
  font-size: medium }
 

	
 
div.system-messages {
 
  margin: 5em }
 

	
 
div.system-messages h1 {
 
  color: red }
 

	
 
div.system-message {
 
  border: medium outset ;
 
  padding: 1em }
 

	
 
div.system-message p.system-message-title {
 
  color: red ;
 
  font-weight: bold }
 

	
 
div.topic {
 
  margin: 2em }
 

	
 
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
 
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
 
  margin-top: 0.4em }
 

	
 
h1.title {
 
  text-align: center }
 

	
 
h2.subtitle {
 
  text-align: center }
 

	
 
hr.docutils {
 
  width: 75% }
 

	
 
img.align-left, .figure.align-left{
 
  clear: left ;
 
  float: left ;
 
  margin-right: 1em }
 

	
 
img.align-right, .figure.align-right {
 
  clear: right ;
 
  float: right ;
 
  margin-left: 1em }
 

	
 
.align-left {
 
  text-align: left }
 

	
 
.align-center {
 
  clear: both ;
 
  text-align: center }
 

	
 
.align-right {
 
  text-align: right }
 

	
 
/* reset inner alignment in figures */
 
div.align-right {
 
  text-align: left }
 

	
 
/* div.align-center * { */
 
/*   text-align: left } */
 

	
 
ol.simple, ul.simple {
 
  margin-bottom: 1em }
 

	
 
ol.arabic {
 
  list-style: decimal }
 

	
 
ol.loweralpha {
 
  list-style: lower-alpha }
 

	
 
ol.upperalpha {
 
  list-style: upper-alpha }
 

	
 
ol.lowerroman {
 
  list-style: lower-roman }
 

	
 
ol.upperroman {
 
  list-style: upper-roman }
 

	
 
p.attribution {
 
  text-align: right ;
 
  margin-left: 50% }
 

	
 
p.caption {
 
  font-style: italic }
 

	
 
p.credits {
 
  font-style: italic ;
 
  font-size: smaller }
 

	
 
p.label {
 
  white-space: nowrap }
 

	
 
p.rubric {
 
  font-weight: bold ;
 
  font-size: larger ;
 
  color: maroon ;
 
  text-align: center }
 

	
 
p.sidebar-title {
 
  font-family: sans-serif ;
 
  font-weight: bold ;
 
  font-size: larger }
 

	
 
p.sidebar-subtitle {
 
  font-family: sans-serif ;
 
  font-weight: bold }
 

	
 
p.topic-title {
 
  font-weight: bold }
 

	
 
pre.address {
 
  margin-bottom: 0 ;
 
  margin-top: 0 ;
 
  font: inherit }
 

	
 
pre.literal-block, pre.doctest-block {
 
  margin-left: 2em ;
 
  margin-right: 2em }
 

	
 
span.classifier {
 
  font-family: sans-serif ;
 
  font-style: oblique }
 

	
 
span.classifier-delimiter {
 
  font-family: sans-serif ;
 
  font-weight: bold }
 

	
 
span.interpreted {
 
  font-family: sans-serif }
 

	
 
span.option {
 
  white-space: nowrap }
 

	
 
span.pre {
 
  white-space: pre }
 

	
 
span.problematic {
 
  color: red }
 

	
 
span.section-subtitle {
 
  /* font-size relative to parent (h1..h6 element) */
 
  font-size: 80% }
 

	
 
table.citation {
 
  border-left: solid 1px gray;
 
  margin-left: 1px }
 

	
 
table.docinfo {
 
  margin: 2em 4em }
 

	
 
table.docutils {
 
  margin-top: 0.5em ;
 
  margin-bottom: 0.5em }
 

	
 
table.footnote {
 
  border-left: solid 1px black;
 
  margin-left: 1px }
 

	
 
table.docutils td, table.docutils th,
 
table.docinfo td, table.docinfo th {
 
  padding-left: 0.5em ;
 
  padding-right: 0.5em ;
 
  vertical-align: top }
 

	
 
table.docutils th.field-name, table.docinfo th.docinfo-name {
 
  font-weight: bold ;
 
  text-align: left ;
 
  white-space: nowrap ;
 
  padding-left: 0 }
 

	
 
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
 
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
 
  font-size: 100% }
 

	
 
ul.auto-toc {
 
  list-style-type: none }
 

	
 
</style>
 
</head>
 
<body>
 
<div class="header">
 
###Title###
 
<hr class="header"/>
 
</div>
 
<div class="document" id="the-virtual-leaf">
 
<h1 class="title">The Virtual Leaf</h1>
 

	
 
<div class="section" id="friday-11-june-2010">
 
<h1>Friday 11 June 2010</h1>
 
<p>Issues:</p>
 
<blockquote>
 
<ol class="arabic">
 
<li><p class="first">Every class that has an association or composition eventually will
 
need its own custom view page template, e.g. sed_view. For the moment
 
I have set the default view for these classes to dev_view ( a copy of
 
base_view ).</p>
 
</li>
 
<li><p class="first">An association in UML is cast as a ReferenceField in the resulting
 
class schema. Open the association and add the widget:label tag to
 
the class that is being associated.</p>
 
</li>
 
<li><p class="first">The default description text for a class should be a informative
 
description of the class, not the instance, derived from the
 
SED-ML manual.</p>
 
</li>
 
<li><p class="first">Apply 'searchable' tags to the appropriate class attributes.</p>
 
</li>
 
<li><p class="first">I choose 'isTidyHtmlWithCleanup' as the MathML validator. Will
 
this work?</p>
 
</li>
 
<li><p class="first">What should be added to our implementation of SED-ML to make it
 
more than merely a mirror image of the SED-ML XML format?</p>
 
<blockquote>
 
<ol class="loweralpha simple">
 
<li>The ability to attach files at various points, e.g. parameter files.</li>
 
<li>Additional output types, e.g. animations.</li>
 
<li>Custom page templates</li>
 
<li>Custom search form</li>
 
<li>Custom catalog indexes</li>
 
<li>Custom portlet(s)</li>
 
<li>Custom viewlet(s)</li>
 
</ol>
 
</blockquote>
 
</li>
 
</ol>
 
</blockquote>
 
</div>
 
<div class="section" id="friday-24-september-2010">
 
<h1>Friday 24 September 2010</h1>
 
<dl class="docutils">
 
<dt>To Do:</dt>
 
<dd><ol class="first last arabic simple">
 
<li>Publish our mercurial repositories (Chris/Martin). This may mesh with deploying Plone.</li>
 
<li>Create a vleaf mailing list (Henk).</li>
 
</ol>
 
</dd>
 
</dl>
 
<p>Found an article on SBRML - a markup language for associating systems
 
biology data with models. At a glance the schema seems bigger than
 
SED-ML's, but SBRML appears to be SBML specific.</p>
 
</div>
 
<div class="section" id="monday-27-september-2010">
 
<h1>Monday 27 September 2010</h1>
 
<p>Spoke with Chris about publishing the Mercurial repositories and
 
deploying Plone. Both can be accomplished in their own project space
 
on a server in the DMZ. Chris said he would supply me with login
 
credentials for both accounts. I will install Plone and Chris (or
 
Maarten) will help me configure Apache/nginx and Varnish. Chris will
 
install the required Mercurial packages; after which I can clone the
 
repositories to their new home.</p>
 
</div>
 
<div class="section" id="tuesday-5-october-20010">
 
<h1>Tuesday 5 October 20010</h1>
 
<div class="section" id="tutorial0-pro">
 
<h2>tutorial0.pro</h2>
 
<p>Added simplugin.h to list of header files. NB: this is the only
 
tutorial in which simplugin.h appears.</p>
 
</div>
 
<div class="section" id="auxingrowthplugin-h">
 
<h2>auxingrowthplugin.h</h2>
 
<p>Declared, and defined, a virtual function named <tt class="docutils literal">DefaultLeafML()</tt>
 
which merely returns a QString naming a LeafML filename sans path.</p>
 
</div>
 
<div class="section" id="virtualleaf-cpp">
 
<h2>VirtualLeaf.cpp</h2>
 
<p>Moved <tt class="docutils literal"><span class="pre">Cell::SetMagnification()</span></tt> and <tt class="docutils literal"><span class="pre">Cell::SetOffset()</span></tt> from
 
<tt class="docutils literal">main()</tt> to <tt class="docutils literal"><span class="pre">MainBase::Init()</span></tt>.</p>
 
</div>
 
<div class="section" id="canvas-h">
 
<h2>canvas.h</h2>
 
<p>Declare <tt class="docutils literal">exportCellData()</tt>.</p>
 
</div>
 
<div class="section" id="canvas-cpp">
 
<h2>canvas.cpp</h2>
 
<p>Add an 'Export cell areas' to the file dropdown menu which invokes - surprise - <tt class="docutils literal"><span class="pre">Main::exportCellData()</span></tt>:</p>
 
<pre class="literal-block">
 
void Main::exportCellData(void) {
 
  QFile file(&quot;areas.csv&quot;);
 
  if ( file.open( IO_WriteOnly ) ) {
 
    QTextStream stream( &amp;file );
 
    mesh.CSVExportCellData(stream);
 
    mesh.CSVExportMeshData(stream);
 
    file.close();
 
  }
 
}
 
</pre>
 
</div>
 
<div class="section" id="mesh-h">
 
<h2>mesh.h</h2>
 
<p>Include <tt class="docutils literal">&lt;QTextStream&gt;</tt></p>
 
<p>Set the boundary_poloygon pointer to zero in the class constructor,
 
and delete it, if it exists, in the class destructor.</p>
 
<p>Declare <tt class="docutils literal">Compactness()</tt>, <tt class="docutils literal">CSVExportCellData()</tt> and <tt class="docutils literal">CSVExportMeshData()</tt>:</p>
 
<pre class="literal-block">
 
double Compactness(double *res_compactness=0, double *res_area=0, double *res_cell_area=0);
 
void CSVExportCellData(QTextStream &amp;csv_stream) const;
 
void CSVExportMeshData(QTextStream &amp;csv_stream);
 
</pre>
 
</div>
 
<div class="section" id="mesh-cpp">
 
<h2>mesh.cpp</h2>
 
<p>In <tt class="docutils literal"><span class="pre">mesh::clear()</span></tt>, delete the boundary_polygon only if the pointer hasn't been assigned:</p>
 
<pre class="literal-block">
 
if (boundary_polygon) {
 
   delete boundary_polygon;
 
   boundary_polygon=0;
 
 }
 
</pre>
 
<p>Ditto for <tt class="docutils literal"><span class="pre">mesh::clean()</span></tt>.</p>
 
<p>Define the code for <tt class="docutils literal">Compactness()</tt>, <tt class="docutils literal">CSVExportCellData()</tt> and <tt class="docutils literal">CSVExportMeshData()</tt>.</p>
 
</div>
 
<div class="section" id="modelcatalogue-cpp">
 
<h2>modelcatalogue.cpp</h2>
 
<p>In <tt class="docutils literal">InstallModel()</tt>, find and load the default LeafML file.</p>
 
</div>
 
<div class="section" id="simplugin-h">
 
<h2>simplugin.h</h2>
 
<p>Declare <tt class="docutils literal">DefaultLeafML()</tt>:</p>
 
<pre class="literal-block">
 
// Default LeafML-file to be read after model startup
 
virtual QString DefaultLeafML(void);
 
</pre>
 
</div>
 
<div class="section" id="simplugin-cpp">
 
<h2>simplugin.cpp</h2>
 
<p>Define <tt class="docutils literal">DefaultLeafML()</tt>. Returns an empty <tt class="docutils literal">QString</tt>:</p>
 
<pre class="literal-block">
 
QString SimPluginInterface::DefaultLeafML(void) { return QString(); }
 
</pre>
 
</div>
 
<div class="section" id="xmlwrite-cpp">
 
<h2>xmlwrite.cpp</h2>
 
<p>In <tt class="docutils literal"><span class="pre">Mesh::XMLReadCells()</span></tt> - Delete the boundary_ploygon only if its
 
pointer has been assigned.</p>
 
</div>
 
</div>
 
</div>
 
<div class="footer">
 
<hr class="footer" />
 
###Page###
 
</div>
 
</body>
 
</html>
doc/v1.pdf
Show inline comments
 
new file 100644
 
%PDF-1.3
 
%“Œ‹ž ReportLab Generated PDF document http://www.reportlab.com
 
% 'BasicFonts': class PDFDictionary 
 
1 0 obj
 
% The standard fonts dictionary
 
<< /F1 2 0 R
 
 /F2 3 0 R
 
 /F3 5 0 R >>
 
endobj
 
% 'F1': class PDFType1Font 
 
2 0 obj
 
% Font Helvetica
 
<< /BaseFont /Helvetica
 
 /Encoding /WinAnsiEncoding
 
 /Name /F1
 
 /Subtype /Type1
 
 /Type /Font >>
 
endobj
 
% 'F2': class PDFType1Font 
 
3 0 obj
 
% Font Helvetica-Bold
 
<< /BaseFont /Helvetica-Bold
 
 /Encoding /WinAnsiEncoding
 
 /Name /F2
 
 /Subtype /Type1
 
 /Type /Font >>
 
endobj
 
% 'Page1': class PDFPage 
 
4 0 obj
 
% Page dictionary
 
<< /Contents 27 0 R
 
 /MediaBox [ 0
 
 0
 
 595.2756
 
 841.8898 ]
 
 /Parent 26 0 R
 
 /Resources << /Font 1 0 R
 
 /ProcSet [ /PDF
 
 /Text
 
 /ImageB
 
 /ImageC
 
 /ImageI ] >>
 
 /Rotate 0
 
 /Trans <<  >>
 
 /Type /Page >>
 
endobj
 
% 'F3': class PDFType1Font 
 
5 0 obj
 
% Font Courier
 
<< /BaseFont /Courier
 
 /Encoding /WinAnsiEncoding
 
 /Name /F3
 
 /Subtype /Type1
 
 /Type /Font >>
 
endobj
 
% 'Page2': class PDFPage 
 
6 0 obj
 
% Page dictionary
 
<< /Contents 28 0 R
 
 /MediaBox [ 0
 
 0
 
 595.2756
 
 841.8898 ]
 
 /Parent 26 0 R
 
 /Resources << /Font 1 0 R
 
 /ProcSet [ /PDF
 
 /Text
 
 /ImageB
 
 /ImageC
 
 /ImageI ] >>
 
 /Rotate 0
 
 /Trans <<  >>
 
 /Type /Page >>
 
endobj
 
% 'Page3': class PDFPage 
 
7 0 obj
 
% Page dictionary
 
<< /Contents 29 0 R
 
 /MediaBox [ 0
 
 0
 
 595.2756
 
 841.8898 ]
 
 /Parent 26 0 R
 
 /Resources << /Font 1 0 R
 
 /ProcSet [ /PDF
 
 /Text
 
 /ImageB
 
 /ImageC
 
 /ImageI ] >>
 
 /Rotate 0
 
 /Trans <<  >>
 
 /Type /Page >>
 
endobj
 
% 'R8': class PDFCatalog 
 
8 0 obj
 
% Document Root
 
<< /Outlines 10 0 R
 
 /PageLabels 30 0 R
 
 /PageMode /UseNone
 
 /Pages 26 0 R
 
 /Type /Catalog >>
 
endobj
 
% 'R9': class PDFInfo 
 
9 0 obj
 
<< /Author ()
 
 /CreationDate (D:20101005155533-01'00')
 
 /Keywords ()
 
 /Producer (ReportLab http://www.reportlab.com)
 
 /Subject (\(unspecified\))
 
 /Title (The Virtual Leaf) >>
 
endobj
 
% 'R10': class PDFOutlines 
 
10 0 obj
 
<< /Count 16
 
 /First 11 0 R
 
 /Last 14 0 R
 
 /Type /Outlines >>
 
endobj
 
% 'Outline.0': class OutlineEntryObject 
 
11 0 obj
 
<< /Dest [ 4 0 R
 
 /XYZ
 
 62.69291
 
 717.0236
 
 0 ]
 
 /Next 12 0 R
 
 /Parent 10 0 R
 
 /Title (Friday 11 June 2010) >>
 
endobj
 
% 'Outline.1': class OutlineEntryObject 
 
12 0 obj
 
<< /Dest [ 4 0 R
 
 /XYZ
 
 62.69291
 
 393.0236
 
 0 ]
 
 /Next 13 0 R
 
 /Parent 10 0 R
 
 /Prev 11 0 R
 
 /Title (Friday 24 September 2010) >>
 
endobj
 
% 'Outline.2': class OutlineEntryObject 
 
13 0 obj
 
<< /Dest [ 4 0 R
 
 /XYZ
 
 62.69291
 
 273.0236
 
 0 ]
 
 /Next 14 0 R
 
 /Parent 10 0 R
 
 /Prev 12 0 R
 
 /Title (Monday 27 September 2010) >>
 
endobj
 
% 'Outline.3': class OutlineEntryObject 
 
14 0 obj
 
<< /Count 11
 
 /Dest [ 4 0 R
 
 /XYZ
 
 62.69291
 
 174.0236
 
 0 ]
 
 /First 15 0 R
 
 /Last 25 0 R
 
 /Parent 10 0 R
 
 /Prev 13 0 R
 
 /Title (Tuesday 5 October 20010) >>
 
endobj
 
% 'Outline.16.0': class OutlineEntryObject 
 
15 0 obj
 
<< /Dest [ 4 0 R
 
 /XYZ
 
 62.69291
 
 141.0236
 
 0 ]
 
 /Next 16 0 R
 
 /Parent 14 0 R
 
 /Title (tutorial0.pro) >>
 
endobj
 
% 'Outline.16.1': class OutlineEntryObject 
 
16 0 obj
 
<< /Dest [ 6 0 R
 
 /XYZ
 
 62.69291
 
 753.0236
 
 0 ]
 
 /Next 17 0 R
 
 /Parent 14 0 R
 
 /Prev 15 0 R
 
 /Title (auxingrowthplugin.h) >>
 
endobj
 
% 'Outline.16.2': class OutlineEntryObject 
 
17 0 obj
 
<< /Dest [ 6 0 R
 
 /XYZ
 
 62.69291
 
 693.0236
 
 0 ]
 
 /Next 18 0 R
 
 /Parent 14 0 R
 
 /Prev 16 0 R
 
 /Title (VirtualLeaf.cpp) >>
 
endobj
 
% 'Outline.16.3': class OutlineEntryObject 
 
18 0 obj
 
<< /Dest [ 6 0 R
 
 /XYZ
 
 62.69291
 
 633.0236
 
 0 ]
 
 /Next 19 0 R
 
 /Parent 14 0 R
 
 /Prev 17 0 R
 
 /Title (canvas.h) >>
 
endobj
 
% 'Outline.16.4': class OutlineEntryObject 
 
19 0 obj
 
<< /Dest [ 6 0 R
 
 /XYZ
 
 62.69291
 
 585.0236
 
 0 ]
 
 /Next 20 0 R
 
 /Parent 14 0 R
 
 /Prev 18 0 R
 
 /Title (canvas.cpp) >>
 
endobj
 
% 'Outline.16.5': class OutlineEntryObject 
 
20 0 obj
 
<< /Dest [ 6 0 R
 
 /XYZ
 
 62.69291
 
 395.8236
 
 0 ]
 
 /Next 21 0 R
 
 /Parent 14 0 R
 
 /Prev 19 0 R
 
 /Title (mesh.h) >>
 
endobj
 
% 'Outline.16.6': class OutlineEntryObject 
 
21 0 obj
 
<< /Dest [ 6 0 R
 
 /XYZ
 
 62.69291
 
 250.4814
 
 0 ]
 
 /Next 22 0 R
 
 /Parent 14 0 R
 
 /Prev 20 0 R
 
 /Title (mesh.cpp) >>
 
endobj
 
% 'Outline.16.7': class OutlineEntryObject 
 
22 0 obj
 
<< /Dest [ 7 0 R
 
 /XYZ
 
 62.69291
 
 753.0236
 
 0 ]
 
 /Next 23 0 R
 
 /Parent 14 0 R
 
 /Prev 21 0 R
 
 /Title (modelcatalogue.cpp) >>
 
endobj
 
% 'Outline.16.8': class OutlineEntryObject 
 
23 0 obj
 
<< /Dest [ 7 0 R
 
 /XYZ
 
 62.69291
 
 705.0236
 
 0 ]
 
 /Next 24 0 R
 
 /Parent 14 0 R
 
 /Prev 22 0 R
 
 /Title (simplugin.h) >>
 
endobj
 
% 'Outline.16.9': class OutlineEntryObject 
 
24 0 obj
 
<< /Dest [ 7 0 R
 
 /XYZ
 
 62.69291
 
 611.8236
 
 0 ]
 
 /Next 25 0 R
 
 /Parent 14 0 R
 
 /Prev 23 0 R
 
 /Title (simplugin.cpp) >>
 
endobj
 
% 'Outline.16.10': class OutlineEntryObject 
 
25 0 obj
 
<< /Dest [ 7 0 R
 
 /XYZ
 
 62.69291
 
 530.6236
 
 0 ]
 
 /Parent 14 0 R
 
 /Prev 24 0 R
 
 /Title (xmlwrite.cpp) >>
 
endobj
 
% 'R26': class PDFPages 
 
26 0 obj
 
% page tree
 
<< /Count 3
 
 /Kids [ 4 0 R
 
 6 0 R
 
 7 0 R ]
 
 /Type /Pages >>
 
endobj
 
% 'R27': class PDFStream 
 
27 0 obj
 
% page stream
 
<< /Length 8892 >>
 
stream
 
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
 
q
 
1 0 0 1 62.69291 729.0236 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 9.64 Tm /F2 20 Tf 24 TL (The Virtual Leaf) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 696.0236 cm
 
q
 
BT 1 0 0 1 0 8.435 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (Friday 11 June 2010) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 678.0236 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Issues:) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 672.0236 cm
 
Q
 
q
 
1 0 0 1 62.69291 405.0236 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
BT 1 0 0 1 0 2 Tm  T* ET
 
q
 
1 0 0 1 20 267 cm
 
Q
 
q
 
1 0 0 1 20 267 cm
 
Q
 
q
 
1 0 0 1 20 225 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 27 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (1.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 28.82 Tm /F1 10 Tf 12 TL 1.55284 Tw (Every class that has an association or composition eventually will need its own custom view) Tj T* 0 Tw .83436 Tw (page template, e.g. sed_view. For the moment I have set the default view for these classes to) Tj T* 0 Tw (dev_view \( a copy of base_view \).) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 20 225 cm
 
Q
 
q
 
1 0 0 1 20 228 cm
 
Q
 
q
 
1 0 0 1 20 198 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 15 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (2.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 16.82 Tm /F1 10 Tf 12 TL 1.744651 Tw (An association in UML is cast as a ReferenceField in the resulting class schema. Open the) Tj T* 0 Tw (association and add the widget:label tag to the class that is being associated.) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 20 198 cm
 
Q
 
q
 
1 0 0 1 20 201 cm
 
Q
 
q
 
1 0 0 1 20 171 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 15 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (3.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 16.82 Tm /F1 10 Tf 12 TL .73061 Tw (The default description text for a class should be a informative description of the class, not the) Tj T* 0 Tw (instance, derived from the SED-ML manual.) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 20 171 cm
 
Q
 
q
 
1 0 0 1 20 174 cm
 
Q
 
q
 
1 0 0 1 20 156 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (4.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Apply 'searchable' tags to the appropriate class attributes.) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 20 156 cm
 
Q
 
q
 
1 0 0 1 20 159 cm
 
Q
 
q
 
1 0 0 1 20 141 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (5.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (I choose 'isTidyHtmlWithCleanup' as the MathML validator. Will this work?) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 20 141 cm
 
Q
 
q
 
1 0 0 1 20 144 cm
 
Q
 
q
 
1 0 0 1 20 0 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 129 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (6.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 117 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 16.82 Tm /F1 10 Tf 12 TL .76811 Tw (What should be added to our implementation of SED-ML to make it more than merely a mirror) Tj T* 0 Tw (image of the SED-ML XML format?) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 23 111 cm
 
Q
 
q
 
1 0 0 1 23 3 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
BT 1 0 0 1 0 2 Tm  T* ET
 
q
 
1 0 0 1 20 108 cm
 
Q
 
q
 
1 0 0 1 20 108 cm
 
Q
 
q
 
1 0 0 1 20 90 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (a.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (The ability to attach files at various points, e.g. parameter files.) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 20 90 cm
 
Q
 
q
 
1 0 0 1 20 93 cm
 
Q
 
q
 
1 0 0 1 20 75 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (b.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Additional output types, e.g. animations.) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 20 75 cm
 
Q
 
q
 
1 0 0 1 20 78 cm
 
Q
 
q
 
1 0 0 1 20 60 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 6.22 0 Td (c.) Tj T* -6.22 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Custom page templates) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 20 60 cm
 
Q
 
q
 
1 0 0 1 20 63 cm
 
Q
 
q
 
1 0 0 1 20 45 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (d.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Custom search form) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 20 45 cm
 
Q
 
q
 
1 0 0 1 20 48 cm
 
Q
 
q
 
1 0 0 1 20 30 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (e.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Custom catalog indexes) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 20 30 cm
 
Q
 
q
 
1 0 0 1 20 33 cm
 
Q
 
q
 
1 0 0 1 20 15 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 8.44 0 Td (f.) Tj T* -8.44 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Custom portlet\(s\)) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 20 15 cm
 
Q
 
q
 
1 0 0 1 20 18 cm
 
Q
 
q
 
1 0 0 1 20 0 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (g.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Custom viewlet\(s\)) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 20 0 cm
 
Q
 
q
 
1 0 0 1 20 0 cm
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 20 0 cm
 
Q
 
q
 
1 0 0 1 20 0 cm
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 405.0236 cm
 
Q
 
q
 
1 0 0 1 62.69291 372.0236 cm
 
q
 
BT 1 0 0 1 0 8.435 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (Friday 24 September 2010) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 315.0236 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 0 36 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F2 10 Tf 12 TL (To Do:) Tj T* ET
 
Q
 
Q
 
BT 1 0 0 1 0 23 Tm  T* ET
 
q
 
1 0 0 1 10 33 cm
 
Q
 
q
 
1 0 0 1 10 33 cm
 
Q
 
q
 
1 0 0 1 10 15 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (1.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Publish our mercurial repositories \(Chris/Martin\). This may mesh with deploying Plone.) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 10 15 cm
 
Q
 
q
 
1 0 0 1 10 18 cm
 
Q
 
q
 
1 0 0 1 10 0 cm
 
0 0 0 rg
 
BT /F1 10 Tf 12 TL ET
 
q
 
1 0 0 1 6 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 5.66 0 Td (2.) Tj T* -5.66 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 23 3 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Create a vleaf mailing list \(Henk\).) Tj T* ET
 
Q
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 10 0 cm
 
Q
 
q
 
1 0 0 1 10 0 cm
 
Q
 
q
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 285.0236 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 16.82 Tm /F1 10 Tf 12 TL .602927 Tw (Found an article on SBRML - a markup language for associating systems biology data with models. At a) Tj T* 0 Tw (glance the schema seems bigger than SED-ML's, but SBRML appears to be SBML specific.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 252.0236 cm
 
q
 
BT 1 0 0 1 0 8.435 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (Monday 27 September 2010) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 186.0236 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 52.82 Tm /F1 10 Tf 12 TL 3.993828 Tw (Spoke with Chris about publishing the Mercurial repositories and deploying Plone. Both can be) Tj T* 0 Tw .131567 Tw (accomplished in their own project space on a server in the DMZ. Chris said he would supply me with login) Tj T* 0 Tw 3.871984 Tw (credentials for both accounts. I will install Plone and Chris \(or Maarten\) will help me configure) Tj T* 0 Tw .795318 Tw (Apache/nginx and Varnish. Chris will install the required Mercurial packages; after which I can clone the) Tj T* 0 Tw (repositories to their new home.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 153.0236 cm
 
q
 
BT 1 0 0 1 0 8.435 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (Tuesday 5 October 20010) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 123.0236 cm
 
q
 
BT 1 0 0 1 0 7.23 Tm 18 TL /F2 15 Tf 0 0 0 rg (tutorial0.pro) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 105.0236 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Added simplugin.h to list of header files. NB: this is the only tutorial in which simplugin.h appears.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 56.69291 773.1969 cm
 
q
 
BT 1 0 0 1 0 4.82 Tm 205.6499 0 Td 12 TL /F1 10 Tf 0 0 0 rg (The Virtual Leaf) Tj T* -205.6499 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 56.69291 56.69291 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 238.1649 0 Td (1) Tj T* -238.1649 0 Td ET
 
Q
 
Q
 
 
 
endstream
 
 
endobj
 
% 'R28': class PDFStream 
 
28 0 obj
 
% page stream
 
<< /Length 4804 >>
 
stream
 
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
 
q
 
1 0 0 1 62.69291 735.0236 cm
 
q
 
BT 1 0 0 1 0 7.23 Tm 18 TL /F2 15 Tf 0 0 0 rg (auxingrowthplugin.h) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 705.0236 cm
 
q
 
BT 1 0 0 1 0 16.82 Tm 2.02498 Tw 12 TL /F1 10 Tf 0 0 0 rg (Declared, and defined, a virtual function named ) Tj /F3 10 Tf (DefaultLeafML\(\) ) Tj /F1 10 Tf (which merely returns a QString) Tj T* 0 Tw (naming a LeafML filename sans path.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 675.0236 cm
 
q
 
BT 1 0 0 1 0 7.23 Tm 18 TL /F2 15 Tf 0 0 0 rg (VirtualLeaf.cpp) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 645.0236 cm
 
q
 
BT 1 0 0 1 0 16.82 Tm 14.41996 Tw 12 TL /F1 10 Tf 0 0 0 rg (Moved ) Tj /F3 10 Tf (Cell::SetMagnification\(\) ) Tj /F1 10 Tf (and ) Tj /F3 10 Tf (Cell::SetOffset\(\) ) Tj /F1 10 Tf (from ) Tj /F3 10 Tf (main\(\) ) Tj /F1 10 Tf (to) Tj T* 0 Tw /F3 10 Tf (MainBase::Init\(\)) Tj /F1 10 Tf (.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 615.0236 cm
 
q
 
BT 1 0 0 1 0 7.23 Tm 18 TL /F2 15 Tf 0 0 0 rg (canvas.h) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 597.0236 cm
 
q
 
BT 1 0 0 1 0 4.82 Tm 12 TL /F1 10 Tf 0 0 0 rg (Declare ) Tj /F3 10 Tf (exportCellData\(\)) Tj /F1 10 Tf (.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 567.0236 cm
 
q
 
BT 1 0 0 1 0 7.23 Tm 18 TL /F2 15 Tf 0 0 0 rg (canvas.cpp) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 537.0236 cm
 
q
 
BT 1 0 0 1 0 16.82 Tm 8.836412 Tw 12 TL /F1 10 Tf 0 0 0 rg (Add an 'Export cell areas' to the file dropdown menu which invokes - surprise -) Tj T* 0 Tw /F3 10 Tf (Main::exportCellData\(\)) Tj /F1 10 Tf (:) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 407.8236 cm
 
q
 
q
 
1 0 0 1 0 0 cm
 
q
 
1 0 0 1 6.6 6.6 cm
 
q
 
.662745 .662745 .662745 RG
 
.5 w
 
.960784 .960784 .862745 rg
 
n -6 -6 468.6898 120 re B*
 
Q
 
q
 
BT 1 0 0 1 0 101.71 Tm 12 TL /F3 10 Tf 0 0 0 rg (void Main::exportCellData\(void\) {) Tj T* (  QFile file\("areas.csv"\);) Tj T* (  if \( file.open\( IO_WriteOnly \) \) {) Tj T* (    QTextStream stream\( ) Tj (&) Tj (file \);) Tj T* (    mesh.CSVExportCellData\(stream\);) Tj T* (    mesh.CSVExportMeshData\(stream\);) Tj T* (    file.close\(\);) Tj T* (  }) Tj T* (}) Tj T* ET
 
Q
 
Q
 
Q
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 377.8236 cm
 
q
 
BT 1 0 0 1 0 7.23 Tm 18 TL /F2 15 Tf 0 0 0 rg (mesh.h) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 359.8236 cm
 
q
 
BT 1 0 0 1 0 4.82 Tm 12 TL /F1 10 Tf 0 0 0 rg (Include ) Tj /F3 10 Tf (<) Tj (QTextStream) Tj (>) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 329.8236 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 16.82 Tm /F1 10 Tf 12 TL .752765 Tw (Set the boundary_poloygon pointer to zero in the class constructor, and delete it, if it exists, in the class) Tj T* 0 Tw (destructor.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 311.8236 cm
 
q
 
BT 1 0 0 1 0 4.82 Tm 12 TL /F1 10 Tf 0 0 0 rg (Declare ) Tj /F3 10 Tf (Compactness\(\)) Tj /F1 10 Tf (, ) Tj /F3 10 Tf (CSVExportCellData\(\) ) Tj /F1 10 Tf (and ) Tj /F3 10 Tf (CSVExportMeshData\(\)) Tj /F1 10 Tf (:) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 262.4814 cm
 
q
 
q
 
.840289 0 0 .840289 0 0 cm
 
q
 
1 0 0 1 6.6 7.854438 cm
 
q
 
.662745 .662745 .662745 RG
 
.5 w
 
.960784 .960784 .862745 rg
 
n -6 -6 558 48 re B*
 
Q
 
q
 
BT 1 0 0 1 0 29.71 Tm 12 TL /F3 10 Tf 0 0 0 rg (double Compactness\(double *res_compactness=0, double *res_area=0, double *res_cell_area=0\);) Tj T* (void CSVExportCellData\(QTextStream ) Tj (&) Tj (csv_stream\) const;) Tj T* (void CSVExportMeshData\(QTextStream ) Tj (&) Tj (csv_stream\);) Tj T* ET
 
Q
 
Q
 
Q
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 232.4814 cm
 
q
 
BT 1 0 0 1 0 7.23 Tm 18 TL /F2 15 Tf 0 0 0 rg (mesh.cpp) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 214.4814 cm
 
q
 
BT 1 0 0 1 0 4.82 Tm 12 TL /F1 10 Tf 0 0 0 rg (In ) Tj /F3 10 Tf (mesh::clear\(\)) Tj /F1 10 Tf (, delete the boundary_polygon only if the pointer hasn't been assigned:) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 145.2814 cm
 
q
 
q
 
1 0 0 1 0 0 cm
 
q
 
1 0 0 1 6.6 6.6 cm
 
q
 
.662745 .662745 .662745 RG
 
.5 w
 
.960784 .960784 .862745 rg
 
n -6 -6 468.6898 60 re B*
 
Q
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 41.71 Tm /F3 10 Tf 12 TL (if \(boundary_polygon\) {) Tj T* (   delete boundary_polygon;) Tj T* (   boundary_polygon=0;) Tj T* ( }) Tj T* ET
 
Q
 
Q
 
Q
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 125.2814 cm
 
q
 
BT 1 0 0 1 0 4.82 Tm 12 TL /F1 10 Tf 0 0 0 rg (Ditto for ) Tj /F3 10 Tf (mesh::clean\(\)) Tj /F1 10 Tf (.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 107.2814 cm
 
q
 
BT 1 0 0 1 0 4.82 Tm 12 TL /F1 10 Tf 0 0 0 rg (Define the code for ) Tj /F3 10 Tf (Compactness\(\)) Tj /F1 10 Tf (, ) Tj /F3 10 Tf (CSVExportCellData\(\) ) Tj /F1 10 Tf (and ) Tj /F3 10 Tf (CSVExportMeshData\(\)) Tj /F1 10 Tf (.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 56.69291 773.1969 cm
 
q
 
BT 1 0 0 1 0 4.82 Tm 205.6499 0 Td 12 TL /F1 10 Tf 0 0 0 rg (The Virtual Leaf) Tj T* -205.6499 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 56.69291 56.69291 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 238.1649 0 Td (2) Tj T* -238.1649 0 Td ET
 
Q
 
Q
 
 
 
endstream
 
 
endobj
 
% 'R29': class PDFStream 
 
29 0 obj
 
% page stream
 
<< /Length 2249 >>
 
stream
 
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
 
q
 
1 0 0 1 62.69291 735.0236 cm
 
q
 
BT 1 0 0 1 0 7.23 Tm 18 TL /F2 15 Tf 0 0 0 rg (modelcatalogue.cpp) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 717.0236 cm
 
q
 
BT 1 0 0 1 0 4.82 Tm 12 TL /F1 10 Tf 0 0 0 rg (In ) Tj /F3 10 Tf (InstallModel\(\)) Tj /F1 10 Tf (, find and load the default LeafML file.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 687.0236 cm
 
q
 
BT 1 0 0 1 0 7.23 Tm 18 TL /F2 15 Tf 0 0 0 rg (simplugin.h) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 669.0236 cm
 
q
 
BT 1 0 0 1 0 4.82 Tm 12 TL /F1 10 Tf 0 0 0 rg (Declare ) Tj /F3 10 Tf (DefaultLeafML\(\)) Tj /F1 10 Tf (:) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 623.8236 cm
 
q
 
q
 
1 0 0 1 0 0 cm
 
q
 
1 0 0 1 6.6 6.6 cm
 
q
 
.662745 .662745 .662745 RG
 
.5 w
 
.960784 .960784 .862745 rg
 
n -6 -6 468.6898 36 re B*
 
Q
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 17.71 Tm /F3 10 Tf 12 TL (// Default LeafML-file to be read after model startup) Tj T* (virtual QString DefaultLeafML\(void\);) Tj T* ET
 
Q
 
Q
 
Q
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 593.8236 cm
 
q
 
BT 1 0 0 1 0 7.23 Tm 18 TL /F2 15 Tf 0 0 0 rg (simplugin.cpp) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 575.8236 cm
 
q
 
BT 1 0 0 1 0 4.82 Tm 12 TL /F1 10 Tf 0 0 0 rg (Define ) Tj /F3 10 Tf (DefaultLeafML\(\)) Tj /F1 10 Tf (. Returns an empty ) Tj /F3 10 Tf (QString) Tj /F1 10 Tf (:) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 542.6236 cm
 
q
 
q
 
1 0 0 1 0 0 cm
 
q
 
1 0 0 1 6.6 6.6 cm
 
q
 
.662745 .662745 .662745 RG
 
.5 w
 
.960784 .960784 .862745 rg
 
n -6 -6 468.6898 24 re B*
 
Q
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 5.71 Tm /F3 10 Tf 12 TL (QString SimPluginInterface::DefaultLeafML\(void\) { return QString\(\); }) Tj T* ET
 
Q
 
Q
 
Q
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 512.6236 cm
 
q
 
BT 1 0 0 1 0 7.23 Tm 18 TL /F2 15 Tf 0 0 0 rg (xmlwrite.cpp) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 62.69291 494.6236 cm
 
q
 
BT 1 0 0 1 0 4.82 Tm 12 TL /F1 10 Tf 0 0 0 rg (In ) Tj /F3 10 Tf (Mesh::XMLReadCells\(\) ) Tj /F1 10 Tf (- Delete the boundary_ploygon only if its pointer has been assigned.) Tj T* ET
 
Q
 
Q
 
q
 
1 0 0 1 56.69291 773.1969 cm
 
q
 
BT 1 0 0 1 0 4.82 Tm 205.6499 0 Td 12 TL /F1 10 Tf 0 0 0 rg (The Virtual Leaf) Tj T* -205.6499 0 Td ET
 
Q
 
Q
 
q
 
1 0 0 1 56.69291 56.69291 cm
 
q
 
0 0 0 rg
 
BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 238.1649 0 Td (3) Tj T* -238.1649 0 Td ET
 
Q
 
Q
 
 
 
endstream
 
 
endobj
 
% 'R30': class PDFPageLabels 
 
30 0 obj
 
% Document Root
 
<< /Nums [ 0
 
 31 0 R
 
 1
 
 32 0 R
 
 2
 
 33 0 R ] >>
 
endobj
 
% 'R31': class PDFPageLabel 
 
31 0 obj
 
% None
 
<< /S /D
 
 /St 1 >>
 
endobj
 
% 'R32': class PDFPageLabel 
 
32 0 obj
 
% None
 
<< /S /D
 
 /St 2 >>
 
endobj
 
% 'R33': class PDFPageLabel 
 
33 0 obj
 
% None
 
<< /S /D
 
 /St 3 >>
 
endobj
 
xref
 
0 34
 
0000000000 65535 f
 
0000000113 00000 n
 
0000000233 00000 n
 
0000000398 00000 n
 
0000000571 00000 n
 
0000000852 00000 n
 
0000001011 00000 n
 
0000001290 00000 n
 
0000001569 00000 n
 
0000001726 00000 n
 
0000001953 00000 n
 
0000002079 00000 n
 
0000002258 00000 n
 
0000002457 00000 n
 
0000002656 00000 n
 
0000002885 00000 n
 
0000003061 00000 n
 
0000003258 00000 n
 
0000003451 00000 n
 
0000003637 00000 n
 
0000003825 00000 n
 
0000004009 00000 n
 
0000004195 00000 n
 
0000004391 00000 n
 
0000004580 00000 n
 
0000004772 00000 n
 
0000004928 00000 n
 
0000005051 00000 n
 
0000014044 00000 n
 
0000018949 00000 n
 
0000021303 00000 n
 
0000021422 00000 n
 
0000021499 00000 n
 
0000021576 00000 n
 
trailer
 
<< /ID 
 
 % ReportLab generated PDF document -- digest (http://www.reportlab.com) 
 
 [(\024,\377\262\237\332\204L\232\207%\364ho\271\264) (\024,\377\262\237\332\204L\232\207%\364ho\271\264)] 
 
 
 /Info 9 0 R
 
 /Root 8 0 R
 
 /Size 34 >>
 
startxref
 
21623
 
%%EOF
doc/v1.rst
Show inline comments
 
new file 100644
 
.. header:: 
 
   ###Title###
 

	
 
.. footer:: 
 
   ###Page###
 

	
 

	
 
================
 
The Virtual Leaf
 
================
 

	
 

	
 
Friday 11 June 2010
 
-------------------
 

	
 
Issues:
 

	
 
 1. Every class that has an association or composition eventually will
 
    need its own custom view page template, e.g. sed_view. For the moment
 
    I have set the default view for these classes to dev_view ( a copy of
 
    base_view ).
 

	
 
 2. An association in UML is cast as a ReferenceField in the resulting
 
    class schema. Open the association and add the widget:label tag to
 
    the class that is being associated.
 

	
 
 3. The default description text for a class should be a informative
 
    description of the class, not the instance, derived from the
 
    SED-ML manual.
 

	
 
 4. Apply 'searchable' tags to the appropriate class attributes.
 

	
 
 5. I choose 'isTidyHtmlWithCleanup' as the MathML validator. Will
 
    this work?
 

	
 
 6. What should be added to our implementation of SED-ML to make it
 
    more than merely a mirror image of the SED-ML XML format? 
 

	
 
     a. The ability to attach files at various points, e.g. parameter files.
 

	
 
     b. Additional output types, e.g. animations.
 

	
 
     c. Custom page templates
 

	
 
     d. Custom search form
 

	
 
     e. Custom catalog indexes
 

	
 
     f. Custom portlet(s)
 

	
 
     g. Custom viewlet(s)
 

	
 

	
 
Friday 24 September 2010
 
------------------------
 

	
 
To Do:
 
 1. Publish our mercurial repositories (Chris/Martin). This may mesh with deploying Plone.
 

	
 
 2. Create a vleaf mailing list (Henk).
 

	
 
Found an article on SBRML - a markup language for associating systems
 
biology data with models. At a glance the schema seems bigger than
 
SED-ML's, but SBRML appears to be SBML specific.
 

	
 

	
 

	
 
Monday 27 September 2010
 
------------------------
 

	
 
Spoke with Chris about publishing the Mercurial repositories and
 
deploying Plone. Both can be accomplished in their own project space
 
on a server in the DMZ. Chris said he would supply me with login
 
credentials for both accounts. I will install Plone and Chris (or
 
Maarten) will help me configure Apache/nginx and Varnish. Chris will
 
install the required Mercurial packages; after which I can clone the
 
repositories to their new home.
 

	
 

	
 

	
 
Tuesday 5 October 20010
 
-----------------------
 

	
 

	
 
tutorial0.pro
 
+++++++++++++
 

	
 
Added simplugin.h to list of header files. NB: this is the only
 
tutorial in which simplugin.h appears.
 

	
 

	
 
auxingrowthplugin.h
 
+++++++++++++++++++
 

	
 
Declared, and defined, a virtual function named ``DefaultLeafML()``
 
which merely returns a QString naming a LeafML filename sans path.
 

	
 

	
 

	
 
VirtualLeaf.cpp
 
+++++++++++++++
 

	
 
Moved ``Cell::SetMagnification()`` and ``Cell::SetOffset()`` from
 
``main()`` to ``MainBase::Init()``.
 

	
 

	
 
canvas.h
 
++++++++
 

	
 
Declare ``exportCellData()``.
 

	
 

	
 
canvas.cpp
 
++++++++++
 

	
 
Add an 'Export cell areas' to the file dropdown menu which invokes - surprise - ``Main::exportCellData()``::
 

	
 
  void Main::exportCellData(void) {
 
    QFile file("areas.csv");
 
    if ( file.open( IO_WriteOnly ) ) {
 
      QTextStream stream( &file );
 
      mesh.CSVExportCellData(stream);
 
      mesh.CSVExportMeshData(stream);
 
      file.close();
 
    }
 
  }
 

	
 

	
 
mesh.h
 
++++++
 

	
 
Include ``<QTextStream>``
 

	
 
Set the boundary_poloygon pointer to zero in the class constructor,
 
and delete it, if it exists, in the class destructor.
 

	
 
Declare ``Compactness()``, ``CSVExportCellData()`` and ``CSVExportMeshData()``::
 

	
 
  double Compactness(double *res_compactness=0, double *res_area=0, double *res_cell_area=0);
 
  void CSVExportCellData(QTextStream &csv_stream) const;
 
  void CSVExportMeshData(QTextStream &csv_stream);
 

	
 

	
 
mesh.cpp
 
++++++++
 

	
 
In ``mesh::clear()``, delete the boundary_polygon only if the pointer hasn't been assigned::
 

	
 
 if (boundary_polygon) {
 
    delete boundary_polygon;
 
    boundary_polygon=0;
 
  }
 

	
 
Ditto for ``mesh::clean()``.
 

	
 
Define the code for ``Compactness()``, ``CSVExportCellData()`` and ``CSVExportMeshData()``.
 

	
 

	
 

	
 
modelcatalogue.cpp
 
++++++++++++++++++
 

	
 
In ``InstallModel()``, find and load the default LeafML file.
 

	
 
simplugin.h
 
+++++++++++
 

	
 
Declare ``DefaultLeafML()``::
 

	
 
  // Default LeafML-file to be read after model startup
 
  virtual QString DefaultLeafML(void);
 

	
 

	
 
simplugin.cpp
 
+++++++++++++
 

	
 
Define ``DefaultLeafML()``. Returns an empty ``QString``::
 

	
 
 QString SimPluginInterface::DefaultLeafML(void) { return QString(); }
 

	
 

	
 
xmlwrite.cpp
 
++++++++++++
 

	
 
In ``Mesh::XMLReadCells()`` - Delete the boundary_ploygon only if its
 
pointer has been assigned.
 

	
 

	
 

	
 
Wednesday 6 October 2010
 
------------------------
 

	
 
Wrote Simon van Mourik about his missing libiconv-2.dll.
 

	
 

	
 
Thursday 7 October 2010
 
-----------------------
 

	
 
Added a Q3FileDialog in ``canvas.cpp:Main::exportCellData(void)`` to
 
choose where to write the exported cell data.
src/ChangeLog
Show inline comments
 
2010-10-07    <guravage@caterpie.sen.cwi.nl>
 

	
 
	* canvas.cpp (exportCellData): Added a Q3FileDialog to inquire
 
	where to write the exportCellData.
 

	
 
2010-06-28    <guravage@caterpie.sen.cwi.nl>
 

	
 

	
src/canvas.cpp
Show inline comments
 
@@ -1367,17 +1367,32 @@ xmlNode *Main::XMLSettingsTree(void)
 
}
 

	
 
void Main::exportCellData(void) {
 
  Q3FileDialog *fd = new Q3FileDialog( this, "file dialog", TRUE );
 
  QString fileName;
 
  
 
  stopSimulation();
 
  fd->setMode( Q3FileDialog::AnyFile );
 

	
 
  if ( fd->exec() == QDialog::Accepted ) {
 
    fileName = fd->selectedFile();
 

	
 
#ifdef QDEBUG  
 
    qDebug() << "exportCellData filename: " << fileName << endl;
 
#endif
 

	
 
  // perhaps make this more general: a popup window were user selects data he wants to export
 
  // can go to "settings" section of XML file as well so this can also be measured off-line
 
  // mesh.CSVExport would take an QMap or so to record all options
 
  // first line gives legenda
 
  QFile file("areas.csv");
 
  if ( file.open( IO_WriteOnly ) ) {
 
    QTextStream stream( &file );
 
    mesh.CSVExportCellData(stream);
 
    mesh.CSVExportMeshData(stream);
 
    file.close();
 

	
 
    QFile file(fileName);
 
    if ( file.open( IO_WriteOnly ) ) {
 
      QTextStream stream( &file );
 
      mesh.CSVExportCellData(stream);
 
      mesh.CSVExportMeshData(stream);
 
      file.close();
 
    }
 
  }
 
}
 

	
 
/* finis */
src/leaficon.png
Show inline comments
 
new file 100644
 
binary diff not shown
Show images
0 comments (0 inline, 0 general)