From 4c41baeb1e4a9bea6f144343b7169be147cea4a0 Mon Sep 17 00:00:00 2001 From: mh17 <mh17> Date: Wed, 3 Mar 2010 14:14:53 +0000 Subject: [PATCH] new docs --- doc/Design_notes/index.html | 20 + doc/Design_notes/index.rel | 2 + doc/Design_notes/index.shtml | 68 + doc/Design_notes/misc/ZMap_paper.html | 184 +++ doc/Design_notes/misc/ZMap_paper.rel | 1 + doc/Design_notes/misc/about.html | 62 + doc/Design_notes/misc/about.rel | 2 + doc/Design_notes/modules/pipeServer.html | 126 ++ doc/Design_notes/modules/pipeServer.rel | 1 + doc/Design_notes/modules/zmapApp.html | 4 + doc/Design_notes/modules/zmapApp.rel | 1 + doc/Design_notes/modules/zmapConfig.html | 4 + doc/Design_notes/modules/zmapConfig.rel | 1 + doc/Design_notes/modules/zmapControl.html | 4 + doc/Design_notes/modules/zmapControl.rel | 1 + doc/Design_notes/modules/zmapDAS.html | 4 + doc/Design_notes/modules/zmapDAS.rel | 1 + doc/Design_notes/modules/zmapDocs.html | 4 + doc/Design_notes/modules/zmapDocs.rel | 1 + doc/Design_notes/modules/zmapDraw.html | 4 + doc/Design_notes/modules/zmapDraw.rel | 1 + doc/Design_notes/modules/zmapFeature.html | 4 + doc/Design_notes/modules/zmapFeature.rel | 1 + doc/Design_notes/modules/zmapGFF.html | 4 + doc/Design_notes/modules/zmapGFF.rel | 1 + doc/Design_notes/modules/zmapMake.html | 4 + doc/Design_notes/modules/zmapMake.rel | 1 + doc/Design_notes/modules/zmapManager.html | 4 + doc/Design_notes/modules/zmapManager.rel | 1 + doc/Design_notes/modules/zmapNavigator.html | 4 + doc/Design_notes/modules/zmapNavigator.rel | 1 + doc/Design_notes/modules/zmapNoThreads.html | 4 + doc/Design_notes/modules/zmapNoThreads.rel | 1 + doc/Design_notes/modules/zmapServer.html | 4 + doc/Design_notes/modules/zmapServer.rel | 2 + doc/Design_notes/modules/zmapThreads.html | 4 + doc/Design_notes/modules/zmapThreads.rel | 1 + doc/Design_notes/modules/zmapUtils.html | 4 + doc/Design_notes/modules/zmapUtils.rel | 1 + doc/Design_notes/modules/zmapView.html | 4 + doc/Design_notes/modules/zmapView.rel | 1 + doc/Design_notes/modules/zmapWindow.html | 4 + doc/Design_notes/modules/zmapWindow.rel | 1 + .../modules/zmapWindow_items.html | 90 ++ doc/Design_notes/modules/zmapWindow_items.rel | 1 + doc/Design_notes/modules/zmapXML.html | 4 + doc/Design_notes/modules/zmapXML.rel | 1 + doc/scripts/build | 19 +- doc/scripts/docgen | 142 ++ doc/scripts/make_pages | 47 + doc/scripts/navbar.rel | 27 + doc/scripts/new | 12 + web/css/dev_server.css | 1334 +++++++++++++++++ 53 files changed, 2224 insertions(+), 5 deletions(-) create mode 100644 doc/Design_notes/index.html create mode 100644 doc/Design_notes/index.rel create mode 100644 doc/Design_notes/index.shtml create mode 100644 doc/Design_notes/misc/ZMap_paper.html create mode 100644 doc/Design_notes/misc/ZMap_paper.rel create mode 100644 doc/Design_notes/misc/about.html create mode 100644 doc/Design_notes/misc/about.rel create mode 100644 doc/Design_notes/modules/pipeServer.html create mode 100644 doc/Design_notes/modules/pipeServer.rel create mode 100644 doc/Design_notes/modules/zmapApp.html create mode 100644 doc/Design_notes/modules/zmapApp.rel create mode 100644 doc/Design_notes/modules/zmapConfig.html create mode 100644 doc/Design_notes/modules/zmapConfig.rel create mode 100644 doc/Design_notes/modules/zmapControl.html create mode 100644 doc/Design_notes/modules/zmapControl.rel create mode 100644 doc/Design_notes/modules/zmapDAS.html create mode 100644 doc/Design_notes/modules/zmapDAS.rel create mode 100644 doc/Design_notes/modules/zmapDocs.html create mode 100644 doc/Design_notes/modules/zmapDocs.rel create mode 100644 doc/Design_notes/modules/zmapDraw.html create mode 100644 doc/Design_notes/modules/zmapDraw.rel create mode 100644 doc/Design_notes/modules/zmapFeature.html create mode 100644 doc/Design_notes/modules/zmapFeature.rel create mode 100644 doc/Design_notes/modules/zmapGFF.html create mode 100644 doc/Design_notes/modules/zmapGFF.rel create mode 100644 doc/Design_notes/modules/zmapMake.html create mode 100644 doc/Design_notes/modules/zmapMake.rel create mode 100644 doc/Design_notes/modules/zmapManager.html create mode 100644 doc/Design_notes/modules/zmapManager.rel create mode 100644 doc/Design_notes/modules/zmapNavigator.html create mode 100644 doc/Design_notes/modules/zmapNavigator.rel create mode 100644 doc/Design_notes/modules/zmapNoThreads.html create mode 100644 doc/Design_notes/modules/zmapNoThreads.rel create mode 100644 doc/Design_notes/modules/zmapServer.html create mode 100644 doc/Design_notes/modules/zmapServer.rel create mode 100644 doc/Design_notes/modules/zmapThreads.html create mode 100644 doc/Design_notes/modules/zmapThreads.rel create mode 100644 doc/Design_notes/modules/zmapUtils.html create mode 100644 doc/Design_notes/modules/zmapUtils.rel create mode 100644 doc/Design_notes/modules/zmapView.html create mode 100644 doc/Design_notes/modules/zmapView.rel create mode 100644 doc/Design_notes/modules/zmapWindow.html create mode 100644 doc/Design_notes/modules/zmapWindow.rel create mode 100644 doc/Design_notes/modules/zmapWindow_items.html create mode 100644 doc/Design_notes/modules/zmapWindow_items.rel create mode 100644 doc/Design_notes/modules/zmapXML.html create mode 100644 doc/Design_notes/modules/zmapXML.rel create mode 100755 doc/scripts/docgen create mode 100644 doc/scripts/make_pages create mode 100644 doc/scripts/navbar.rel create mode 100755 doc/scripts/new create mode 100644 web/css/dev_server.css diff --git a/doc/Design_notes/index.html b/doc/Design_notes/index.html new file mode 100644 index 000000000..1a1ee9d50 --- /dev/null +++ b/doc/Design_notes/index.html @@ -0,0 +1,20 @@ + +<h2>ZMap Design Documentation</h2> + +<br /> + +<fieldset> +<legend>Page Under Construction</legend> +</fieldset> +(Just some links to other pages) +<fieldset> + +<legend>Index</legend> +<a href="design/misc/about.shtml">About these pages</a><br /> +<br /> +Coordinate systems<br /> +Styles<br /> +WindowCanvasItems<br /> +<a href="design/modules/pipeServer.shtml">pipeServer Configuration</a><br /> +</fieldset> + diff --git a/doc/Design_notes/index.rel b/doc/Design_notes/index.rel new file mode 100644 index 000000000..1c738226a --- /dev/null +++ b/doc/Design_notes/index.rel @@ -0,0 +1,2 @@ +,Related, +design/misc/ZMap_paper,Paper on ZMap, diff --git a/doc/Design_notes/index.shtml b/doc/Design_notes/index.shtml new file mode 100644 index 000000000..fb622fef0 --- /dev/null +++ b/doc/Design_notes/index.shtml @@ -0,0 +1,68 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html> +<head> + <title>ZMap Design Documentation</title> +<base href="file:////nfs/users/nfs_m/mh17/zmap/ZMap/doc/" /> + <link rel="stylesheet" type="text/css" href="css/dev_server.css" /> +</head> +<body> +<div class="left"> +<fieldset><legend>Home</legend> +<a href="index.shtml">Documentation Root</a><br> +<a href="design/index.shtml">Index</a><br> +<a href="design/misc/about.shtml">About</a><br> +</fieldset> +<fieldset><legend>ZMap Modules</legend> +<a href="design/modules/zmapApp.shtml">zmapApp</a><br> +<a href="design/modules/zmapConfig.shtml">zmapConfig</a><br> +<a href="design/modules/zmapControl.shtml">zmapControl</a><br> +<a href="design/modules/zmapDAS.shtml">zmapDAS</a><br> +<a href="design/modules/zmapDocs.shtml">zmapDocs</a><br> +<a href="design/modules/zmapDraw.shtml">zmapDraw</a><br> +<a href="design/modules/zmapFeature.shtml">zmapFeature</a><br> +<a href="design/modules/zmapGFF.shtml">zmapGFF</a><br> +<a href="design/modules/zmapMake.shtml">zmapMake</a><br> +<a href="design/modules/zmapManager.shtml">zmapManager</a><br> +<a href="design/modules/zmapNavigator.shtml">zmapNavigator</a><br> +<a href="design/modules/zmapNoThreads.shtml">zmapNoThreads</a><br> +<a href="design/modules/zmapServer.shtml">zmapServer</a><br> +<a href="design/modules/zmapThreads.shtml">zmapThreads</a><br> +<a href="design/modules/zmapUtils.shtml">zmapUtils</a><br> +<a href="design/modules/zmapView.shtml">zmapView</a><br> +<a href="design/modules/zmapWindow.shtml">zmapWindow</a><br> +<a href="design/modules/zmapWindow_items.shtml">zmapWindow/items</a><br> +<a href="design/modules/zmapXML.shtml">zmapXML</a><br> +</fieldset> +<fieldset><legend>External</legend> +<a href="foocanvas/foocanvas.shtml">Foo Canvas</a><br> +<a href="g2/g2.shtml">G2</a><br> +</fieldset> +<fieldset><legend>Related</legend> +<a href="design/misc/ZMap_paper.shtml">Paper on ZMap</a><br> +</fieldset> +</div> +<div style="margin-right:5em;margin-left:10em;"> +<h2>ZMap Design Documentation</h2> + +<br /> + +<fieldset> +<legend>Page Under Construction</legend> +</fieldset> +(Just some links to other pages) +<fieldset> + +<legend>Index</legend> +<a href="design/misc/about.shtml">About these pages</a><br /> +<br /> +Coordinate systems<br /> +Styles<br /> +WindowCanvasItems<br /> +<a href="design/modules/pipeServer.shtml">pipeServer Configuration</a><br /> +</fieldset> + +</div> +<br/> +</body> +</html> diff --git a/doc/Design_notes/misc/ZMap_paper.html b/doc/Design_notes/misc/ZMap_paper.html new file mode 100644 index 000000000..8aec49274 --- /dev/null +++ b/doc/Design_notes/misc/ZMap_paper.html @@ -0,0 +1,184 @@ + +<h2>Paper on ZMap</h2> + +<br /> + +<fieldset> +<legend>Abstract</legend> + +<p>ZMap is a database independent sequence display program that can be integrated into annotation +systems that run on Unix and Unix-like systems with X-windows. ZMap is written in C for +performance and has many optimisations that allow it to handle large volumes of data under the +control of the annotator. It is multi-threaded to allow background loading of data while +maintaining a responsive GUI. It currently supports acedb, GFF and DAS v1 datastreams but support +for other formats can easily be added via a "plug-in" architecture (not actually completelly +correct currently...).</p> +</fieldset> + + +<fieldset> +<legend>Introduction</legend> + + +<p>In general sequence annotation systems have been closely tied to the underlying database or +flat-file system holding the annotation data. While this makes for easier programming it has two +major disadvantages: the systems can only be used with a limited number of data formats and users +are stuck with whatever annotation semantics the system imposes.</p> + +<p>Some systems (e.g. Apollo) included the option of adding code to support other database formats +while others (e.g. acedb) required that the user translate their data into the supported +format. While converting data to the supported format or writing code to support your own data +format is possible it is time consuming and does not solve problems of data semantics. Different +semantics arise for a number of reasons including the underlying general philosophy of the +researchers, differences in the organisms being studied, and historical but intractable +differences.</p> + +<p>A solution to these problems is to separate data display from data editting. While there are some +differences between annotation displays (e.g. vertical vs. horizontal layout) they have largely +converged to use the same glyphs and basic layouts. This makes sense as it enables users to +navigate new and different systems without in depth experience. This creates the opportunity for a +data independent annotation viewer that can be used with many annotation systems. ZMap is an +attempt to produce this kind of viewer.</p> +</fieldset> + + + +<fieldset> +<legend>Design Goals</legend> +<p>The ZMap project was initiated with the goal of significantly improving the annotation interface +available to researchers at the Sanger Institute. To do this it had to fulfill a number of goals: +<ul> +<li>use a modern but portable GUI library which integrates well into different flavours of unix. + +<li>be able to display large numbers of features efficiently + +<li>make use of threads to allow data loading independently of the GUI as modern browsers do + +<li>be independent of any one database format so that it could be used by a variety of end users. +</ul> +</p> +<p>Experience has shown that languages that are interpreter based (perl, python, java) do not provide +the performance to deal with displaying large volumes of data. The C language was chosen because +of it's potential for good performance and it's portability. The GTK toolkit was used for the GUI +with the foocanvas being used for the actual sequence display. This combination has proved robust +and has provided the performance to display large numbers of features in very large scrollable +windows. The following sections describe the key components of ZMap.</p> +</fieldset> + + + +<fieldset> +<legend>Threading model</legend> +<p>Providing a responsive GUI while loading data is a problem that has been tackled in different +ways, prior to the introduction of a portable threading interface code had to be written so that +long running functions would allow periodic updates to the GUI. The X Windows server is a good +example of this. The introduction of threading makes tackling this problem easier as it means that +the long running function can be run in a separate thread without the need to callback to the GUI. +</p> +<p>Certain software constraints mean that a simple model presents itself. The X Window library while +being thread safe is not multi-threaded meaning that there is little or no gain to having more +than one thread in the GUI code. The obvious model therefore is to have one "master" thread +running the GUI and in effect controlling the application, "slave" threads are then used to fetch +and process data for display by the GUI thread (see figure XX). +</p> +<p>The separation of the threads also naturally leads to a "plugin" model for adding new data source +modules. There is a single standardised interface between the GUI thread and it's source threads, +new modules can be added without alteration to the interface code which provides the "bridge" +between the threads (see bridge pattern in design patterns). See figure XXX. +</p> +<p>(should we add stuff about cancelling....currently it doesn't work that well so try it out +first...also I think that restart doesn't work ???)</p> +</fieldset> + + + +<fieldset> +<legend>Data display</legend> +<p>Sequence display must cope with very large coordinate systems that are then mapped to the +screen. The foocanvas holds it's "world view" in floating point coordinates allowing plotting to +as fine a scale as required for even whole chromosome display. The canvas has the concept of a +world view and a subsection of that world view that is displayable (the "scrollable area"). This +is important both for performance but also because underlaying window systems usually have a +maximum limit to the size of window they can display. For X windows the biggest window that can +usefully be handled is 32k by 32k pixels. ZMap therefore limits the scrollable area to this size +or less but allows scrolling of the overall scrollable area so that even at high zoom levels the +user can quickly and easily scroll over large areas of sequence. +</p> +<p>A primary design goal was to allow users to rapidly scroll around and zoom in and out of the +sequence being annotated. In addition, like any good text editor, they can split the view of +the sequence an arbitrary number of times both horizontally and vertically allowing for instance +the simultaneous viewing of different sections of a long transcript. +</p> +<p>The foocanvas like other canvas packages allows the addition of custom written "canvas items" +which is particularly important for a genome annotation program as there are current and emerging +standards for the shapes used to represent different kinds of features. ZMap supports a number of +these (see Fig xx) and it is easy to add more. They range from very simple glyphs to much more +complex items that display a complete transcript with CDS, UTR and other parts marked up. +</p> +<p>ZMap has the concept of a 'mark' region which by default is the entire displayed sequence but can +easily be set to encompass just the area of the window or any feature within the window. Many +operations are limited to the mark region which has two benefits: +<ul> +<li>better performance since only a relatively small number of features need be manipulated + +<li>more meaningful display, zmap offers various ways of clustering individual columns to make + them easier to view and often these work best if only the features in the marked area are + clustered, e.g. one cluster mode marks up all colinear homology matches and this makes most + sense when only those homology matches that are in the same coordinate range as a particular + transcript are clustered see fig.... +</ul> +</p> +</fieldset> + + +<fieldset> +<legend>Efficiency in data display</legend> +<p>Displaying all features for a large sequence can be too slow even with optmised compiled +code. Fortunately it is possible to optimise display both by differential loading and differential +display of features. + +<ul> +<li>differential display via zoom factors +</ul> +</p> +<p>Each feature set has a minimum and maximum zoom factor controlling the range of magnifications at +which the features are displayed. This allows the user to specify that very numerous features such +as homologies are only displayed at higher magnifications. +<ul> +<li> differential display via the "mark" region + + +<li> Lazy Loading +</ul> +</p> +<p>Features can be selectively loaded under the control of the user and sys Loading all features for +a large sequence can consume large amounts of memory and Usually annotators do not need to see all +features for the entire range of the sequence they are annotating, they instead concentrate on +sub-areas of interest. + +<ul> +<li>describe threading model + +<li> describe server model + +<li>describe use of autoconf +</ul> +</p> +</fieldset> + + + +<fieldset> +<legend>ZMap and Otterlace</legend> +<p>The first annotation system that ZMap has been used for is the Otterlace system which is a +perl Tk based application and associated pipelines that is used for vertebrate annotation +at the Sanger Institute and elsewhere.</p> + +</fieldset> + + +<fieldset> +<legend>Conclusions</legend> + +<p>need acedb, otterlace, gmod, apollo refs</p> +</fieldset> \ No newline at end of file diff --git a/doc/Design_notes/misc/ZMap_paper.rel b/doc/Design_notes/misc/ZMap_paper.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/misc/ZMap_paper.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/misc/about.html b/doc/Design_notes/misc/about.html new file mode 100644 index 000000000..29f275796 --- /dev/null +++ b/doc/Design_notes/misc/about.html @@ -0,0 +1,62 @@ + +<h2>ZMap Design Documentation</h2> + +<br /> + +<fieldset> +<legend>Introduction</legend> + +<p>ZMap is a mature program and contains some duplicated and old versions of code. The main aim here is to document how it is supposed to work so that it is clear whether or not any section of code is correct, and to allow developers to learn the code more quickly.</p> +<p>This is an attempt to collate previous notes about the design of ZMap and create more complete documentation of how Zmap works. It is organised as follows:</p> + +<ul> + <li><p>An index page (this file) will provide links to the rest</p> + <li><p>Each module will have it's own main page and possibly child pages if necessary.<p> + <li><p>Extra pages will be written providing information from other perspectives, for example a defintion of data in and out, the XRemote proctocol, performance issues.<p> +</ul> +</fieldset> + +<fieldset> +<legend>Practicalities</legend> +<h3>Prototype System</h3> +<p>Initially we will only provide HTML files as part of the ZMap source tree in ZMap/doc/design. Each ZMap source directory will have a README (or README.html) which will provide a link to the relevant page on this directory, and each page will have links to related pages and the index.</p> + +<p>Current web standards and links to the web team can be found <a href="http://intweb.sanger.ac.uk/help/webdocs/">here</a> and include CSS and some notes about header.ini which is a Perl script. To access HTML in the ZMap source tree we need to provide simple HTML files (shtml actually - this is as needed for intweb) and scripts cannot be included as we are not running a web server locally. </p> + +<h3>Headers and Navigation</h3> +<p> The Sanger NavBar can be used for related links on any set of pages uploaded to intweb and some way needs to be found to generate this for files in the ZMap source tree. As an interim measure a <div> will be used for a left hand list of links and another for the page's text; these will be set with styles such that they do not overlap. A script can be used to generate a local shtml file, and another one for files to upload to intweb. This is necessary to avoid having to edit many files to add links if we add a new one.</p> + +<p>A script will be used to generate a usable page (*.shtml) from a headerless source file (*.html), and each file will have a *.rel file to specify related links. </p> + +<h3>External modules and the document tree</h3> +<p>The pages proper will be stored in ZMap/doc/design (as new documentation files) and there are some existing file we wish to refer to. The pages will be set up with a document root of ZMap/doc and therefore it will be easy to refer to any previously written html files.</p> +<p> +A directory (ZMap/doc/scripts} will be used to store scripts to maintain these files and should be added to a ZMap developer's path. Note that after editing a headerless source file it is necessay top re-generate the *.shtml using 'docgen filename', and of course the CVS has to be operated as well. +</p> +<p><i>Note to self: maybe docgen could operate the CVS?</i></p> +<h3>Adding a new file</h3> +<p><ul> + <li>Choose a directory in the document tree + <li>Choose a file name and a short description/ title + <li>Run the command 'new filename "description"' (NB: filename is the root and does not include .html) in your chosen directory + <li>Edit scripts/navbar.rel and any other files (eg doc/design/index.html) to add links + <li>Re-generate all the files using docgen. +</ul></p> +<p> +<i>We could use a script to rebuild all files given a list of directories.</i> Given that ZMap can be stored at any location it would have to use relative pathnames and be run from a specific directory. This could be scripted... +</p> +<p>NB: Only the *.html files are held in CVS as otherwise rebuilding pages would thrash the system somewhat. +</p> +</fieldset> + +<fieldset> +<legend>Scripts and Files</legend> + +<b>scripts/navbar.rel</b> list of links and descriptions used by navbar scripts<br /> +<b>scripts/new</b> create a new *.html and *.rel file. Two args: module name and description<br /> +<b>scripts/docgen</b> generate a local .shtml file<br /> +<b><module>.rel</b> list of links relevant to the module or page<br /> +<b>ZMap/doc/css/dev_server.css</b> as cut and paste from the Sanger web development pages</b> + +</fieldset> + diff --git a/doc/Design_notes/misc/about.rel b/doc/Design_notes/misc/about.rel new file mode 100644 index 000000000..1c738226a --- /dev/null +++ b/doc/Design_notes/misc/about.rel @@ -0,0 +1,2 @@ +,Related, +design/misc/ZMap_paper,Paper on ZMap, diff --git a/doc/Design_notes/modules/pipeServer.html b/doc/Design_notes/modules/pipeServer.html new file mode 100644 index 000000000..12d3ba598 --- /dev/null +++ b/doc/Design_notes/modules/pipeServer.html @@ -0,0 +1,126 @@ +<h2> pipeServer - Pipe Server Configuration and Use </h2> +<p> Author: mh17, 27 Nov 2009; Converted to HTML 02 Mar 2010</p> +<fieldset> <legend>Summary</legend> +<p>The pipeServer module is based on the existing fileServer and is configured using a [source] stanza in the ZMap config file for each pipe. The module takes as input a GFF format stream and it is intended that ony one or very few featuresets will be included in each pipe - the idea is to upload data in parallel in order to reduce startup time. +</p> +<p> +Scripts are to be installed locally with ZMap and the directory itself will be identified in the [ZMap] stanza in ~/.ZMap/ZMap. The scripts are defined by a url and paramters can be given in the query string. +</p> +<p>Although the intention is to load much of the data direct from database sources instead of passing it via ACEDB it is stll necessary for ZMAP to load the essential data from ACE - transcripts and featuresets-to-styles, style information, as GFF does not allow definition of styles. ZMap can also run from pipes/ files only if styles are specifed in another file. +</p> +<p>The pipeServer module replace the old fileServer module and supports both kinds of input. +</p> +</fieldset> + +<fieldset> +<legend>Configuration - [ZMap] stanza</legend> +In ZMap's main configuration file (~/.ZMap/ZMap, or as otherwise optioned) we specify each pipeServer and also set up a few other options as needed: +</p> +<pre> +[ZMap] +# define the location for scripts +# Of course these could be stored centrally somewhere if desired. +# and pipeServers can use absoloute paths instead +script-dir=/nfs/users/nfs_m/mh17/ZMap/scripts + +# Each data source must be referenced in [ZMap] by listing the source stanzas like this +# Columns are displayed in the order given: in this example all the acedb features first then the 'other_feed' etc. +# later in the ZMap file each source must be defined in its own stanza. +sources = acedb ; other-feed ; yet_another_one + +# If styles are not defined via ACEDB the a file must be given in the ZMap stanza (not the source stanza) eg: +stylesfile = /nfs/users/nfs_m/mh17/zmap/styles/ZMap.b0250.file.styles +</pre> +<p> +When configured, ZMap will request data from each source in parallel, hopefully speeding things up a lot. Each script will obtain and send the data 'somehow'. They will replace the existing mechanism of Otterlace retreiving the data sequentially and adding to ACEDB on startup. +</p> + +</fieldset> +<fieldset> +<legend>URL interpretation</legend> +<p> +In each source stanza (one must exist for each data source) the syntax is the same as for existing file:// and acedb:// sources, but specifically for pipe:// sources we interpret the configuration as follows: +</p> + +<p>URL's take the form +<pre> + <scheme>://[user][:password]@<host>[:port]/[url-path][;typecode][?query][#fragment] +</pre> +and: +<pre> + <scheme> will be 'pipe' + + user:password@host are not used and if present are ignored + + port is not used and if present will be ignored + + url-path is the path of the script. + Note that according to http://rfc.net/rfc1738.html a single leading '/' signifies a relative path and two signifies absolute. We will interpret relative paths as relative to the ZMap scripts directory. + + typecode is not used and will be ignored if present + + query will be expanded into a normal argv vector + + fragment is not used and will be ignored +</pre> +</p> +<p> +Typically we expect a pipe:// data source to have only one (or very few) feature sets, as a major design aim is to exploit concurrent operation. Other configuration parameters will operate as normal (eg 'sequence=true' (which can only appear in one source) and 'navigator_sets=xxx,yyyy'). +</p> +<p> +Here is an example for a test script that simple outputs an existing GFF file. +<pre> +[b0250] +url = pipe://getgff.pl?file=b0250_curated.gff +featuresets = curated_features ; curated ; genomic_canonical +styles = curated_features ; curated ; genomic_canonical +</pre> +</p> + +<p> +A more realistic one with an absolute path... (but needs featuresets and styles and stylesfile specifying) +<pre> +[human_xyx] +url=pipe:///software/anacode/bin/get_genes.pl?dataset=human&name=1& + analysis=ccds_gene&end=161655109&csver=Otter&cs=chromosome& + type=chr1-14&metakey=ens_livemirror_ccds_db&start=161542637& + featuresets=CCDS:Coding;CCDS:Transcript +</pre> +(url broken up for readability). +</p> +</fieldset> +<fieldset> +<legend>Script operation: some rules</legend> +<p> +A script must start with #!<program> or else it will not be exec'd. (Assuming Linux) +</p> +<p> +A script may obtain data in any way it likes but must output valid GFF data and nothing else on STDOUT (but anything is valid in a comment). +</p> +<p> +Brief error messages may be output to STDERR and these will be appended to the zmap log. STDERR output is intended only to alert users of some failure (eg 'warning not all data found' or 'cannot connect to database') and not as a detailed log of script activity - if this is needed then the script should maintain its own log file. A warning message will be presented to the user, consisting of the last line in STDERR and hopefully this will be enough to explain the situation with resorting to log files. +</p> +<p> +Regardless of whether an error message is sent ZMap will attempt to use the GFF data provided. +</p> +<p> +ZMap will probably read STDERR after STDOUT is closed, and only if some error is encountered. +</p> +<p> +Arguments will be given in the format <b>key=value</b> with no preceeding dashes, these will be as extracted from the server query string. (If people care about this we could change it...) +</p> +<p> +Extra arguments may be added subject to implementation: +<pre> +zmap_start=zmap_start_coord # in zmap coordinates not bases (if configured) +zmap_end=zmap_end_coord +wait=9 # delay some seconds before sending data + # (can be given in the query string, main use is for testing) +</pre> +</p> +</fieldset> + + + + + diff --git a/doc/Design_notes/modules/pipeServer.rel b/doc/Design_notes/modules/pipeServer.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/pipeServer.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapApp.html b/doc/Design_notes/modules/zmapApp.html new file mode 100644 index 000000000..71eb43b7e --- /dev/null +++ b/doc/Design_notes/modules/zmapApp.html @@ -0,0 +1,4 @@ +<h2> zmapApp - main program </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapApp.rel b/doc/Design_notes/modules/zmapApp.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapApp.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapConfig.html b/doc/Design_notes/modules/zmapConfig.html new file mode 100644 index 000000000..0b95e970c --- /dev/null +++ b/doc/Design_notes/modules/zmapConfig.html @@ -0,0 +1,4 @@ +<h2> zmapConfig - configuration file handler </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapConfig.rel b/doc/Design_notes/modules/zmapConfig.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapConfig.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapControl.html b/doc/Design_notes/modules/zmapControl.html new file mode 100644 index 000000000..6d7954a79 --- /dev/null +++ b/doc/Design_notes/modules/zmapControl.html @@ -0,0 +1,4 @@ +<h2> zmapControl - user interface - main menus and buttons </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapControl.rel b/doc/Design_notes/modules/zmapControl.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapControl.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapDAS.html b/doc/Design_notes/modules/zmapDAS.html new file mode 100644 index 000000000..37dcd915c --- /dev/null +++ b/doc/Design_notes/modules/zmapDAS.html @@ -0,0 +1,4 @@ +<h2> zmapDAS - DAS interface </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapDAS.rel b/doc/Design_notes/modules/zmapDAS.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapDAS.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapDocs.html b/doc/Design_notes/modules/zmapDocs.html new file mode 100644 index 000000000..8ca04e6e2 --- /dev/null +++ b/doc/Design_notes/modules/zmapDocs.html @@ -0,0 +1,4 @@ +<h2> zmapDocs - Doxygen main page </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapDocs.rel b/doc/Design_notes/modules/zmapDocs.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapDocs.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapDraw.html b/doc/Design_notes/modules/zmapDraw.html new file mode 100644 index 000000000..637d34eff --- /dev/null +++ b/doc/Design_notes/modules/zmapDraw.html @@ -0,0 +1,4 @@ +<h2> zmapDraw - mainly old code? </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapDraw.rel b/doc/Design_notes/modules/zmapDraw.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapDraw.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapFeature.html b/doc/Design_notes/modules/zmapFeature.html new file mode 100644 index 000000000..eb1446fa0 --- /dev/null +++ b/doc/Design_notes/modules/zmapFeature.html @@ -0,0 +1,4 @@ +<h2> zmapFeature - Feature Context - the model part of MVC </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapFeature.rel b/doc/Design_notes/modules/zmapFeature.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapFeature.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapGFF.html b/doc/Design_notes/modules/zmapGFF.html new file mode 100644 index 000000000..86457c694 --- /dev/null +++ b/doc/Design_notes/modules/zmapGFF.html @@ -0,0 +1,4 @@ +<h2> zmapGFF - GFF file handler </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapGFF.rel b/doc/Design_notes/modules/zmapGFF.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapGFF.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapMake.html b/doc/Design_notes/modules/zmapMake.html new file mode 100644 index 000000000..e9ae729ca --- /dev/null +++ b/doc/Design_notes/modules/zmapMake.html @@ -0,0 +1,4 @@ +<h2> zmapMake - build scripts </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapMake.rel b/doc/Design_notes/modules/zmapMake.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapMake.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapManager.html b/doc/Design_notes/modules/zmapManager.html new file mode 100644 index 000000000..8c98e411d --- /dev/null +++ b/doc/Design_notes/modules/zmapManager.html @@ -0,0 +1,4 @@ +<h2> zmapManager - App/Control? </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapManager.rel b/doc/Design_notes/modules/zmapManager.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapManager.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapNavigator.html b/doc/Design_notes/modules/zmapNavigator.html new file mode 100644 index 000000000..85de1397a --- /dev/null +++ b/doc/Design_notes/modules/zmapNavigator.html @@ -0,0 +1,4 @@ +<h2> zmapNavigator - the left hand navigator pane </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapNavigator.rel b/doc/Design_notes/modules/zmapNavigator.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapNavigator.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapNoThreads.html b/doc/Design_notes/modules/zmapNoThreads.html new file mode 100644 index 000000000..23cb0ead5 --- /dev/null +++ b/doc/Design_notes/modules/zmapNoThreads.html @@ -0,0 +1,4 @@ +<h2> zmapNoThreads - obsolete? </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapNoThreads.rel b/doc/Design_notes/modules/zmapNoThreads.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapNoThreads.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapServer.html b/doc/Design_notes/modules/zmapServer.html new file mode 100644 index 000000000..04839144f --- /dev/null +++ b/doc/Design_notes/modules/zmapServer.html @@ -0,0 +1,4 @@ +<h2> zmapServer - thread based external interfaces </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapServer.rel b/doc/Design_notes/modules/zmapServer.rel new file mode 100644 index 000000000..bc41d465d --- /dev/null +++ b/doc/Design_notes/modules/zmapServer.rel @@ -0,0 +1,2 @@ +,Related,design/modules/ +pipeServer diff --git a/doc/Design_notes/modules/zmapThreads.html b/doc/Design_notes/modules/zmapThreads.html new file mode 100644 index 000000000..d48acfa3c --- /dev/null +++ b/doc/Design_notes/modules/zmapThreads.html @@ -0,0 +1,4 @@ +<h2> zmapThreads - thread handling ficntion used for servers </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapThreads.rel b/doc/Design_notes/modules/zmapThreads.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapThreads.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapUtils.html b/doc/Design_notes/modules/zmapUtils.html new file mode 100644 index 000000000..1c9995b18 --- /dev/null +++ b/doc/Design_notes/modules/zmapUtils.html @@ -0,0 +1,4 @@ +<h2> zmapUtils - Miscellaneous functions </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapUtils.rel b/doc/Design_notes/modules/zmapUtils.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapUtils.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapView.html b/doc/Design_notes/modules/zmapView.html new file mode 100644 index 000000000..774cef946 --- /dev/null +++ b/doc/Design_notes/modules/zmapView.html @@ -0,0 +1,4 @@ +<h2> zmapView - a mixture of V and C from MVC </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapView.rel b/doc/Design_notes/modules/zmapView.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapView.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapWindow.html b/doc/Design_notes/modules/zmapWindow.html new file mode 100644 index 000000000..4dc953f17 --- /dev/null +++ b/doc/Design_notes/modules/zmapWindow.html @@ -0,0 +1,4 @@ +<h2> zmapWindow - the display / interface to the canvas </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapWindow.rel b/doc/Design_notes/modules/zmapWindow.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapWindow.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapWindow_items.html b/doc/Design_notes/modules/zmapWindow_items.html new file mode 100644 index 000000000..8fafd8647 --- /dev/null +++ b/doc/Design_notes/modules/zmapWindow_items.html @@ -0,0 +1,90 @@ + +<h2>zmapWindow/items - extensions to the Foo Canvas for zmap</h2> + +<br /> + +<fieldset> +<legend>Canvas Groups, Items and Utils</legend> + +<p>This directory contains functions and headers to support our own custom +foocanvas items derived from FooCanvasItem and FooCanvasGroup. +</p> + +<p>There are three "public" level headers that "application" code (i.e. code +outside of this directory) should use: +<ul> +<li>zmapWindowCanvas.h +<li>zmapWindowContainers.h +<li>zmapWindowFeatures.h +</ul> + +These give access to the public interfaces for our canvas, container and +feature extensions respectively. (N.B. code within this directory should not +include these headers but instead _only_ include the headers from within this +directory that are actually needed.)</p> +</p> +<p>Each component has a public and a private header, private headers should +always immediately include their public header to prevent type clashes, +circularities etc. Only derived "classes" should include the private headers +of their parents otherwise public headers should be used. +</p> + +<p>There are various types of "container" and various types of "feature" which +are used to form the hierachy in the Foocanvas that represents our feature +context, their relationship is like this: + +<pre> + | ZMapWindowContainerContext + | | + | | + | ZMapWindowContainerAlignment + | | + | | +ZMapContainerGroup--| ZMapWindowContainerBlock + | | + | | + | ZMapWindowContainerStrand + | | + | | + | ZMapWindowContainerFeatureSet + | + | + ZMapCanvasItem--| the various types of zmapWindowXXXXFeature +</pre> +(Note that going down each level is a one->many parent/child mapping.) +</p> + + +<p>As can be seen from the above diagram ZMapContainerGroup and ZMapCanvasItem +are "base" classes that provide generalised interfaces common to all groups or +features.</p> + +<p>The use of GObject as the basis for the groups/items means that each container +member including the member itself has a G_TYPE. This means code that does +ZMAP_IS_CONTAINER_GROUP(pointer) is simpler and hopefully more readable. +</p> +<p>The ZMapWindowContainerGroup are sub classes of FooCanvasGroup and implement +the FooCanvasItem interface (draw, update, bounds, etc...). The update code +takes care of cropping the Container "owned" items, such as the background and +any overlays/underlays that might be being drawn. It also includes hooks to +provide similar functionality to the ContainerExecute callbacks. These are +attached/owned by each specific container so only get called by the container +they relate to. This again leads to simplier code, without the switch on the +container level. +</p> +<p>Each canvas item, as well as having its basic shape also has a background, +under- and overlay. Crucial to this is the ordering of these items as we rely +on the foocanvas routines to do all drawing and they just plough through the +list of items in each foocanvas group. To implement backgrounds etc. we must +maintain the order of these items. +</p> +<p>The background item is used both as a visible background for the items but +also more importantly to catch events _anywhere_ in the space (e.g. column) +where the items might be drawn. This arrangement also means that code that +has to process all items can do so simply by processing all members of the +item list of the sub_group as they are guaranteed to all be feature items and +it is trivial to perform such operations as taking the size of all items in a +group. +</p> + +</fieldset> diff --git a/doc/Design_notes/modules/zmapWindow_items.rel b/doc/Design_notes/modules/zmapWindow_items.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapWindow_items.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/Design_notes/modules/zmapXML.html b/doc/Design_notes/modules/zmapXML.html new file mode 100644 index 000000000..a2e4613e8 --- /dev/null +++ b/doc/Design_notes/modules/zmapXML.html @@ -0,0 +1,4 @@ +<h2> zmapXML - comms between ./new zmap and Otterlace usign XML and X-Atoms </h2> +<fieldset> <legend>Summary</legend> +Forthcoming... +</fieldset> diff --git a/doc/Design_notes/modules/zmapXML.rel b/doc/Design_notes/modules/zmapXML.rel new file mode 100644 index 000000000..df80cf644 --- /dev/null +++ b/doc/Design_notes/modules/zmapXML.rel @@ -0,0 +1 @@ +,Related diff --git a/doc/scripts/build b/doc/scripts/build index e1f4a0ac9..27c4fdff7 100755 --- a/doc/scripts/build +++ b/doc/scripts/build @@ -1,6 +1,15 @@ #!/bin/tcsh -# rebuild each file in turn; run as './build *.html' -while ($# >= 1) - docgen $1 - shift -end +# rebuild all pages +# must be run from ZMap/doc directory + +docgen *.html +cd desigm +docgen *.html +cd modules +docgen *.html +cd ../misc +docgen *.html +cd ../notes +docgen *.html + +echo "need to update this for other directories eg foocanvas" diff --git a/doc/scripts/docgen b/doc/scripts/docgen new file mode 100755 index 000000000..c8a1a3ba9 --- /dev/null +++ b/doc/scripts/docgen @@ -0,0 +1,142 @@ +#!/usr/bin/perl +# generate a *.shtml file to STDOUT from headerless *.html +# css is in ZMap/doc/css/dev_server.css +# menu data is in ZMap/doc/<design>/scripts/ plus also the current dir (file.rel) +# files ref'd relative to doc root which is the doc directory not doc/design + +use warnings; +use Cwd; + +my ($dir, $doc, $mydir, $css,$base); +my ($froot,$file); + +# create a menu box of related items +# syntax is file,name,prefix +# no file means name is box title +# prefix is to allow easy entry of serveal file in one directory +# paths are relative to doc root (...Zmap/doc) + +sub menudiv +{ + my ($name,$prefix,$file,$path); + my $in_fieldset = 0; + + $file = shift @_; + open(NAVBAR, $file) or die("Can't open $file\n"); + + while ($line = <NAVBAR>) + { + chomp($line); + ($file,$name,$prefix) = split(",",$line.',,'); + + if($file eq "") + { + $path = $prefix; + if($in_fieldset > 0) + { + print OFILE "</fieldset>\n"; + $in_fieldset--; + } + print OFILE "<fieldset><legend>$name</legend>\n"; + $in_fieldset++; + } + else + { + if($name eq "") + { + $name = $file; + } + print OFILE "<a href=\"$path$file.shtml\">$name</a><br>\n"; + } + } + print OFILE "</fieldset>\n"; +} + + +sub get_file +{ + my ($file,$root); + + $file = $_[0]; # get file name argument + @_ = split(/.html/,$file); + $root = shift(@_); + $file = $root . ".html"; # add .html if not present + + return($root,$file); +} + + +# get the current path and work out where the css and document root should be +sub get_dirs +{ + my ($dir,$doc,$mydir,$css,$base); + + $dir = getcwd; + # find /doc/ and count the number of '/' following + + @dirs = split(/\//,$dir); + $base = '/'; + $doc = $d = ""; + + while (@dirs && ($d ne "doc")) # ie our document root with the CSS + { + $d = shift @dirs; + $base .= $d . '/'; + } + if(@dirs) + { + $mydir = "../" . shift @dirs; # we expect to be called 'design' but get the name anyway + $doc .= "../"; + } + while(@dirs) + { + $d = shift @dirs; + $doc .= "../"; + } + + $css = "css/dev_server.css"; # relative to $base + return(($dir,$doc,$mydir,$css,$base)); +} + +sub gen_file +{ + print OFILE "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"; + print OFILE "<html>\n<head>\n\t<title>ZMap Design Documentation</title>\n"; + print OFILE "<base href=\"file://$base\" />\n"; + print OFILE "\t<link rel=\"stylesheet\" type=\"text/css\" href=\"$css\" />\n</head>\n"; + + print OFILE "<body>\n"; + + # generate a navbar div using a global as list of links and then adding on local ones + print OFILE "<div class=\"left\">\n"; + + menudiv ($base . "/scripts/navbar.rel"); # the global menu in the doc/scripts directory + menudiv ($froot . ".rel"); # menu related to this file in this directory + + print OFILE "</div>\n<div style=\"margin-right:5em;margin-left:10em;\">"; + + while($_ = <IFILE>) # include our html source + { + print OFILE $_; + } + + print OFILE "</div>\n<br/>\n</body>\n</html>\n"; + + close(OFILE); +} + +# here it is: + +for($i = $#ARGV;$i >= 0;$i--) +{ + ($froot,$file) = get_file(shift @ARGV); + ($dir,$doc,$mydir,$css,$base) = get_dirs(); + + open(IFILE,$file) or die("Can't open $file\n"); + $ofile = $froot. '.shtml'; + open(OFILE,"> ". $ofile) or die("cannot open $ofile\n"); + print "generating $ofile\n"; + gen_file(); +} + +#the end diff --git a/doc/scripts/make_pages b/doc/scripts/make_pages new file mode 100644 index 000000000..90dc20647 --- /dev/null +++ b/doc/scripts/make_pages @@ -0,0 +1,47 @@ +#!/bin/sh +# make blank pages for all the modules and a couple of libraries + +./new zmapApp "main program" +./new zmapConfig "configuration file handler" +./new zmapControl "user interface - main menus and buttons" +./new zmapDAS "DAS interface" +./new zmapDocs "Doxygen main page" +./new zmapDraw "mainly old code?" +./new zmapFeature "Feature Context - the model part of MVC" +./new zmapGFF "GFF file handler" +./new zmapMake "build scripts" +./new zmapManager "App/Control?" +./new zmapNavigator "the left hand navigator pane" +./new zmapNoThreads "obsolete?" +./new zmapServer "thread based external interfaces" +./new zmapThreads "thread handling ficntion used for servers" +./new zmapUtils "Miscellaneous functions" +./new zmapView "a mixture of V and C from MVC" +./new zmapWindow "the Window manager" +./new zmapWindow/items "extensions to the foo canvas" +./new zmapWindow "the display / interface to the canvas" +./new zmapXML "comms between zmap and Otterlace usign XML and X-Atoms" +./new foocanvas "third party GTK canavs widget" +./new g2 "printer format driver" + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/scripts/navbar.rel b/doc/scripts/navbar.rel new file mode 100644 index 000000000..50fe1226c --- /dev/null +++ b/doc/scripts/navbar.rel @@ -0,0 +1,27 @@ +,Home, +index,Documentation Root +design/index,Index, +design/misc/about,About, +,ZMap Modules,design/modules/ +zmapApp,, +zmapConfig,, +zmapControl,, +zmapDAS,, +zmapDocs,, +zmapDraw,, +zmapFeature,, +zmapGFF,, +zmapMake,, +zmapManager,, +zmapNavigator,, +zmapNoThreads,, +zmapServer,, +zmapThreads,, +zmapUtils,, +zmapView,, +zmapWindow,, +zmapWindow_items,zmapWindow/items, +zmapXML,, +,External, +foocanvas/foocanvas,Foo Canvas, +g2/g2,G2, diff --git a/doc/scripts/new b/doc/scripts/new new file mode 100755 index 000000000..92d6f8031 --- /dev/null +++ b/doc/scripts/new @@ -0,0 +1,12 @@ +#!/bin/sh +# generate a blank-ish html file +echo "<h2>" $1 - $2 "</h2>" > $1.html +echo "<fieldset> <legend>Summary</legend>" >>$1.html +echo "Forthcoming..." >>$1.html +echo "</fieldset>" >>$1.html + +echo ",Related" > $1.rel + +docgen $1 + +echo now update scripts/navbar.rel and design/index.html \ No newline at end of file diff --git a/web/css/dev_server.css b/web/css/dev_server.css new file mode 100644 index 000000000..aa79f32e3 --- /dev/null +++ b/web/css/dev_server.css @@ -0,0 +1,1334 @@ +/* Colours +Primary colours +#074987 prime1 (from colour picker against logo) +#004869 prime1 pantone 301 +#8abbee prime2 pantone 2915 +primary supplemental colours +#9fc6ee prime3 75% tint of pantone 2915 +#b8d2ef prime4 50% tint of pantone 2915 +#cbdced prime5 25% tint of pantone 2915 + +Secondary colours +Natural world +#b0e3c0 natural1 pantone 332 +#ccf284 natural2 pantone 373 +#5f8011 natural3 pantone 377 +#057a52 natural4 pantone 569 +#ddf6a4 natural5 pantone 372 +#846d53 natural6 warm gray 9 +#ccb376 natural7 pantone 4525 +#845d00 natural8 pantone 4495 +#621700 natural9 pantone 483 +vibrants +#ff7200 vibrant1 pantone 1505 +#c3001d vibrant2 pantone 186 +#8d0017 vibrant3 pantone 194 +#7c004f vibrant4 pantone 2612 +*/ + +@import url("/stylesheets/z-menu.css"); + +body { + margin: 0; + font-family: Arial, Helvetica, Sans-serif; + font-size: 10pt; + padding: 0; + color: #808080; + text-decoration: none; + background-color: #fff; +} + + + +tr { + vertical-align: top; +} + +p, td { + font-family: Arial, Helvetica, Sans-serif; +/* font-size: 0.9em; */ + color: #2f4f4f; +} + +th { + font-family: Arial, Helvetica, Sans-serif; +/* font-size: 0.9em; */ + color: #074987; + text-align: left; +} + +ul, ol, div, li, dl, dt, dd { + font-family: Arial, Helvetica, Sans-serif; + font-size: 1em; + color: #2f4f4f; +} + +p { + margin: 0.6em 0em 0.6em 0em; +} + +hr { + border-top: 0px dotted #2f4f4f; + border-bottom: 1px dotted #2f4f4f; + height: 0; + text-align: center; + width: 75%; +} + +.quote { + font-family: Arial, Helvetica, sans-serif; +/* font-size: 0.9em; */ + color: #8d0017; + font-style: italic; +} +.pressh1 { + color: #5a85d6; + font-weight: bold; + font-size: 1.2em; +} + +.pressh2 { + color: #8d0017; + font-weight: bold; +} + +.mediah1 { + color: #5a85d6; + font-weight: bold; + font-size: 1.6em; +} + +.mediah2 { + color: #8d0017; + font-weight: bold; + font-size: 1.2em; +} + +.symbol { + font-family: symbol; +/* font-size: 0.9em; */ + color: #074987; +} + +img.map { + position: absolute; + left: 0px; + top: 69px; + z-index: 1 +} + +a:link, a:visited { + color: #074987; + text-decoration: underline; +} + +a:hover { +/* color: #5a85d6; */ + color: #ff7200; + text-decoration: underline; +} + +/* IMAGES START */ + +img { + border: 0; +} + +img.img { + margin: 5px; + border: 1px solid #aaaaaa; +} + +img.img-nb { + margin: 5px; + border: 0; +} + +div.figleft, div.figright { + margin: 5px; +} + +div.left, div.figleft { + float: left; +} + +div.right, div.figright { + float: right; +} + +div.figleft p, div.figright p { + text-align: justify; + margin: 0; + color: #8d0017; + font-size: 0.75em; + border: 1px dotted #aaaaaa; + padding: 0; +} + +div.figleft img, div.figright img { + margin: 0; + border: 1px solid #aaaaaa; +} + +div.figleft a, div.figright a { + color: #8d0017; +} + +.figlegend { + color: #8d0017; + font-size: 0.7em; + border: dotted 1px #83a4c3; + text-align: justify; + padding: 5px; +} + +/* IMAGES FINISH */ + +.banner { + font-size: 1.5em; + text-align: left; + color: #074987; + margin: 5px 0px 5px 0px; + padding: 0; + font-weight: bold; +/* width: 800px;*/ +} + +.subhead, a.subhead { + font-size: 1em; + text-align: left; + color: #8d0017; + margin: 0; + padding: 0; + font-weight: bold; +} + +h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { + color: #074987; + padding: 0; + font-weight: bold; + margin: 0; +} + +h1, .h1 { + font-size: 2em; + margin: 5px 0px 5px 0px; +} + +h2, .h2 { + font-size: 1.8em; +} + +h3, .h3 { + font-size: 1.6em; +} + +h4, .h4 { + font-size: 1.4em; +} + +h5, .h5 { + font-size: 1.2em; +} + +h6, .h6 { + font-size: 1.1em; +} + +/*** styled lists for pubmedaliser ***/ + +ul.outer{ + margin: 0px; /*removes indent IE and Opera*/ + padding: 0px; /*removes indent Mozilla and NN7*/ + font-size: 1em; + list-style-type: none; /*turns off display of bullet*/ + font-family: Arial, Helvetica, sans-serif; + background-color: #ffffff; + border: 1px dotted #83a4c3; + margin: 0px; + width: 100%; +} + +ul.inner { + margin: 0px;/*removes indent IE and Opera*/ + padding: 0px;/*removes indent Mozilla and NN7*/ + font-size: 1em; + list-style-type: none; /*turns off display of bullet*/ + width: 100%; +} + +li.pubtext { + font-size: 1em; +} + +td.pubtext { + margin: 5px; + padding: 10px; +} + +li.pub1, .pub1 { + font-size: 1em; + margin: 5px; + padding: 10px; + background-color: #e7edf3; +} + +li.pub2, .pub2 { + font-size: 1em; + margin: 5px; + padding: 10px; +} + +li.header { + background-color: #c2d2e1; + color: #000000; + padding: 10px; + margin: 5px; + text-align: left; + font-family: Arial, Helvetica, sans-serif; +} +/*** styled lists end ***/ + +.correct { + font-weight: bold; +/* font-size: 0.9em; */ +} + +.error1, .error2 { + font-weight: bold; +/* font-size: 0.9em; */ +} + +.small { + font-size: 0.8em; +} + +.correct { + color: #4577a5; +} + +.error1 { + color: #ff7200; +} + +.error2 { + color: #7c004f; +} + +.tablelisting, a.tablelisting { +/* color: #ff7200; */ + color: #074987; +/* font-size: 0.8em; */ + text-align: left; +} + +/* begin zebra-tables */ +.tabrow1, table.zebra .tabrow1 { + background-color: #e7edf3; + color: #074987; +} + +.tabrow2, table.zebra .tabrow2 { + background-color: #ffffff; + color: #074987; +} + +table.zebra { + caption-side: bottom; +} + +table.zebra thead th { + border-bottom: 2px solid black; +} + +table.zebra table.zebra thead th { + border-bottom: 1px solid black; +} + +table.zebra table .tabrow1 { + background-color: #f4f8fd; + color: #074987; +} + +table.zebra table .tabrow2 { + background-color: #fff; + color: #074987; +} + +table.zebra caption, table.zebra tfoot td { + font-size: 0.9em; +} + +table.zebra caption { + background-color: #eee; + color: #000; +} +/* end zebra-tables */ + +.teamleader { +/* font-size: 1.2em; */ + color: #074987; +} + +.groupleader { + color: #4577a5; +} + +/*** species stats start ***/ + +a.species-ftp { + color: #ff7200; +/* font-size: 0.9em;*/ + font-weight: bold; +} + +a.species-ftp { + color: #ff7200; +/* font-size: 0.9em;*/ + font-weight: bold; + font-style: italic; +} + +.species-project { + color: #8d0017; +/* font-size: 0.8em;*/ + white-space: nowrap; +} + +a.species-project { + color: #057a52; +/* font-size: 0.8em;*/ +} + +.species-numbers { + color: #8d0017; +/* font-size: 0.8em; */ + font-weight: bold; +} + +/*** species stats end ***/ + + + +/*** begin site search box configuration ***/ + +#searchbox { + float:right; + border: 2px solid #074987; + margin-top:20px; + margin-right:20px; + padding: 5px; + background: #cbdced; + -moz-border-radius: 8px; +} + +/*\*//*/ #searchbox {width: 100px;} /**/ /*IE5 on the mac only */ + +#searchbox form { + padding:0; + margin:0; +} +#searchbox .sitequery { + font-size: 0.7em; + color: #8d0017; + padding: 0; + margin: 0; +} +#searchbox .searchbutton { + border: 2px solid; + border-top-color: #efeaf3; + border-left-color: #909fc7; + border-bottom-color: #506816; + border-right-color: #22408f; + background-color: #cbdced; + font-family: Arial, Helvetica, Sans-serif; + font-size: 0.7em; + font-weight: bold; + padding:0px; + color: #074987; +} + +/*** end site search box configuration ***/ + +.footer { + border: 1px solid #074987; + font-size: 0.9em; + text-align: left; + white-space: nowrap; + background-color: #cbdced; + margin: 0px; + padding: 0px; + color: #074987; +} + +.footer-text { + color: #074987; +} + +.footer2 { +/* font-size: 0.9em;*/ + text-align: left; +} + +.footer2-text { + color: #aaaaaa; +} + +/*** NAVHEAD START ***/ + +#navhead { + border-top:1px solid #22408f; + background: #074987; + margin:0px; + padding:0px; +} + +#navhead a { + font-weight:bold; + color: #fff; + text-decoration:none; + display:block; + padding:3px 3px 3px 6px; + margin:0px; +} + +/*** NAVHEAD END ***/ + +/*** NAVIGATOR START ***/ + +div.navigator { + padding:0px; + margin:0px; +} +div.navigator ul { + margin:0px; + padding:0px; + list-style-type:none; + margin-bottom:18px; + border-bottom:1px solid #22408f; +} +div.navigator li { + display:block; + list-style-type:none; + margin:0px; + padding:0px; + border-top:1px solid #22408f; + background: #cbdced; + _height:10px; /* IE6 hack to get the right heights */ +} +div.navigator li a { + color: #074987; + font-weight:bold; + display:block; + margin:0px; + padding:3px 3px 3px 5px; + text-decoration:none; + _height:10px; /* IE6 hack to get the right heights */ +} + +div.navigator li a:hover { + background-color: #9fc6ee; + text-decoration:none; + color: #074987; +} + +/*** NAVIGATOR END ***/ + +/*** BARHEAD START ***/ + +.barhead, a.barhead, a.barhead:link, a.barhead:visited, a.barhead:hover { + border: 1px solid #4577a5; + font-family: Arial, Helvetica, sans-serif; + background-color: #4577a5; + margin: 0; + padding: 0 0 0 5px; + display: block; + color: #ffffff; + font-weight: bold; + text-decoration: none; + _height:10px; /* IE6 hack to get the right heights */ +} + +/*** BARHEAD END ***/ + +/*** NAVIGATOR2 START ***/ + +div.navigator2 { + padding:0px; + margin:0px; +} +div.navigator2 ul { + margin:0px; + padding:0px; + list-style-type:none; + margin-bottom:18px; + border-bottom:1px solid #22408f; +} +div.navigator2 li { + display:block; + list-style-type:none; + margin:0px; + padding:0px; + _height:10px; /* IE6 hack to get the right heights */ + border-top:1px solid #22408f; + background: #9fc6ee; +} +div.navigator2 li a { + color: #074987; + font-weight:bold; + display:block; + _height:10px; /* IE6 hack to get the right heights */ + margin:0px; + padding:3px 3px 3px 5px; + text-decoration:none; +} + +div.navigator2 li a:hover { + background-color: #cbdced; + text-decoration:none; + color: #074987; +} + +/*** NAVIGATOR2 END ***/ + + +/*** NAVIGATOR SHOW HIDE START ***/ + +#nav_tab { + margin-top: 1px; + padding: 0px 0px 0px 0px; +} + +/*** NAVIGATOR SHOW HIDE END ***/ + +/* begin WTSI header logo/swoosh/search configuration */ + +.header tr { + vertical-align: middle; + } + +td.headerleft { + background-color: #074987; +} + +/* td.headercentre and td.headerright background-image is set in wtsi.pm */ +td.headercentre { + background-position: top right; +} + +table.headersearch { + float: left; + background-color: #cbdced; + padding: 5px; + margin: 15px; + -moz-border-radius: 8px; + border: 2px #074987 solid; +} + +/* end WTSI header logo/swoosh/search configuration */ + + +/* nav dropdowns start */ + +.nav-dd { + width: 170px; + background-color:#f4f8fd; +} + +.hide { + display: none; +} + +/* nav dropdowns end */ + +/* begin portlet configuration */ +div.portlet { + margin-top: 10px; + border: 1px #8d0017 solid; + background-color: #f4e6e8; +} + +div.portletitem { + padding: 2px; + font-size:1em; +} + +div.portlethead { + background-color: #8d0017; + color: #ffffff; + font-weight: bold; + padding: 1px; +} + +div.portlet ul { + list-style: none; + margin: 0; + padding: 0; + border: none; +} + +div.portlet li, div.portlet a { + color: #8d0017; + text-decoration: none; +} + +div.portlet a:hover { + color: #8d0017; + text-decoration: underline; +} + +div.portlet li { + border-bottom: 1px dotted; +} + +/* end portlet configuration */ + +/* begin jimmac menu configuration */ + +/* div.menutext, div.menutext a, div.menutext a:visited, div.menubar { + background-color: #cbdced; + color: #074987; +} */ + +div.menutext { + /* background-color: #cbdced;*/ /*menubackground colour*/ +/* border-left: 171px solid #cbdced;*/ +} + +div.menutext, div.menutext a, div.menutext a:visited, div.menubar { + color: #074987; + text-decoration: none; +} + +div.submenus a:link, div.submenus a:visited { + color: #074987; + text-decoration: none; +} + +div.submenus tr.hi, tr.hi { + background-color: #b8d2ef; + text-decoration: none; +} + +div.submenus tr.lo, tr.lo { + background-color: #cbdced; + text-decoration: none; +} + +div.submenus a:hover { + background-color: #074987; + color: #ffffff; +} + +/* end jimmac menu configuration */ + +div.newsdec { + background-color: #e7edf3; + -moz-border-radius: 8px; + margin: 0pt 0pt 0pt 0pt; + padding: 6pt 6pt 6pt 6pt; + width: 100%; + border: 2px #b8d2ef solid; + overflow: visible; +} + +div.news-bannerdec { + background-color: #074987; + color: #ffffff; + padding: 0pt 0pt 0pt 6pt; + margin: 5px 0px 0px 10px; + /* font-size: 0.9em;*/ + font-weight: bold; +} + +div.genborder { + background-color: #e7edf3; + -moz-border-radius: 8px; + margin: 0em; + padding: 1em; + width: auto; + border: 2px #cbdced solid; + overflow: visible; + font-size: 1em; +} + +div.genborder-banner { + background-color: #074987; + color: #ffffff; + padding: 1px 1px 1px 3px; + margin: 0 0 0 1em; + font-size: 1em; + font-weight: bold; + width: 20em; +} + +/* Things to deprecate */ + +a.red1, .red1, .chromtab1, .barialr, .arialr, .smarialr, .newsheader, .basecounter, a.figlegend, td.figlegend a, span.quote a { + color: #8d0017; +} + +.grey1, gray1 { + background-color: #aaaaaa; +} + +tr.h2bg, .barialwbg, td.h2bg, .h2bg { + background-color: #074987; +} + +.h2bg, .barialwbg { + color: #ffffff; +} +/* rounded boxes - start */ + +.roundedboxedge { + background-color: #224422; + color: #ffffff; +} + +.roundedboxbg { + background-color: #e7edf3; +} + +/* rounded boxes - end */ + +a.nounderline { + text-decoration: none; +} + +.white, .barialw, .smarialw, .bsmarialw { + color: #ffffff; +} + +tt, .tt { + font-family: courier; + font-size: 1em; +} + +sub, sup { + font-family: Arial, Helvetica, sans-serif; + font-size: 0.9em; +} + +.ismarial { + font-style: italic; +} + +.bsmarialw, .bsmarial { + font-weight: bold; +} + +.blue1, .chromtab2, .chromtab3, .barialb, .arialb, .barhead3 { + color: #074987; +} + +.blue2, .barialb2, .barhead2, .smarialb2 { + color: #5a85d6; +} + +.violet1 { + background-color: #ffffff; + text-decoration: none; +} + +.violet2, .panel { +/* background-color: #cbdced;*/ + background-color: #ffffff; +} + +.violet3 { + background-color: #e7edf3; +} + + +/* news start */ + +div.news { + background-color: #e7edf3; + -moz-border-radius: 8px; + margin: 0em; + padding: 6px; + width: 18em; + border: 2px #b8d2ef solid; + height: 8em; + overflow: visible; +} + +div.news-banner { + background-color: #074987; + color: #ffffff; + padding: 0pt 0pt 0pt 6pt; + width: 100px; + margin: 5px 0px 0px 10px; +/* font-size: 8pt;*/ + font-weight: bold; +} + +.news-title { + color: #8d0017; + font-size: 1em; + font-weight: bold; + text-align: left; +} + +.news-content { + color: #2f4f4f; + /*font-size: 0.8em;*/ + text-align: left; +} + +fieldset { + border: #83a4c3 dotted 1px; + background-color: /*#f4f8fd;*/ #ffffff; + padding: 0em 0.5em 0.5em 0.5em; + text-align: left; + margin: 0px; +} + +/* Holly Hack Targets IE Win only \*/ +* html fieldset {border: #83a4c3 solid 1px;} + fieldset {border: #83a4c3 dotted 1px;} +/* end of Holly hack */ + +legend { + border: #83a4c3 solid 1px; + background-color: #f4f8fd; + color: #074987; + padding: 2px 4px 2px 4px; + font-weight: bolder; + text-decoration: none; + font-family: Arial,Helvetica,Sans-Serif; + margin-top: 0px; +} + +/* Holly Hack Targets IE Win only \*/ +* html legend {margin-top: 10px;} + legend {margin-top: 0px;} +/* end of Holly hack */ + +legend.info { + border: #c6808b solid 1px; + background-color: #f4e6e8; + color: #8d0017; +} + +fieldset.news-long { + border: #83a4c3 dotted 1px; + background-color: /*#f4f8fd;*/ #ffffff; + padding: 0em 0.5em 0.5em 0.5em; + width: 500px; + text-align: left; + margin: 10px; +} + +/* Holly Hack Targets IE Win only \*/ +* html fieldset.news-long {border: #83a4c3 solid 1px;} + fieldset.news-long {border: #83a4c3 dotted 1px;} +/* end of Holly hack */ + +legend.news-long { + border: #83a4c3 solid 1px; + background-color: #f4f8fd; + color: #074987; + padding: 2px; + font-weight: bolder; + text-decoration: none; + font-family: Arial,Helvetica,Sans-Serif; + margin-top: 0px; +} + +/* Holly Hack Targets IE Win only \*/ +* html legend.news-long {margin-top: 10px;} + legend.news-long {margin-top: 0px;} +/* end of Holly hack */ + +fieldset ul, fieldset ol { + padding: 0em; + margin: 0.5em 0 0.5em 1.5em; +} + +fieldset ul li { + list-style: url(/icons/prime2/arrow.l.gif) disc; +} + +fieldset ul li li { + list-style: url(/icons/natural1/arrow.l.gif) disc; +} + +fieldset ul li, fieldset ul li li, fieldset ol li, fieldset ul li li { + padding: 0em; + margin: 0em; +} + + +/* Holly Hack Targets IE Win only \*/ +* html fieldset li {margin: 0 0 0 1em;} + fieldset li {margin: 0em;} +/* end of Holly hack */ + +fieldset h1, fieldset h2, fieldset h3, fieldset h4, fieldset h5, fieldset h6 { + font-size: 1em; + font-weight: bold; + margin: 0em; +} + +fieldset h1, fieldset h1 a:link, fieldset h1 a:visited, fieldset h1 a:hover { + color: #8d0017; +} + +fieldset h2, fieldset h2 a:link, fieldset h2 a:visited, fieldset h2 a:hover { + color: #074987; +} + +fieldset h3, fieldset h3 a:link, fieldset h3 a:visited, fieldset h3 a:hover { + color: #057a52; +} + +fieldset h4, fieldset h4 a:link, fieldset h4 a:visited, fieldset h4 a:hover { + color: #ff7200; +} + +fieldset h5, fieldset h5 a:link, fieldset h5 a:visited, fieldset h5 a:hover { + color: #c3001d; +} + +fieldset h6, fieldset h6 a:link, fieldset h6 a:visited, fieldset h6 a:hover { + color: #7c004f; +} +/* +fieldset p { + margin: 0em; +} +*/ +fieldset th { + text-align: left; +} + +fieldset.small { + font-size: 0.9em; +} + +fieldset textarea { + font-family: Arial,Helvetica,Sans-Serif; + font-size: 1em; + float: right; + width: 23em; +} + +.input { + font-family: Arial,Helvetica,Sans-Serif; + font-size: 1em; + float: right; + width: 23em; +} + +/* news end */ + +/* seminars start */ + +div.seminars { + background-color: #e7edf3; + -moz-border-radius: 8px; + margin: 0pt 0pt 0pt 0pt; + padding: 2pt 6pt 6pt 6pt; + width: 194pt; + border: 2px #b8d2ef solid; + height: 100pt; + overflow: visible; +} + +div.seminars-banner { + background-color: #074987; + color: #ffffff; + padding: 0pt 0pt 0pt 6pt; + margin: 5pt 100pt 0pt 10pt; + /* font-size: 0.9em;*/ + font-weight: bold; +} + +fieldset.seminars { + border: #83a4c3 dotted 1px; + background-color: /*#f4f8fd;*/ #ffffff; + padding: 0em 0.5em 0.5em 0.5em; + width: 250px; + text-align: left; + margin: 0px; +} + +/* Holly Hack Targets IE Win only \*/ +* html fieldset.seminars {border: #83a4c3 solid 1px;} + fieldset.seminars {border: #83a4c3 dotted 1px;} +/* end of Holly hack */ + +a.seminars-title, a.faculty-title { + color: #8d0017; + /*font-size: 0.9em;*/ + font-weight: bold; + text-align: left; +} + +.seminars-content { + color: #2f4f4f; + /*font-size: 0.8em;*/ + text-align: left; +} + +a.seminars-list, a.faculty, td.faculty { + color: #ff7200; + /*font-size: 0.9em;*/ + font-weight: bold; + text-align: left; +} + +/* seminars end */ + +div.quote-box { + float: left; + width: 200px; + background-color: #d8f1e0; + padding: 5px; + margin: 5px 5px 5px 0px; +} + +div.quote-box h6 { + /*font-size: 0.9em;*/ + color: #5f8011; + padding: 8px 0 0 0; + font-weight: bold; + margin: 0; + text-transform: capitalize; +} + +div.quote-box p { + /*font-size: 0.8em;*/ + padding: 0; + margin: 0; +} + +.announcement, a.announcement { + border: #c6808b solid 1px; + background-color: #f4e6e8; + color: #8d0017; + padding: 5px; + font-weight: bold; + font-size: 1.5em; + text-align: center; +} +/* +a.announcement { + color: #8d0017; +} +*/ +a.wpresent, .wpresent { + color: #ff7200; + border: #83a4c3 solid 1px; + background-color: #f4f8fd; + padding: 2px; + margin: 2px 2px 2px 2px; + /*font-size: 0.7em;*/ +} + +.wpresentact { + color: #ff7200; + border: #83a4c3 solid 1px; + background-color: #b8d2ef; + font-weight: bold; + padding: 2px; + margin: 2px; +} + +a.wpresent:hover { + color: #ff7200; + border: #83a4c3 solid 1px; + background-color: #b8d2ef; + font-weight: bold; +} + +/* begin cross-browser coloured fake-fieldsets */ +div.fieldset { + position: relative; + margin-top: 1em; +} + +div.fieldset div.content { + padding: 0.75em; + overflow: auto; + display: table-cell; + border: 1px solid #074987; + background-color: white; +} + + +div.fieldset div.legend { + position: absolute; + top: -0.5em; + margin-left: 1em; + white-space: nowrap; + display: table-cell; + padding: 0 0.2em 0 0.2em; + font-weight: bolder; + z-index: 1; + border: black 1px solid; + background-color: white; +} + +div.fieldset div.content img { + position: relative; + padding-bottom: 0.5em; +} + +* html div.fieldset div.legend { width: 100px; } + +/* end cross-browser coloured fake-fieldsets */ + + +/* new css for tableless div version */ + +#nav_bar { + background-color: #cbdced; + height: 17px; +} + +#nav_bar img { + vertical-align: middle; + margin-top:1px; + margin-left:3px; +} + +#collapseHEAD { + background: url(http://wwwdev.sanger.ac.uk/header-icons/swoosh/default.gif) no-repeat top left; + height:66px; +} + +#collapseHEAD img { + float:left; +} + +#sidebar { + width:172px; +} + +#sidebar img.img { + margin: 0px; + border: 0px; +} + +div#navblock { + position:absolute; + top:83px; + left:0px; + width:20px; +} + +div#navblock.expanded { + width:187px; +} + +div#navblock.collapsed { + width:20px; +} + +#login_box { + border:1px solid #22408f; + background: #cbdceb; + padding:3px 3px 3px 13px; +} + +#login_box .field{ + margin-bottom:3px; + width:130px; +} + +#navigation { + padding:0px; + margin:0px; + margin-bottom:1em; + border-bottom:1px solid #22408f; + border-left:1px solid #22408f; + border-right:1px solid #22408f; + background: #e7edf3; +} +#navigation img { + padding:0px; + margin:0px; +} + +#collapseFOOT { + clear:both; + font-size: 0.8em; + font-family: Arial,Helvetica,Sans-serif; + padding:5px 0px; + margin:10px 3px 3px 3px; + color:#888; + border-top:1px solid #eee; +} + +#collapseFOOT #contact { + padding:3px; +} + +#collapseFOOT #contact p { + margin: 1px; + padding: 0px; + display:inline; +} + +#collapseFOOT #contact #email { + float:right; +} + +#collapseFOOT #legal { + padding: 2px 0px 0px 0px; + margin: auto; + text-align:center; + width:99%; +} + +#collapseFOOT #legal p { + color: #aaa; + display:inline-block; + padding: 0; + margin: 0; +} +#collapseFOOT #legal .left { + float:left; + width:33%; + text-align:left; +} +#collapseFOOT #legal .middle { + text-align:center; +} +#collapseFOOT #legal .right { + text-align:right; + width:33%; + float:right; +} + +#navtab { + position:absolute; + top:40px; + right:0px; + margin:0px; + padding:0px; +} + +div#main { +/* nothing in here, but I think it has to be here to + allow the collapsed and expanded classes */ + margin-left: 20px; + padding: 0.5em 1em 1em 1em; +} + +div#main.collapsed { + margin-left:188px; +} + +div#main.expanded { + margin-left:20px; +} + +div#content { + min-height: 400px; +} + +/* end new css for tableless div version */ -- GitLab