You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(18) |
Aug
(33) |
Sep
(30) |
Oct
(27) |
Nov
(59) |
Dec
(30) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(67) |
Feb
(44) |
Mar
(70) |
Apr
(73) |
May
(119) |
Jun
(31) |
Jul
(92) |
Aug
(86) |
Sep
(76) |
Oct
(152) |
Nov
(156) |
Dec
(85) |
2008 |
Jan
(111) |
Feb
(121) |
Mar
(107) |
Apr
(102) |
May
(45) |
Jun
(65) |
Jul
(62) |
Aug
(133) |
Sep
(56) |
Oct
(56) |
Nov
(17) |
Dec
(15) |
2009 |
Jan
(10) |
Feb
(5) |
Mar
(10) |
Apr
(14) |
May
(49) |
Jun
(94) |
Jul
(67) |
Aug
(23) |
Sep
(9) |
Oct
(92) |
Nov
(26) |
Dec
(51) |
2010 |
Jan
(105) |
Feb
(83) |
Mar
(52) |
Apr
(59) |
May
(68) |
Jun
(71) |
Jul
(127) |
Aug
(49) |
Sep
(91) |
Oct
(27) |
Nov
(33) |
Dec
(26) |
2011 |
Jan
(26) |
Feb
(45) |
Mar
(26) |
Apr
(28) |
May
(17) |
Jun
(15) |
Jul
(45) |
Aug
(33) |
Sep
(50) |
Oct
(22) |
Nov
(10) |
Dec
(21) |
2012 |
Jan
(33) |
Feb
(24) |
Mar
(36) |
Apr
(60) |
May
(60) |
Jun
(43) |
Jul
(114) |
Aug
(19) |
Sep
(35) |
Oct
(24) |
Nov
(64) |
Dec
(12) |
2013 |
Jan
(54) |
Feb
(58) |
Mar
(51) |
Apr
(46) |
May
(21) |
Jun
(29) |
Jul
(25) |
Aug
(25) |
Sep
(13) |
Oct
(7) |
Nov
(14) |
Dec
(27) |
2014 |
Jan
(10) |
Feb
(7) |
Mar
(16) |
Apr
(14) |
May
(19) |
Jun
(8) |
Jul
(15) |
Aug
(11) |
Sep
(5) |
Oct
(11) |
Nov
(11) |
Dec
(4) |
2015 |
Jan
(52) |
Feb
(27) |
Mar
(22) |
Apr
(17) |
May
(2) |
Jun
(2) |
Jul
(2) |
Aug
(2) |
Sep
(2) |
Oct
|
Nov
(2) |
Dec
|
2016 |
Jan
(2) |
Feb
|
Mar
|
Apr
(2) |
May
(1) |
Jun
(1) |
Jul
(3) |
Aug
(2) |
Sep
(2) |
Oct
(2) |
Nov
(2) |
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
(4) |
Jun
|
Jul
|
Aug
(1) |
Sep
(1) |
Oct
(2) |
Nov
|
Dec
(1) |
2018 |
Jan
|
Feb
|
Mar
(4) |
Apr
|
May
(2) |
Jun
(2) |
Jul
(2) |
Aug
(2) |
Sep
(1) |
Oct
(2) |
Nov
(1) |
Dec
|
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(3) |
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
(3) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
From: <mg...@us...> - 2007-05-09 21:03:20
|
Revision: 570 http://svn.sourceforge.net/obo/?rev=570&view=rev Author: mgibson Date: 2007-05-09 14:03:21 -0700 (Wed, 09 May 2007) Log Message: ----------- notes & jnlp for 1.3-beta1 release Modified Paths: -------------- phenote/trunk/doc/phenote-website/phenote-release-notes.html phenote/trunk/doc/phenote-website/phenote.html phenote/trunk/doc/phenote-website/phenote.jnlp Modified: phenote/trunk/doc/phenote-website/phenote-release-notes.html =================================================================== --- phenote/trunk/doc/phenote-website/phenote-release-notes.html 2007-05-09 20:51:17 UTC (rev 569) +++ phenote/trunk/doc/phenote-website/phenote-release-notes.html 2007-05-09 21:03:21 UTC (rev 570) @@ -4,16 +4,20 @@ + + <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> + + <title>Phenote Release Notes</title> </head> @@ -22,114 +26,164 @@ + <h1>Phenote Release Notes</h1> + 1.3 will probably come out in June<br> + +<h2><span style="text-decoration: underline;">1.3-beta1</span></h2> + +<a href="1.3-beta1/phenote.jnlp">Phenote 1.3-beta1</a><br> <br> +Added config for birn<br> +Added SAO.obo for birn<br> +Namespace config writes back<br> +Config update/merge bug where fields in wrong order fixed.<br> +Can specify more than one website for ontologies<br> +Empty field shows all terms in ontology rather than none<br> + <h2><span style="text-decoration: underline;">1.2</span></h2> + <a href="1.2/phenote.jnlp">Phenote 1.2</a><br> + <br> + Features: Can post-compose with >2 terms <br> + Term history display can be toggled on/off <br> + Synonym types display in term info<br> + Obsolete replacements displayed in term info<br> + Search filters moved into menu <br> + Loading splash screen <br> + Can configure by namespace for ontologies<br> + Bug Fixes: Free text field text not "sticking" <h2><span style="text-decoration: underline;">1.1</span></h2> + <a href="1.1/phenote.jnlp">Phenote 1.1</a><br> + <br> + March 28, 2007<br> + <br> + Phenote will merge its default configuration with users configuration, preserving users changes as well as adding anything new from phenote upgrade.<br> + User can select configuration they want to use at initialization or subsequently from file menu (currently requires phenote restart).<br> + Tab delimited data adapter - thank you nicole!<br> + Beginnings of term history - thank you nicole!<br> + Tabbed main field panel if more than 12 fields.<br> + QueryableDataAdapter interface for adding a database data adapter that can be queried. The data adapter specifies queryable fields, which get a retrieve button.<br> + Layout improved<br> + Can now search ALL ontologies of a field<br> + Retrieve obo from web if more up to date or no local found<br> + Refactored code for field guis<br> + Ontology chooser reflects current term (bug fix) <h2><span style="text-decoration: underline;">1.0</span></h2> + <a href="1.0/phenote-flybase.jnlp">Phenote 1.0 for fly</a><br> + <a href="1.0/phenote-zfin.jnlp">Phenote 1.0 for zfin</a><br> + <a href="http://165.124.152.194/db/cgi-bin/dictyBase/curation/phenotypeCuration.pl">DichtyBase webby phenote</a><br> + <a href="http://reaper.lbl.gov/phenote/html/ncbo.html">Webby Phenote(components used by Zfin)</a><br> + <br> + January 12, 2007<br> + <br> + The main improvement here is the ability to add any field you like, not just E,Q,GC,GT,Pub. In the configured webstarts Stage, Evidence, Description, Abnormal, and Absent have been added through this new mechanism. This entailed a refactoring of the datamodel.<br> + <br> + Webby phenote is now using JSP and Spring.<br> + <br> + There has been some recent work with UVictoria for ontology graph visualization. This is coming along well and hopefully will be seen in the next release. @@ -137,133 +191,163 @@ + <a href="0.9/phenote-flybase.jnlp">Phenote 0.9 for fly</a><br> + <a href="0.9/phenote-zfin.jnlp">Phenote (standalone) 0.9 for zfin</a><br> + <a href="http://165.124.152.194/web/html/interface.html">DichtyBase webby phenote</a><br> + <br> + mid November 2006<br> + <br> + Undo<br> + Christian Pich(Zfin) has added a Quartz scheduler to phenote, which zfin takes advantage of, to schedule when to check for new obo files.<br> + Also Christian Pich upgraded the PhenoteServlet to the Spring framework - much nicer!<br> + Synonyms are now returned from auto complete with [syn] and when selected the term goes in the field (webby & standalone), obsoletes hits with [obs]<br> + Bulk update & copy in standalone.<br> + Jim Balhoff(Nescent) changed radio buttons to checkboxes, and file saver says save not load and recognizes adapter by file extensions, psx->phenosyntax, .xml -> phenoxml <br> + Single quotes escaped for javascript fns.<br> + <h2><span style="text-decoration: underline;">0.8</span></h2> + <a href="0.8/phenote-flybase.jnlp">Phenote 0.8 for fly.</a><br> + <a href="0.8/phenote-zfin.jnlp">Phenote (standalone) 0.8 for zfin</a><br> + <a href="http://165.124.152.194/web/html/interface.html">DichtyBase webby phenote</a><br> + <br> + 10/2/06<br> + Added post composition to standalone phenote. Logging for both webby/servlet & standalone.<br> + Pheno-xml reader (thanks to Jim Balhoff) and improvements to pheno-xml writer (does pub & genetic context)<br> + Command line reading & writing of phenoxml & phenosyntax.<br> + Application exits on window exit (unless servlet)<br> + Can filter out stage terms from zfin anatomy<br> + <h2><span style="text-decoration: underline;">0.7</span></h2> + <a href="0.7/phenote-flybase.jnlp">Phenote 0.7 for fly.</a><br> + <a href="0.7/phenote-zfin.jnlp">Phenote (standalone) 0.7 for zfin</a><br> + <a href="http://165.124.152.194/web/html/interface.html">DichtyBase webby phenote</a><br> + <br> + Web: entity chooser, can configure to check for new obo files and load them. (These are installed at zfin, if anyone would like to see them publicly let me know). Entity field and term info installed into zfin @@ -271,6 +355,7 @@ + Standalone: can read & write pheno-syntax with ids & term names in comments, entity chooser, pub field, use button in term info, sort table by clicking on headers, personal config file gets copied out of @@ -278,31 +363,38 @@ + <br> + <h2><span style="font-weight: bold;"><span style="text-decoration: underline;">0.6</span></span></h2> + <a href="http://reaper.lbl.gov/phenote/html/ncbo.html">Webby Phenote (0.6)</a><br> + <a href="0.6/phenote-flybase.jnlp">Phenote 0.6 with fly anatomy</a><br> + <a href="0.6/phenote-zfin.jnlp">Phenote 0.6 with zebrafish anatomy</a><br> + <br> + The main feature of release 0.6 is a webby phenote. This is in its extremely early stages (very little functionality and buggy). At this point it only does Entity and Quality fields and term info and thats @@ -310,40 +402,49 @@ + <br> + Not much new in the stand alone phenote (as Ive been working on the webby phenote). Mainly it can write pheno-xml, and it uses the latest pato (as of July 28, 2006).<br> + <h2><span style="font-weight: bold;"><span style="text-decoration: underline;">0.5</span></span></h2> + <br> + <a href="0.5/phenote-flybase.jnlp">Phenote 0.5 webstart for FlyBase</a><br> + <a href="0.5/phenote-zfin.jnlp">Phenote 0.5 webstart for ZFIN</a><br> + <br> + 5/12/06<br> + No new additions to the gui here. In preparation for my visit to Cambridge/FlyBase, I worked on a FlyBase dataadapter. This is phenote first data adapter so I also laid down the foundations for data @@ -358,38 +459,47 @@ + <h2><span style="text-decoration: underline;">0.4</span></h2> + <a href="0.4/phenote-flybase.jnlp">0.4 flybase webstart</a><br> + <a href="0.4/phenote-zfin.jnlp">0.4 zfin webstart</a><br> + <br> + 4/26/06<br> + Added Genetic Context field.<br> + Parent & child terms in term info are now clickable/navigable.<br> + Links in descriptions are clickable (should bring up default browser)<br> + Added configuration to configure ontologies & fields. This is currently at a devloper level (xml file) not a user level(gui - todo). There is a command line argument for which configuration file to use. @@ -400,19 +510,23 @@ + Minor bugs: cant delete to 0 rows anymore, synonym search duplicates taken out<br> + <br> + Dev stuff:<br> + Refactored for configuration & adding field. Made the internal code much more generic for adding new fields from configuration, got rid of a lot of hard wiring. Part of this was instituring @@ -422,43 +536,53 @@ + Renamed Phenotype to Character. Added Character interface CharacterI.<br> + Added tests to test suite.<br> + <br> + <h2><span style="text-decoration: underline;">0.3.1 (CToL)<br> + </span></h2> + <a href="0.3.1/phenote-webstart.jnlp">0.3.1 phenote webstart (for CToL)</a><br> + <br> + 4/7/06<br> + 0.3.1 is identical to 0.3 except that it has ontologies for CToL (fish evolution group). In particular it uses a fish taxonomy<br> + ontology for the id (in this taxonomy) choosing. On the todo is the ability to configure ontologies, but not there yet, so for now need to hardwire with seaparate jar file. This clearly makes the todo item a @@ -466,199 +590,246 @@ + <h2><span style="text-decoration: underline;">0.3</span></h2> + <a href="0.3/phenote-webstart.jnlp">0.3 phenote webstart</a><br> + <br> + 4/7/06<br> + Release for NESCent fish eveolution meeting. No major new functionality here. Cleaned up and fixed a lot of the bugs in 0.2, which was rather buggy.<br> + <br> + Completion terms now sorted alphabeitcally.<br> + Obsolete is now in addition to regular terms, not in lieu of.<br> + Filtering out attribute values (todo: change to actually filter in values)<br> + Html formatting of term info (todo: make terms selectable)<br> + Children relations are in term info<br> + Term info layout greatly improved<br> + Term info in scroller<br> + Border with label around term info<br> + Put definition at end of term info<br> + <br> + Fixed bugs:<br> + Backspace in ontology combo box<br> + Selection of item in comp list causing exception, not going in term box<br> + No terms with just 1 char<br> + Popup was staying up after selection<br> + <br> + Dev stuff:<br> + Test suite added! (todo: add more tests)<br> + Migrated to jdk 1.5 (which caused some of the bugs above)<br> + Ant file made build.xml.<br> + CompletionList refactored into Ontology (prompted by sorting)<br> + <br> + <br> + <h2><span style="text-decoration: underline;">0.2</span></h2> + <a href="0.2/phenote-webstart.jnlp">0.2 phenote webstart</a><br> + <br> + 3/27/06<br> + Added the ability to do term completion on Synonyms, Definitions, and Obsoletes. Also can mouse over a term in a completion list and get information about it in the term info text area. <br> + <br> + The term info area needs a lot of work.<br> + TODO:<br> + layout, scrollbar, border w title, ordering & lumping parents & children, formatting. <br> + Also perhaps have children & parents be clickable in some fashion either html-like clickable text or as buttons.<br> + Theres also bugs in term completion boxes. If you start backspacing it gets wacky for instance.<br> + <br> + <a href="0.2/phenote-webstart.jnlp"><br> + </a> <h2><span style="text-decoration: underline;">0.1</span></h2> + <a href="0.1/phenote-webstart.jnlp">0.1 phenote webstart</a><br> + <br> + 3/1/06<br> + 0.1 was the initial phenote release (known briefly as the plumper at the time). It just had a genotype, anatomy and pato fields, where anatomy and pato did term completion (just on term names) with there @@ -668,25 +839,31 @@ + <br> + <a href="0.2/phenote-webstart.jnlp"></a><br> + <br> + <br> + <a href="phenote.html">Phenote main page</a><br> + </body> </html> Modified: phenote/trunk/doc/phenote-website/phenote.html =================================================================== --- phenote/trunk/doc/phenote-website/phenote.html 2007-05-09 20:51:17 UTC (rev 569) +++ phenote/trunk/doc/phenote-website/phenote.html 2007-05-09 21:03:21 UTC (rev 570) @@ -9,6 +9,7 @@ + @@ -17,6 +18,7 @@ + <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> @@ -26,6 +28,7 @@ + @@ -34,6 +37,7 @@ + <title>Phenote</title> </head> @@ -47,6 +51,7 @@ + <h1 style="text-align: left;"><span style="font-weight: bold;"></span>Phenote<br> @@ -56,6 +61,7 @@ + </h1> @@ -65,6 +71,7 @@ + <br> @@ -74,6 +81,7 @@ + Phenote is a tool to annotate phenotypes using the Entity Quality paradigm. It takes advantage of ontologies. It uses term completion to allow curators quick access to @@ -86,6 +94,7 @@ + <br> @@ -94,13 +103,17 @@ + <a href="1.2/phenote.jnlp">Phenote 1.2</a><br> + <br> + <br> + After phenote downloads the java jar files (takes a while) it will ask you what configuration you would like to use, fly, zfin, human,worm....<br> @@ -111,9 +124,11 @@ + <br> + Recent addditions include the ability to update config while preserving your changes, change config, tab delimited format, tabbed field panel, retrieve ontologies from web, retrieve from field to database, search @@ -128,6 +143,7 @@ + <br> @@ -137,6 +153,7 @@ + Zebrafish requires components of phenote(to plug into their non-public website), not a full web app. Here is a proof of concept of some of @@ -150,6 +167,7 @@ + <br> @@ -159,6 +177,7 @@ + <a href="http://reaper.lbl.gov/phenote/html/ncbo.html">Webby Phenote(components used by Zfin)</a><br> @@ -169,6 +188,7 @@ + <br> @@ -178,6 +198,7 @@ + Webby phenote is a collaboration with Sohel Merchant at dictyBase. Here is what they have done:<br> @@ -188,6 +209,7 @@ + <br> @@ -197,6 +219,7 @@ + <a href="http://165.124.152.194/db/cgi-bin/dictyBase/curation/phenotypeCuration.pl">DictyBase webby phenote</a><br> @@ -207,6 +230,7 @@ + <br> @@ -216,6 +240,7 @@ + <br> @@ -225,6 +250,7 @@ + We are doing these releases to get feedback. Please report any bugs (ideally through the <a href="https://sourceforge.net/tracker/?group_id=76834&atid=887913">bug tracker</a>) and let us know what you @@ -237,11 +263,13 @@ + <br> -[In development - the bleeding edge if you will:<a href="1.3/phenote.jnlp"> Phenote 1.3</a> coming soon]<br> +In development - the bleeding edge if you will:<br> +<a href="1.3-beta1/phenote.jnlp">Phenote 1.3-beta1</a><br> @@ -249,6 +277,8 @@ + + <h4>Phenote links:<br> @@ -258,6 +288,7 @@ + </h4> @@ -267,6 +298,7 @@ + <a href="https://lists.sourceforge.net/lists/listinfo/obo-phenote">Phenote email list</a><br> @@ -277,6 +309,7 @@ + <a href="https://sourceforge.net/tracker/?group_id=76834&atid=887913">Phenote bug tracker</a><br> @@ -287,6 +320,7 @@ + <a href="https://lists.sourceforge.net/lists/listinfo/obo-phenote-bug-tracker">Bug tracker email list</a><br> @@ -297,6 +331,7 @@ + <a href="https://sourceforge.net/svn/?group_id=76834">Phenote source code (obo sourceforge svn)</a><br> @@ -307,6 +342,7 @@ + <a href="https://lists.sourceforge.net/lists/listinfo/obo-svn-commit">Phenote svn commit email list</a><br> @@ -317,6 +353,7 @@ + <a href="http://wiki.dictybase.org/dictywiki/index.php/Phenotype_Curation_Tool_Documentation#Usage">Dicty webby phenote wiki developer docs</a><br> @@ -327,13 +364,16 @@ + <a href="http://www.bioontology.org/wiki-internal/index.php/Phenotype_Annotation_Tool">Phenote ncbo internal wiki (ncbo folk only)</a><br> + <a href="developer-docs/dataadapter.html">Phenote dataadapter developer doc</a><br> + <a href="developer-docs/developer-docs.html">More developer docs</a><br> @@ -343,6 +383,7 @@ + <br> @@ -352,6 +393,7 @@ + <a href="phenote-release-notes.html">Phenote Release Notes and old webstart releases</a><br> @@ -362,6 +404,7 @@ + <br> @@ -371,6 +414,7 @@ + If the Phenote webstart link fails to do anything, then there are probably problems with webstart and/or java(has to be jdk 1.5). Take a look at the <a href="webstart-troubleshooting.html">webstart troubleshooting</a><br> @@ -382,6 +426,7 @@ + page.<br> @@ -391,6 +436,7 @@ + <br> @@ -400,6 +446,7 @@ + Click here for <a href="phenote-java-requirements.html">phenote java requirements</a><br> @@ -410,6 +457,7 @@ + <br> @@ -419,6 +467,7 @@ + <br> @@ -428,6 +477,7 @@ + <br> @@ -437,6 +487,7 @@ + Old releases: <br> @@ -446,7 +497,9 @@ + <a href="1.1/phenote.jnlp">Phenote 1.1</a><br> + <a href="1.0/phenote-flybase.jnlp">Phenote 1.0 for fly</a><br> @@ -456,6 +509,7 @@ + <a href="1.0/phenote-zfin.jnlp">Phenote 1.0 for zfin</a><br> @@ -464,12 +518,14 @@ + <a href="1.0/phenote-human.jnlp">Phenote 1.0 for human</a><br> + <br> @@ -479,6 +535,7 @@ + <a href="0.9/phenote-flybase.jnlp">Phenote 0.9 for fly</a><br> @@ -488,6 +545,7 @@ + <a href="0.9/phenote-zfin.jnlp">Phenote (standalone) 0.9 for zfin</a><br> @@ -496,6 +554,7 @@ + <br> @@ -504,6 +563,7 @@ + <a href="0.8/phenote-flybase.jnlp">Phenote 0.8 for fly.</a><br> @@ -513,6 +573,7 @@ + <a href="0.8/phenote-zfin.jnlp">Phenote (standalone) 0.8 for zfin</a><br> @@ -522,6 +583,7 @@ + <br> @@ -531,6 +593,7 @@ + <a href="0.7/phenote-flybase.jnlp">Phenote 0.7 for fly.</a><br> @@ -540,6 +603,7 @@ + <a href="0.7/phenote-zfin.jnlp">Phenote (standalone) 0.7 for zfin</a><br> @@ -549,6 +613,7 @@ + <br> @@ -558,6 +623,7 @@ + <a href="0.6/phenote-flybase.jnlp">Phenote 0.6 with fly anatomy</a><br> @@ -567,6 +633,7 @@ + <br> @@ -576,6 +643,7 @@ + <a href="0.6/phenote-zfin.jnlp">Phenote 0.6 with zebrafish anatomy</a><br> @@ -585,6 +653,7 @@ + <br> @@ -594,6 +663,7 @@ + <a href="0.5/phenote-flybase.jnlp">Phenote 0.5 webstart for FlyBase</a><br> @@ -603,6 +673,7 @@ + <br> @@ -612,6 +683,7 @@ + <a href="0.5/phenote-zfin.jnlp">Phenote 0.5 webstart for ZFIN</a><br> @@ -621,6 +693,7 @@ + <br> @@ -630,6 +703,7 @@ + <a href="0.4/phenote-flybase.jnlp">Phenote 0.4 webstart for FlyBase</a><br> @@ -639,6 +713,7 @@ + <br> @@ -648,6 +723,7 @@ + <a href="0.4/phenote-zfin.jnlp">Phenote 0.4 webstart for ZFIN</a><br> @@ -657,6 +733,7 @@ + <br> @@ -666,6 +743,7 @@ + <a href="0.3.1/phenote-webstart.jnlp">Phenote for CToL group (0.3.1)</a> (a special release for the CToL group that uses fish taxonomy)<br> @@ -677,6 +755,7 @@ + <br> @@ -686,6 +765,7 @@ + <a href="0.3/phenote-webstart.jnlp">Phenote 0.3</a><br> @@ -695,6 +775,7 @@ + <br> @@ -704,6 +785,7 @@ + <a href="0.2/phenote-webstart.jnlp">Phenote 0.2</a><br> @@ -713,6 +795,7 @@ + <br> @@ -722,6 +805,7 @@ + <a href="0.1/phenote-webstart.jnlp">Phenote 0.1</a><br> @@ -731,6 +815,7 @@ + <br> @@ -740,6 +825,7 @@ + <br> @@ -749,5 +835,6 @@ + </body> </html> Modified: phenote/trunk/doc/phenote-website/phenote.jnlp =================================================================== --- phenote/trunk/doc/phenote-website/phenote.jnlp 2007-05-09 20:51:17 UTC (rev 569) +++ phenote/trunk/doc/phenote-website/phenote.jnlp 2007-05-09 21:03:21 UTC (rev 570) @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> <jnlp spec="1.0+" -codebase="http://toy.lbl.gov:9010/phenote/1.2" +codebase="http://toy.lbl.gov:9010/phenote/1.2-beta1" href="phenote.jnlp"> <information> - <title>Phenote 1.2</title> + <title>Phenote 1.3-beta1</title> <vendor>National Center for Biomedial Ontology</vendor> <description>Phenote standalone app via webstart</description> <!-- Declares that the application can run without This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-05-09 18:14:50
|
Revision: 568 http://svn.sourceforge.net/obo/?rev=568&view=rev Author: mgibson Date: 2007-05-09 11:14:50 -0700 (Wed, 09 May 2007) Log Message: ----------- updated worm cfg to new file style - should do for rest as well... Modified Paths: -------------- phenote/trunk/conf/worm.cfg phenote/trunk/src/java/phenote/config/Config.java Modified: phenote/trunk/conf/worm.cfg =================================================================== --- phenote/trunk/conf/worm.cfg 2007-05-09 16:30:47 UTC (rev 567) +++ phenote/trunk/conf/worm.cfg 2007-05-09 18:14:50 UTC (rev 568) @@ -1,4 +1,4 @@ -<phenote-configuration version="1.3.1" xmlns="phenote/config/xml" xmlns:xsi="http://www.w3.org/1999/XMLSchema/instance" schemaLocation="phenote-config.xsd"> +<phenote-configuration xmlns="phenote/config/xml" xmlns:xsi="http://www.w3.org/1999/XMLSchema/instance" schemaLocation="phenote-config.xsd"> <dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> <dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" @@ -47,22 +47,27 @@ <field name="Phenotype Remark" syntax-abbrev="PhenotypeRemark" enable="true"/> <field name="Anatomy" enable="true"> - <ontology name="Worm Anatomy" file="worm_anatomy.obo" repos-subdir="worm_anatomy"/> + <ontology name="Worm Anatomy" + file="http://www.berkeleybop.org/ontologies/obo-all/worm_anatomy/worm_anatomy.obo"/> </field> <field name="Entity" syntax-abbrev="E" enable="true"> - <ontology name="Relationship" file="rex.obo" is-postcomp-rel="true" repos-subdir="rex"/> + <ontology name="Relationship" file="http://www.berkeleybop.org/ontologies/obo-all/rex/rex.obo" is-postcomp-rel="true"/> <ontology name="GO" file="gene_ontology.obo"/> - <ontology name="CHEBI" file="chebi.obo" repos-subdir="chebi"/> - <ontology name="Worm" file="worm_anatomy.obo" repos-subdir="worm_anatomy"/> + <ontology name="CHEBI" + file="http://www.berkeleybop.org/ontologies/obo-all/chebi/chebi.obo"/> + <ontology name="Worm" + file="http://www.berkeleybop.org/ontologies/obo-all/worm_anatomy/worm_anatomy.obo"/> <!-- stage?? --> </field> - <field name="Quality" file="quality.obo" syntax-abbrev="Q" repos-subdir="phenotype" - enable="true"/> + <field name="Quality" syntax-abbrev="Q" enable="true"> + <ontology name="Pato" + file="http://www.berkeleybop.org/ontologies/obo-all/quality/quality.obo"/> + </field> <field name="Life Stage" syntax-abbrev="T" enable="true"> - <ontology name="Life Stage" file="worm_development.obo" repos-subdir="worm_development"/> + <ontology name="Life Stage" file="http://www.berkeleybop.org/ontologies/obo-all/worm_development/worm_development.obo"/> </field> <field name="Allele Nature" enable="true"/> Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-05-09 16:30:47 UTC (rev 567) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-05-09 18:14:50 UTC (rev 568) @@ -193,8 +193,8 @@ else if (passedInExists && (!dotConfFile.exists() || overwritePersonalCfg)) { String s = overwritePersonalCfg ? " getting overwritten" : " does not exist"; System.out.println(dotConfFile+s+" Copying "+passedInUrl); - //try { - //URL passedInUrl = getConfigUrl(passedInConfig); + // this should probably do a read & write of cfg to get version in there + // however if writeback is missing something its problematic copyUrlToFile(passedInUrl,dotConfFile); } @@ -532,8 +532,6 @@ if (or != null && or.getUrlDir() != null) reposUrlDir = or.getUrlDir(); - System.out.println("repos url dir read in "+reposUrlDir+this); - // FIELDS Field[] fields = pc.getFieldArray(); for (Field f : fields) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-05-09 16:30:46
|
Revision: 567 http://svn.sourceforge.net/obo/?rev=567&view=rev Author: mgibson Date: 2007-05-09 09:30:47 -0700 (Wed, 09 May 2007) Log Message: ----------- config writeout now converts old style of file config to new style to help phase out old style Modified Paths: -------------- phenote/trunk/src/java/phenote/config/Config.java phenote/trunk/src/java/phenote/config/FieldConfig.java phenote/trunk/src/java/phenote/config/OntologyConfig.java Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-05-08 23:32:39 UTC (rev 566) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-05-09 16:30:47 UTC (rev 567) @@ -532,6 +532,8 @@ if (or != null && or.getUrlDir() != null) reposUrlDir = or.getUrlDir(); + System.out.println("repos url dir read in "+reposUrlDir+this); + // FIELDS Field[] fields = pc.getFieldArray(); for (Field f : fields) { @@ -586,7 +588,7 @@ } private void makeFieldConfig(Field field) { - FieldConfig fc = new FieldConfig(field); + FieldConfig fc = new FieldConfig(field,this); addFieldConfig(fc); } void addFieldConfig(FieldConfig fc) { Modified: phenote/trunk/src/java/phenote/config/FieldConfig.java =================================================================== --- phenote/trunk/src/java/phenote/config/FieldConfig.java 2007-05-08 23:32:39 UTC (rev 566) +++ phenote/trunk/src/java/phenote/config/FieldConfig.java 2007-05-09 16:30:47 UTC (rev 567) @@ -22,10 +22,12 @@ //private OntologyConfig postCompRelOntCfg; private String syntaxAbbrev; private boolean enabled = true; // default if not specified is true + private Config config; /** construct from xml bean field - READ */ - FieldConfig(Field fieldBean) { + FieldConfig(Field fieldBean,Config cfg) { + this.config = cfg; this.label = fieldBean.getName(); // try{//phase this out!charFieldEnum = CharFieldEnum.getCharFieldEnum(label);} @@ -46,7 +48,7 @@ if (fieldBean.getPostcomp() != null) { //setIsPostComp(true); - set in OC read by ODA String relFile = fieldBean.getPostcomp().getRelationshipOntology(); - OntologyConfig rel = OntologyConfig.makePostCompRelCfg(relFile); + OntologyConfig rel = OntologyConfig.makePostCompRelCfg(relFile,this); //setPostCompRelOntCfg(rel); dont need anymore - set in OC addOntologyConfig(rel); // new way } @@ -54,18 +56,19 @@ // ONTOLOGIES if only one ontology file is an attribute... (convenience) // this is being phased out - no need and a hassle if (fieldBean.getFile() != null) { - addOntologyConfig(new OntologyConfig(fieldBean)); + addOntologyConfig(new OntologyConfig(fieldBean,this)); } // otherwise its multiple ontologies listed in ontology elements (entity) // also in new way post comp rel comes in here as well else { Ontology[] ontologies = fieldBean.getOntologyArray(); for (Ontology ontBean : ontologies) { - addOntologyConfig(new OntologyConfig(ontBean,getLabel())); // label -> default name + addOntologyConfig(new OntologyConfig(ontBean,getLabel(),this)); // label -> default name } } } + Config getConfig() { return config; } // --> getName? public String getLabel() { return label; } @@ -78,13 +81,13 @@ public boolean hasOntology() { return hasOntologies(); } - // assume only 1 ontology??? - public OntologyConfig getOntologyConfig() { - if (!hasOntologies()) { // probably doenst happen, just in case... - addOntologyConfig(new OntologyConfig()); - } - return getOntologyConfigList().get(0); - } +// // assume only 1 ontology??? +// public OntologyConfig getOntologyConfig() { +// if (!hasOntologies()) { // probably doenst happen, just in case... +// addOntologyConfig(new OntologyConfig()); +// } +// return getOntologyConfigList().get(0); +// } void addOntologyConfig(OntologyConfig o) { if (o == null) Modified: phenote/trunk/src/java/phenote/config/OntologyConfig.java =================================================================== --- phenote/trunk/src/java/phenote/config/OntologyConfig.java 2007-05-08 23:32:39 UTC (rev 566) +++ phenote/trunk/src/java/phenote/config/OntologyConfig.java 2007-05-09 16:30:47 UTC (rev 567) @@ -20,36 +20,22 @@ /** load url is url where ontol loaded from, repos or local file cache or jar */ private URL loadUrl; private String reposUrlString; + private FieldConfig fieldConfig; //static OntologyConfig defaultPato = new OntologyConfig("Pato","attribute_and_value.obo"); - OntologyConfig() {} // not sure this is actually needed/used - OntologyConfig(String name) { this.name = name; } - private OntologyConfig(String name, String file) { - this(name); - setOntologyFile(file); + //OntologyConfig() {} // not sure this is actually needed/used + private OntologyConfig(String name,FieldConfig fc) { + this.name = name; + fieldConfig = fc; } - // phasing out - now just doing rel as another ontology - backward compatible - static OntologyConfig makePostCompRelCfg(String file) { - OntologyConfig rel = new OntologyConfig("Relationship",file); - System.out.println("OC rel name "+rel.name); - rel.isPostCompRel = true; - return rel; - } - OntologyConfig(String name, String file, String filterOut) { - this(name,file); - this.filterOut = filterOut; - } - OntologyConfig(String name, String file, String filterOut,String slim) { - this(name,file,filterOut); - this.slim = slim; - } /** Ontology stuff in field itself (field only has one ontology) - this is getting phased out replaced by field with single ontology element */ - OntologyConfig(Field field) { + OntologyConfig(Field field,FieldConfig fc) { + fieldConfig = fc; name = field.getName(); ontologyFile = field.getFile(); // downside of strongly types xml beans is filterOut has to be dealt with @@ -63,7 +49,9 @@ /** confusing - this is xml bean Ontology NOT datamodel Ontology - this is reading in from xml config - if ontology doesnt have name use fieldName (single ontols just use field name) */ - OntologyConfig(phenote.config.xml.OntologyDocument.Ontology o, String fieldName) { + OntologyConfig(phenote.config.xml.OntologyDocument.Ontology o, String fieldName, + FieldConfig fc) { + fieldConfig = fc; name = o.getName()!=null ? o.getName() : fieldName; setFile(o.getFile()); if (o.getNamespace() != null) @@ -83,13 +71,35 @@ //if (isPostCompRel) fc.setPostCompRelOntCfg(this); } + // for makePostCompRelCfg + private OntologyConfig(String name, String file,FieldConfig fc) { + this(name,fc); + setOntologyFile(file); + } + + // phasing out - now just doing rel as another ontology - backward compatible + static OntologyConfig makePostCompRelCfg(String file,FieldConfig fc) { + OntologyConfig rel = new OntologyConfig("Relationship",file,fc); + rel.isPostCompRel = true; + return rel; + } + +// OntologyConfig(String name, String file, String filterOut) { +// this(name,file); +// this.filterOut = filterOut; +// } +// OntologyConfig(String name, String file, String filterOut,String slim) { +// this(name,file,filterOut); +// this.slim = slim; +// } + + /** File can be url(repos) or filename (from cache/jar/app), if url sets reposUrlString and ontologyFile with end of url */ private void setFile(String file) { if (file.startsWith("http:")) { reposUrlString = file; ontologyFile = file.substring(file.lastIndexOf('/')+1); - System.out.println("file configged as url "+file+" file "+ontologyFile); } else { ontologyFile = file; @@ -134,7 +144,9 @@ } private String getReposBaseDir() { - return Config.inst().getReposUrlDir(); + // Config.inst() is rather presumptious! + //return Config.inst().getReposUrlDir(); + return fieldConfig.getConfig().getReposUrlDir(); } private String getReposSubdir() { return reposSubdir; } @@ -179,9 +191,11 @@ void writeOntology(Field f) { Ontology oBean = f.addNewOntology(); oBean.setName(getName()); + oBean.setFile(getFile()); + // new style - if there is a repos url that set file to it if (hasReposUrl()) - oBean.setReposSubdir(getReposSubdir()); + oBean.setFile(getReposUrlString()); if (hasFilter()) oBean.setFilterOut(getFilter()); if (hasNamespace()) @@ -201,10 +215,15 @@ // UPDATE OntologyConfig oldOC = oldFC.getOntConfig(getName()); // or should even null gets transmitted in which case this replaces oldOC?? - if (ontologyFile!=null) oldOC.ontologyFile = ontologyFile; + if (reposUrlString != null) { + oldOC.ontologyFile = reposUrlString; + } + else if (ontologyFile!=null) { + oldOC.ontologyFile = ontologyFile; + } if (filterOut!=null) oldOC.filterOut = filterOut; if (slim!=null) oldOC.slim = slim; - if (reposSubdir!=null) oldOC.reposSubdir = reposSubdir; + //if (reposSubdir!=null) oldOC.reposSubdir = reposSubdir; if (namespace != null) oldOC.namespace = namespace; oldOC.isPostCompRel = isPostCompRel; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-05-08 23:32:38
|
Revision: 566 http://svn.sourceforge.net/obo/?rev=566&view=rev Author: mgibson Date: 2007-05-08 16:32:39 -0700 (Tue, 08 May 2007) Log Message: ----------- can now specify full url as file - allows for multiple urls - and less confusing config also wasnt downloading obo with no date even if no local copy no longer so Modified Paths: -------------- phenote/trunk/conf/flybase.cfg phenote/trunk/src/java/phenote/config/Config.java phenote/trunk/src/java/phenote/config/OntologyConfig.java phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java Modified: phenote/trunk/conf/flybase.cfg =================================================================== --- phenote/trunk/conf/flybase.cfg 2007-05-08 17:51:13 UTC (rev 565) +++ phenote/trunk/conf/flybase.cfg 2007-05-08 23:32:39 UTC (rev 566) @@ -12,7 +12,7 @@ <ns:uvic-graph enable="false"/> <ns:term-history enable="false"/> - <ns:auto-update-ontologies enable="true"/> <!--true=update; false=don't update--> + <ns:auto-update-ontologies enable="false"/> <!--true=update; false=don't update--> <ns:update-timer timer="0"/><!--set to 0 if you want to bypass the check; time in seconds--> Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-05-08 17:51:13 UTC (rev 565) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-05-08 23:32:39 UTC (rev 566) @@ -140,7 +140,7 @@ /** if usePersonalConfig is false then ignore personal(my-phenote.cfg). if true then overwrite personal if overwritePersonal is true, otherwise only write to personal if personal doesnt exist, if personal exists ignore passed in - config file (its an initial config -i) */ + config file */ private void setConfigFile(String file, boolean usePersonalConfig, boolean overwritePersonalConfig,boolean mergeConfigs) throws ConfigException { Modified: phenote/trunk/src/java/phenote/config/OntologyConfig.java =================================================================== --- phenote/trunk/src/java/phenote/config/OntologyConfig.java 2007-05-08 17:51:13 UTC (rev 565) +++ phenote/trunk/src/java/phenote/config/OntologyConfig.java 2007-05-08 23:32:39 UTC (rev 566) @@ -17,7 +17,9 @@ private String slim; private String reposSubdir; private boolean isPostCompRel = false; + /** load url is url where ontol loaded from, repos or local file cache or jar */ private URL loadUrl; + private String reposUrlString; //static OntologyConfig defaultPato = new OntologyConfig("Pato","attribute_and_value.obo"); @@ -63,7 +65,7 @@ just use field name) */ OntologyConfig(phenote.config.xml.OntologyDocument.Ontology o, String fieldName) { name = o.getName()!=null ? o.getName() : fieldName; - ontologyFile = o.getFile(); + setFile(o.getFile()); if (o.getNamespace() != null) namespace = o.getNamespace(); if (o.getFilterOut() != null) @@ -81,6 +83,19 @@ //if (isPostCompRel) fc.setPostCompRelOntCfg(this); } + /** File can be url(repos) or filename (from cache/jar/app), if url sets + reposUrlString and ontologyFile with end of url */ + private void setFile(String file) { + if (file.startsWith("http:")) { + reposUrlString = file; + ontologyFile = file.substring(file.lastIndexOf('/')+1); + System.out.println("file configged as url "+file+" file "+ontologyFile); + } + else { + ontologyFile = file; + } + } + public boolean isPostCompRel() { return isPostCompRel; } boolean hasName() { @@ -107,14 +122,17 @@ void setReposSubdir(String rs) { reposSubdir = rs; } public URL getReposUrl() throws MalformedURLException { - String urlString=""; - String urlDir = getReposBaseDir(); - if (urlDir != null) - urlString = urlDir; - urlString += "/" + reposSubdir + "/" + getFile(); - return new URL(urlString); + return new URL(getReposUrlString()); } + private String getReposUrlString() { + if (reposUrlString == null) { // old way - construct from base & subdir - silly + if (getReposBaseDir()==null || reposSubdir==null || getFile()==null) return null; + reposUrlString = getReposBaseDir()+"/"+reposSubdir + "/" + getFile(); + } + return reposUrlString; + } + private String getReposBaseDir() { return Config.inst().getReposUrlDir(); } @@ -122,12 +140,13 @@ private String getReposSubdir() { return reposSubdir; } public boolean hasReposUrl() { - if (getFile() == null) return false; // shouldnt happen + //if (getFile() == null) return false; // shouldnt happen + return getReposUrlString() != null; // repos base dir is just a convenience - if (reposSubdir == null) //&& getReposBaseDir() == null) - return false; + //if (reposSubdir == null) //&& getReposBaseDir() == null) + //return false; //try { getReposUrl(); } catch (MalformedURLException e) { return false; } ?? - return true; + //return true; } private boolean isBad(String s) { @@ -147,7 +166,8 @@ public boolean hasSlim() { return slim != null; } public String getSlim() { return slim; } - /** The actual url used to load ontology */ + /** The actual url used to load ontology - this may be file: or http: + so if from file cache this is different than repository url */ public void setLoadUrl(URL u) { loadUrl = u; } public URL getLoadUrl() { return loadUrl; } public boolean hasLoadUrl() { return loadUrl != null; } Modified: phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java 2007-05-08 17:51:13 UTC (rev 565) +++ phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java 2007-05-08 23:32:39 UTC (rev 566) @@ -373,20 +373,26 @@ private URL synchWithRepositoryUrl(URL localUrl, URL reposUrl, String ontol, String filename) throws OntologyException { - long repos = getOboDate(reposUrl); - long loc = 0; - int timer = config.getUpdateTimer(); - boolean autoUpdate = config.autoUpdateIsEnabled(); + boolean useRepos = false; - if (localUrl != null) - loc = getOboDate(localUrl); // throws ont ex - else + if (localUrl == null) { useRepos = true; - //if autoupdate without popup - if ((autoUpdate && (timer==0)) && (repos > loc)) { + } + else { + long repos = getOboDate(reposUrl); // throws ex if no date + long loc = 0; + int timer = config.getUpdateTimer(); + boolean autoUpdate = config.autoUpdateIsEnabled(); + if (localUrl != null) + loc = getOboDate(localUrl); // throws ont ex + else + useRepos = true; + //if autoupdate without popup + if ((autoUpdate && (timer==0)) && (repos > loc)) { useRepos = true; - } else if (repos > loc || useRepos) { - useRepos = synchDialog.queryUserForOntologyUpdate(ontol); + } else if (repos > loc || useRepos) { + useRepos = synchDialog.queryUserForOntologyUpdate(ontol); + } } if (useRepos) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-05-08 17:51:14
|
Revision: 565 http://svn.sourceforge.net/obo/?rev=565&view=rev Author: mgibson Date: 2007-05-08 10:51:13 -0700 (Tue, 08 May 2007) Log Message: ----------- i dont know why i didnt do this a zillion years ago as it was a rather trivial fix to a rather annoying bug - so now on merging/updating config file from new master to old user config the order of the fields in the master is preserved rather than shoving anything new at the end which was really awkward and basically made the merge useless Modified Paths: -------------- phenote/trunk/src/java/phenote/config/Config.java phenote/trunk/src/java/phenote/config/FieldConfig.java Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-05-08 17:05:30 UTC (rev 564) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-05-08 17:51:13 UTC (rev 565) @@ -284,7 +284,7 @@ oldCfg.autoUpdateEnabled = newCfg.autoUpdateEnabled; oldCfg.updateTimer = newCfg.updateTimer; for (FieldConfig newFC : newCfg.getFieldConfigList()) - newFC.mergeWithOldConfig(oldCfg); + newFC.mergeWithOldConfig(oldCfg,newCfg); // write out updated old cfg - todo write out to .phenote/conf/filename.cfg not mycfg new ConfigWriter().writeConfig(oldCfg,oldDotConfFile);//getMyPhenoteCfgFile()); @@ -594,6 +594,18 @@ if (fc.isEnabled()) enabledFields.add(fc); } + + /** get index of field config in enabled field config list - returns -1 if + not in there -- ex? */ + int getEnabledFieldIndex(FieldConfig fc) { + return enabledFields.indexOf(fc); + } + + void insertFieldConfig(int index, FieldConfig fc) { + if (fc.isEnabled()) + enabledFields.add(index,fc); + allFields.add(index,fc); // ?? + } } //parseXmlFile("./conf/initial-flybase.cfg"); // hardwired for now... Modified: phenote/trunk/src/java/phenote/config/FieldConfig.java =================================================================== --- phenote/trunk/src/java/phenote/config/FieldConfig.java 2007-05-08 17:05:30 UTC (rev 564) +++ phenote/trunk/src/java/phenote/config/FieldConfig.java 2007-05-08 17:51:13 UTC (rev 565) @@ -66,20 +66,7 @@ } } -// FieldConfig(CharFieldEnum c, String label) { -// charFieldEnum = c; -// this.label = label; -// } - /** No char field enum - its a generic not in hard wired datamodel! */ -// FieldConfig(String label) { -// this.label = label; -// //isGeneric = true; -// } - /** with generic fields these are going to become pase' */ - //public CharFieldEnum getCharFieldEnum() { return charFieldEnum; } - //public boolean hasCharFieldEnum() { return charFieldEnum != null; } - // --> getName? public String getLabel() { return label; } boolean hasLabel(String label) { return label.equals(this.label); } @@ -185,10 +172,13 @@ oc.writeOntology(f); } - void mergeWithOldConfig(Config oldConfig) { + void mergeWithOldConfig(Config oldConfig,Config thisCfg) { // should FC know its Cfg? // ADD - 1st see if field is new - if so add it and done if (!oldConfig.hasFieldConfig(this)) { - oldConfig.addFieldConfig(this); + // cant just add - need to add in proper place! insert! + //oldConfig.addFieldConfig(this); + int index = thisCfg.getEnabledFieldIndex(this); + oldConfig.insertFieldConfig(index,this); return; } @@ -205,6 +195,20 @@ } } + +// FieldConfig(CharFieldEnum c, String label) { +// charFieldEnum = c; +// this.label = label; +// } + + /** No char field enum - its a generic not in hard wired datamodel! */ +// FieldConfig(String label) { +// this.label = label; +// //isGeneric = true; +// } + /** with generic fields these are going to become pase' */ + //public CharFieldEnum getCharFieldEnum() { return charFieldEnum; } + //public boolean hasCharFieldEnum() { return charFieldEnum != null; } // POST COMP config... // void setIsPostComp(boolean isPostComp) { // this.isPostComp = isPostComp; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-05-08 17:05:28
|
Revision: 564 http://svn.sourceforge.net/obo/?rev=564&view=rev Author: mgibson Date: 2007-05-08 10:05:30 -0700 (Tue, 08 May 2007) Log Message: ----------- namespace getting updated and written out for config merging Modified Paths: -------------- phenote/trunk/src/java/phenote/config/OntologyConfig.java Modified: phenote/trunk/src/java/phenote/config/OntologyConfig.java =================================================================== --- phenote/trunk/src/java/phenote/config/OntologyConfig.java 2007-05-07 23:41:32 UTC (rev 563) +++ phenote/trunk/src/java/phenote/config/OntologyConfig.java 2007-05-08 17:05:30 UTC (rev 564) @@ -164,6 +164,8 @@ oBean.setReposSubdir(getReposSubdir()); if (hasFilter()) oBean.setFilterOut(getFilter()); + if (hasNamespace()) + oBean.setNamespace(getNamespace()); if (hasSlim()) oBean.setSlim(getSlim()); if (isPostCompRel) @@ -183,6 +185,7 @@ if (filterOut!=null) oldOC.filterOut = filterOut; if (slim!=null) oldOC.slim = slim; if (reposSubdir!=null) oldOC.reposSubdir = reposSubdir; + if (namespace != null) oldOC.namespace = namespace; oldOC.isPostCompRel = isPostCompRel; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-05-07 23:41:31
|
Revision: 563 http://svn.sourceforge.net/obo/?rev=563&view=rev Author: mgibson Date: 2007-05-07 16:41:32 -0700 (Mon, 07 May 2007) Log Message: ----------- rather than being hardwired to 3 diffs there is now a plus button to add more diffs to post comp gui - i suppose a minus button might be nice but not necesity Modified Paths: -------------- phenote/trunk/src/java/phenote/gui/field/PostCompGui.java Modified: phenote/trunk/src/java/phenote/gui/field/PostCompGui.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/PostCompGui.java 2007-05-07 23:08:45 UTC (rev 562) +++ phenote/trunk/src/java/phenote/gui/field/PostCompGui.java 2007-05-07 23:41:32 UTC (rev 563) @@ -8,6 +8,8 @@ import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; +import javax.swing.Box; +import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JOptionPane; @@ -63,6 +65,8 @@ init(); } + + /** RelDiffGui INNER CLASS */ private class RelDiffGui { private CharFieldGui relField; // with embedded/recurse this will be a TermGui... @@ -82,8 +86,9 @@ diffField.setOboClass(rd.diff); diffField.setOntologyChooserFromTerm(rd.diff); } - } + } // end of RelDiffGui INNER CLASS + private class RelDiffModel { private OBOProperty rel; private OBOClass diff; @@ -109,31 +114,13 @@ addRelDiffGui(); // HARDWIRE 2ND REL&DIFF FOR NOW eventually put in refine button to add more diffs - addRelDiffGui(); + //addRelDiffGui(); // WHAT THE HELL HARDWIRE A 3RD - addRelDiffGui(); + //addRelDiffGui(); -// // Relationship?? stripped down ontology? hmmmmmm... -// CharField relChar = new CharField(CharFieldEnum.RELATIONSHIP); -// // Ontology o = OntologyManager.getRelationshipOntology() ?? getRelCharField? -// Ontology o = charField.getPostCompRelOntol(); -// relChar.addOntology(o); -// //relField = new CharFieldGui(relChar,compFieldPanel,"Relationship",false,false); -// relField = CharFieldGui.makeRelationList(relChar,searchParams); // "Relationship"? -// compFieldPanel.addCharFieldGuiToPanel(relField); -// //relField.enableTermInfoListening(false); // turn off term info for rels -// // relField = new RelFieldGui(relChar,compTermPanel,"Relationship"); -// // relField = new RelationshipFieldGui(compFieldPanel); -// // when recurse put in flag for comp button -// diffField = CharFieldGui.makePostCompTermList(charField,searchParams,"Differentia"); -// compFieldPanel.addCharFieldGuiToPanel(diffField); -// //new CharFieldGui(charField,compFieldPanel,"Differentia",false,false); - - - setGuiFromSelectedModel(); // override FieldPanel preferred size which will set window size @@ -150,6 +137,7 @@ private void addRelDiffGui() { relDiffGuis.add(new RelDiffGui()); + dialog.pack(); } private void setGuiFromSelectedModel() { @@ -282,13 +270,25 @@ private void addButtons() { JPanel buttonPanel = new JPanel(); + buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS)); + buttonPanel.add(Box.createHorizontalGlue()); + JButton addDiff = new JButton(new PlusAction()); + buttonPanel.add(addDiff); + buttonPanel.add(Box.createRigidArea(new Dimension(140,50))); JButton ok = new JButton(new OkAction()); buttonPanel.add(ok); + buttonPanel.add(Box.createRigidArea(new Dimension(15,0))); JButton cancel = new JButton(new CancelAction()); buttonPanel.add(cancel); + buttonPanel.add(Box.createHorizontalGlue()); dialog.add(buttonPanel,BorderLayout.SOUTH); } + private class PlusAction extends AbstractAction { + private PlusAction() { super("+"); } + public void actionPerformed(ActionEvent e) { addRelDiffGui(); } + } + private class CancelAction extends AbstractAction { private CancelAction() { super("Cancel"); } public void actionPerformed(ActionEvent e) { @@ -358,6 +358,23 @@ } +// // Relationship?? stripped down ontology? hmmmmmm... +// CharField relChar = new CharField(CharFieldEnum.RELATIONSHIP); +// // Ontology o = OntologyManager.getRelationshipOntology() ?? getRelCharField? +// Ontology o = charField.getPostCompRelOntol(); +// relChar.addOntology(o); +// //relField = new CharFieldGui(relChar,compFieldPanel,"Relationship",false,false); +// relField = CharFieldGui.makeRelationList(relChar,searchParams); // "Relationship"? +// compFieldPanel.addCharFieldGuiToPanel(relField); +// //relField.enableTermInfoListening(false); // turn off term info for rels +// // relField = new RelFieldGui(relChar,compTermPanel,"Relationship"); +// // relField = new RelationshipFieldGui(compFieldPanel); + +// // when recurse put in flag for comp button +// diffField = CharFieldGui.makePostCompTermList(charField,searchParams,"Differentia"); +// compFieldPanel.addCharFieldGuiToPanel(diffField); +// //new CharFieldGui(charField,compFieldPanel,"Differentia",false,false); + // String nm = pcString(genusTerm.getName(),diffTerm.getName()); // String id = pcString(genusTerm.getID(),diffTerm.getID()); // OBOClass postComp = new OBOClassImpl(nm,id); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-05-07 23:08:44
|
Revision: 562 http://svn.sourceforge.net/obo/?rev=562&view=rev Author: mgibson Date: 2007-05-07 16:08:45 -0700 (Mon, 07 May 2007) Log Message: ----------- when input is blank term comp now shows all terms for field rather than nothing - though term list can get out of synch with input when switching characters also comp window with 3 diffs now takes a while to come up Modified Paths: -------------- phenote/trunk/src/java/phenote/gui/SearchParams.java phenote/trunk/src/java/phenote/gui/SettingsMenu.java phenote/trunk/src/java/phenote/gui/SplashScreen.java phenote/trunk/src/java/phenote/gui/field/AbstractAutoCompList.java phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java phenote/trunk/src/java/phenote/gui/field/CompListSearcher.java phenote/trunk/src/java/phenote/gui/field/CompletionTerm.java phenote/trunk/src/java/phenote/gui/field/FieldPanel.java phenote/trunk/src/java/phenote/gui/field/PostCompGui.java phenote/trunk/src/java/phenote/gui/field/TermCompList.java phenote/trunk/src/java/phenote/main/PhenoteVersion.java Modified: phenote/trunk/src/java/phenote/gui/SearchParams.java =================================================================== --- phenote/trunk/src/java/phenote/gui/SearchParams.java 2007-05-05 00:09:25 UTC (rev 561) +++ phenote/trunk/src/java/phenote/gui/SearchParams.java 2007-05-07 23:08:45 UTC (rev 562) @@ -5,8 +5,8 @@ public class SearchParams implements SearchParamsI { private static SearchParams singleton; - private boolean searchTerm = false; - private boolean searchSyn = false; + private boolean searchTerm = true; //false; default true?? + private boolean searchSyn = true; // false; default true? private boolean searchDef = false; private boolean searchObs = false; Modified: phenote/trunk/src/java/phenote/gui/SettingsMenu.java =================================================================== --- phenote/trunk/src/java/phenote/gui/SettingsMenu.java 2007-05-05 00:09:25 UTC (rev 561) +++ phenote/trunk/src/java/phenote/gui/SettingsMenu.java 2007-05-07 23:08:45 UTC (rev 562) @@ -35,7 +35,8 @@ // menuSearchFilter = new JMenu("Search Filters"); // menuSearchFilter.setMnemonic('F'); - //set defaults + //set defaults - these are actually the same as SearchParams defaults but it + // doesnt hurt to be sure getSearchParams().setParam(SearchFilterType.TERM, true); //default Term = on getSearchParams().setParam(SearchFilterType.SYN, true); //default Syn = on getSearchParams().setParam(SearchFilterType.DEF, false); //default Def = off Modified: phenote/trunk/src/java/phenote/gui/SplashScreen.java =================================================================== --- phenote/trunk/src/java/phenote/gui/SplashScreen.java 2007-05-05 00:09:25 UTC (rev 561) +++ phenote/trunk/src/java/phenote/gui/SplashScreen.java 2007-05-07 23:08:45 UTC (rev 562) @@ -39,6 +39,7 @@ // this.getContentPane().add(messagePanel, BorderLayout.NORTH); southPanel.add(progressBar, null); this.pack(); + setAlwaysOnTop(false); // doesnt work on linux??? stays on top! annoying! } public void setProgressMax(int maxProgress) @@ -94,4 +95,4 @@ // messagePanel.setText(message); } -} \ No newline at end of file +} Modified: phenote/trunk/src/java/phenote/gui/field/AbstractAutoCompList.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/AbstractAutoCompList.java 2007-05-05 00:09:25 UTC (rev 561) +++ phenote/trunk/src/java/phenote/gui/field/AbstractAutoCompList.java 2007-05-07 23:08:45 UTC (rev 562) @@ -14,14 +14,11 @@ import javax.swing.JTextField; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -//import javax.swing.event.ListSelectionEvent; -//import javax.swing.event.ListSelectionListener; import javax.swing.event.ListDataListener; import javax.swing.ComboBoxModel; import javax.swing.DefaultComboBoxModel; import javax.swing.text.Document; import javax.swing.plaf.basic.BasicComboBoxEditor; -//import javax.swing.plaf.basic.BasicComboBoxUI; import javax.swing.plaf.ComboBoxUI; import javax.swing.plaf.metal.MetalComboBoxUI; @@ -29,137 +26,64 @@ import phenote.datamodel.CharField; import phenote.datamodel.CharacterI; -//import phenote.datamodel.CharFieldEnum; -//import phenote.datamodel.CharacterI; -//import phenote.datamodel.Ontology; import phenote.gui.SearchParams; import phenote.gui.SearchParamsI; -/** The jcombobox that does auto completion - i had to do some tricks(hacks) to get it +/** has a jcombobox that does auto completion - i had to do some tricks(hacks) to get it working with mouse over which doesnt come naturally to jcombobox */ -public abstract class AbstractAutoCompList extends CharFieldGui { //extends JComboBox { +public abstract class AbstractAutoCompList extends CharFieldGui { - private JComboBox jComboBox = new JComboBox(); - - //private Ontology ontology; private boolean changingCompletionList = false; - //private boolean keyTyped = false; - //private String previousInput = ""; private boolean doCompletion = true; - // should we keep state of currentOboClass which is null if not a valid one? - // default combo box.getSelectedItem sortof does this imperfectly - //private OBOClass currentOboClass=null; - //private OBOProperty currentRel=null; - //private DefaultComboBoxModel defaultComboBoxModel; private CompComboBoxModel compComboBoxModel; - //private SearchParamsI searchParams; private boolean inTestMode = false; - //private AutoTextFieldEditor autoTextFieldEditor; private AutoTextField autoTextField; - //private CharField charField; - //private CharFieldGui charFieldGui; // should it be ISA not HASA? - ///** Whether differentia of a post composed term */ - //private boolean isDifferentia = false; - /** if false then model is not edited */ - //private boolean editModel = true; - //private CompletionListListener compListListener = new CompletionListListener(); private SearchParamsI searchParams = SearchParams.inst(); private CompListSearcher compListSearcher; private boolean setGuiForMultiSelect = false; - protected AbstractAutoCompList(CharField cf) { super(cf); init(); } - /** @param editModel if false then ACB doesnt edit model directly (post comp) - can abstract classes have constructors - if not init() */ - //protected AbstractAutoCompList(CompListSearcher s,boolean editModel,CharField cf) { -// protected AbstractAutoCompList(SearchParamsI sp,boolean editModel,CharField cf, -// String label) { -// super(cf,label); -// init(); -// } - private void init() { // this inner class enables retrieving of JList for mouse over // this will probably throw errors if non metal look & feel is used jComboBox.setUI(new MetalListComboUI()); jComboBox.setEditable(true); - //charFieldGui = cfg; - //setCharField(cf); jComboBox.setPreferredSize(CharFieldGui.inputSize); //new Dimension(390,20)); - //jComboBox.setMaximumSize(CharFieldGui.inputSize); //new Dimension(390,20)); - // this is super critical - fixes bug where layout goes to hell if string are long - // in completion - dont ask me why???? - //jComboBox.setMinimumSize(CharFieldGui.inputSize); AutoTextFieldEditor autoTextFieldEditor = new AutoTextFieldEditor(); jComboBox.setEditor(autoTextFieldEditor); - // dont know why by setting fonts this seem to get worse not better in terms of - // the wierd layout issue with large terms & list - //setFont(new Font("Courier",Font.PLAIN,12)); yuck - //setFont(new Font("Lucida Console",Font.PLAIN,12)); not fixed - //Font[] fonts = - //java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts(); - //for (Font f : fonts) System.out.println(f); - //setFont(new Font("Lucida Typewriter",Font.PLAIN,10)); jComboBox.setFont(new Font("Monospaced",Font.PLAIN,10)); - //setOntology(ontology); - //searchParams = sp; // singleton access? part of ontology? - //compListSearcher = new CompListSearcher(cf.getFirstOntology(),sp);//s; - //enableTermInfoListening(true); // default - hardwired in rel & term subclasses - //addCompletionListListener(compList); - // why is this commented out? - //if (editModel) // ComboBoxActionListener edits the model - //this.editModel = editModel; jComboBox.addActionListener(new ComboBoxActionListener()); - + compListSearcher = new CompListSearcher(getCharField().getOntologyList()); + // init with all terms if config.showAllOnEmptyInput... + doCompletion(false); // dont show pupup - we dont have a gui yet, just populating } protected Component getUserInputGui() { return jComboBox; } protected boolean isCompList() { return true; } - protected void setSearchParams(SearchParamsI sp) { - searchParams = sp; - // this assumes that its set up initially with ALL - presumptious? - compListSearcher = new CompListSearcher(getCharField().getOntologyList()); - } - protected SearchParamsI getSearchParams() { return searchParams; } protected CompListSearcher getCompListSearcher() { return compListSearcher; } protected AbstractAutoCompList getCompList() { return this; } - //void setOntology(Ontology o) { ontology = o; } - - //void setSearchParams(SearchParamsI sp) { searchParams = sp; } - - //void setCharField(CharField charField) { this.charField = charField; } - - //protected CharField getCharField() { return charField; } - protected boolean hasOntologyChooser() { return hasMoreThanOneOntology(); } protected boolean hasMoreThanOneOntology() { return getCharField().hasMoreThanOneOntology(); } - //protected boolean editModelEnabled() { return editModel; } - /** char in table changed - adjust - not needed for rel(at least not yet) as post comp doesnt listen to table changes (does it? should it?), just term */ protected abstract void setValueFromChar(CharacterI chr); - // {charField.getCharFieldEnum().getValue(chr).getOboClass() } - ///** If true than the auto combo is for setting the differentia in a post comp term, - // if false (default) than no post comp or genus in post comp */ - //void setIsDifferentia(boolean isDiff) { isDifferentia = isDiff; } - /** Set text in editable text field of j combo (eg from table select) */ public void setText(String text) { // do not do term completion on externally set text! @@ -170,10 +94,7 @@ /** text from selecting table doesnt do completion, TestPhenote does */ public void setText(String text, boolean doCompletion) { this.doCompletion = doCompletion; - //this.keyTyped = doCompletion; // key has to be typed for completion jComboBox.getEditor().setItem(text); - //if (charField!=null)log().debug(charField.getName()+" setting text ["+text+"]"); - //new Throwable().printStackTrace(); this.doCompletion = true; // set back to default } @@ -189,7 +110,6 @@ /** Return text in text field */ public String getText() { - //return (String)getSelectedItem(); return jComboBox.getEditor().getItem().toString(); // or editor.getText() ? } @@ -220,7 +140,6 @@ autoTextField = new AutoTextField(); // outer instance var for testing editor = autoTextField; // protected editor var from BCBE addDocumentListener(new AutoDocumentListener()); - //getTextField().addKeyListener(new AutoKeyListener()); } // editor is protected JTextField - wacky @@ -251,14 +170,11 @@ thus wont get completion on user selection, leaving popup hanging */ public void setText(String text) { if (changingCompletionList) - return; + return; // this makes setText(text,true) turn to false (called from TextPhenote) // but this is needed from mouse release on selection set text // is called and will cause completion list to come up after sel // w/o it - //if (charField!=null) - //log().debug(charField.getName()+" AutoTextField.setText ["+text+"]"+getCurrentTermRelName()); - //new Throwable().printStackTrace(); doCompletion = false; //this is problematic for syns & such where string is diff than term name // JComboBox sets this text AFTER got event and set to name @@ -266,7 +182,6 @@ // this works as only time setText is called with cngCL false is with // selection - or at least so it seems // well that was true but now need to clear text for multi sel - //System.out.println("ATF.settext ["+text+"] curr term rel name "+getCurrentTermRelName()); if (setGuiForMultiSelect) // flag will probably need to be more general? super.setText(text); else @@ -275,7 +190,6 @@ } protected void processKeyEvent(KeyEvent e) { - //boolean fiddle = KeyboardState.shouldProcess(e); super.processKeyEvent(e); } } @@ -288,16 +202,6 @@ - /** disable completion for item being selected - otherwise a popup comes up after - the selection - probably no harm in keeping this but this may be redundant with - the turning off of doCompletion in inner ATF.setText which is more - comprehensive - also we are no longer subclass of JCombo so this doesnt - even get called - if we do need this then we need to subclass JCombo */ -// public void setSelectedItem(Object item) { -// doCompletion = false; -// jComboBox.setSelectedItem(item); -// doCompletion = true; -// } /** If combo box is relationship then the items will be OBOProperties not OBOClasses */ @@ -307,49 +211,30 @@ private boolean isTermList() { return !isRelationshipList(); } /** MAKE COMPLETION LIST FROM USER INPUT - Populates defaultComboBoxModel with Vector of OBOClasses - OBOClass.toString - is the name of the term - thats why its possible - at least for moment - if we want to put syn in brackets that makes this not possible - certainly - handy */ + Populates defaultComboBoxModel with List of CompTerms */ private void doCompletion() { + // showPopup can hang during test but not during real run - bizarre + doCompletion(!inTestMode); + } + + private void doCompletion(boolean showPopup) { if (!doCompletion) // flag set if text filled in externally (from table sel) return; - // so AbstractDoc.replace does a remove and then insert, the remove sets - // text to "" and then keyTyped gets set to false, so the insert doesnt go - // through, taking out keyTyped, inputChanged may be sufficient -// if (!keyTyped) // if user hasnt typed anything dont bother -// return; - //log().debug("inputchanged "+inputChanged()); - // this seems like a good idea but leads to a bug - if user types a letter - // then hits "New" then comes back and types same letter then this stops comp - // also i dont think this actually stops any funny behavior - //if (!inputChanged()) // if input is actually same no need to recomp - //return; - //keyTyped = false; // too soon - text field doesnt have text yet.... hmmmm.... String input = getText(); - // this is a vector of OBOClasses - // i think ultimately we will need to wrap the OBOClass to be able to - // have more control over the string - cut off w ... & [syn][obs] tags - // returns a vector of CompletionTerms (checks if relations) - //Vector v = getSearchItems(input); // abstract method + // returns a list of CompletionTerms (checks if relations) + // if input is empty will return whole list (if configged) List<CompletionTerm> l = getSearchItems(input); - //if (isRelationshipList()) v = ontology.getStringMatchRelations(input); - //else v = getTerms(input); - // throws IllegalStateException, Attempt to mutate in notification - // this tries to change text field amidst notification hmmmm..... changingCompletionList = true; - //defaultComboBoxModel = new DefaultComboBoxModel(v); // could just do comboBoxModel.setList(l); ??? compComboBoxModel = new CompComboBoxModel(l); - //setModel(defaultComboBoxModel); jComboBox.setModel(compComboBoxModel); changingCompletionList = false; - // showPopup can hang during test but not during real run - bizarre - if (!inTestMode) - jComboBox.showPopup(); // only show popup on key events - actually only do comp w key + if (showPopup) + jComboBox.showPopup();//only show popup on key events actually only do comp w key } + /** This is cheesy but theres a hanging bug with showPopup that only happens in test mode - dont know why but doesnt actually matter, so setting flag to turn off showpopup in test - if hangs in nontest will investigate */ @@ -357,37 +242,6 @@ this.inTestMode = inTestMode; } - /** This is cheesy but theres a hanging bug with showPopup that only happens - in test mode - dont know why but doesnt actually matter, so if inTestMode - then dont showpopup - if hangs in nontest will investigate - this actually needs to go in subclass of JCombo if we go there - this class - no longer sublcasses JCombo - for now commenting out */ -// public void showPopup() { -// if (inTestMode) -// return; -// super.showPopup(); -// } - - -// /** returns true if input changed from previously recorded input */ -// private boolean inputChanged() { -// String newInput = getText(); -// boolean inputChanged = ! previousInput.equals(newInput); -// if (inputChanged) -// previousInput = newInput; -// return inputChanged; -// } - - /** call Ontology to get a Vector of OBOClass's that contain "in" - in ontology */ -// private Vector<OBOClass> getTermsOld(String in) { -// // or CompletionList.getCompletionList(getOntology()) ?? -// //CompletionList cl = CompletionList.getCompletionList(); -// //return cl.getCompletionTermList(getOntology(),in,searchParams); -// return ontology.getSearchTerms(in,searchParams); // vector of OBOClass's -// } - - // Vector<CompletionTerm>? CompletionItem? protected abstract List<CompletionTerm> getSearchItems(String input); // if (isRelationshipList()) return termSearcher.getStringMatchRelations(input); // else return termSearcher.getStringMatchTerms(input);} @@ -427,24 +281,13 @@ private JList getJList() { return listBox; // protected JList in BasicComboBoxUI } - // hmmmmmm - layout issues... actually the fix was to set the minimum size - // issue was with big terms screwing up layout -// public void layoutComboBox(java.awt.Container parent, MetalComboBoxLayoutManager manager ) { -// javax.swing.Icon icon = ((javax.swing.plaf.metal.MetalComboBoxButton)arrowButton).getComboIcon(); -// java.awt.Insets buttonInsets = arrowButton.getInsets(); -// java.awt.Insets insets = comboBox.getInsets(); -// int buttonWidth = icon.getIconWidth() + buttonInsets.left + buttonInsets.right; -// log().debug(" comb width "+comboBox.getWidth()+" inset right "+insets.right+" but width "+ buttonWidth+" in left "+insets.left+" l2r "+ comboBox.getComponentOrientation().isLeftToRight()+rectangleForCurrentValue()+editor.getBounds()); -// super.layoutComboBox(parent,manager); -// } } /** Listens for actions from combo boxes and edits model/character - * actions come from mouse select of term as well as return & tab */ + * actions come from mouse select/click of term as well as return & tab */ private class ComboBoxActionListener implements ActionListener { - //private OBOClass previousOboClass=null; private ComboBoxActionListener() {} public void actionPerformed(ActionEvent e) { @@ -458,20 +301,6 @@ String input = getText(); if (input == null) return; // probably doesnt happen -// // the input should be from selected obo class shouldnt it? is it possible -// // for this not to be so? returns null if no oboclass? -// // TERM -// if (isTermList()) { -// try { currentOboClass = getSelectedOboClass(); } -// // happens on return on invalid term name -// catch (OboException e) { return; } // error msg? -// //if (oboClass == null) return; currentOboClass = oboClass; -// } -// // RELATIONSHIP -// else { -// try { currentRel = getSelectedRelation(); } -// catch (OboException e) { return; } -// } // abstract method - sets currentSelItem, returns false if not valid try { setCurrentValidItem(); } catch (OboException e) { return; } // if not valid then dont edit model @@ -487,24 +316,7 @@ throws ex if in fact current user input is not a valid item */ protected abstract void setCurrentValidItem() throws OboException; - /** Override - configureEditor is called when user selects item and sets text - field to item selected, unfortunately this happens after the listening - code in this class that sets to term name (not syn name), and then the syn - name gets set - so this is to catch & repress the subsequent syn name - setting - hope that makes sense heres the jdocs from JComboBox for this method: - Initializes the editor with the specified item. It seems to be ok as far - as i can tell to supress this method entirely - if this ends up being - problematic then this should be coulpled with a flag set in setCurrentValidItem - or a related method to supress the syn coming after term set - this doesnt seem to be supressing anymore so i guess its ok */ -// public void configureEditor(ComboBoxEditor anEditor,Object anItem) { -// //log().debug("configure editor called"+anItem); -// //new Throwable().printStackTrace(); -// // it appears to be ok to supress this entirely -// super.configureEditor(anEditor,anItem); // ??? supress -// } - protected abstract void editModel(); private Logger log; @@ -545,7 +357,182 @@ // GARBAGE -// private class AutoKeyListener extends KeyAdapter { + /** @param editModel if false then ACB doesnt edit model directly (post comp) + can abstract classes have constructors - if not init() */ + //protected AbstractAutoCompList(CompListSearcher s,boolean editModel,CharField cf) { +// protected AbstractAutoCompList(SearchParamsI sp,boolean editModel,CharField cf, +// String label) { +// super(cf,label); +// init(); +// } + /** Override - configureEditor is called when user selects item and sets text + field to item selected, unfortunately this happens after the listening + code in this class that sets to term name (not syn name), and then the syn + name gets set - so this is to catch & repress the subsequent syn name + setting - hope that makes sense heres the jdocs from JComboBox for this method: + Initializes the editor with the specified item. It seems to be ok as far + as i can tell to supress this method entirely - if this ends up being + problematic then this should be coulpled with a flag set in setCurrentValidItem + or a related method to supress the syn coming after term set + this doesnt seem to be supressing anymore so i guess its ok */ +// public void configureEditor(ComboBoxEditor anEditor,Object anItem) { +// //log().debug("configure editor called"+anItem); +// //new Throwable().printStackTrace(); +// // it appears to be ok to supress this entirely +// super.configureEditor(anEditor,anItem); // ??? supress +// } + +// // the input should be from selected obo class shouldnt it? is it possible +// // for this not to be so? returns null if no oboclass? +// // TERM +// if (isTermList()) { +// try { currentOboClass = getSelectedOboClass(); } +// // happens on return on invalid term name +// catch (OboException e) { return; } // error msg? +// //if (oboClass == null) return; currentOboClass = oboClass; +// } +// // RELATIONSHIP +// else { +// try { currentRel = getSelectedRelation(); } +// catch (OboException e) { return; } +// } + // hmmmmmm - layout issues... actually the fix was to set the minimum size + // issue was with big terms screwing up layout +// public void layoutComboBox(java.awt.Container parent, MetalComboBoxLayoutManager manager ) { +// javax.swing.Icon icon = ((javax.swing.plaf.metal.MetalComboBoxButton)arrowButton).getComboIcon(); +// java.awt.Insets buttonInsets = arrowButton.getInsets(); +// java.awt.Insets insets = comboBox.getInsets(); +// int buttonWidth = icon.getIconWidth() + buttonInsets.left + buttonInsets.right; +// log().debug(" comb width "+comboBox.getWidth()+" inset right "+insets.right+" but width "+ buttonWidth+" in left "+insets.left+" l2r "+ comboBox.getComponentOrientation().isLeftToRight()+rectangleForCurrentValue()+editor.getBounds()); +// super.layoutComboBox(parent,manager); +// } + /** This is cheesy but theres a hanging bug with showPopup that only happens + in test mode - dont know why but doesnt actually matter, so if inTestMode + then dont showpopup - if hangs in nontest will investigate + this actually needs to go in subclass of JCombo if we go there - this class + no longer sublcasses JCombo - for now commenting out */ +// public void showPopup() { +// if (inTestMode) +// return; +// super.showPopup(); +// } + + +// /** returns true if input changed from previously recorded input */ +// private boolean inputChanged() { +// String newInput = getText(); +// boolean inputChanged = ! previousInput.equals(newInput); +// if (inputChanged) +// previousInput = newInput; +// return inputChanged; +// } + + /** call Ontology to get a Vector of OBOClass's that contain "in" + in ontology */ +// private Vector<OBOClass> getTermsOld(String in) { +// // or CompletionList.getCompletionList(getOntology()) ?? +// //CompletionList cl = CompletionList.getCompletionList(); +// //return cl.getCompletionTermList(getOntology(),in,searchParams); +// return ontology.getSearchTerms(in,searchParams); // vector of OBOClass's +// } + //setModel(defaultComboBoxModel); + //defaultComboBoxModel = new DefaultComboBoxModel(v); + //if (isRelationshipList()) v = ontology.getStringMatchRelations(input); + //else v = getTerms(input); + // throws IllegalStateException, Attempt to mutate in notification + // this tries to change text field amidst notification hmmmm..... + // this is a vector of OBOClasses + // i think ultimately we will need to wrap the OBOClass to be able to + // have more control over the string - cut off w ... & [syn][obs] tags + // so AbstractDoc.replace does a remove and then insert, the remove sets + // text to "" and then keyTyped gets set to false, so the insert doesnt go + // through, taking out keyTyped, inputChanged may be sufficient +// if (!keyTyped) // if user hasnt typed anything dont bother +// return; + //log().debug("inputchanged "+inputChanged()); + // this seems like a good idea but leads to a bug - if user types a letter + // then hits "New" then comes back and types same letter then this stops comp + // also i dont think this actually stops any funny behavior + //if (!inputChanged()) // if input is actually same no need to recomp + //return; + //keyTyped = false; + /** disable completion for item being selected - otherwise a popup comes up after + the selection - probably no harm in keeping this but this may be redundant with + the turning off of doCompletion in inner ATF.setText which is more + comprehensive - also we are no longer subclass of JCombo so this doesnt + even get called - if we do need this then we need to subclass JCombo */ +// public void setSelectedItem(Object item) { +// doCompletion = false; +// jComboBox.setSelectedItem(item); +// doCompletion = true; +// } + //boolean fiddle = KeyboardState.shouldProcess(e); + //System.out.println("ATF.settext ["+text+"] curr term rel name "+getCurrentTermRelName()); + //if (charField!=null) + //log().debug(charField.getName()+" AutoTextField.setText ["+text+"]"+getCurrentTermRelName()); + //new Throwable().printStackTrace(); + //getTextField().addKeyListener(new AutoKeyListener()); + //return (String)getSelectedItem(); + //if (charField!=null)log().debug(charField.getName()+" setting text ["+text+"]"); + //new Throwable().printStackTrace(); + //this.keyTyped = doCompletion; // key has to be typed for completion + // {charField.getCharFieldEnum().getValue(chr).getOboClass() } + + ///** If true than the auto combo is for setting the differentia in a post comp term, + // if false (default) than no post comp or genus in post comp */ + //void setIsDifferentia(boolean isDiff) { isDifferentia = isDiff; } + + //protected boolean editModelEnabled() { return editModel; } + + //void setOntology(Ontology o) { ontology = o; } + + //void setSearchParams(SearchParamsI sp) { searchParams = sp; } + + //void setCharField(CharField charField) { this.charField = charField; } + + //protected CharField getCharField() { return charField; } + +// protected void setSearchParams(SearchParamsI sp) { +// searchParams = sp; +// // this assumes that its set up initially with ALL - presumptious? +// compListSearcher = new CompListSearcher(getCharField().getOntologyList()); +// } + + //setOntology(ontology); + //searchParams = sp; // singleton access? part of ontology? + //compListSearcher = new CompListSearcher(cf.getFirstOntology(),sp);//s; + //enableTermInfoListening(true); // default - hardwired in rel & term subclasses + //addCompletionListListener(compList); + // why is this commented out? + //if (editModel) // ComboBoxActionListener edits the model + //this.editModel = editModel; + //charFieldGui = cfg; + //setCharField(cf); + //jComboBox.setMaximumSize(CharFieldGui.inputSize); //new Dimension(390,20)); + // this is super critical - fixes bug where layout goes to hell if string are long + // in completion - dont ask me why???? + //jComboBox.setMinimumSize(CharFieldGui.inputSize); + // dont know why by setting fonts this seem to get worse not better in terms of + // the wierd layout issue with large terms & list + //setFont(new Font("Courier",Font.PLAIN,12)); yuck + //setFont(new Font("Lucida Console",Font.PLAIN,12)); not fixed + //Font[] fonts = + //java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts(); + //for (Font f : fonts) System.out.println(f); + //setFont(new Font("Lucida Typewriter",Font.PLAIN,10)); + //private AutoTextFieldEditor autoTextFieldEditor; + //private SearchParamsI searchParams; + //private DefaultComboBoxModel defaultComboBoxModel; + //private Ontology ontology; + //private boolean keyTyped = false; + //private String previousInput = ""; + //private CharField charField; + //private CharFieldGui charFieldGui; // should it be ISA not HASA? + ///** Whether differentia of a post composed term */ + //private boolean isDifferentia = false; + /** if false then model is not edited */ + //private boolean editModel = true; + //private CompletionListListener compListListener = new CompletionListListener();// private class AutoKeyListener extends KeyAdapter { // // keyTyped doesnt seem to catch backspace in 1.5 - but did in 1.4 - odd // // public void keyTyped(KeyEvent e) { // // // return & tab should be ignored, as well as a lot of other things Modified: phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java 2007-05-05 00:09:25 UTC (rev 561) +++ phenote/trunk/src/java/phenote/gui/field/CharFieldGui.java 2007-05-07 23:08:45 UTC (rev 562) @@ -59,11 +59,11 @@ /** CharFieldGui for main window not post comp box - factory method */ - static CharFieldGui makeCharFieldGui(CharField charField,SearchParamsI sp) { + static CharFieldGui makeCharFieldGui(CharField charField) { if (charField.hasOntologies()) { //return new TermCompList(charField,sp,true); // enable listeners TermCompList t = new TermCompList(charField); - t.setSearchParams(sp); + //t.setSearchParams(sp); t.enableListeners(true); t.allowPostCompButton(true); return t; @@ -79,21 +79,20 @@ /** createPostCompRelationList - will relation lists ever be in main window and if so will they ever have listeners enabled - maybe, probably not */ - static CharFieldGui makeRelationList(CharField cf,SearchParamsI sp) { + static CharFieldGui makeRelationList(CharField cf) { RelationCompList r = new RelationCompList(cf); - r.setSearchParams(sp); // does rel really need search params? + //r.setSearchParams(sp); // does rel really need search params? return r; } /** make term completion lists for post comp window (genus & diff), they dont listen to selection nor edit model - isolated */ - static CharFieldGui makePostCompTermList(CharField cf,SearchParamsI sp, - String label) { + static CharFieldGui makePostCompTermList(CharField cf,String label) { // false - no listeners(dont edit model), false - dont add comp button // eventually adding comp button come from config for recursive comp //boolean allowPostCompBut = false; TermCompList t = new TermCompList(cf); - t.setSearchParams(sp); + //t.setSearchParams(sp); // t.isInSeparateWindow(true) or t.isolate(true)?? t.enableEditModel(false); t.enableListeners(false); @@ -144,7 +143,7 @@ protected boolean editModelEnabled() { return editModel; } // overridden by AbstaractAutoCompList - protected void setSearchParams(SearchParamsI sp) {} + //protected void setSearchParams(SearchParamsI sp) {} /** no-op - overridden by term comp list - set to false for now for terms in comp Modified: phenote/trunk/src/java/phenote/gui/field/CompListSearcher.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/CompListSearcher.java 2007-05-05 00:09:25 UTC (rev 561) +++ phenote/trunk/src/java/phenote/gui/field/CompListSearcher.java 2007-05-07 23:08:45 UTC (rev 562) @@ -57,14 +57,6 @@ ontologyList = l; // (List<Ontology>)l.clone(); cant clone interfaces } -// public Vector<CompletionRelation> getStringMatchRelations(String input) { -// Vector<CompletionRelation> matches = new Vector<CompletionRelation>(); -// for (OBOProperty rel : ontology.getSortedRelations()) { -// if (rel.toString().contains(input)) -// matches.add(new CompletionRelation(rel)); -// } -// return matches; -// } public List<CompletionRelation> getStringMatchRelations(String input) { List<CompletionRelation> matches = new ArrayList<CompletionRelation>(); // most likely only 1 relation ontology, but no harm being general @@ -81,16 +73,20 @@ constrained by compParams. compParams specifies syns,terms,defs,& obs should input be just part of search params? called by servlet & standalone now */ public List<CompletionTerm> getStringMatchTermList(String input) { - List<CompletionTerm> searchTerms = new ArrayList<CompletionTerm>(); - if (input == null || input.equals("")) - return searchTerms; - + List<CompletionTerm> searchTerms = new ArrayList<CompletionTerm>(); + + boolean nothingForNothing = false; // get from FieldConfig!! + if (nothingForNothing && isBlank(input)) { + return searchTerms; // empty + } + // gets term set for currently selected ontology(s) //Set ontologyTermList = getCurrentOntologyTermSet(); // THIS IS WRONG! or is it? for (Ontology ontology : ontologyList) { Collection<OBOClass> ontologyTermList = ontology.getSortedTerms(); // non obsolete - searchTerms.addAll(getSearchTermList(input,ontologyTermList)); + List<CompletionTerm> l = getSearchTermList(input,ontologyTermList); + searchTerms.addAll(l); // if obsoletes set then add them in addition to regulars if (searchParams.searchObsoletes()) { @@ -102,6 +98,9 @@ return searchTerms; } + private boolean isBlank(String s) { + return s == null || s.equals(""); + } /** helper fn for getSearchTerms(String,SearhParamsI) */ private List<CompletionTerm> getSearchTermList(String input, @@ -113,6 +112,8 @@ for (OBOClass oboClass : ontologyTermList) { CompletionTerm ct = new CompletionTerm(oboClass); + // if input is blank then add all terms (list all terms on empty input) + // matches records the kind of hit in CompTerm if (ct.matches(input, searchParams)) { searchTermList.addTerm(ct); } @@ -144,8 +145,10 @@ return term.contains(input); // 1.5!! } - /** this data structure is handy for putting starts with - before contains! UniqueTermList -> SearchTermList*/ + + /** SearchTermList INNER CLASS + this data structure is handy for putting starts with + before contains! UniqueTermList -> SearchTermList*/ private class SearchTermList { private List<CompletionTerm> startsWithTerms = new ArrayList<CompletionTerm>(); //private Map<OBOClass,OBOClass> uniqueCheck = new HashMap<OBOClass,OBOClass>(); Modified: phenote/trunk/src/java/phenote/gui/field/CompletionTerm.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/CompletionTerm.java 2007-05-05 00:09:25 UTC (rev 561) +++ phenote/trunk/src/java/phenote/gui/field/CompletionTerm.java 2007-05-07 23:08:45 UTC (rev 562) @@ -126,7 +126,11 @@ return false; } + private boolean isBlank(String s) { return s == null || s.equals(""); } + private boolean stringMatches(String input, String item) { + // if configged for adding terms on blanks?? + if (isBlank(input)) return true; input = input.toLowerCase().trim(); item = item.toLowerCase().trim(); if (input.equals(item)) { Modified: phenote/trunk/src/java/phenote/gui/field/FieldPanel.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/FieldPanel.java 2007-05-05 00:09:25 UTC (rev 561) +++ phenote/trunk/src/java/phenote/gui/field/FieldPanel.java 2007-05-07 23:08:45 UTC (rev 562) @@ -38,7 +38,7 @@ private OntologyManager ontologyManager = OntologyManager.inst(); private JPanel fieldPanel; //private JComponent fieldPanel; - private SearchParamsI searchParams; + //private SearchParamsI searchParams; private JTabbedPane jTabbedPane; /** eventually configurable (with default 12) - for now hardwire at 12 */ @@ -99,7 +99,7 @@ } ++fieldNum; //CharFieldGui gui = new CharFieldGui(charField,this); // adds to panel - CharFieldGui gui = CharFieldGui.makeCharFieldGui(charField,getSearchParams()); + CharFieldGui gui = CharFieldGui.makeCharFieldGui(charField); addCharFieldGuiToPanel(gui); charFieldGuiList.add(gui); } @@ -120,14 +120,14 @@ addRetrieveButton(fieldGui.getRetrieveButton()); } - SearchParamsI getSearchParams() { +// SearchParamsI getSearchParams() { //// if (searchParams == null) //// searchParams = getSearchParamPanel().getSearchParams(); // return searchParams; - return SearchParams.inst(); - } +// return SearchParams.inst(); +// } - void setSearchParams(SearchParamsI sp) { searchParams = sp; } + //void setSearchParams(SearchParamsI sp) { searchParams = sp; } public SearchParamPanel getSearchParamPanel() { if (searchParamPanel == null) @@ -425,21 +425,3 @@ // return comboBox; // } -// private class AutoActionListener implements ActionListener { -// private String ontology; -// private JComboBox comboBox; -// private AutoActionListener(String o,JComboBox jcb) { -// ontology = o; -// comboBox = jcb; -// } -// public void actionPerformed(ActionEvent e) { -// doCompletion(); -// } -// private void doCompletion() { -// String input = (String)comboBox.getEditor().getItem(); -// CompletionList cl = CompletionList.getCompletionList(); -// Vector v = cl.getCompletionTermList(ontology,input); -// System.out.println(input + v); -// comboBox.setModel(new DefaultComboBoxModel(v)); -// } -// } Modified: phenote/trunk/src/java/phenote/gui/field/PostCompGui.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/PostCompGui.java 2007-05-05 00:09:25 UTC (rev 561) +++ phenote/trunk/src/java/phenote/gui/field/PostCompGui.java 2007-05-07 23:08:45 UTC (rev 562) @@ -27,7 +27,6 @@ import phenote.datamodel.CharFieldEnum; import phenote.datamodel.OboUtil; import phenote.datamodel.Ontology; -//import phenote.datamodel.SearchParamsI; import phenote.edit.CharChangeEvent; import phenote.edit.CharChangeListener; import phenote.edit.EditManager; @@ -38,8 +37,8 @@ import phenote.gui.selection.CharSelectionListener; import phenote.gui.selection.SelectionManager; -import phenote.gui.SearchParams; -import phenote.gui.SearchParamsI; +//import phenote.gui.SearchParams; +//import phenote.gui.SearchParamsI; /** A window for post composition and other wacky stuff that goes beyond the basic stuff in field (eg relational quality?) @@ -55,12 +54,12 @@ //private CharFieldGui relField; //private CharFieldGui diffField; private List<RelDiffGui> relDiffGuis = new ArrayList<RelDiffGui>(3); - private SearchParamsI searchParams; + //private SearchParamsI searchParams = SearchParams.inst(); private FieldPanel compFieldPanel; - PostCompGui(CharField charField,SearchParamsI searchParams) { + PostCompGui(CharField charField) { this.charField = charField; - this.searchParams = searchParams; + //this.searchParams = searchParams; init(); } @@ -72,9 +71,9 @@ CharField relChar = new CharField(CharFieldEnum.RELATIONSHIP); Ontology o = charField.getPostCompRelOntol(); relChar.addOntology(o); - relField = CharFieldGui.makeRelationList(relChar,searchParams);//"Relationship"? + relField = CharFieldGui.makeRelationList(relChar);//"Relationship"? compFieldPanel.addCharFieldGuiToPanel(relField); - diffField = CharFieldGui.makePostCompTermList(charField,searchParams,"Differentia"); + diffField = CharFieldGui.makePostCompTermList(charField,"Differentia"); compFieldPanel.addCharFieldGuiToPanel(diffField); } private void setRelDiffModel(RelDiffModel rd) { @@ -100,10 +99,10 @@ Frame owner = Phenote.getPhenote().getFrame(); dialog = new JDialog(owner,charField.getName()+" Post Composition"); compFieldPanel = new FieldPanel(false,false); // (searchParams)? - compFieldPanel.setSearchParams(searchParams); + //compFieldPanel.setSearchParams(searchParams); // MAIN GENUS TERM - genusField = CharFieldGui.makePostCompTermList(charField,searchParams,"Genus"); + genusField = CharFieldGui.makePostCompTermList(charField,"Genus"); compFieldPanel.addCharFieldGuiToPanel(genusField); // REL-DIFFS Modified: phenote/trunk/src/java/phenote/gui/field/TermCompList.java =================================================================== --- phenote/trunk/src/java/phenote/gui/field/TermCompList.java 2007-05-05 00:09:25 UTC (rev 561) +++ phenote/trunk/src/java/phenote/gui/field/TermCompList.java 2007-05-07 23:08:45 UTC (rev 562) @@ -37,6 +37,8 @@ enableTermInfoListening(); if (hasMoreThanOneOntology()) // super AACL initOntologyChooser(getCharField()); + // if config.showAllOnEmptyInput... + } @@ -74,7 +76,6 @@ log().error("ERROR: attempt to set fields from null character"); // ex? return; } - //System.out.println(chr+" val "+chr.getValue(getCharField())); if (!chr.hasValue(getCharField())) { currentOboClass = null; // makes getCurTermRelName "" setText(""); // actually calls getCurTermRelNm which is "" @@ -82,12 +83,8 @@ } OBOClass selCharTerm = chr.getValue(getCharField()).getOboClass(); - //getCharField().getCharFieldEnum().getValue(chr).getOboClass(); - // if null then user has made a new char or selected a char with no term - //if (selCharTerm == null) { } else { ??? covered above?? setOboClass(selCharTerm); // doesnt allow null setOntologyChooserFromTerm(selCharTerm); - //} } void setOntologyChooserFromTerm(OBOClass term) { @@ -215,10 +212,6 @@ * overkill, i guess the question will anyone besides term info * ever care about these mouse over selection - if so make generic */ -// void addCompletionListListener(ListSelectionListener lsl) { -// if (!canGetUIJList()) return; -// getUIJList().addListSelectionListener(lsl); } - //private CompletionListListener compListListener = new CompletionListListener(); void enableTermInfoListening() { //boolean enable) { if (!canGetUIJList()) return; @@ -335,12 +328,19 @@ */ private class PostCompListener implements ActionListener { public void actionPerformed(ActionEvent e) { - new PostCompGui(getCharField(), SearchParams.inst()); -// new PostCompGui(getCharField(),getSearchParams()); + new PostCompGui(getCharField()); } } } + +// void addCompletionListListener(ListSelectionListener lsl) { +// if (!canGetUIJList()) return; +// getUIJList().addListSelectionListener(lsl); } + //private CompletionListListener compListListener = new CompletionListListener(); + //getCharField().getCharFieldEnum().getValue(chr).getOboClass(); + // if null then user has made a new char or selected a char with no term + //if (selCharTerm == null) { } else { ??? covered above?? // if (charField.postCompAllowed() && addCompButton) { // JButton postCompButton = new JButton("Comp"); // ??? // postCompButton.addActionListener(new PostCompListener()); Modified: phenote/trunk/src/java/phenote/main/PhenoteVersion.java =================================================================== --- phenote/trunk/src/java/phenote/main/PhenoteVersion.java 2007-05-05 00:09:25 UTC (rev 561) +++ phenote/trunk/src/java/phenote/main/PhenoteVersion.java 2007-05-07 23:08:45 UTC (rev 562) @@ -15,7 +15,7 @@ public static String versionString() { //return MAJOR_VERSION_NUM +""+ SUB_VERSION_NUM + type; - return VERSION; + return VERSION; // +getDateOfVersion? } public static Date getDateOfVersion(){ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-05 00:09:25
|
Revision: 561 http://svn.sourceforge.net/obo/?rev=561&view=rev Author: nlw Date: 2007-05-04 17:09:25 -0700 (Fri, 04 May 2007) Log Message: ----------- Ok, last time today. had to respecify the location of the files. all done. Modified Paths: -------------- phenote/trunk/doc/phenote-website/help/Phenote.jhm phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp phenote/trunk/doc/phenote-website/help/html/The__field__Tag.htm phenote/trunk/doc/phenote-website/help/html/The__ontology__Tag.htm phenote/trunk/doc/phenote-website/help/html/XML_skeleton.htm Modified: phenote/trunk/doc/phenote-website/help/Phenote.jhm =================================================================== --- phenote/trunk/doc/phenote-website/help/Phenote.jhm 2007-05-04 23:57:03 UTC (rev 560) +++ phenote/trunk/doc/phenote-website/help/Phenote.jhm 2007-05-05 00:09:25 UTC (rev 561) @@ -120,8 +120,8 @@ <mapID target="Term_Info" url="html/Term_Info.htm"/> <mapID target="Text_Checks" url="html/Text_Checks.htm"/> <mapID target="Text_Editing" url="html/Text_Editing.htm"/> - <mapID target="The__field__Tag" url="The__field__Tag.htm"/> - <mapID target="The__ontology__Tag" url="The__ontology__Tag.htm"/> + <mapID target="The__field__Tag" url="html/The__field__Tag.htm"/> + <mapID target="The__ontology__Tag" url="html/The__ontology__Tag.htm"/> <mapID target="The_Scroller_Tag" url="html/The_Basic_Flat_File_Interface.htm"/> <mapID target="The_Box_Tag" url="html/The_Box_Tag.htm"/> <mapID target="The_Category_Manager_Plugin" url="html/The_Category_Manager_Plugin.htm"/> @@ -164,7 +164,6 @@ <mapID target="Undo_Redo" url="html/Undo_Redo.htm"/> <mapID target="User_Defined_Checks" url="html/User_Defined_Checks.htm"/> <mapID target="Using_Filters" url="html/Using_Filters.htm"/> - <mapID target="What_is_a_Configuration_" url="What_is_a_Configuration_.htm"/> <mapID target="What_is_an_ontology_" url="html/What_is_an_ontology_.htm"/> <mapID target="What_is_Phenote_" url="html/What_is_OBO_Edit_.htm"/> <mapID target="What_is_Phenote" url="html/What_is_Phenote_.htm"/> @@ -176,7 +175,7 @@ <mapID target="Working_with_Selections" url="html/Working_with_Selections.htm"/> <mapID target="Working_with_Synonym_Categories" url="html/Working_with_Synonym_Categories.htm"/> <mapID target="Working_with_XML_Layouts" url="html/Working_with_XML_Layouts.htm"/> - <mapID target="XML_skeleton" url="XML_skeleton.htm"/> + <mapID target="XML_skeleton" url="html/XML_skeleton.htm"/> <!-- Index Bookmarks --> Modified: phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak =================================================================== --- phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak 2007-05-04 23:57:03 UTC (rev 560) +++ phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak 2007-05-05 00:09:25 UTC (rev 561) @@ -120,8 +120,8 @@ <mapID target="Term_Info" url="html/Term_Info.htm"/> <mapID target="Text_Checks" url="html/Text_Checks.htm"/> <mapID target="Text_Editing" url="html/Text_Editing.htm"/> - <mapID target="The__field__Tag" url="The__field__Tag.htm"/> - <mapID target="The__ontology__Tag" url="The__ontology__Tag.htm"/> + <mapID target="The__field__Tag" url="html/The__field__Tag.htm"/> + <mapID target="The__ontology__Tag" url="html/The__ontology__Tag.htm"/> <mapID target="The_Scroller_Tag" url="html/The_Basic_Flat_File_Interface.htm"/> <mapID target="The_Box_Tag" url="html/The_Box_Tag.htm"/> <mapID target="The_Category_Manager_Plugin" url="html/The_Category_Manager_Plugin.htm"/> @@ -164,7 +164,6 @@ <mapID target="Undo_Redo" url="html/Undo_Redo.htm"/> <mapID target="User_Defined_Checks" url="html/User_Defined_Checks.htm"/> <mapID target="Using_Filters" url="html/Using_Filters.htm"/> - <mapID target="What_is_a_Configuration_" url="What_is_a_Configuration_.htm"/> <mapID target="What_is_an_ontology_" url="html/What_is_an_ontology_.htm"/> <mapID target="What_is_Phenote_" url="html/What_is_OBO_Edit_.htm"/> <mapID target="What_is_Phenote" url="html/What_is_Phenote_.htm"/> @@ -176,7 +175,7 @@ <mapID target="Working_with_Selections" url="html/Working_with_Selections.htm"/> <mapID target="Working_with_Synonym_Categories" url="html/Working_with_Synonym_Categories.htm"/> <mapID target="Working_with_XML_Layouts" url="html/Working_with_XML_Layouts.htm"/> - <mapID target="XML_skeleton" url="XML_skeleton.htm"/> + <mapID target="XML_skeleton" url="html/XML_skeleton.htm"/> <!-- Index Bookmarks --> Modified: phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml 2007-05-04 23:57:03 UTC (rev 560) +++ phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml 2007-05-05 00:09:25 UTC (rev 561) @@ -47,12 +47,12 @@ </tocitem> <tocitem text="Customizing Phenote"> <tocitem text="What is a Configuration?"/> + <tocitem text="XML skeleton" target="XML_skeleton"/> <tocitem text="Example Interfaces"/> + <tocitem text="The <field> Tag" target="The__field__Tag"/> + <tocitem text="The <ontology> Tag" target="The__ontology__Tag"/> <tocitem text="How To Edit a Configuration File" target="How_To_Edit_a_Configuration_File"/> <tocitem text="Ontology Updates" target="Ontologies"/> - <tocitem text="XML skeleton"/> - <tocitem text="The <field> Tag"/> - <tocitem text="The <ontology> Tag"/> </tocitem> <tocitem text="Appendix"> <tocitem text="An Introduction to OBO Ontologies" target="An_Introduction_to_OBO_Ontologies"/> Modified: phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak 2007-05-04 23:57:03 UTC (rev 560) +++ phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak 2007-05-05 00:09:25 UTC (rev 561) @@ -46,13 +46,10 @@ <tocitem text="Other Uses for Phenote" target="Other_Uses_for_Phenote"/> </tocitem> <tocitem text="Customizing Phenote"> - <tocitem text="What is a Configuration?" target="What_is_a_Configuration_"/> + <tocitem text="What is a Configuration?"/> <tocitem text="Example Interfaces"/> <tocitem text="How To Edit a Configuration File" target="How_To_Edit_a_Configuration_File"/> <tocitem text="Ontology Updates" target="Ontologies"/> - <tocitem text="XML skeleton" target="XML_skeleton"/> - <tocitem text="The <field> Tag" target="The__field__Tag"/> - <tocitem text="The <ontology> Tag" target="The__ontology__Tag"/> </tocitem> <tocitem text="Appendix"> <tocitem text="An Introduction to OBO Ontologies" target="An_Introduction_to_OBO_Ontologies"/> Modified: phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html 2007-05-04 23:57:03 UTC (rev 560) +++ phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html 2007-05-05 00:09:25 UTC (rev 561) @@ -281,22 +281,22 @@ <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>What is a Configuration?</face> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt129> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Example Interfaces</face> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/XML_skeleton.htm" target=bodyframe>XML skeleton</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt130> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/How_To_Edit_a_Configuration_File.htm" target=bodyframe>How To Edit a Configuration File</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Example Interfaces</face> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt131> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Ontologies.htm" target=bodyframe>Ontology Updates</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__field__Tag.htm" target=bodyframe>The &lt;field&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt132> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>XML skeleton</face> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__ontology__Tag.htm" target=bodyframe>The &lt;ontology&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt133> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>The &lt;field&gt; Tag</face> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/How_To_Edit_a_Configuration_File.htm" target=bodyframe>How To Edit a Configuration File</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt134> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>The &lt;ontology&gt; Tag</face> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Ontologies.htm" target=bodyframe>Ontology Updates</font></a> </td></tr></table> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> Modified: phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp 2007-05-04 23:57:03 UTC (rev 560) +++ phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp 2007-05-05 00:09:25 UTC (rev 561) @@ -111,22 +111,22 @@ <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>What is a Configuration?</face> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt129> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Example Interfaces</face> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/XML_skeleton.htm" target=bodyframe>XML skeleton</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt130> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/How_To_Edit_a_Configuration_File.htm" target=bodyframe>How To Edit a Configuration File</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Example Interfaces</face> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt131> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Ontologies.htm" target=bodyframe>Ontology Updates</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__field__Tag.htm" target=bodyframe>The &lt;field&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt132> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>XML skeleton</face> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The__ontology__Tag.htm" target=bodyframe>The &lt;ontology&gt; Tag</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt133> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>The &lt;field&gt; Tag</face> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/How_To_Edit_a_Configuration_File.htm" target=bodyframe>How To Edit a Configuration File</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt134> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>The &lt;ontology&gt; Tag</face> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Ontologies.htm" target=bodyframe>Ontology Updates</font></a> </td></tr></table> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> Modified: phenote/trunk/doc/phenote-website/help/html/The__field__Tag.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/The__field__Tag.htm 2007-05-04 23:57:03 UTC (rev 560) +++ phenote/trunk/doc/phenote-website/help/html/The__field__Tag.htm 2007-05-05 00:09:25 UTC (rev 561) @@ -1,56 +1,56 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> -<HTML> -<HEAD> -<META NAME="GENERATOR" CONTENT="Solutionsoft HelpBreeze JavaHelp Edition"> -<TITLE>The <field> Tag</TITLE> -<LINK REL="stylesheet" TYPE="text/css" HREF=javahelp.css> -</HEAD> -<BODY BGCOLOR=#ffffff> -<H1>The <field> <field> Tag</H1> -<P>The <field> tag creates a single input field. There can be one or more fields -per configuration.</P> -<H2>Parameters</H2> -<P> -<TABLE borderColor=#000000 cellPadding=5 width="100%" align=center border=1> +<html> +<head> +<meta name="GENERATOR" content="Solutionsoft HelpBreeze JavaHelp Edition"> +<title>The <field> Tag<field> Tag</title> +<link rel="stylesheet" type="text/css" href="../javahelp.css"> +</head> +<body bgcolor="#ffffff"> +<h1>The <field> <field> Tag</h1> +<p>The <field> tag creates a single input field. There can be one or more fields +per configuration.</p> +<h2>Parameters</h2> +<p> +<table bordercolor="#000000" cellpadding="5" width="100%" align="center" border="1"> - <TR> - <TD align=middle><STRONG>Name</STRONG></TD> - <TD align=middle><STRONG>Description</STRONG></TD> - <TD align=middle><STRONG>Legal Values</STRONG></TD> - <TD align=middle><STRONG>Default</STRONG></TD></TR> - <TR> - <TD> - <P><FONT face=Courier>name</FONT></P></TD> - <TD> - <P>This is the name that is displayed in the Phenote interface next to the - input box in the <EM>Data Entry</EM> section. This is also used as a - column header in the <EM>Annotation Spreadsheet.</EM></P></TD> - <TD><EM>any text value</EM></TD> - <TD></TD></TR> - <TR> - <TD><FONT face=Courier>syntax-abbrev</FONT></TD> - <TD>This is a short abbreviation used by the Pheno-syntax data adapter</TD> - <TD><EM>any text value</EM></TD> - <TD></TD></TR> - <TR> - <TD><FONT face=Courier>enable</FONT></TD> - <TD>A flag that turns this field on or off.</TD> - <TD> - <UL> - <LI>true - <LI>false</LI></UL></TD> - <TD>true</TD></TR></TABLE></P> -<H2> </H2> -<H2>Contents</H2> -<P>Each <field> element specifies one input are in -the <EM>Data Entry </EM>section. </P> -<P>There are two types of fields: free-text or + <tr> + <td align="middle"><strong>Name</strong></td> + <td align="middle"><strong>Description</strong></td> + <td align="middle"><strong>Legal Values</strong></td> + <td align="middle"><strong>Default</strong></td></tr> + <tr> + <td> + <p><font face="Courier">name</font></p></td> + <td> + <p>This is the name that is displayed in the Phenote interface next to the + input box in the <em>Data Entry</em> section. This is also used as a + column header in the <em>Annotation Spreadsheet.</em></p></td> + <td><em>any text value</em></td> + <td></td></tr> + <tr> + <td><font face="Courier">syntax-abbrev</font></td> + <td>This is a short abbreviation used by the Pheno-syntax data adapter</td> + <td><em>any text value</em></td> + <td></td></tr> + <tr> + <td><font face="Courier">enable</font></td> + <td>A flag that turns this field on or off.</td> + <td> + <ul> + <li>true + <li>false</li></ul></td> + <td>true</td></tr></table></p> +<h2> </h2> +<h2>Contents</h2> +<p>Each <field> element specifies one input are in +the <em>Data Entry </em>section. </p> +<p>There are two types of fields: free-text or ontology. By default, a field is of the free-text type. To specify -ontology type, see The <ontology> Tag page.</P> -<P> </P> -<H2>Example</H2> -<P> -<H3>Free Text Field</H3><PRE><ns:field name="Field Name" syntax-abbrev="FA" enable="true"/></PRE> -<H3>Ontology Field</H3><PRE><ns:field name="Genetic Context" syntax-abbrev="GC" enable="true"><BR> [see The<ontology> Tag page for specification.]<BR></ns:field></PRE> -</BODY> -</HTML> \ No newline at end of file +ontology type, see The <ontology> Tag page.</p> +<p> </p> +<h2>Example</h2> +<p> +<h3>Free Text Field</h3><pre><ns:field name="Field Name" syntax-abbrev="FA" enable="true"/></pre> +<h3>Ontology Field</h3><pre><ns:field name="Genetic Context" syntax-abbrev="GC" enable="true"><br> [see The<ontology> Tag page for specification.]<br></ns:field></pre> +</body> +</html> Modified: phenote/trunk/doc/phenote-website/help/html/The__ontology__Tag.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/The__ontology__Tag.htm 2007-05-04 23:57:03 UTC (rev 560) +++ phenote/trunk/doc/phenote-website/help/html/The__ontology__Tag.htm 2007-05-05 00:09:25 UTC (rev 561) @@ -2,8 +2,8 @@ <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="Solutionsoft HelpBreeze JavaHelp Edition"> -<TITLE>The <ontology> Tag</TITLE> -<LINK REL="stylesheet" TYPE="text/css" HREF=javahelp.css> +<TITLE>The <ontology> Tag<ontology> Tag</TITLE> +<LINK REL="stylesheet" TYPE="text/css" HREF="../javahelp.css"> </HEAD> <BODY BGCOLOR=#ffffff> <H1>The <ontology> <field>Tag</H1> @@ -17,19 +17,19 @@ <TABLE borderColor=#000000 cellPadding=5 width="100%" align=center border=1> <TR> - <TD align=middle><STRONG - >Name</STRONG></TD> - <TD align=middle><STRONG - >Description</STRONG></TD> + <TD align=middle><STRONG >Name</STRONG></TD> + + <TD align=middle><STRONG >Description</STRONG></TD> + <TD align=middle><STRONG>Legal Values</STRONG></TD> <TD align=middle><STRONG>Required</STRONG></TD> - <TD align=middle><STRONG - >Default</STRONG></TD></TR> + <TD align=middle><STRONG >Default</STRONG></TD></TR> + <TR> <TD> - <P><FONT face=Courier - >name</FONT></P></TD> + <P><FONT face=Courier >name</FONT></P></TD> + <TD> <P>This is the name that is displayed in the drop-down chooser box for ontology selection during autocompletion in the @@ -38,8 +38,8 @@ <TD ALIGN=middle>yes</TD> <TD></TD></TR> <TR> - <TD><FONT face=Courier - >file</FONT></TD> + <TD><FONT face=Courier >file</FONT></TD> + <TD>This is the name of the file containing the ontology.</TD> <TD><EM>any text value</EM></TD> @@ -92,4 +92,4 @@ <P> </P> <P>[INSERT PIC OF RESULTING FIELD HERE and POSTCOMP]</P> </BODY> -</HTML> \ No newline at end of file +</HTML> Modified: phenote/trunk/doc/phenote-website/help/html/XML_skeleton.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/XML_skeleton.htm 2007-05-04 23:57:03 UTC (rev 560) +++ phenote/trunk/doc/phenote-website/help/html/XML_skeleton.htm 2007-05-05 00:09:25 UTC (rev 561) @@ -1,11 +1,9 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> -<HTML> -<HEAD> -<META NAME="GENERATOR" CONTENT="Solutionsoft HelpBreeze JavaHelp Edition"> -<TITLE>XML skeleton</TITLE> -<LINK REL="stylesheet" TYPE="text/css" HREF=javahelp.css> -</HEAD> -<BODY BGCOLOR=#ffffff> -<H1>XML skeleton</H1><PRE><?xml version="1.0" encoding="UTF-8"?><BR><ns:phenote-configuration version="1.3.1" xmlns:ns="phenote/config/xml"><BR> <ns:log config-file="conf/log4j-standalone.xml"/></PRE><PRE> <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> </PRE><PRE> <ns:uvic-graph enable="false"/></PRE><PRE> <ns:term-history enable="false"/><BR> <BR> <ns:auto-update-ontologies enable="true"/> <!--true=update; false=don't update--><BR> <ns:update-timer timer="0"/><!--set to 0 if you want to bypass the check; time in seconds--><BR> <ns:obo-repository url-dir="<A href='http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/' ??>http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/</A>></PRE><PRE> <ns:field name="Example Free-text" syntax-abbrev="PUB" enable="true"/><BR> <ns:field name="Genotype" syntax-abbrev="GT" enable="false"/></PRE><PRE> <ns:field name="Example Multi-Ontology" syntax-abbrev="E" enable="true"><BR> <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/><BR> <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/><BR> <ns:ontology name="CL" file="cell.obo" repos-subdir="anatomy/cell_type"/><BR> </ns:field></PRE><PRE><BR> <ns:field name="Example Single-Ontology" syntax-abbrev="Q" enable="true"><BR> <ns:ontology name="PATO" file="quality.obo" repos-subdir="phenotype"/><BR> </ns:field></PRE><PRE><BR></ns:phenote-configuration></PRE> -</BODY> -</HTML> \ No newline at end of file +<html> +<head> +<meta name="GENERATOR" content="Solutionsoft HelpBreeze JavaHelp Edition"> +<title>XML skeleton</title> +<link rel="stylesheet" type="text/css" href="../javahelp.css"> +</head> +<body bgcolor="#ffffff"> +<h1>XML skeleton</h1><pre><?xml version="1.0" encoding="UTF-8"?><br><ns:phenote-configuration version="1.3.1" xmlns:ns="phenote/config/xml"><br> <ns:log config-file="conf/log4j-standalone.xml"/></pre><pre> <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> </pre><pre> <ns:uvic-graph enable="false"/></pre><pre> <ns:term-history enable="false"/><br> <br> <ns:auto-update-ontologies enable="true"/> <!--true=update; false=don't update--><br> <ns:update-timer timer="0"/><!--set to 0 if you want to bypass the check; time in seconds--><br> <ns:obo-repository url-dir="<A href="'http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/" ??>http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/</a>></pre><pre> <ns:field name="Example Free-text" syntax-abbrev="PUB" enable="true"/><br> <ns:field name="Genotype" syntax-abbrev="GT" enable="false"/></pre><pre> <ns:field name="Example Multi-Ontology" syntax-abbrev="E" enable="true"><br> <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/><br> <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/><br> <ns:ontology name="CL" file="cell.obo" repos-subdir="anatomy/cell_type"/><br> </ns:field></pre><pre><br> <ns:field name="Example Single-Ontology" syntax-abbrev="Q" enable="true"><br> <ns:ontology name="PATO" file="quality.obo" repos-subdir="phenotype"/><br> </ns:field></pre><pre><br></ns:phenote-configuration></pre></body></html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-04 23:57:03
|
Revision: 560 http://svn.sourceforge.net/obo/?rev=560&view=rev Author: nlw Date: 2007-05-04 16:57:03 -0700 (Fri, 04 May 2007) Log Message: ----------- updated the toc with the new pages Modified Paths: -------------- phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp Modified: phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html 2007-05-04 23:54:19 UTC (rev 559) +++ phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html 2007-05-04 23:57:03 UTC (rev 560) @@ -65,6 +65,10 @@ ctable(wdt156); ctable(wdt157); ctable(wdt158); +ctable(wdt159); +ctable(wdt160); +ctable(wdt161); +ctable(wdt162); } @@ -235,7 +239,7 @@ <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_PhenoSyntax_Adapter.htm" target=bodyframe>The PhenoSyntax Adapter</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt119> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_tag_value_adapter.htm" target=bodyframe>The Tab-Value Adapter</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_tag_value_adapter.htm" target=bodyframe>The Tag-Value Adapter</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt120> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Tab_Delimited_Adapter.htm" target=bodyframe>The Tab-Delimited Adapter</font></a> @@ -274,101 +278,113 @@ <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Customizing Phenote</font> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt128> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>What is a Configuration?</face> +</td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt129> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Example Interfaces</face> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt129> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt130> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/How_To_Edit_a_Configuration_File.htm" target=bodyframe>How To Edit a Configuration File</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt130> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt131> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Ontologies.htm" target=bodyframe>Ontology Updates</font></a> </td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt132> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>XML skeleton</face> </td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt133> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>The &lt;field&gt; Tag</face> +</td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt134> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>The &lt;ontology&gt; Tag</face> +</td></tr></table> +</td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Appendix</font> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt131> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt135> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/An_Introduction_to_OBO_Ontologies.htm" target=bodyframe>An Introduction to OBO Ontologies</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt132> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt136> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Basic_Concepts_and_Vocabulary.htm" target=bodyframe>Basic Concepts and Vocabulary</font></a> </td></tr></table> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>from OBOedit</font> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt133> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt137> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Customizing OBO-Edit</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt134> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt138> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Configuration_Plugin.htm" target=bodyframe>The Configuration Plugin</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt135> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt139> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Customizing the Interface</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt136> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt140> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Working_with_XML_Layouts.htm" target=bodyframe>Working with XML Layouts</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt137> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt141> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Common_Parameters.htm" target=bodyframe>Common Parameters</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt138> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt142> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Glue_Tag.htm" target=bodyframe>The &lt;glue&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt139> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt143> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Spacer_Tag.htm" target=bodyframe>The &lt;spacer&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt140> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt144> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Label_Tag.htm" target=bodyframe>The &lt;label&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt141> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt145> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Box_Tag.htm" target=bodyframe>The &lt;box&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt142> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt146> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Grid_Tag.htm" target=bodyframe>The &lt;grid&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt143> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt147> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Panel_Tag.htm" target=bodyframe>The &lt;panel&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt144> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt148> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Compactgrid_Tag.htm" target=bodyframe>The &lt;compactgrid&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt145> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt149> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Divider_Tag.htm" target=bodyframe>The &lt;divider&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt146> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt150> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Tabs_Tag.htm" target=bodyframe>The &lt;tabs&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt147> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt151> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Window_Tag.htm" target=bodyframe>The &lt;window&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt148> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt152> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_If_Tag.htm" target=bodyframe>The &lt;if&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt149> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt153> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Component_Tag.htm" target=bodyframe>The &lt;component&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt150> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt154> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Example_Layouts.htm" target=bodyframe>Example Layouts</face></a> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt151> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt155> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Introduction.htm" target=bodyframe>The Default Layout</font></a> </td></tr></table> </td></tr></table> </td></tr></table> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt152> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt156> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>New Topic</face> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt153> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt157> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Working with Data Adapters</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt154> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt158> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Basic_Flat_File_Interface.htm" target=bodyframe>The Basic Flat File Interface</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt155> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt159> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_OBO_Adapter.htm" target=bodyframe>The OBO Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt156> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt160> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_GO_Flat_File_Adapter.htm" target=bodyframe>The GO Flat File Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt157> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt161> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Serial_Adapter.htm" target=bodyframe>The Serial Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt158> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt162> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Custom_Data_Adapters.htm" target=bodyframe>Custom Data Adapters</font></a> </td></tr></table> </td></tr></table> Modified: phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp 2007-05-04 23:54:19 UTC (rev 559) +++ phenote/trunk/doc/phenote-website/help/PhenoteWebTOC.html.tmp 2007-05-04 23:57:03 UTC (rev 560) @@ -69,7 +69,7 @@ <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_PhenoSyntax_Adapter.htm" target=bodyframe>The PhenoSyntax Adapter</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt119> -<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_tag_value_adapter.htm" target=bodyframe>The Tab-Value Adapter</font></a> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_tag_value_adapter.htm" target=bodyframe>The Tag-Value Adapter</font></a> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt120> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Tab_Delimited_Adapter.htm" target=bodyframe>The Tab-Delimited Adapter</font></a> @@ -108,101 +108,113 @@ <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Customizing Phenote</font> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt128> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>What is a Configuration?</face> +</td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt129> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Example Interfaces</face> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt129> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt130> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/How_To_Edit_a_Configuration_File.htm" target=bodyframe>How To Edit a Configuration File</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt130> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt131> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Ontologies.htm" target=bodyframe>Ontology Updates</font></a> </td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt132> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>XML skeleton</face> </td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt133> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>The &lt;field&gt; Tag</face> +</td></tr></table> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt134> +<tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>The &lt;ontology&gt; Tag</face> +</td></tr></table> +</td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Appendix</font> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt131> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt135> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/An_Introduction_to_OBO_Ontologies.htm" target=bodyframe>An Introduction to OBO Ontologies</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt132> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt136> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Basic_Concepts_and_Vocabulary.htm" target=bodyframe>Basic Concepts and Vocabulary</font></a> </td></tr></table> </td></tr></table> <table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt0> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>from OBOedit</font> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt133> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt137> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Customizing OBO-Edit</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt134> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt138> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Configuration_Plugin.htm" target=bodyframe>The Configuration Plugin</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt135> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt139> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Customizing the Interface</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt136> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt140> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Working_with_XML_Layouts.htm" target=bodyframe>Working with XML Layouts</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt137> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt141> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Common_Parameters.htm" target=bodyframe>Common Parameters</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt138> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt142> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Glue_Tag.htm" target=bodyframe>The &lt;glue&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt139> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt143> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Spacer_Tag.htm" target=bodyframe>The &lt;spacer&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt140> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt144> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Label_Tag.htm" target=bodyframe>The &lt;label&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt141> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt145> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Box_Tag.htm" target=bodyframe>The &lt;box&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt142> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt146> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Grid_Tag.htm" target=bodyframe>The &lt;grid&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt143> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt147> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Panel_Tag.htm" target=bodyframe>The &lt;panel&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt144> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt148> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Compactgrid_Tag.htm" target=bodyframe>The &lt;compactgrid&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt145> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt149> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Divider_Tag.htm" target=bodyframe>The &lt;divider&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt146> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt150> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Tabs_Tag.htm" target=bodyframe>The &lt;tabs&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt147> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt151> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Window_Tag.htm" target=bodyframe>The &lt;window&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt148> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt152> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_If_Tag.htm" target=bodyframe>The &lt;if&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt149> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt153> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Component_Tag.htm" target=bodyframe>The &lt;component&gt; Tag</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt150> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt154> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Example_Layouts.htm" target=bodyframe>Example Layouts</face></a> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt151> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt155> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Introduction.htm" target=bodyframe>The Default Layout</font></a> </td></tr></table> </td></tr></table> </td></tr></table> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt152> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt156> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>New Topic</face> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt153> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt157> <tr><td valign=baseline width=15><img src=plus.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2>Working with Data Adapters</face> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt154> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt158> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Basic_Flat_File_Interface.htm" target=bodyframe>The Basic Flat File Interface</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt155> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt159> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_OBO_Adapter.htm" target=bodyframe>The OBO Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt156> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt160> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_GO_Flat_File_Adapter.htm" target=bodyframe>The GO Flat File Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt157> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt161> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/The_Serial_Adapter.htm" target=bodyframe>The Serial Adapter</font></a> </td></tr></table> -<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt158> +<table w2wdynamicoutline border=0 cellpadding=0 cellspacing=0 width=100% class=mytable id=wdt162> <tr><td valign=baseline width=15><img src=page.gif width=11 height=11 hspace=3 style=cursor:hand></td><td valign=top width=100%><font face=Arial size=2><a href="html/Custom_Data_Adapters.htm" target=bodyframe>Custom Data Adapters</font></a> </td></tr></table> </td></tr></table> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-04 23:54:18
|
Revision: 559 http://svn.sourceforge.net/obo/?rev=559&view=rev Author: nlw Date: 2007-05-04 16:54:19 -0700 (Fri, 04 May 2007) Log Message: ----------- adding the XML new pages with the new links Modified Paths: -------------- phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml phenote/trunk/doc/phenote-website/help/report/report.htm phenote/trunk/doc/phenote-website/help/report/report.txt Added Paths: ----------- phenote/trunk/doc/phenote-website/help/html/The__field__Tag.htm phenote/trunk/doc/phenote-website/help/html/The__ontology__Tag.htm phenote/trunk/doc/phenote-website/help/html/What_is_a_Configuration_.htm phenote/trunk/doc/phenote-website/help/html/XML_skeleton.htm Modified: phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml 2007-05-04 23:46:25 UTC (rev 558) +++ phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml 2007-05-04 23:54:19 UTC (rev 559) @@ -46,13 +46,13 @@ <tocitem text="Other Uses for Phenote" target="Other_Uses_for_Phenote"/> </tocitem> <tocitem text="Customizing Phenote"> - <tocitem text="What is a Configuration?" target="What_is_a_Configuration_"/> + <tocitem text="What is a Configuration?"/> <tocitem text="Example Interfaces"/> <tocitem text="How To Edit a Configuration File" target="How_To_Edit_a_Configuration_File"/> <tocitem text="Ontology Updates" target="Ontologies"/> - <tocitem text="XML skeleton" target="XML_skeleton"/> - <tocitem text="The <field> Tag" target="The__field__Tag"/> - <tocitem text="The <ontology> Tag" target="The__ontology__Tag"/> + <tocitem text="XML skeleton"/> + <tocitem text="The <field> Tag"/> + <tocitem text="The <ontology> Tag"/> </tocitem> <tocitem text="Appendix"> <tocitem text="An Introduction to OBO Ontologies" target="An_Introduction_to_OBO_Ontologies"/> Added: phenote/trunk/doc/phenote-website/help/html/The__field__Tag.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/The__field__Tag.htm (rev 0) +++ phenote/trunk/doc/phenote-website/help/html/The__field__Tag.htm 2007-05-04 23:54:19 UTC (rev 559) @@ -0,0 +1,56 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<META NAME="GENERATOR" CONTENT="Solutionsoft HelpBreeze JavaHelp Edition"> +<TITLE>The <field> Tag</TITLE> +<LINK REL="stylesheet" TYPE="text/css" HREF=javahelp.css> +</HEAD> +<BODY BGCOLOR=#ffffff> +<H1>The <field> <field> Tag</H1> +<P>The <field> tag creates a single input field. There can be one or more fields +per configuration.</P> +<H2>Parameters</H2> +<P> +<TABLE borderColor=#000000 cellPadding=5 width="100%" align=center border=1> + + <TR> + <TD align=middle><STRONG>Name</STRONG></TD> + <TD align=middle><STRONG>Description</STRONG></TD> + <TD align=middle><STRONG>Legal Values</STRONG></TD> + <TD align=middle><STRONG>Default</STRONG></TD></TR> + <TR> + <TD> + <P><FONT face=Courier>name</FONT></P></TD> + <TD> + <P>This is the name that is displayed in the Phenote interface next to the + input box in the <EM>Data Entry</EM> section. This is also used as a + column header in the <EM>Annotation Spreadsheet.</EM></P></TD> + <TD><EM>any text value</EM></TD> + <TD></TD></TR> + <TR> + <TD><FONT face=Courier>syntax-abbrev</FONT></TD> + <TD>This is a short abbreviation used by the Pheno-syntax data adapter</TD> + <TD><EM>any text value</EM></TD> + <TD></TD></TR> + <TR> + <TD><FONT face=Courier>enable</FONT></TD> + <TD>A flag that turns this field on or off.</TD> + <TD> + <UL> + <LI>true + <LI>false</LI></UL></TD> + <TD>true</TD></TR></TABLE></P> +<H2> </H2> +<H2>Contents</H2> +<P>Each <field> element specifies one input are in +the <EM>Data Entry </EM>section. </P> +<P>There are two types of fields: free-text or +ontology. By default, a field is of the free-text type. To specify +ontology type, see The <ontology> Tag page.</P> +<P> </P> +<H2>Example</H2> +<P> +<H3>Free Text Field</H3><PRE><ns:field name="Field Name" syntax-abbrev="FA" enable="true"/></PRE> +<H3>Ontology Field</H3><PRE><ns:field name="Genetic Context" syntax-abbrev="GC" enable="true"><BR> [see The<ontology> Tag page for specification.]<BR></ns:field></PRE> +</BODY> +</HTML> \ No newline at end of file Added: phenote/trunk/doc/phenote-website/help/html/The__ontology__Tag.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/The__ontology__Tag.htm (rev 0) +++ phenote/trunk/doc/phenote-website/help/html/The__ontology__Tag.htm 2007-05-04 23:54:19 UTC (rev 559) @@ -0,0 +1,95 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<META NAME="GENERATOR" CONTENT="Solutionsoft HelpBreeze JavaHelp Edition"> +<TITLE>The <ontology> Tag</TITLE> +<LINK REL="stylesheet" TYPE="text/css" HREF=javahelp.css> +</HEAD> +<BODY BGCOLOR=#ffffff> +<H1>The <ontology> <field>Tag</H1> +<P>The <ontology> tag enables the autocompletion +feature on an input field based +on the ontology file specified. There can be zero or more ontologies per +field.</P> +<H2>Parameters</H2> +<H1> + +<TABLE borderColor=#000000 cellPadding=5 width="100%" align=center border=1> + + <TR> + <TD align=middle><STRONG + >Name</STRONG></TD> + <TD align=middle><STRONG + >Description</STRONG></TD> + <TD align=middle><STRONG>Legal + Values</STRONG></TD> + <TD align=middle><STRONG>Required</STRONG></TD> + <TD align=middle><STRONG + >Default</STRONG></TD></TR> + <TR> + <TD> + <P><FONT face=Courier + >name</FONT></P></TD> + <TD> + <P>This is the name that is displayed in the + drop-down chooser box for ontology selection during autocompletion in the + <EM>Data Entry</EM> section. </P></TD> + <TD><EM>any text value</EM></TD> + <TD ALIGN=middle>yes</TD> + <TD></TD></TR> + <TR> + <TD><FONT face=Courier + >file</FONT></TD> + <TD>This is the name of the file containing the + ontology.</TD> + <TD><EM>any text value</EM></TD> + <TD ALIGN=middle>yes</TD> + <TD></TD></TR> + <TR> + <TD><FONT face=Courier>repos-subdir</FONT></TD> + <TD>The location (such as a subdirectory) of the file in the specified + repository. If not included, then no checks against the + <EM>obo-repository</EM> will be performed.</TD> + <TD> + <P><EM>any text value</EM></P></TD> + <TD align=middle>no</TD> + <TD></TD></TR> + <TR> + <TD><FONT face=Courier>slim</FONT></TD> + <TD>[not sure yet how this works...]</TD> + <TD> + <P><EM>any text value</EM></P></TD> + <TD align=middle>no</TD> + <TD></TD></TR> + <TR> + <TD><FONT face=Courier>is-postcomp-rel</FONT></TD> + <TD>The ontology file specified here will be used to + populate the relationships for postcomposition. Typically this will + the the relationship.obo file. Specifying the is-postcomp-rel + triggers Phenote to allow the post-compostion feature along with a button to display.</TD> + <TD> + <UL> + <LI>true + <LI>false</LI></UL></TD> + <TD ALIGN=middle>no</TD> + <TD>false</TD></TR></TABLE> +<H2> </H2> +<H2>Contents</H2></H1> +<P>Each <ontology> element specifies one ontology to be used with the +autocompletion feature in a single <field> element. To include the +same ontology in a separate <field> element, it must be listed in +both. The order in which the <ontology> elements are listed within +the <field> is the order they are displayed in the drop-down chooser +box. </P> +<H1><FONT color=#000000 size=3></FONT> </H1> +<H2>Example</H2><PRE><ns:field name="Entity" syntax-abbrev="E" enable="true"><BR> <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/><BR> <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/><BR> <ns:ontology name="CHEBI" file="chebi.obo" repos-subdir="chemical"/><BR></ns:field></PRE> +<P>In this example there are two ontologies specified: GO and CHEBI. The +resulting input item would display a drop-down chooser box with the names GO and +CHEBI. The autocompletion on that field would query the gene_ontology.obo +and chebi.obo ontologies. Additionally, because is-postcomp-rel is +specified, this field would allow for post composition, and those terms would +draw their relationships from the relationship.obo ontology.</P> +<P> </P> +<P>[INSERT PIC OF RESULTING FIELD HERE and POSTCOMP]</P> +</BODY> +</HTML> \ No newline at end of file Added: phenote/trunk/doc/phenote-website/help/html/What_is_a_Configuration_.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/What_is_a_Configuration_.htm (rev 0) +++ phenote/trunk/doc/phenote-website/help/html/What_is_a_Configuration_.htm 2007-05-04 23:54:19 UTC (rev 559) @@ -0,0 +1,35 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<meta name="GENERATOR" content="Solutionsoft HelpBreeze JavaHelp Edition"> +<title>What is a Configuration?</title> +<link rel="stylesheet" type="text/css" href="javahelp.css"> +</head> +<body bgcolor="#ffffff"> +<h1>What is a Configuration?</h1> +<p>Phenote can be customized to your needs, including the content and +look&feel. The types of things that can be configured in the +<em>configuration </em>file<em> </em>include<em>:</em></p> +<p><em></em> </p> +<ul> + <li>Fields: free-text or ontology types + <ul> + <li>Display names for fields + <li>Ontologi(es) for fields + <li>Post-composition capability</li></ul> + <li>Load/Save Annotation data adapters + <li>Ontology repository specification + <li>Enable/disable of automatic ontology updates upon + startup + <li>Display options: + <ul> + <li>Term history display</li></ul> </li></ul> +<p> </p> +<p>Currently (in version 1.2 or earlier), this configuration must be done by +hand-editing an xml file </p> +<p>We are developing an interface inside of Phenote that will allow you to +specify these options without having to fiddle with the text file. This section +explains the location and process of editing a configuration +file.</p> +</body> +</html> \ No newline at end of file Added: phenote/trunk/doc/phenote-website/help/html/XML_skeleton.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/XML_skeleton.htm (rev 0) +++ phenote/trunk/doc/phenote-website/help/html/XML_skeleton.htm 2007-05-04 23:54:19 UTC (rev 559) @@ -0,0 +1,11 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<META NAME="GENERATOR" CONTENT="Solutionsoft HelpBreeze JavaHelp Edition"> +<TITLE>XML skeleton</TITLE> +<LINK REL="stylesheet" TYPE="text/css" HREF=javahelp.css> +</HEAD> +<BODY BGCOLOR=#ffffff> +<H1>XML skeleton</H1><PRE><?xml version="1.0" encoding="UTF-8"?><BR><ns:phenote-configuration version="1.3.1" xmlns:ns="phenote/config/xml"><BR> <ns:log config-file="conf/log4j-standalone.xml"/></PRE><PRE> <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> </PRE><PRE> <ns:uvic-graph enable="false"/></PRE><PRE> <ns:term-history enable="false"/><BR> <BR> <ns:auto-update-ontologies enable="true"/> <!--true=update; false=don't update--><BR> <ns:update-timer timer="0"/><!--set to 0 if you want to bypass the check; time in seconds--><BR> <ns:obo-repository url-dir="<A href='http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/' ??>http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/</A>></PRE><PRE> <ns:field name="Example Free-text" syntax-abbrev="PUB" enable="true"/><BR> <ns:field name="Genotype" syntax-abbrev="GT" enable="false"/></PRE><PRE> <ns:field name="Example Multi-Ontology" syntax-abbrev="E" enable="true"><BR> <ns:ontology name="Relationship" file="relationship.obo" repos-subdir="OBO_REL" is-postcomp-rel="true"/><BR> <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/><BR> <ns:ontology name="CL" file="cell.obo" repos-subdir="anatomy/cell_type"/><BR> </ns:field></PRE><PRE><BR> <ns:field name="Example Single-Ontology" syntax-abbrev="Q" enable="true"><BR> <ns:ontology name="PATO" file="quality.obo" repos-subdir="phenotype"/><BR> </ns:field></PRE><PRE><BR></ns:phenote-configuration></PRE> +</BODY> +</HTML> \ No newline at end of file Modified: phenote/trunk/doc/phenote-website/help/report/report.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/report/report.htm 2007-05-04 23:46:25 UTC (rev 558) +++ phenote/trunk/doc/phenote-website/help/report/report.htm 2007-05-04 23:54:19 UTC (rev 559) @@ -7,8 +7,8 @@ <i>To print this report, right click and choose "Print" from the pop-up context menu.</i><p> <p><i> You can use the Contents, Topics, and Index tabs on the left to navigate within the report.</i> <p><i> This HTML file and also a tab-delimited text file are available in the \report subdirectory below your project directory.</i> -<p> </p><p><b>Report Date/Time:</b> 5/1/2007 4:57:09 PM -<p><b>Total Number of Topics: </b> 163 +<p> </p><p><b>Report Date/Time:</b> 5/4/2007 4:49:23 PM +<p><b>Total Number of Topics: </b> 167 <p><b>Number of Index Entries: </b> 0 <p> </p> <a name="html\Adding_configurability.htm"> @@ -891,6 +891,22 @@ <tr><td bgcolor=#FFFFFF><b>Index Keywords:</b> </td></tr> <tr><td bgcolor=#FFFFFF><b>Status:</b> Not Specified<br><b>Notes: </b></td></tr> </table><br> +<a name="The__field__Tag.htm"> +<table border=0 width=100% cellpadding=4 cellspacing=1 bgcolor=#808080> +<tr><td bgcolor=#D7D7D7><b>Topic Title:</b> The</td></tr> +<tr><td bgcolor=#FFFFFF><b>MapID:</b> The__field__Tag</td></tr> +<tr><td bgcolor=#FFFFFF><b>File Path:</b> <a href="C:\Documents and Settings\Nicole\Desktop\phenote-help-docs\The__field__Tag.htm" target=_blank>The__field__Tag.htm</a></td></tr> +<tr><td bgcolor=#FFFFFF><b>Index Keywords:</b> </td></tr> +<tr><td bgcolor=#FFFFFF><b>Status:</b> Not Specified<br><b>Notes: </b></td></tr> +</table><br> +<a name="The__ontology__Tag.htm"> +<table border=0 width=100% cellpadding=4 cellspacing=1 bgcolor=#808080> +<tr><td bgcolor=#D7D7D7><b>Topic Title:</b> The</td></tr> +<tr><td bgcolor=#FFFFFF><b>MapID:</b> The__ontology__Tag</td></tr> +<tr><td bgcolor=#FFFFFF><b>File Path:</b> <a href="C:\Documents and Settings\Nicole\Desktop\phenote-help-docs\The__ontology__Tag.htm" target=_blank>The__ontology__Tag.htm</a></td></tr> +<tr><td bgcolor=#FFFFFF><b>Index Keywords:</b> </td></tr> +<tr><td bgcolor=#FFFFFF><b>Status:</b> Not Specified<br><b>Notes: </b></td></tr> +</table><br> <a name="html\The_Basic_Flat_File_Interface.htm"> <table border=0 width=100% cellpadding=4 cellspacing=1 bgcolor=#808080> <tr><td bgcolor=#D7D7D7><b>Topic Title:</b> The Basic Flat File Interface</td></tr> @@ -1227,6 +1243,14 @@ <tr><td bgcolor=#FFFFFF><b>Index Keywords:</b> </td></tr> <tr><td bgcolor=#FFFFFF><b>Status:</b> Not Specified<br><b>Notes: </b></td></tr> </table><br> +<a name="What_is_a_Configuration_.htm"> +<table border=0 width=100% cellpadding=4 cellspacing=1 bgcolor=#808080> +<tr><td bgcolor=#D7D7D7><b>Topic Title:</b> What is a Configuration?</td></tr> +<tr><td bgcolor=#FFFFFF><b>MapID:</b> What_is_a_Configuration_</td></tr> +<tr><td bgcolor=#FFFFFF><b>File Path:</b> <a href="C:\Documents and Settings\Nicole\Desktop\phenote-help-docs\What_is_a_Configuration_.htm" target=_blank>What_is_a_Configuration_.htm</a></td></tr> +<tr><td bgcolor=#FFFFFF><b>Index Keywords:</b> </td></tr> +<tr><td bgcolor=#FFFFFF><b>Status:</b> Not Specified<br><b>Notes: </b></td></tr> +</table><br> <a name="html\What_is_an_ontology_.htm"> <table border=0 width=100% cellpadding=4 cellspacing=1 bgcolor=#808080> <tr><td bgcolor=#D7D7D7><b>Topic Title:</b> What is an ontology?</td></tr> @@ -1315,4 +1339,12 @@ <tr><td bgcolor=#FFFFFF><b>Index Keywords:</b> </td></tr> <tr><td bgcolor=#FFFFFF><b>Status:</b> Not Specified<br><b>Notes: </b></td></tr> </table><br> +<a name="XML_skeleton.htm"> +<table border=0 width=100% cellpadding=4 cellspacing=1 bgcolor=#808080> +<tr><td bgcolor=#D7D7D7><b>Topic Title:</b> XML skeleton</td></tr> +<tr><td bgcolor=#FFFFFF><b>MapID:</b> XML_skeleton</td></tr> +<tr><td bgcolor=#FFFFFF><b>File Path:</b> <a href="C:\Documents and Settings\Nicole\Desktop\phenote-help-docs\XML_skeleton.htm" target=_blank>XML_skeleton.htm</a></td></tr> +<tr><td bgcolor=#FFFFFF><b>Index Keywords:</b> </td></tr> +<tr><td bgcolor=#FFFFFF><b>Status:</b> Not Specified<br><b>Notes: </b></td></tr> +</table><br> </BODY></HTML> Modified: phenote/trunk/doc/phenote-website/help/report/report.txt =================================================================== --- phenote/trunk/doc/phenote-website/help/report/report.txt 2007-05-04 23:46:25 UTC (rev 558) +++ phenote/trunk/doc/phenote-website/help/report/report.txt 2007-05-04 23:54:19 UTC (rev 559) @@ -109,6 +109,8 @@ Term Info Term_Info html\Term_Info.htm Not Specified Text Checks Text_Checks html\Text_Checks.htm Not Specified Text Editing Text_Editing html\Text_Editing.htm Not Specified +The The__field__Tag The__field__Tag.htm Not Specified +The The__ontology__Tag The__ontology__Tag.htm Not Specified The Basic Flat File Interface The_Scroller_Tag html\The_Basic_Flat_File_Interface.htm Not Specified The box tag The_Box_Tag html\The_Box_Tag.htm Not Specified The Category Manager Plugin The_Category_Manager_Plugin html\The_Category_Manager_Plugin.htm Not Specified @@ -151,6 +153,7 @@ Undo/Redo Undo_Redo html\Undo_Redo.htm Not Specified User Defined Checks User_Defined_Checks html\User_Defined_Checks.htm Not Specified Using Filters Using_Filters html\Using_Filters.htm Not Specified +What is a Configuration? What_is_a_Configuration_ What_is_a_Configuration_.htm Not Specified What is an ontology? What_is_an_ontology_ html\What_is_an_ontology_.htm Not Specified What is Phenote? What_is_Phenote_ html\What_is_OBO_Edit_.htm Not Specified What is Phenote? What_is_Phenote html\What_is_Phenote_.htm Not Specified @@ -162,3 +165,4 @@ Working with Selections Working_with_Selections html\Working_with_Selections.htm Not Specified Working with Synonym Categories Working_with_Synonym_Categories html\Working_with_Synonym_Categories.htm Not Specified Working with XML Layouts Working_with_XML_Layouts html\Working_with_XML_Layouts.htm Not Specified +XML skeleton XML_skeleton XML_skeleton.htm Not Specified This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-04 23:46:25
|
Revision: 558 http://svn.sourceforge.net/obo/?rev=558&view=rev Author: nlw Date: 2007-05-04 16:46:25 -0700 (Fri, 04 May 2007) Log Message: ----------- Changes to help stuff. Started defining the xml spec for configuration following John's basic outline. I want this to take over for the current configuration web page. Modified Paths: -------------- phenote/trunk/doc/phenote-website/help/Phenote.jhm phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak phenote/trunk/doc/phenote-website/help/Phenote.prj phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak phenote/trunk/doc/phenote-website/help/html/How_To_Edit_a_Configuration_File.htm Modified: phenote/trunk/doc/phenote-website/help/Phenote.jhm =================================================================== --- phenote/trunk/doc/phenote-website/help/Phenote.jhm 2007-05-04 21:40:43 UTC (rev 557) +++ phenote/trunk/doc/phenote-website/help/Phenote.jhm 2007-05-04 23:46:25 UTC (rev 558) @@ -120,6 +120,8 @@ <mapID target="Term_Info" url="html/Term_Info.htm"/> <mapID target="Text_Checks" url="html/Text_Checks.htm"/> <mapID target="Text_Editing" url="html/Text_Editing.htm"/> + <mapID target="The__field__Tag" url="The__field__Tag.htm"/> + <mapID target="The__ontology__Tag" url="The__ontology__Tag.htm"/> <mapID target="The_Scroller_Tag" url="html/The_Basic_Flat_File_Interface.htm"/> <mapID target="The_Box_Tag" url="html/The_Box_Tag.htm"/> <mapID target="The_Category_Manager_Plugin" url="html/The_Category_Manager_Plugin.htm"/> @@ -162,6 +164,7 @@ <mapID target="Undo_Redo" url="html/Undo_Redo.htm"/> <mapID target="User_Defined_Checks" url="html/User_Defined_Checks.htm"/> <mapID target="Using_Filters" url="html/Using_Filters.htm"/> + <mapID target="What_is_a_Configuration_" url="What_is_a_Configuration_.htm"/> <mapID target="What_is_an_ontology_" url="html/What_is_an_ontology_.htm"/> <mapID target="What_is_Phenote_" url="html/What_is_OBO_Edit_.htm"/> <mapID target="What_is_Phenote" url="html/What_is_Phenote_.htm"/> @@ -173,6 +176,7 @@ <mapID target="Working_with_Selections" url="html/Working_with_Selections.htm"/> <mapID target="Working_with_Synonym_Categories" url="html/Working_with_Synonym_Categories.htm"/> <mapID target="Working_with_XML_Layouts" url="html/Working_with_XML_Layouts.htm"/> + <mapID target="XML_skeleton" url="XML_skeleton.htm"/> <!-- Index Bookmarks --> Modified: phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak =================================================================== --- phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak 2007-05-04 21:40:43 UTC (rev 557) +++ phenote/trunk/doc/phenote-website/help/Phenote.jhm.bak 2007-05-04 23:46:25 UTC (rev 558) @@ -120,6 +120,8 @@ <mapID target="Term_Info" url="html/Term_Info.htm"/> <mapID target="Text_Checks" url="html/Text_Checks.htm"/> <mapID target="Text_Editing" url="html/Text_Editing.htm"/> + <mapID target="The__field__Tag" url="The__field__Tag.htm"/> + <mapID target="The__ontology__Tag" url="The__ontology__Tag.htm"/> <mapID target="The_Scroller_Tag" url="html/The_Basic_Flat_File_Interface.htm"/> <mapID target="The_Box_Tag" url="html/The_Box_Tag.htm"/> <mapID target="The_Category_Manager_Plugin" url="html/The_Category_Manager_Plugin.htm"/> @@ -162,6 +164,7 @@ <mapID target="Undo_Redo" url="html/Undo_Redo.htm"/> <mapID target="User_Defined_Checks" url="html/User_Defined_Checks.htm"/> <mapID target="Using_Filters" url="html/Using_Filters.htm"/> + <mapID target="What_is_a_Configuration_" url="What_is_a_Configuration_.htm"/> <mapID target="What_is_an_ontology_" url="html/What_is_an_ontology_.htm"/> <mapID target="What_is_Phenote_" url="html/What_is_OBO_Edit_.htm"/> <mapID target="What_is_Phenote" url="html/What_is_Phenote_.htm"/> @@ -173,6 +176,7 @@ <mapID target="Working_with_Selections" url="html/Working_with_Selections.htm"/> <mapID target="Working_with_Synonym_Categories" url="html/Working_with_Synonym_Categories.htm"/> <mapID target="Working_with_XML_Layouts" url="html/Working_with_XML_Layouts.htm"/> + <mapID target="XML_skeleton" url="XML_skeleton.htm"/> <!-- Index Bookmarks --> Modified: phenote/trunk/doc/phenote-website/help/Phenote.prj =================================================================== --- phenote/trunk/doc/phenote-website/help/Phenote.prj 2007-05-04 21:40:43 UTC (rev 557) +++ phenote/trunk/doc/phenote-website/help/Phenote.prj 2007-05-04 23:46:25 UTC (rev 558) @@ -3,7 +3,7 @@ images=images ccs=htmlhelp.css i=phenote.hhk -last_path=C:\Documents and Settings\Nicole\Desktop\phenote-helper\html +last_path=C:\Documents and Settings\Nicole\Desktop\phenote-help-docs prefix list=IDH_, preview=1 css=C:\Documents and Settings\Nicole\Desktop\phenote-help-docs\javahelp.css Modified: phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml 2007-05-04 21:40:43 UTC (rev 557) +++ phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml 2007-05-04 23:46:25 UTC (rev 558) @@ -46,9 +46,13 @@ <tocitem text="Other Uses for Phenote" target="Other_Uses_for_Phenote"/> </tocitem> <tocitem text="Customizing Phenote"> + <tocitem text="What is a Configuration?" target="What_is_a_Configuration_"/> <tocitem text="Example Interfaces"/> <tocitem text="How To Edit a Configuration File" target="How_To_Edit_a_Configuration_File"/> <tocitem text="Ontology Updates" target="Ontologies"/> + <tocitem text="XML skeleton" target="XML_skeleton"/> + <tocitem text="The <field> Tag" target="The__field__Tag"/> + <tocitem text="The <ontology> Tag" target="The__ontology__Tag"/> </tocitem> <tocitem text="Appendix"> <tocitem text="An Introduction to OBO Ontologies" target="An_Introduction_to_OBO_Ontologies"/> Modified: phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak =================================================================== --- phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak 2007-05-04 21:40:43 UTC (rev 557) +++ phenote/trunk/doc/phenote-website/help/PhenoteTOC.xml.bak 2007-05-04 23:46:25 UTC (rev 558) @@ -25,9 +25,12 @@ <tocitem text="Changing your Configuration" target="Changing_your_Configuration"/> </tocitem> <tocitem text="Loading/Saving Annotations"> + <tocitem text="Introduction to Data Adapters" target="Introduction_to_Adapters"/> <tocitem text="Loading & Saving" target="Loading___Saving"/> - <tocitem text="Introduction to Data Adapters" target="Introduction_to_Adapters"/> - <tocitem text="Phenote Data Formats" target="Data_Formats"/> + <tocitem text="The PhenoXML adapter" target="Data_Formats"/> + <tocitem text="The PhenoSyntax Adapter" target="The_PhenoSyntax_Adapter"/> + <tocitem text="The Tag-Value Adapter" target="The_tag_value_adapter"/> + <tocitem text="The Tab-Delimited Adapter" target="The_Tab_Delimited_Adapter"/> </tocitem> <tocitem text="Creating Annotations"> <tocitem text="Editing Functions"/> @@ -43,9 +46,13 @@ <tocitem text="Other Uses for Phenote" target="Other_Uses_for_Phenote"/> </tocitem> <tocitem text="Customizing Phenote"> + <tocitem text="What is a Configuration?" target="What_is_a_Configuration_"/> <tocitem text="Example Interfaces"/> <tocitem text="How To Edit a Configuration File" target="How_To_Edit_a_Configuration_File"/> <tocitem text="Ontology Updates" target="Ontologies"/> + <tocitem text="XML skeleton" target="XML_skeleton"/> + <tocitem text="The <field> Tag" target="The__field__Tag"/> + <tocitem text="The <ontology> Tag" target="The__ontology__Tag"/> </tocitem> <tocitem text="Appendix"> <tocitem text="An Introduction to OBO Ontologies" target="An_Introduction_to_OBO_Ontologies"/> Modified: phenote/trunk/doc/phenote-website/help/html/How_To_Edit_a_Configuration_File.htm =================================================================== --- phenote/trunk/doc/phenote-website/help/html/How_To_Edit_a_Configuration_File.htm 2007-05-04 21:40:43 UTC (rev 557) +++ phenote/trunk/doc/phenote-website/help/html/How_To_Edit_a_Configuration_File.htm 2007-05-04 23:46:25 UTC (rev 558) @@ -1,12 +1,137 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> -<HTML> -<HEAD> -<META NAME="GENERATOR" CONTENT="Solutionsoft HelpBreeze JavaHelp Edition"> -<TITLE>How To Edit a Configuration File</TITLE> -<LINK REL="stylesheet" TYPE="text/css" HREF=../javahelp.css> -</HEAD> -<BODY BGCOLOR=#ffffff> -<H1>How To Edit a Configuration File</H1> -<P> </P> -</BODY> -</HTML> \ No newline at end of file +<html> +<head> +<meta name="GENERATOR" content="Solutionsoft HelpBreeze JavaHelp Edition"> +<title>How To Edit a Configuration File</title> +<link rel="stylesheet" type="text/css" href="../javahelp.css"> +</head> +<body bgcolor="#ffffff"> +<h1>How To Edit a Configuration File</h1> +<p> </p><!--#include virtual="/ssi/header.html" --> + +<div id="page_body"><!--#include virtual="/ssi/navi_howtos.html" --> + +<div id="main_content"> + + +<h1><a name="config">How-To: Customize Phenote</a></h1> + +<h2>Background</h2> +<p>Phenote can be customized to your specifications, including the input fields you desire, the ontologies from which those fields are populated with, and the output format used. Currently (in version 1.1), this configuration must be done by hand-editing a text file (see notes below). We are developing a built-in GUI that will achieve the same result without having to fiddle with the text file. This page explains the location and process of editing the configuration file used when Phenote loads. +</p> +<p>This site is being updated with new content on a fairly regular basis. Please check back often for new information. In the mean time, if you have questions, you can <A href="/content/about/"> contact us </A> with questions.</p> + +<h2>The basics</h2> + +<p>Make sure you've already tried running the webstart edition of phenote. Running this once should leave a directory on your computer called ".phenote". + <ul> + <li>On a Mac, you will find this located under the + MacintoshHD:Users:YourAccount directory, although you probably will not see it + in a "finder" window. You do have access to it if you run a "terminal" window. + It will be located in your user directory. + <li>On a PC, this is located in the C:/Documents and Settings/YourAccount/ + </li> + </ul> +<P></P> + +<h2>Location of your configuration file</h2> +<p> The configuration files used by Phenote are located in the ".phenote/conf" directory. +</p> +<p> +Within this directory you can store any number of configuration files. The default files that come with the webstart versions are named "flybase.cfg", "zfin-standalone.cfg", or "human.cfg", depending on which version you've used in the past. Any file you create/modify should be placed in this directory. +</p> + +<h2>How to change your Phenote configuration</h2> +<p> +Once you have placed or modified your configuration file in the ".phenote/conf" directory, you need to tell Phenote to use that particular file. + +Note that with Phenote v1.1 or later, the user can choose a different configuration from the "File" menu. +When you select "Load Configuration", you are prompted with a list of options. (In v1.2beta, this option is under the "Settings" menu.) +Listed are several configuration styles that come standard with the Phenote software, with the current choice's radio-button selected. +If you have created your own custom configuration file with a ".cfg" extension, it should be listed here. +After selecting (the radio button) for a new configuration, press "OK", or press "Cancel" to revert to your previous selection. +Any changes to your configuration settings will take effect the next time Phenote is loaded. +</p> +<p> +Then, you should be able to start phenote with the same webstart link as before, but it should load with this new configuration. you can also start it by double-clicking on the java icon that downloaded to your desktop called "phenote.jnlp". +</p> +<h2>Location to put your personal obo files</h2> +<p>To get a custom ontology that is local and not on SF, you'll have to copy it into ".phenote/obo-files/". Any reference to this ontology within your configuration file must match the filename. +</p> +<h2>Making edits to a config file</h2> +<p>You can download a sample configuration file <A href="/demo.cfg">here</A>. Descriptive images on this page are taken from this demo.cfg configuration file.</p> +<p>As a precaution, if you edit your own configuration file, be sure to save it as a new filename to prevent any accidental overwriting by our server if you upgrate to a new version. + +<h3>Data Adapters</h3> +<IMG src="/images/config-data-adapter.png" align=right caption="Figure 1"> +<p> +The first customizable items in the configuration file are the Data Adapters (see Figure 1). Any developer can write their own data adapter and plug it into the configuration for use during file loading and saving, or for database retrieval. If you are interested in writing your own data adapter, please read the <A href="/developer-docs/dataadapter.html"> Data Adapter developer documentation</A>. <p> +<p> +You can add your customized data adapter at the top of the file. Additionally you can specify if it is "enabled". Enabling a data adapter makes it available during load/save functions. In the case of the example in Figure 1, the PhenoXML and NEXUS data adapters are disabled, while the phenosyntax and delimited adapters are enabled. </p> +<p> WARNING: Be sure to enable at least one data adapter, otherwise you will be unable to save your annotations.</p> + +<h3>Uvic-graph, term-history</h3> +<p>These items are currently under development. By default, these are disabled for the user.</p> + +<h2>Fields, types</h2> +<IMG src="/images/config-field3.png" width="100%" align=right caption="Figure 2"> +Each input field is given a designation in the xml file. +<h3>Field types: free-text, ontology</h3> +<p>Currently there are two types of input fields for phenote: free-text or ontology. By default, if an ontology file is not specified for a field, it is designated as a free-text field. (This will soon be expanded to include ints, floats, and boolean value-types.</p> + +<h3>Field name</h3> +<p>For each entry field, it is given a name. This name is used in the Phenote application for the input area, the column headings of the data table, and for the tab-delimited output file.</p> + +<h3>Enabling</h3> +<p>Similar to other configuration options, you can enable/disable items from the configuration. A field can be disabled by setting enable="false"</p> + +<h2>Ontology fields</h2> +For fields in which terms from ontologies will be used as instances, the ontologies themselves need to be specified. One or more ontologies can be used for each field. If >1 ontology is specified, they will show up in a drop-down box for selection. The type-ahead suggestion/autocompletion feature utilizes these ontologies specified for each field. +<h3>Ontology name</h3> +<p>For each ontology, specify the name to display in the drop-down box.</p> +<h3>Ontology file</h3> +<p>For each ontology, specify the name of the file to be loaded into Phenote. (if you are using an ontology file that does not come pre-packaged with Phenote, please copy it into the ".phenote/obo-files" directory.)</p> +<h3>Repository location</h3> +<p>For automated checking of updates to ontologies located at obo-sourceforge, you can specify the repository subdirectory here. For example, the "chebi.obo" is located within the chemical subdirectory of the repository. Specifying the repository location is NOT REQUIRED; however you will have to perform updates to your ontology files manually.</p> +<h3>Updating ontologies from external sources</h3> +<p>Ontology files used in fields (see below) can be acquired and updated from external sources. Currently, this is usually configured to retrieve from the obo-foundry at obo.sourceforge.net. Soon, you will be able to retrieve your file from any external site that has a valid URL.</p> +<p>There are three parts to the update: (1) specifying the repository base URL, (2) whether you want your files to be updated at the start of each Phenote session, and (3) how long you would like the prompter to wait before proceeding with the program loading.</p> + +<p><b>obo-repos</b>-As marked in Figure 2, to specify the repository url include the following line. <br > <ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/> <br ></p> +<p>This will only update those ontology fields in which you have specified a "repos-subdir".</p> +<p>To including a time-out or auto-update feature for your Phenote session, be sure to include the following two lines: <br > +<ns:auto-update-ontologies enable="true"/><br > + <ns:update-timer timer="10"/><br > </p> +<p>The following table describes how these two options work together: +<table border=1 width=500> + <tr> + <th colspan=2 rowspan=2 width=100></th> + <th colspan=2>Auto Update Ontologies</th> + </tr> + <tr> + <th>True</th> + <th>False</th> + </tr> + <tr> + <th rowspan=2>Timer (sec)</th> + <th><i>t</i> = 0 </th> + <td>Will auto update without prompting. <b>(Default</b>)</td> + <td>Will never update and will not notify you if there are updates.</td> + </tr> + <tr> + <th> <i>t</i> > 0 </th> + <td>Will notify you if an updated file is available and wait <i>t</i> seconds for answer, then will auto update.</td> + <td>Will notify you if an updated file is available and wait <i>t</i> seconds for answer, then will bypass update.</td> + </tr> +</table> + +If you don't include these items in the configuration, the default is to automatically update from a repository without asking your permission.</p> + +<h3>Post-composition</h3> +<p>To enable post-composition for any ontology-based field, be sure to specify the relationship ontology file as "is_postcomp_rel=true", as is shown for the Entity field in Figure 2.</p> + +</div> +</div><!--#include virtual="/ssi/footer.shtml" --> + +</body> +</html> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-04 21:40:52
|
Revision: 557 http://svn.sourceforge.net/obo/?rev=557&view=rev Author: nlw Date: 2007-05-04 14:40:43 -0700 (Fri, 04 May 2007) Log Message: ----------- more edits Modified Paths: -------------- phenote/trunk/doc/phenote-website/content/howtos/customize.shtml Modified: phenote/trunk/doc/phenote-website/content/howtos/customize.shtml =================================================================== --- phenote/trunk/doc/phenote-website/content/howtos/customize.shtml 2007-05-04 21:34:38 UTC (rev 556) +++ phenote/trunk/doc/phenote-website/content/howtos/customize.shtml 2007-05-04 21:40:43 UTC (rev 557) @@ -88,12 +88,12 @@ <p>Ontology files used in fields (see below) can be acquired and updated from external sources. Currently, this is usually configured to retrieve from the obo-foundry at obo.sourceforge.net. Soon, you will be able to retrieve your file from any external site that has a valid URL.</p> <p>There are three parts to the update: (1) specifying the repository base URL, (2) whether you want your files to be updated at the start of each Phenote session, and (3) how long you would like the prompter to wait before proceeding with the program loading.</p> -<p><b>obo-repos</b>-As marked in Figure 2, to specify the repository url include the following line. <br /> ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/. <br /> -This will only update those ontology fields in which you have specified a "repos-subdir".</p> +<p><b>obo-repos</b>-As marked in Figure 2, to specify the repository url include the following line. <br /> <ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/> <br /></p> +<p>This will only update those ontology fields in which you have specified a "repos-subdir".</p> <p>To including a time-out or auto-update feature for your Phenote session, be sure to include the following two lines: <br /> -<ns:auto-update-ontologies enable="true"/><br /> - <ns:update-timer timer="10"/><br /> -The following table describes how these two options work together: +<ns:auto-update-ontologies enable="true"/><br /> + <ns:update-timer timer="10"/><br /> </p> +<p>The following table describes how these two options work together: <table border=1 width=500> <tr> <th colspan=2 rowspan=2 width=100></th> @@ -116,7 +116,7 @@ </tr> </table> - <p>If you don't include these items in the configuration, the default is to automatically update from a repository without asking your permission.</p> +If you don't include these items in the configuration, the default is to automatically update from a repository without asking your permission.</p> <h3>Post-composition</h3> <p>To enable post-composition for any ontology-based field, be sure to specify the relationship ontology file as "is_postcomp_rel=true", as is shown for the Entity field in Figure 2.</p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-04 21:34:37
|
Revision: 556 http://svn.sourceforge.net/obo/?rev=556&view=rev Author: nlw Date: 2007-05-04 14:34:38 -0700 (Fri, 04 May 2007) Log Message: ----------- more modifications to the customize how-to Modified Paths: -------------- phenote/trunk/doc/phenote-website/content/howtos/customize.shtml Modified: phenote/trunk/doc/phenote-website/content/howtos/customize.shtml =================================================================== --- phenote/trunk/doc/phenote-website/content/howtos/customize.shtml 2007-05-04 21:25:32 UTC (rev 555) +++ phenote/trunk/doc/phenote-website/content/howtos/customize.shtml 2007-05-04 21:34:38 UTC (rev 556) @@ -64,11 +64,31 @@ <h3>Uvic-graph, term-history</h3> <p>These items are currently under development. By default, these are disabled for the user.</p> +<h2>Fields, types</h2> +<img src="/images/config-field3.png" align="right" width="100%" caption="Figure 2"> +Each input field is given a designation in the xml file. +<h3>Field types: free-text, ontology</h3> +<p>Currently there are two types of input fields for phenote: free-text or ontology. By default, if an ontology file is not specified for a field, it is designated as a free-text field. (This will soon be expanded to include ints, floats, and boolean value-types.</p> + +<h3>Field name</h3> +<p>For each entry field, it is given a name. This name is used in the Phenote application for the input area, the column headings of the data table, and for the tab-delimited output file.</p> + +<h3>Enabling</h3> +<p>Similar to other configuration options, you can enable/disable items from the configuration. A field can be disabled by setting enable="false"</p> + +<h2>Ontology fields</h2> +For fields in which terms from ontologies will be used as instances, the ontologies themselves need to be specified. One or more ontologies can be used for each field. If >1 ontology is specified, they will show up in a drop-down box for selection. The type-ahead suggestion/autocompletion feature utilizes these ontologies specified for each field. +<h3>Ontology name</h3> +<p>For each ontology, specify the name to display in the drop-down box.</p> +<h3>Ontology file</h3> +<p>For each ontology, specify the name of the file to be loaded into Phenote. (if you are using an ontology file that does not come pre-packaged with Phenote, please copy it into the ".phenote/obo-files" directory.)</p> +<h3>Repository location</h3> +<p>For automated checking of updates to ontologies located at obo-sourceforge, you can specify the repository subdirectory here. For example, the "chebi.obo" is located within the chemical subdirectory of the repository. Specifying the repository location is NOT REQUIRED; however you will have to perform updates to your ontology files manually.</p> <h3>Updating ontologies from external sources</h3> <p>Ontology files used in fields (see below) can be acquired and updated from external sources. Currently, this is usually configured to retrieve from the obo-foundry at obo.sourceforge.net. Soon, you will be able to retrieve your file from any external site that has a valid URL.</p> <p>There are three parts to the update: (1) specifying the repository base URL, (2) whether you want your files to be updated at the start of each Phenote session, and (3) how long you would like the prompter to wait before proceeding with the program loading.</p> -<p>To specify the repository url include the following line. <br /> <ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/>. <br /> +<p><b>obo-repos</b>-As marked in Figure 2, to specify the repository url include the following line. <br /> ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/. <br /> This will only update those ontology fields in which you have specified a "repos-subdir".</p> <p>To including a time-out or auto-update feature for your Phenote session, be sure to include the following two lines: <br /> <ns:auto-update-ontologies enable="true"/><br /> @@ -87,39 +107,17 @@ <th rowspan=2>Timer (sec)</th> <th><i>t</i> = 0 </th> <td>Will auto update without prompting. <b>(Default</b>)</td> - <td>Will never update</td> + <td>Will never update and will not notify you if there are updates.</td> </tr> <tr> <th> <i>t</i> > 0 </th> - <td>Will wait <i>time</i> seconds for answer, then will auto update.</td> - <td>Will wait <i>time</i> seconds for answer, then will bypass update.</td> + <td>Will notify you if an updated file is available and wait <i>t</i> seconds for answer, then will auto update.</td> + <td>Will notify you if an updated file is available and wait <i>t</i> seconds for answer, then will bypass update.</td> </tr> </table> <p>If you don't include these items in the configuration, the default is to automatically update from a repository without asking your permission.</p> -</p> -<h2>Fields, types</h2> -<img src="/images/config-field3.png" align="right" width="100%" caption="Figure 2"> -Each input field is given a designation in the xml file. -<h3>Field types: free-text, ontology</h3> -<p>Currently there are two types of input fields for phenote: free-text or ontology. By default, if an ontology file is not specified for a field, it is designated as a free-text field. (This will soon be expanded to include ints, floats, and boolean value-types.</p> - -<h3>Field name</h3> -<p>For each entry field, it is given a name. This name is used in the Phenote application for the input area, the column headings of the data table, and for the tab-delimited output file.</p> - -<h3>Enabling</h3> -<p>Similar to other configuration options, you can enable/disable items from the configuration. A field can be disabled by setting enable="false"</p> - -<h2>Ontology fields</h2> -For fields in which terms from ontologies will be used as instances, the ontologies themselves need to be specified. One or more ontologies can be used for each field. If >1 ontology is specified, they will show up in a drop-down box for selection. The type-ahead suggestion/autocompletion feature utilizes these ontologies specified for each field. -<h3>Ontology name</h3> -<p>For each ontology, specify the name to display in the drop-down box.</p> -<h3>Ontology file</h3> -<p>For each ontology, specify the name of the file to be loaded into Phenote. (if you are using an ontology file that does not come pre-packaged with Phenote, please copy it into the ".phenote/obo-files" directory.)</p> -<h3>Repository location</h3> -<p>For automated checking of updates to ontologies located at obo-sourceforge, you can specify the repository subdirectory here. For example, the "chebi.obo" is located within the chemical subdirectory of the repository. Specifying the repository location is NOT REQUIRED; however you will have to perform updates to your ontology files manually.</p> -<p>NOTE: The current version of phenote can only update from a single repository, such as obo-sourceforge. We are currently expanding this feature to update each file independently from any repository.</p> <h3>Post-composition</h3> <p>To enable post-composition for any ontology-based field, be sure to specify the relationship ontology file as "is_postcomp_rel=true", as is shown for the Entity field in Figure 2.</p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-04 21:25:31
|
Revision: 555 http://svn.sourceforge.net/obo/?rev=555&view=rev Author: nlw Date: 2007-05-04 14:25:32 -0700 (Fri, 04 May 2007) Log Message: ----------- added docs about timing/auto-update Modified Paths: -------------- phenote/trunk/doc/phenote-website/content/howtos/customize.shtml Modified: phenote/trunk/doc/phenote-website/content/howtos/customize.shtml =================================================================== --- phenote/trunk/doc/phenote-website/content/howtos/customize.shtml 2007-05-04 20:29:32 UTC (rev 554) +++ phenote/trunk/doc/phenote-website/content/howtos/customize.shtml 2007-05-04 21:25:32 UTC (rev 555) @@ -62,8 +62,43 @@ <p> WARNING: Be sure to enable at least one data adapter, otherwise you will be unable to save your annotations.</p> <h3>Uvic-graph, term-history</h3> -These items are currently under development. By default, these are disabled for the user. +<p>These items are currently under development. By default, these are disabled for the user.</p> +<h3>Updating ontologies from external sources</h3> +<p>Ontology files used in fields (see below) can be acquired and updated from external sources. Currently, this is usually configured to retrieve from the obo-foundry at obo.sourceforge.net. Soon, you will be able to retrieve your file from any external site that has a valid URL.</p> +<p>There are three parts to the update: (1) specifying the repository base URL, (2) whether you want your files to be updated at the start of each Phenote session, and (3) how long you would like the prompter to wait before proceeding with the program loading.</p> + +<p>To specify the repository url include the following line. <br /> <ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/>. <br /> +This will only update those ontology fields in which you have specified a "repos-subdir".</p> +<p>To including a time-out or auto-update feature for your Phenote session, be sure to include the following two lines: <br /> +<ns:auto-update-ontologies enable="true"/><br /> + <ns:update-timer timer="10"/><br /> +The following table describes how these two options work together: +<table border=1 width=500> + <tr> + <th colspan=2 rowspan=2 width=100></th> + <th colspan=2>Auto Update Ontologies</th> + </tr> + <tr> + <th>True</th> + <th>False</th> + </tr> + <tr> + <th rowspan=2>Timer (sec)</th> + <th><i>t</i> = 0 </th> + <td>Will auto update without prompting. <b>(Default</b>)</td> + <td>Will never update</td> + </tr> + <tr> + <th> <i>t</i> > 0 </th> + <td>Will wait <i>time</i> seconds for answer, then will auto update.</td> + <td>Will wait <i>time</i> seconds for answer, then will bypass update.</td> + </tr> +</table> + + <p>If you don't include these items in the configuration, the default is to automatically update from a repository without asking your permission.</p> + +</p> <h2>Fields, types</h2> <img src="/images/config-field3.png" align="right" width="100%" caption="Figure 2"> Each input field is given a designation in the xml file. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-04 20:29:36
|
Revision: 554 http://svn.sourceforge.net/obo/?rev=554&view=rev Author: nlw Date: 2007-05-04 13:29:32 -0700 (Fri, 04 May 2007) Log Message: ----------- *Added timing mechanism for ontology loading. Popup will show up if the timer is set >0. Will follow rule set by "auto-update" in configuration. *Created a separate synch-ontology dialog gui class *Changed conf/ configuration files to include these items. default is to auto update from now on. *added web address of www.phenote.org/help for the help menu option. Modified Paths: -------------- phenote/trunk/conf/demo.cfg phenote/trunk/conf/flybase.cfg phenote/trunk/conf/go-function-process.cfg phenote/trunk/conf/mp-xp.cfg phenote/trunk/conf/ncbo.cfg phenote/trunk/conf/worm.cfg phenote/trunk/conf/zfin-standalone.cfg phenote/trunk/src/java/phenote/config/Config.java phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java phenote/trunk/src/java/phenote/gui/HelpMenu.java Added Paths: ----------- phenote/trunk/src/java/phenote/gui/SynchOntologyDialog.java Modified: phenote/trunk/conf/demo.cfg =================================================================== --- phenote/trunk/conf/demo.cfg 2007-05-04 02:09:49 UTC (rev 553) +++ phenote/trunk/conf/demo.cfg 2007-05-04 20:29:32 UTC (rev 554) @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<ns:phenote-configuration version="1.1.2" xmlns:ns="phenote/config/xml"> +<ns:phenote-configuration version="1.3.1" xmlns:ns="phenote/config/xml"> <ns:log config-file="conf/log4j-standalone.xml"/> <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="true"/> @@ -10,6 +10,10 @@ <ns:uvic-graph enable="false"/> <ns:term-history enable="false"/> + + <ns:auto-update-ontologies enable="true"/> <!--true=update; false=don't update--> + <ns:update-timer timer="0"/><!--set to 0 if you want to bypass the check; time in seconds--> + <ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/> Modified: phenote/trunk/conf/flybase.cfg =================================================================== --- phenote/trunk/conf/flybase.cfg 2007-05-04 02:09:49 UTC (rev 553) +++ phenote/trunk/conf/flybase.cfg 2007-05-04 20:29:32 UTC (rev 554) @@ -1,50 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ns:phenote-configuration version="1.3.1" xmlns:ns="phenote/config/xml"> -<phenote-configuration version="1.1.3" xmlns="phenote/config/xml" noNamespaceSchemaLocation="phenote-config.xsd"> - - <dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" + <ns:dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> - <dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" + <ns:dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" enable="false"/> - <dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="false"/> + <ns:dataadapter name="phenote.dataadapter.phenoxml.PhenoXmlAdapter" enable="false"/> - <log config-file="conf/log4j-standalone.xml" /> + <ns:log config-file="conf/log4j-standalone.xml" /> - <uvic-graph enable="false"/> - <term-history enable="false"/> + <ns:uvic-graph enable="false"/> + <ns:term-history enable="false"/> + <ns:auto-update-ontologies enable="true"/> <!--true=update; false=don't update--> + <ns:update-timer timer="0"/><!--set to 0 if you want to bypass the check; time in seconds--> + + - <obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/> + <ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/> - <field name="Pub" syntax-abbrev="PUB"/> + <ns:field name="Pub" syntax-abbrev="PUB"/> - <field name="Genotype" syntax-abbrev="GT" type="free_text"/> + <ns:field name="Genotype" syntax-abbrev="GT" type="free_text"/> - <field name="Genetic Context" syntax-abbrev="GC"> - <ontology file="context.obo"/> - </field> + <ns:field name="Genetic Context" syntax-abbrev="GC"> + <ns:ontology file="context.obo"/> + </ns:field> - <field name="Entity" syntax-abbrev="E"> + <ns:field name="Entity" syntax-abbrev="E"> <!-- postcomp relationship-ontology="relationship.obo" repos-subdir="OBO_REL"/ --> - <ontology name="Relationship" file="relationship.obo" is-postcomp-rel="true" repos-subdir="OBO_REL"/> - <ontology name="Fly" file="fly_anatomy.obo" - repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fly"/> - <ontology name="Human Anatomy" file="fma_obo.obo"/> - <ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/> - <ontology name="SP" file="spatial.obo"/> - </field> + <ns:ontology name="Relationship" file="relationship.obo" is-postcomp-rel="true" repos-subdir="OBO_REL"/> + <ns:ontology name="Fly" file="fly_anatomy.obo" /> + <!--repos-subdir="anatomy/gross_anatomy/animal_gross_anatomy/fly"--> + <ns:ontology name="Human Anatomy" file="fma_obo.obo"/> + <ns:ontology name="GO" file="gene_ontology.obo" repos-subdir="genomic-proteomic"/> + <ns:ontology name="SP" file="spatial.obo"/> + </ns:field> - <field name="Quality" syntax-abbrev="Q"> - <ontology file="quality.obo" repos-subdir="phenotype" /> - </field> + <ns:field name="Quality" syntax-abbrev="Q"> + <ns:ontology file="quality.obo" repos-subdir="phenotype" /> + </ns:field> - <field name="Absent" syntax-abbrev="Tag"> - <ontology file="quality.obo" slim="absent_slim" /> - </field> + <ns:field name="Absent" syntax-abbrev="Tag"> + <ns:ontology file="quality.obo" slim="absent_slim" /> + </ns:field> - <field name="Abnormal" syntax-abbrev="Tag"> - <ontology file="quality.obo" slim="abnormal_slim" /> - </field> + <ns:field name="Abnormal" syntax-abbrev="Tag"> + <ns:ontology file="quality.obo" slim="abnormal_slim" /> + </ns:field> - <field name="Description" syntax-abbrev="Desc"/> + <ns:field name="Description" syntax-abbrev="Desc"/> -</phenote-configuration> +</ns:phenote-configuration> Modified: phenote/trunk/conf/go-function-process.cfg =================================================================== --- phenote/trunk/conf/go-function-process.cfg 2007-05-04 02:09:49 UTC (rev 553) +++ phenote/trunk/conf/go-function-process.cfg 2007-05-04 20:29:32 UTC (rev 554) @@ -1,5 +1,5 @@ -<phenote-configuration version="1.2" xmlns="phenote/config/xml" noNamespaceSchemaLocation="phenote-config.xsd"> +<phenote-configuration version="1.3.1" xmlns="phenote/config/xml" noNamespaceSchemaLocation="phenote-config.xsd"> <dataadapter name="delimited" enable="true"/> <dataadapter name="phenosyntax" enable="true"/> @@ -10,6 +10,9 @@ <uvic-graph enable="false"/> <term-history enable="false"/> + <auto-update-ontologies enable="true"/> <!--true=update; false=don't update--> + <update-timer timer="0"/><!--set to 0 if you want to bypass the check; time in seconds--> + <obo-repository url-dir="http://purl.org/obo/obo-all/"/> Modified: phenote/trunk/conf/mp-xp.cfg =================================================================== --- phenote/trunk/conf/mp-xp.cfg 2007-05-04 02:09:49 UTC (rev 553) +++ phenote/trunk/conf/mp-xp.cfg 2007-05-04 20:29:32 UTC (rev 554) @@ -1,5 +1,5 @@ -<phenote-configuration version="1.2" xmlns="phenote/config/xml" noNamespaceSchemaLocation="phenote-config.xsd"> +<phenote-configuration version="1.3.1" xmlns="phenote/config/xml" noNamespaceSchemaLocation="phenote-config.xsd"> <dataadapter name="delimited" enable="true"/> <dataadapter name="phenosyntax" enable="true"/> @@ -10,6 +10,9 @@ <uvic-graph enable="false"/> <term-history enable="false"/> + <auto-update-ontologies enable="true"/> <!--true=update; false=don't update--> + <update-timer timer="0"/><!--set to 0 if you want to bypass the check; time in seconds--> + <obo-repository url-dir="http://purl.org/obo/obo-all/"/> Modified: phenote/trunk/conf/ncbo.cfg =================================================================== --- phenote/trunk/conf/ncbo.cfg 2007-05-04 02:09:49 UTC (rev 553) +++ phenote/trunk/conf/ncbo.cfg 2007-05-04 20:29:32 UTC (rev 554) @@ -1,4 +1,4 @@ -<?xml version="1.2beta1" encoding="UTF-8"?> +<?xml version="1.3.1" encoding="UTF-8"?> <ns:phenote-configuration version="1.1.2" xmlns:ns="phenote/config/xml"> <ns:log config-file="conf/log4j-standalone.xml"/> @@ -8,6 +8,9 @@ <ns:uvic-graph enable="false"/> <ns:term-history enable="false"/> + <ns:auto-update-ontologies enable="true"/> <!--true=update; false=don't update--> + <ns:update-timer timer="0"/><!--set to 0 if you want to bypass the check; time in seconds--> + <ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/> <ns:field name="Pub" syntax-abbrev="PUB" enable="true"/> <ns:field name="Genotype" syntax-abbrev="GT" enable="true"/> Modified: phenote/trunk/conf/worm.cfg =================================================================== --- phenote/trunk/conf/worm.cfg 2007-05-04 02:09:49 UTC (rev 553) +++ phenote/trunk/conf/worm.cfg 2007-05-04 20:29:32 UTC (rev 554) @@ -1,4 +1,4 @@ -<phenote-configuration version="1.1.1" xmlns="phenote/config/xml" xmlns:xsi="http://www.w3.org/1999/XMLSchema/instance" schemaLocation="phenote-config.xsd"> +<phenote-configuration version="1.3.1" xmlns="phenote/config/xml" xmlns:xsi="http://www.w3.org/1999/XMLSchema/instance" schemaLocation="phenote-config.xsd"> <dataadapter name="phenote.dataadapter.delimited.DelimitedFileAdapter" enable="true"/> <dataadapter name="phenote.dataadapter.phenosyntax.PhenoSyntaxFileAdapter" @@ -13,6 +13,9 @@ <uvic-graph enable="false"/> <term-history enable="false"/> + <auto-update-ontologies enable="true"/> <!--true=update; false=don't update--> + <update-timer timer="0"/><!--set to 0 if you want to bypass the check; time in seconds--> + <obo-repository url-dir="http://www.berkeleybop.org/ontologies/obo-all/"/> Modified: phenote/trunk/conf/zfin-standalone.cfg =================================================================== --- phenote/trunk/conf/zfin-standalone.cfg 2007-05-04 02:09:49 UTC (rev 553) +++ phenote/trunk/conf/zfin-standalone.cfg 2007-05-04 20:29:32 UTC (rev 554) @@ -1,4 +1,4 @@ -<?xml version="1.2beta1" encoding="UTF-8"?> +<?xml version="1.3.1" encoding="UTF-8"?> <ns:phenote-configuration version="1.1.2" xmlns:ns="phenote/config/xml"> <ns:log config-file="conf/log4j-standalone.xml"/> @@ -12,6 +12,9 @@ <ns:uvic-graph enable="false"/> <ns:term-history enable="false"/> + <ns:auto-update-ontologies enable="true"/> <!--true=update; false=don't update--> + <ns:update-timer timer="0"/><!--set to 0 if you want to bypass the check; time in seconds--> + <ns:obo-repository url-dir="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/"/> <ns:field name="Pub" syntax-abbrev="PUB" enable="true"/> <ns:field name="Genotype" syntax-abbrev="GT" enable="true"/> Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-05-04 02:09:49 UTC (rev 553) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-05-04 20:29:32 UTC (rev 554) @@ -50,8 +50,8 @@ private String logConfigFile = "conf/log4j.xml"; // default log config file private boolean uvicGraphEnabled = false; // default false for now private boolean termHistoryEnabled = false; //default to false for now - private boolean autoUpdateEnabled = true; //default to true - private int updateTimer = 30; //default to 30sec to try to update + private boolean autoUpdateEnabled = true; //default to true if not in config + private int updateTimer = 0; //default is to not wait private String reposUrlDir; private String version; private boolean configInitialized = false; @@ -281,6 +281,8 @@ oldCfg.uvicGraphEnabled = newCfg.uvicGraphEnabled; // hmmmm? oldCfg.termHistoryEnabled = newCfg.termHistoryEnabled; oldCfg.reposUrlDir = newCfg.reposUrlDir; // ?? + oldCfg.autoUpdateEnabled = newCfg.autoUpdateEnabled; + oldCfg.updateTimer = newCfg.updateTimer; for (FieldConfig newFC : newCfg.getFieldConfigList()) newFC.mergeWithOldConfig(oldCfg); Modified: phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java 2007-05-04 02:09:49 UTC (rev 553) +++ phenote/trunk/src/java/phenote/dataadapter/OntologyDataAdapter.java 2007-05-04 20:29:32 UTC (rev 554) @@ -27,6 +27,9 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.swing.JOptionPane; +import javax.swing.JDialog; +import javax.swing.JComponent; +import java.awt.Component; import org.apache.log4j.Logger; @@ -49,6 +52,7 @@ import phenote.config.Config; import phenote.config.FieldConfig; import phenote.config.OntologyConfig; +import phenote.gui.SynchOntologyDialog; /** is this really a data adapter? - OntologyLoader? this isnt a data adapter it doesnt load & commit character data - just loads ontologies. rename OntologyLoader @@ -62,6 +66,7 @@ private boolean initializingOntologies = false; private Map<String,Ontology> fileToOntologyCache = new HashMap<String,Ontology>(); private OBOMetaData adapterMetaData; + private SynchOntologyDialog synchDialog; private static final Logger LOG = Logger.getLogger(OntologyDataAdapter.class); @@ -370,14 +375,19 @@ throws OntologyException { long repos = getOboDate(reposUrl); long loc = 0; + int timer = config.getUpdateTimer(); + boolean autoUpdate = config.autoUpdateIsEnabled(); boolean useRepos = false; if (localUrl != null) loc = getOboDate(localUrl); // throws ont ex else useRepos = true; - - if (repos > loc || useRepos) - useRepos = queryUserAboutRepos(ontol); + //if autoupdate without popup + if ((autoUpdate && (timer==0)) && (repos > loc)) { + useRepos = true; + } else if (repos > loc || useRepos) { + useRepos = synchDialog.queryUserForOntologyUpdate(ontol); + } if (useRepos) { // i think its always better to download as http/repos is slow @@ -426,16 +436,6 @@ } catch (IOException e) { throw new OntologyException(e); } } - // is it bad to have a popup from data adapter? - private boolean queryUserAboutRepos(String ontol) { - String m = "There is a more current ontology in the repository for "+ontol+".\nWould" - +" you like to load the new version? (may take a few minutes)"; - int yn = JOptionPane.showConfirmDialog(null,m,"Synch ontology?", - JOptionPane.YES_NO_OPTION, - JOptionPane.QUESTION_MESSAGE); - return yn == JOptionPane.YES_OPTION; - } - /** local url may be from distrib/jar dir, but needs to be set to .phenote/obo-files dir as thats where the user cache is */ Modified: phenote/trunk/src/java/phenote/gui/HelpMenu.java =================================================================== --- phenote/trunk/src/java/phenote/gui/HelpMenu.java 2007-05-04 02:09:49 UTC (rev 553) +++ phenote/trunk/src/java/phenote/gui/HelpMenu.java 2007-05-04 20:29:32 UTC (rev 554) @@ -52,7 +52,8 @@ public void actionPerformed(ActionEvent e) { boolean showCancel = false; if (e.getActionCommand().equals("help")) { - String m = "Help is under construction."; + String m = "<html><p>This feature is not yet integrated.</p>" + + "<p> Please visit www.phenote.org/help</p></html>"; JOptionPane.showMessageDialog(null, m, "Phenote Help", JOptionPane.INFORMATION_MESSAGE); System.out.println("help selected"); Added: phenote/trunk/src/java/phenote/gui/SynchOntologyDialog.java =================================================================== --- phenote/trunk/src/java/phenote/gui/SynchOntologyDialog.java (rev 0) +++ phenote/trunk/src/java/phenote/gui/SynchOntologyDialog.java 2007-05-04 20:29:32 UTC (rev 554) @@ -0,0 +1,158 @@ +package phenote.gui; + + +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Point; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Toolkit; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import javax.swing.BoxLayout; +import javax.swing.JDialog; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JButton; +import javax.swing.ButtonGroup; +import java.util.Timer; +import java.util.TimerTask; + + + +import javax.jnlp.*; + +import phenote.gui.GridBagUtil; +import phenote.config.Config; + + +public class SynchOntologyDialog { + + private Config config = Config.inst(); + + private ButtonGroup buttonGroup; +// private boolean hasCancelButton = false; + private boolean isCancelled = false; + private java.awt.Frame f = phenote.main.Phenote.getPhenote().getFrame(); + // true -> modal -> this is crucial! + private JDialog dialog = new JDialog(f, true); + + private boolean update = config.autoUpdateIsEnabled(); //set to the default, unless changed + + + public static boolean queryUserForOntologyUpdate(String ontol) { + try { return queryUserForSynchOntology(ontol); } + catch (CancelEx e) {return false;} // shouldnt happen with cancel false + } + + public static boolean queryUserForSynchOntology(String ontol) throws CancelEx { + + SynchOntologyDialog s = new SynchOntologyDialog(); + return s.queryUser(ontol); + } + + private boolean queryUser(String ontol) throws CancelEx { + makeQueryDialog(ontol); + if (isCancelled) throw new CancelEx(); + System.out.println("update="+update); + return update; + + } + + public static class CancelEx extends Exception {} + + private void makeQueryDialog(String ontol) { + //This makes the query dialog. Will automatically close if there's a time limit set + //and will follow the rules as set up the "autoUpdate" in the config + //will add a smart counter in awhile + dialog.setLayout(new GridBagLayout()); + dialog.setTitle("Update Ontology?"); + String html = "<html><p>There is a more current ontology in the repository for <b>"+ontol+"</b></p>" + + "<p>Would you like to load the new version? (may take a few minutes)</p></html>"; + JLabel text = new JLabel(html); + int center = GridBagConstraints.CENTER; + GridBagConstraints gbc = GridBagUtil.makeAnchorConstraint(0,0,center); + gbc.gridwidth=3; + dialog.add(text,gbc); + JPanel buttonPanel = new JPanel(); + buttonPanel.setLayout(new BoxLayout(buttonPanel,BoxLayout.Y_AXIS)); + buttonGroup = new ButtonGroup(); + boolean doFirst = false; + ++gbc.gridy; + dialog.add(buttonPanel,gbc); + JButton ok = new JButton("Yes"); + gbc.gridwidth=1; + ++gbc.gridy; + dialog.add(ok,gbc); + ok.addActionListener(new OkActionListener()); + JButton cancel = new JButton("No"); + cancel.addActionListener(new CancelActionListener()); + ++gbc.gridx; + dialog.add(cancel,gbc); + centerOnScreen(dialog); + dialog.addWindowListener(new WindowCancel()); + Timer t = new Timer(); + int limit = config.getUpdateTimer(); + if (limit>0) {//only move on if there's a time limit + t.schedule(new SetLimit(), limit*1000); + if (config.autoUpdateIsEnabled()) { + html="<html><p>Files will automatically update "; + } else { + html="<html><p>Will bypass update "; + } + html+="in <b>"+limit+"</b> seconds.</p></html>"; + JLabel text3 = new JLabel(html); + center = GridBagConstraints.CENTER; + gbc = GridBagUtil.makeAnchorConstraint(0,0,center); + gbc.gridwidth=2; + ++gbc.gridy; + dialog.add(text3,gbc); + } + dialog.pack(); + dialog.setVisible(true); + } + + private class OkActionListener implements ActionListener { + public void actionPerformed(ActionEvent e) { + update = true; + dialog.dispose(); + } + } + private class CancelActionListener implements ActionListener { + public void actionPerformed(ActionEvent e) { + isCancelled = true; + update = false; + dialog.dispose(); + } + } + private class WindowCancel extends WindowAdapter { + public void windowClosing(WindowEvent e) { + // should this do a System.exit if we are at startup? + dialog.dispose(); + } + } + + + /** generic util? */ + private void centerOnScreen(Component c) { + Toolkit t = Toolkit.getDefaultToolkit(); + Dimension screen = t.getScreenSize(); + int x = (int)screen.getWidth()/2 - c.getWidth()/2; + int y = (int)screen.getHeight()/2 - c.getHeight()/2; + Point p = new Point(x,y); + c.setLocation(p); + } + + private class SetLimit extends TimerTask { + public void run () { + dialog.dispose(); + System.out.println("timer done. moving along..."); + return ; + } + } + + +} + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <azu...@us...> - 2007-05-04 02:09:57
|
Revision: 553 http://svn.sourceforge.net/obo/?rev=553&view=rev Author: azurebrd Date: 2007-05-03 19:09:49 -0700 (Thu, 03 May 2007) Log Message: ----------- Changed the postgres tables to work with boxes and columns instead of just columns. Fixed Query to work with them. Commit still doesn't work. Modified Paths: -------------- phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java Modified: phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java =================================================================== --- phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java 2007-05-03 20:07:42 UTC (rev 552) +++ phenote/trunk/src/java/phenote/dataadapter/worm/WormAdapter.java 2007-05-04 02:09:49 UTC (rev 553) @@ -55,10 +55,12 @@ // System.out.println("Chr "+chr+" end"); try { String allele = chr.getValueString("Object Name"); // get the allele value from the character, currently could have a column number - int colI = 0; // initialize column to zero - String match = find(".* - ([0-9]+)", allele); // Find a tempname followed by space - space number + int colI = 0; int boxI = 0; // initialize column to zero + String match = find(".* - ([0-9]+) - [0-9]+", allele); // Find a tempname followed by space - space number + if (match != null) { boxI = Integer.parseInt(match); } // get the column number if there is one + match = find(".* - [0-9]+ - ([0-9]+)", allele); // Find a tempname followed by space - space number if (match != null) { colI = Integer.parseInt(match); } // get the column number if there is one - match = find("(.*) - [0-9]+", allele); // Find a tempname followed by space - space number + match = find("(.*) - [0-9]+ - [0-9]+", allele); // Find a tempname followed by space - space number if (match != null) { allele = match; } // query for this, otherwise keep the default value String joinkey = allele; // assign the tempname / allele to the joinkey if (colI < 1) { // if there are no columns, find the highest existing column and add 1 to make the next one @@ -75,49 +77,49 @@ // String app_paper = chr.getValueString("Pub"); String app_paper = chr.getTerm("Pub").getID(); String postgres_table = "app_paper"; String postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_paper)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_paper); } // System.out.println( "Pub : "+app_paper+" end."); String app_curator = chr.getValueString("Curator"); postgres_table = "app_curator"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_curator)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_curator); } // System.out.println( "Curator : "+curator+" end."); String app_person = chr.getValueString("Person"); postgres_table = "app_person"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_person)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_person); } // System.out.println( "Person : "+person+" end."); String app_phenotype = chr.getValueString("NBP"); postgres_table = "app_phenotype"; postgres_value = "No postgres value assigned"; // System.out.println( "Phenotype Text Remark : "+app_phenotype+" end."); - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); // System.out.println( "Phenotype Text Remark Postgres : "+postgres_value+" end."); if (postgres_value.equals(app_phenotype)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_phenotype); } // System.out.println( "Phenotype Text Remark : "+app_phenotype+" end."); String app_remark = chr.getValueString("Reference Remark"); postgres_table = "app_remark"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_remark)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_remark); } // System.out.println( "Reference Remark : "+remark+" end."); String app_intx_desc = chr.getValueString("Genetic Interaction"); postgres_table = "app_intx_desc"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_intx_desc)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_intx_desc); } // System.out.println( "Genetic Interaction : "+genetic_interaction+" end."); String app_term = chr.getValueString("Phenotype"); postgres_table = "app_term"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_term)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_term); } // System.out.println( "Phenotype : "+app_term+" end."); String app_phen_remark = chr.getValueString("Phenotype Remark"); postgres_table = "app_phen_remark"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_phen_remark)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_phen_remark); } // System.out.println( "Phenotype Remark : "+app_phen_remark+" end."); String app_anat_term = chr.getValueString("Anatomy"); postgres_table = "app_anat_term"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_anat_term)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_anat_term); } // System.out.println( "Anatomy : "+app_anat_term+" end."); // String app_entity = chr.getValueString("Entity"); @@ -132,42 +134,42 @@ // System.out.println( "Quality : "+app_quality+" end."); String app_lifestage = chr.getValueString("Life Stage"); postgres_table = "app_lifestage"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_lifestage)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_lifestage); } // System.out.println( "Life Stage : "+app_lifestage+" end."); String app_nature = chr.getValueString("Allele Nature"); postgres_table = "app_nature"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_nature)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_nature); } // System.out.println( "Allele Nature : "+app_nature+" end."); String app_func = chr.getValueString("Functional Change"); postgres_table = "app_func"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_func)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_func); } // System.out.println( "Functional Change : "+app_func+" end."); String app_temperature = chr.getValueString("Temperature"); postgres_table = "app_temperature"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_temperature)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_temperature); } // System.out.println( "Temperature : "+app_temperature+" end."); String app_preparation = chr.getValueString("Treatment"); postgres_table = "app_preparation"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_preparation)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_preparation); } // System.out.println( "Treatment : "+app_preparation+" end."); String app_penetrance = chr.getValueString("Penetrance"); postgres_table = "app_penetrance"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_penetrance)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_penetrance); } // System.out.println( "Penetrance : "+app_penetrance+" end."); String app_percent = chr.getValueString("Penetrance Remark"); postgres_table = "app_percent"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_percent)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_percent); } // System.out.println( "Penetrance Remark : "+app_percent+" end."); String app_range = chr.getValueString("Penetrance Range Start"); postgres_table = "app_range"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_range)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_range); } // // System.out.println( "Penetrance Range Start: "+app_range+" end."); // String app_range = chr.getValueString("Penetrance Range End"); @@ -177,52 +179,52 @@ // System.out.println( "Penetrance Range End : "+app_range+" end."); String app_quantity = chr.getValueString("Quantity"); postgres_table = "app_quantity"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_quantity)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_quantity); } // System.out.println( "Quantity : "+app_quantity+" end."); String app_quantity_remark = chr.getValueString("Quantity Remark"); postgres_table = "app_quantity_remark"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_quantity_remark)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_quantity_remark); } // System.out.println( "Quantity Remark : "+app_quantity_remark+" end."); String app_heat_sens = chr.getValueString("Heat Sensitive"); postgres_table = "app_heat_sens"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_heat_sens)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_heat_sens); } // System.out.println( "Heat Sensitive : "+app_heat_sens+" end."); String app_heat_degree = chr.getValueString("Heat Sensitive Degree"); postgres_table = "app_heat_degree"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_heat_degree)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_heat_degree); } // System.out.println( "Heat Sensitive Degree : "+app_heat_degree+" end."); String app_cold_sens = chr.getValueString("Cold Sensitive"); postgres_table = "app_cold_sens"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_cold_sens)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_cold_sens); } // System.out.println( "Cold Sensitive : "+app_cold_sens+" end."); String app_cold_degree = chr.getValueString("Cold Sensitive"); postgres_table = "app_cold_degree"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_cold_degree)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_cold_degree); } // System.out.println( "Cold Sensitive Degree : "+app_cold_degree+" end."); String app_mat_effect = chr.getValueString("Maternal Effect"); postgres_table = "app_mat_effect"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_mat_effect)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_mat_effect); } // System.out.println( "Maternal Effect : "+app_mat_effect+" end."); String app_pat_effect = chr.getValueString("Paternal Effect"); postgres_table = "app_pat_effect"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_pat_effect)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_pat_effect); } // System.out.println( "Paternal Effect : "+app_pat_effect+" end."); String app_genotype = chr.getValueString("Genotype"); postgres_table = "app_genotype"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_genotype)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_genotype); } // System.out.println( "Genotype : "+app_genotype+" end."); String app_strain = chr.getValueString("Strain"); postgres_table = "app_strain"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); if (postgres_value.equals(app_strain)) { } else { updatePostgresCol(c, postgres_table, joinkey, colI, app_strain); } // System.out.println( "Strain : "+app_strain+" end."); if (allele != null) { @@ -322,118 +324,127 @@ return c; } // private Connection connectToDB - private String queryPostgresCharacter(Statement s, String postgres_table, String default_value, String query, int colI) { + private String queryPostgresCharacter(Statement s, String postgres_table, String default_value, String query, int boxI, int colI) { // get the value corresponding to a phenote cell from a postgres table by column ResultSet rs = null; // intialize postgres query result // get the phenotype term in timestamp order where the allele and column number match - try { rs = s.executeQuery("SELECT * FROM "+postgres_table+" WHERE joinkey = '"+query+"' AND app_column='"+colI+"' ORDER BY app_timestamp"); } - catch (SQLException se) { - System.out.println("We got an exception while executing our "+postgres_table+" query: that probably means our term SQL is invalid"); se.printStackTrace(); System.exit(1); } - try { while (rs.next()) { default_value = rs.getString(3); } } // assign the new term value - catch (SQLException se) { - System.out.println("We got an exception while getting a "+postgres_table+" result:this shouldn't happen: we've done something really bad."); se.printStackTrace(); System.exit(1); } + if (colI > 0) { + try { rs = s.executeQuery("SELECT * FROM "+postgres_table+" WHERE joinkey = '"+query+"' AND app_column='"+colI+"' AND app_box='"+boxI+"' ORDER BY app_timestamp"); } + catch (SQLException se) { + System.out.println("We got an exception while executing our "+postgres_table+" query: that probably means our term SQL is invalid"); se.printStackTrace(); System.exit(1); } + try { while (rs.next()) { default_value = rs.getString(4); } } // assign the new term value + catch (SQLException se) { + System.out.println("We got an exception while getting a "+postgres_table+" result:this shouldn't happen: we've done something really bad."); se.printStackTrace(); System.exit(1); } } + else { + try { rs = s.executeQuery("SELECT * FROM "+postgres_table+" WHERE joinkey = '"+query+"' AND app_box='"+boxI+"' ORDER BY app_timestamp"); } + catch (SQLException se) { + System.out.println("We got an exception while executing our "+postgres_table+" query: that probably means our term SQL is invalid"); se.printStackTrace(); System.exit(1); } + try { while (rs.next()) { default_value = rs.getString(3); } } // assign the new term value + catch (SQLException se) { + System.out.println("We got an exception while getting a "+postgres_table+" result:this shouldn't happen: we've done something really bad."); se.printStackTrace(); System.exit(1); } } // System.out.println("Added in function charList term "+query+" column "+colI+"."); // comment out later if (default_value == null) { default_value = "postgres value is null"; } if (default_value == "") { default_value = "postgres value is blank"; } return default_value; } - private CharacterListI queryPostgresCharacterList(CharacterListI charList, Statement s, String joinkey, int colI) { + private CharacterListI queryPostgresCharacterList(CharacterListI charList, Statement s, String joinkey, int boxI, int colI) { // populate a phenote character based on postgres value by joinkey, then append to character list try { Character c1 = new Character(); // create a new character for a phenote row - String alleleColumn = joinkey+" - "+colI; + String alleleColumn = joinkey+" - "+boxI+" - "+colI; c1.setValue("Object Name",alleleColumn); // assign the allele and the column String postgres_value = "No postgres value assigned"; String postgres_table = "app_term"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); String phenotype_match = find("(WBPhenotype[0-9]*)", postgres_value); // Find a WBPhenotype followed by any amount of digits if (phenotype_match != null) { postgres_value = phenotype_match; } // query for this, otherwise keep the default value if (postgres_value == "No postgres value assigned") { } else { c1.setValue("Phenotype",postgres_value); } // assign the queried value // c1.setValue("Phenotype",postgres_value); // assign the queried value postgres_table = "app_curator"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Curator",postgres_value); // assign the queried value + postgres_table = "app_paper"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, 0); String paper_match = find("(WBPaper[0-9]*)", postgres_value); // Find a WBPaper followed by any amount of digits if (paper_match != null) { postgres_value = paper_match; } // query for this, otherwise keep the default value // c1.setValue("Pub",postgres_value); // assign the queried value if (postgres_value == "No postgres value assigned") { } else { c1.setValue("Pub",postgres_value); } // assign the queried value postgres_table = "app_person"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, 0); String person_match = find("(WBPerson[0-9]*)", postgres_value); // Find a WBPerson followed by any amount of digits if (person_match != null) { postgres_value = person_match; } // query for this, otherwise keep the default value if (postgres_value == "No postgres value assigned") { } else { c1.setValue("Person",postgres_value); } // assign the queried value postgres_table = "app_phenotype"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("NBP",postgres_value); // assign the queried value postgres_table = "app_remark"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Reference Remark",postgres_value); // assign the queried value postgres_table = "app_phen_remark"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Phenotype Remark",postgres_value); // assign the queried value postgres_table = "app_anat_term"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); // c1.setValue("Anatomy",postgres_value); // this doesn't work, assigning whatever term name(s) is in postgres // c1.setValue("Anatomy","WBbt:0004758"); // this works, assigning a term ID postgres_table = "app_lifestage"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); // c1.setValue("Life Stage",postgres_value); // assign the queried value postgres_table = "app_nature"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Allele Nature",postgres_value); // assign the queried value postgres_table = "app_func"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Functional Change",postgres_value); // assign the queried value postgres_table = "app_temperature"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Temperature",postgres_value); // assign the queried value postgres_table = "app_preparation"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Treatment",postgres_value); // assign the queried value postgres_table = "app_penetrance"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Penetrance",postgres_value); // assign the queried value postgres_table = "app_percent"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Penetrance Remark",postgres_value); // assign the queried value postgres_table = "app_range"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Penetrance Range Start",postgres_value); // assign the queried value postgres_table = "app_quantity"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Penetrance Range End",postgres_value); // assign the queried value postgres_table = "app_quantity"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Quantity",postgres_value); // assign the queried value postgres_table = "app_quantity_remark"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Quantity Remark",postgres_value); // assign the queried value postgres_table = "app_heat_sens"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Heat Sensitive",postgres_value); // assign the queried value postgres_table = "app_heat_degree"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Heat Sensitive Degree",postgres_value); // assign the queried value postgres_table = "app_cold_sens"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Cold Sensitive",postgres_value); // assign the queried value postgres_table = "app_cold_degree"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Cold Sensitive Degree",postgres_value); // assign the queried value postgres_table = "app_mat_effect"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Maternal Effect",postgres_value); // assign the queried value postgres_table = "app_pat_effect"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Paternal Effect",postgres_value); // assign the queried value postgres_table = "app_genotype"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Genotype",postgres_value); // assign the queried value postgres_table = "app_strain"; postgres_value = "No postgres value assigned"; - postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, colI); + postgres_value = queryPostgresCharacter(s, postgres_table, postgres_value, joinkey, boxI, colI); c1.setValue("Strain",postgres_value); // assign the queried value charList.add(c1); // add the character to the character list } @@ -463,7 +474,7 @@ System.out.println("We got an exception while creating a statement: that probably means we're no longer connected."); se.printStackTrace(); System.exit(1); } ResultSet rs = null; // intialize postgres query result - String match = find("(.*) - [0-9]+", query); // Find a tempname followed by space - space number + String match = find("(.*) - [0-9]+ - [0-9]+", query); // Find a tempname followed by space - space number if (match != null) { query = match; } // query for this, otherwise keep the default value String joinkey = query; try { rs = s.executeQuery("SELECT * FROM app_tempname WHERE app_tempname = '"+joinkey+"'"); } // find the allele that matches the queried allele @@ -480,16 +491,19 @@ if (foundAllele <= 0) { throw new DataAdapterEx("Worm query of "+joinkey+" of field "+field+" has no match in postgres"); } // if there is no match for the allele in postgres else { - rs = null; int columns = 0; // the number of columns - try { rs = s.executeQuery("SELECT app_column FROM app_term WHERE joinkey = '"+joinkey+"' ORDER BY app_column DESC"); } + rs = null; int boxes = 0; int columns = 0; // the number of boxes ; columns + try { rs = s.executeQuery("SELECT app_box, app_column FROM app_term WHERE joinkey = '"+joinkey+"' ORDER BY app_column DESC"); } catch (SQLException se) { System.out.println("We got an exception while executing our app_term query: that probably means our column SQL is invalid"); se.printStackTrace(); System.exit(1); } - try { if (rs.next()) { if (rs.getInt(1) > columns) { columns = rs.getInt(1); } } } // assign the highest number column for that allele to the number of columns + try { if (rs.next()) { + if (rs.getInt(1) > boxes) { boxes = rs.getInt(1); } // assign the highest number boxes for that allele to the number of boxes + if (rs.getInt(2) > columns) { columns = rs.getInt(2); } } } // assign the highest number column for that allele to the number of columns catch (SQLException se) { System.out.println("We got an exception while getting a column/term joinkey "+joinkey+" result:this shouldn't happen: we've done something really bad."); se.printStackTrace(); System.exit(1); } - for (int colI=1; colI<columns+1; colI++) { // for each of those columns - charList = queryPostgresCharacterList(charList, s, joinkey, colI); } + for (int boxI=1; boxI<boxes+1; boxI++) { // for each of those columns + for (int colI=1; colI<columns+1; colI++) { // for each of those columns + charList = queryPostgresCharacterList(charList, s, joinkey, boxI, colI); } } return charList; } // if there is a match } else if (field.equals(pubString)) { // if querying the publication, get paper data @@ -502,6 +516,10 @@ try { s2 = c.createStatement(); } catch (SQLException se) { System.out.println("We got an exception while creating a statement: that probably means we're no longer connected."); se.printStackTrace(); System.exit(1); } + Statement s3 = null; + try { s3 = c.createStatement(); } + catch (SQLException se) { + System.out.println("We got an exception while creating a statement: that probably means we're no longer connected."); se.printStackTrace(); System.exit(1); } String match = find("(WBPaper[0-9]*)", query); // Find a WBPaper followed by any amount of digits if (match != null) { query = match; } // query for this, otherwise keep the default value @@ -510,24 +528,43 @@ // System.out.println("Paper "+query+" end"); try { rs = s2.executeQuery("SELECT DISTINCT(joinkey) FROM app_paper WHERE app_paper ~ '"+query+"' ORDER BY joinkey;"); } // get the alleles from a paper catch (SQLException se) { - System.out.println("We got an exception while executing our app_paper query: that probably means our SQL is invalid"); se.printStackTrace(); System.exit(1); } + System.out.println("We got an exception while executing our app_paper joinkey query: that probably means our SQL is invalid"); se.printStackTrace(); System.exit(1); } try { if (rs.next()) { foundPaper++; } } catch (SQLException se) { - System.out.println("We got an exception while getting a publication query result:this shouldn't happen: we've done something really bad."); se.printStackTrace(); System.exit(1); } + System.out.println("We got an exception while getting a publication query result joinkey app_paper :this shouldn't happen: we've done something really bad."); se.printStackTrace(); System.exit(1); } if (foundPaper <= 0) { throw new DataAdapterEx("Worm query of "+query+" of field "+field+" has no match in postgres"); } // if there is no match for the allele in postgres else { ResultSet rs2 = null; // initialize result of query - try { rs2 = s2.executeQuery("SELECT DISTINCT(joinkey), app_column FROM app_paper WHERE app_paper ~ '"+query+"' ORDER BY joinkey;"); } // get the alleles from a paper + try { rs2 = s2.executeQuery("SELECT DISTINCT(joinkey), app_box FROM app_paper WHERE app_paper ~ '"+query+"' ORDER BY joinkey;"); } // get the alleles from a paper catch (SQLException se) { - System.out.println("We got an exception while executing our app_paper query: that probably means our SQL is invalid"); se.printStackTrace(); System.exit(1); } + System.out.println("We got an exception while executing our app_paper joinkey box query: that probably means our SQL is invalid"); se.printStackTrace(); System.exit(1); } try { while (rs2.next()) { // while there's data in postgres String joinkey = "No Allele assigned for Publication "+query+"."; // initialize allele in each phenote character Row joinkey = rs2.getString(1); // get the allele from postgres - int colI = rs2.getInt(2); // get the allele from postgres - charList = queryPostgresCharacterList(charList, s, joinkey, colI); + int boxI = rs2.getInt(2); // get the box from postgres + ResultSet rs3 = null; // initialize result of query + try { rs3 = s3.executeQuery("SELECT app_column FROM app_term WHERE app_box = '"+boxI+"' AND joinkey = '"+joinkey+"' ORDER BY joinkey;"); } // get the columns from a paper + catch (SQLException se) { + System.out.println("We got an exception while executing our app_term query: that probably means our SQL is invalid"); se.printStackTrace(); System.exit(1); } + +// if (rs.getInt(2) > columns) { columns = rs.getInt(2); } } } // assign the highest number column for that allele to the number of columns +// catch (SQLException se) { +// System.out.println("We got an exception while getting a column/term joinkey "+joinkey+" result:this shouldn't happen: we've done something really bad."); +// se.printStackTrace(); System.exit(1); } +// for (int boxI=1; boxI<boxes+1; boxI++) { // for each of those columns +// for (int colI=1; colI<columns+1; colI++) { // for each of those columns +// charList = queryPostgresCharacterList(charList, s, joinkey, boxI, colI); } } + + int columns = 0; + try { while (rs3.next()) { // while there's data in postgres + if (rs3.getInt(1) > columns) { columns = rs3.getInt(1); } } } // assign the highest number column for that allele to the number of columns + catch (SQLException se) { + System.out.println("We got an exception while getting a publication query result column app_term :this shouldn't happen: we've done something really bad."); se.printStackTrace(); System.exit(1); } + for (int colI=1; colI<columns+1; colI++) { // for each of those columns + charList = queryPostgresCharacterList(charList, s, joinkey, boxI, colI); } } } catch (SQLException se) { - System.out.println("We got an exception while getting a publication query result:this shouldn't happen: we've done something really bad."); se.printStackTrace(); System.exit(1); } + System.out.println("We got an exception while getting a publication query result joinkey, box app_paper :this shouldn't happen: we've done something really bad."); se.printStackTrace(); System.exit(1); } return charList; } // end -- if there's a publication found in postgres This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-03 20:07:42
|
Revision: 552 http://svn.sourceforge.net/obo/?rev=552&view=rev Author: nlw Date: 2007-05-03 13:07:42 -0700 (Thu, 03 May 2007) Log Message: ----------- added auto-ontology-update Modified Paths: -------------- phenote/trunk/conf/phenote-config.rnc phenote/trunk/conf/phenote-config.xsd phenote/trunk/jars/phenoteconfigbeans.jar phenote/trunk/src/java/phenote/config/Config.java Modified: phenote/trunk/conf/phenote-config.rnc =================================================================== --- phenote/trunk/conf/phenote-config.rnc 2007-05-03 15:35:46 UTC (rev 551) +++ phenote/trunk/conf/phenote-config.rnc 2007-05-03 20:07:42 UTC (rev 552) @@ -10,6 +10,8 @@ dataadapter*, uvic-graph, term-history, + auto-update-ontologies, + update-timer, obo-repository, field* } @@ -49,6 +51,10 @@ term-history = element term-history { attribute enable { xsd:boolean } } +auto-update-ontologies = element auto-update-ontologies { attribute enable { xsd:boolean } } + +update-timer = element update-timer { attribute timer {xsd:integer} } + obo-repository = element obo-repository { attribute url-dir {xsd:string} } field = Modified: phenote/trunk/conf/phenote-config.xsd =================================================================== --- phenote/trunk/conf/phenote-config.xsd 2007-05-03 15:35:46 UTC (rev 551) +++ phenote/trunk/conf/phenote-config.xsd 2007-05-03 20:07:42 UTC (rev 552) @@ -8,6 +8,8 @@ <xs:element minOccurs="0" maxOccurs="unbounded" ref="x:dataadapter"/> <xs:element ref="x:uvic-graph"/> <xs:element ref="x:term-history"/> + <xs:element ref="x:auto-update-ontologies"/> + <xs:element ref="x:update-timer"/> <xs:element ref="x:obo-repository"/> <xs:element minOccurs="0" maxOccurs="unbounded" ref="x:field"/> </xs:sequence> @@ -45,6 +47,16 @@ <xs:attribute name="enable" use="required" type="xs:boolean"/> </xs:complexType> </xs:element> + <xs:element name="auto-update-ontologies"> + <xs:complexType> + <xs:attribute name="enable" use="required" type="xs:boolean"/> + </xs:complexType> + </xs:element> + <xs:element name="update-timer"> + <xs:complexType> + <xs:attribute name="timer" use="required" type="xs:integer"/> + </xs:complexType> + </xs:element> <xs:element name="obo-repository"> <xs:complexType> <xs:attribute name="url-dir" use="required" type="xs:string"/> Modified: phenote/trunk/jars/phenoteconfigbeans.jar =================================================================== (Binary files differ) Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-05-03 15:35:46 UTC (rev 551) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-05-03 20:07:42 UTC (rev 552) @@ -26,6 +26,9 @@ import phenote.config.xml.PhenoteConfigurationDocument.PhenoteConfiguration; import phenote.config.xml.UvicGraphDocument.UvicGraph; import phenote.config.xml.TermHistoryDocument.TermHistory; +import phenote.config.xml.AutoUpdateOntologiesDocument.AutoUpdateOntologies; +import phenote.config.xml.UpdateTimerDocument.UpdateTimer; + import phenote.dataadapter.DataAdapterI; import phenote.dataadapter.QueryableDataAdapterI; import phenote.datamodel.CharField; @@ -47,6 +50,8 @@ private String logConfigFile = "conf/log4j.xml"; // default log config file private boolean uvicGraphEnabled = false; // default false for now private boolean termHistoryEnabled = false; //default to false for now + private boolean autoUpdateEnabled = true; //default to true + private int updateTimer = 30; //default to 30sec to try to update private String reposUrlDir; private String version; private boolean configInitialized = false; @@ -343,12 +348,17 @@ public boolean uvicGraphIsEnabled() { return uvicGraphEnabled; } public boolean termHistoryIsEnabled() { - return termHistoryEnabled; } + return termHistoryEnabled; } public void setTermHistory(boolean setter) { - termHistoryEnabled = setter; - return; } + termHistoryEnabled = setter; + return; } + public boolean autoUpdateIsEnabled() { + return autoUpdateEnabled; } + + public int getUpdateTimer() { + return updateTimer; } public URL getLogConfigUrl() throws FileNotFoundException { return FileUtil.findUrl(logConfigFile); @@ -505,6 +515,16 @@ if (history != null) termHistoryEnabled = history.getEnable(); + // AUTO UPDATE OF ONTOLOGIES + AutoUpdateOntologies autoUpdate = pc.getAutoUpdateOntologies(); + if (autoUpdate != null) + autoUpdateEnabled = autoUpdate.getEnable(); + + // TIMER for UPDATE OF ONTOLOGIES + UpdateTimer time = pc.getUpdateTimer(); + if (time != null) + updateTimer = time.getTimer().intValue(); + // Repos url dir OboRepository or = pc.getOboRepository(); if (or != null && or.getUrlDir() != null) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-05-03 15:35:44
|
Revision: 551 http://svn.sourceforge.net/obo/?rev=551&view=rev Author: mgibson Date: 2007-05-03 08:35:46 -0700 (Thu, 03 May 2007) Log Message: ----------- current working version is now 1.3-beta1 Modified Paths: -------------- phenote/trunk/src/java/phenote/main/PhenoteVersion.java Modified: phenote/trunk/src/java/phenote/main/PhenoteVersion.java =================================================================== --- phenote/trunk/src/java/phenote/main/PhenoteVersion.java 2007-05-03 15:33:42 UTC (rev 550) +++ phenote/trunk/src/java/phenote/main/PhenoteVersion.java 2007-05-03 15:35:46 UTC (rev 551) @@ -9,7 +9,7 @@ //private static final float MAJOR_VERSION_NUM = 0.8f; //private static final float SUB_VERSION_NUM = .3f; - private static final String VERSION = "1.2 release"; // ?? + private static final String VERSION = "1.3-beta1"; // ?? // type is "dev" or "release" //private static final String type = " dev"; // "release" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2007-05-03 15:33:41
|
Revision: 550 http://svn.sourceforge.net/obo/?rev=550&view=rev Author: mgibson Date: 2007-05-03 08:33:42 -0700 (Thu, 03 May 2007) Log Message: ----------- Tagging the 1.2 (1.2 release) release of phenote - multi diff, namespace, 1 obosession... Added Paths: ----------- phenote/tags/release-1.2/ Copied: phenote/tags/release-1.2 (from rev 549, phenote/trunk) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-02 22:59:16
|
Revision: 549 http://svn.sourceforge.net/obo/?rev=549&view=rev Author: nlw Date: 2007-05-02 15:59:18 -0700 (Wed, 02 May 2007) Log Message: ----------- default term history display in new configs to false Modified Paths: -------------- phenote/trunk/src/java/phenote/config/Config.java Modified: phenote/trunk/src/java/phenote/config/Config.java =================================================================== --- phenote/trunk/src/java/phenote/config/Config.java 2007-05-02 22:19:12 UTC (rev 548) +++ phenote/trunk/src/java/phenote/config/Config.java 2007-05-02 22:59:18 UTC (rev 549) @@ -46,7 +46,7 @@ private List<FieldConfig> allFields = new ArrayList<FieldConfig>(); private String logConfigFile = "conf/log4j.xml"; // default log config file private boolean uvicGraphEnabled = false; // default false for now - private boolean termHistoryEnabled = true; //default to false for now + private boolean termHistoryEnabled = false; //default to false for now private String reposUrlDir; private String version; private boolean configInitialized = false; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-02 22:19:12
|
Revision: 548 http://svn.sourceforge.net/obo/?rev=548&view=rev Author: nlw Date: 2007-05-02 15:19:12 -0700 (Wed, 02 May 2007) Log Message: ----------- copied PhenoteWebHelp.html to index.html Added Paths: ----------- phenote/trunk/doc/phenote-website/help/index.html Copied: phenote/trunk/doc/phenote-website/help/index.html (from rev 546, phenote/trunk/doc/phenote-website/help/PhenoteWebHelp.html) =================================================================== --- phenote/trunk/doc/phenote-website/help/index.html (rev 0) +++ phenote/trunk/doc/phenote-website/help/index.html 2007-05-02 22:19:12 UTC (rev 548) @@ -0,0 +1,10 @@ +<html><head> +<title>Phenote User's Guide</title> +</head> +<frameset cols="30%,*"> +<frame src="PhenoteWebTOC.html" name=tocframe scrolling=yes> +<frame src="html/What_is_Phenote_.htm" name=bodyframe> +<noframes><body> +This page requires a browser that supports frames +</body></noframes></frameset> +</html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-02 22:18:28
|
Revision: 547 http://svn.sourceforge.net/obo/?rev=547&view=rev Author: nlw Date: 2007-05-02 15:18:30 -0700 (Wed, 02 May 2007) Log Message: ----------- removing old index page Removed Paths: ------------- phenote/trunk/doc/phenote-website/help/index.html Deleted: phenote/trunk/doc/phenote-website/help/index.html =================================================================== --- phenote/trunk/doc/phenote-website/help/index.html 2007-05-02 22:14:06 UTC (rev 546) +++ phenote/trunk/doc/phenote-website/help/index.html 2007-05-02 22:18:30 UTC (rev 547) @@ -1,10 +0,0 @@ -<html><head> -<title>Phenote User's Guide</title> -</head> -<frameset cols="30%,*"> -<frame src="toc.html" name=tocframe scrolling=yes> -<frame src="html/What_is_Phenote_.htm" name=bodyframe> -<noframes><body> -This page requires a browser that supports frames -</body></noframes></frameset> -</html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-02 22:14:07
|
Revision: 546 http://svn.sourceforge.net/obo/?rev=546&view=rev Author: nlw Date: 2007-05-02 15:14:06 -0700 (Wed, 02 May 2007) Log Message: ----------- changed index page for help ... used to be "obo-edit" now is phenote Modified Paths: -------------- phenote/trunk/doc/phenote-website/help/index.html Modified: phenote/trunk/doc/phenote-website/help/index.html =================================================================== --- phenote/trunk/doc/phenote-website/help/index.html 2007-05-02 22:09:20 UTC (rev 545) +++ phenote/trunk/doc/phenote-website/help/index.html 2007-05-02 22:14:06 UTC (rev 546) @@ -1,9 +1,9 @@ <html><head> -<title>OBO-Edit User's Guide</title> +<title>Phenote User's Guide</title> </head> <frameset cols="30%,*"> <frame src="toc.html" name=tocframe scrolling=yes> -<frame src="html/What_is_OBO_Edit_.htm" name=bodyframe> +<frame src="html/What_is_Phenote_.htm" name=bodyframe> <noframes><body> This page requires a browser that supports frames </body></noframes></frameset> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nl...@us...> - 2007-05-02 22:09:18
|
Revision: 545 http://svn.sourceforge.net/obo/?rev=545&view=rev Author: nlw Date: 2007-05-02 15:09:20 -0700 (Wed, 02 May 2007) Log Message: ----------- another link fix Modified Paths: -------------- phenote/trunk/doc/phenote-website/content/howtos/index.shtml Modified: phenote/trunk/doc/phenote-website/content/howtos/index.shtml =================================================================== --- phenote/trunk/doc/phenote-website/content/howtos/index.shtml 2007-05-02 22:05:39 UTC (rev 544) +++ phenote/trunk/doc/phenote-website/content/howtos/index.shtml 2007-05-02 22:09:20 UTC (rev 545) @@ -12,7 +12,7 @@ <p> Phenote is a Java application, which can be launched from the web using "Webstart". Simply click on the link below, and this will download the application to your computer and run. Future clicks on the link should recognize that you've already downloaded the application, and it will simply start the software.</p> <p> -Webstart: <a href="http://toy.lbl.gov:9010/phenote/1.2/phenote.jnlp">Phenote v1.1</a> +Webstart: <a href="http://toy.lbl.gov:9010/phenote/1.2/phenote.jnlp">Phenote v1.2</a> </p> <p> Phenote can also be launched from our <a href="/content/software/">Downloads</a> page. There you will also find any newer versions under development. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |