From: <rv...@us...> - 2011-05-12 17:47:26
|
Revision: 852 http://treebase.svn.sourceforge.net/treebase/?rev=852&view=rev Author: rvos Date: 2011-05-12 17:47:20 +0000 (Thu, 12 May 2011) Log Message: ----------- Changed to use jsPhyloSVG Modified Paths: -------------- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp Modified: trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp =================================================================== --- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-12 17:46:33 UTC (rev 851) +++ trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-12 17:47:20 UTC (rev 852) @@ -5,11 +5,13 @@ <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> -<title>-Tree viewer/editor (PhyloWidget)</title> +<title>-Tree viewer</title> <script type="text/javascript" src="<c:url value='/scripts/prototype/prototype-1.6.0.3.js'/>"></script> <script type="text/javascript" src="<c:url value='/scripts/phylowidget/lib.js'/>"></script> <script type="text/javascript" src="<c:url value='/scripts/phylowidget.js'/>"></script> +<script type="text/javascript" src="<c:url value='/scripts/raphael-min.js'/>"></script> +<script type="text/javascript" src="<c:url value='/scripts/jsphylosvg-min.js'/>"></script> <style type="text/css"> body { @@ -98,7 +100,7 @@ <table id="content" style="margin-top: 5px"> <tr> <td style="vertical-align:top"> - <fieldset> + <%-- fieldset> <legend>PhyloWidget <a href="#" class="openHelp" onclick="openHelp('newPhyloWidget')"><img class="iconButton" src="<fmt:message key="icons.help"/>" /></a> </legend> @@ -135,6 +137,33 @@ To view this content, you need to install Java from <a href="http://java.com">java.com</a> </applet> + </fieldset --%> + <fieldset> + <legend>jsPhyloSVG + <a href="#" class="openHelp" onclick="openHelp('jsPhyloSVG')"><img class="iconButton" src="<fmt:message key="icons.help"/>" /></a> + </legend> + <script type="text/javascript"> + function drawTree(){ + YUI().use('oop', 'json-stringify', 'io-base', 'event', 'event-delegate', function(Y){ + var uri = "/treebase-web/"+document.TreeForm.treeList.value+"?format=nexml"; + function complete(id, o, args) { + var data = o.responseXML; // Response data. + var dataObject = { + nexml: data, + fileSource: true + }; + phylocanvas = new Smits.PhyloCanvas( + dataObject, + 'svgCanvas', + 600, 600 + ); + }; + Y.on('io:complete', complete, Y); + var request = Y.io(uri); + }); + }; + </script> + <div id="svgCanvas"></div> </fieldset> </td> <td style="vertical-align:top"> @@ -151,10 +180,13 @@ <select name="treeList" size="10" - onclick="javascript:pickTree();" + onclick="javascript:drawTree();" id="treeList"> - <c:forEach var="x" items="${NEWICKSTRINGSMAP}" > + <%--c:forEach var="x" items="${NEWICKSTRINGSMAP}" > <option value="${x.value}">${x.key}</option> + </c:forEach --%> + <c:forEach var="x" items="${PHYLOWSMAP}"> + <option value="${x.value}">${x.key}</option> </c:forEach> </select> </fieldset> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2011-05-12 18:42:15
|
Revision: 853 http://treebase.svn.sourceforge.net/treebase/?rev=853&view=rev Author: rvos Date: 2011-05-12 18:42:09 +0000 (Thu, 12 May 2011) Log Message: ----------- Corrected to use namespacedGUID Modified Paths: -------------- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp Modified: trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp =================================================================== --- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-12 17:47:20 UTC (rev 852) +++ trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-12 18:42:09 UTC (rev 853) @@ -145,7 +145,7 @@ <script type="text/javascript"> function drawTree(){ YUI().use('oop', 'json-stringify', 'io-base', 'event', 'event-delegate', function(Y){ - var uri = "/treebase-web/"+document.TreeForm.treeList.value+"?format=nexml"; + var uri = "/treebase-web/phylows/tree/"+document.TreeForm.treeList.value+"?format=nexml"; function complete(id, o, args) { var data = o.responseXML; // Response data. var dataObject = { @@ -163,7 +163,7 @@ }); }; </script> - <div id="svgCanvas"></div> + <div id="svgCanvas" style="width:600px;height:600px"></div> </fieldset> </td> <td style="vertical-align:top"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2011-05-12 19:19:11
|
Revision: 855 http://treebase.svn.sourceforge.net/treebase/?rev=855&view=rev Author: rvos Date: 2011-05-12 19:19:04 +0000 (Thu, 12 May 2011) Log Message: ----------- nexml now fetched using prototypejs Modified Paths: -------------- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp Modified: trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp =================================================================== --- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-12 18:42:19 UTC (rev 854) +++ trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-12 19:19:04 UTC (rev 855) @@ -143,24 +143,24 @@ <a href="#" class="openHelp" onclick="openHelp('jsPhyloSVG')"><img class="iconButton" src="<fmt:message key="icons.help"/>" /></a> </legend> <script type="text/javascript"> - function drawTree(){ - YUI().use('oop', 'json-stringify', 'io-base', 'event', 'event-delegate', function(Y){ - var uri = "/treebase-web/phylows/tree/"+document.TreeForm.treeList.value+"?format=nexml"; - function complete(id, o, args) { - var data = o.responseXML; // Response data. + function drawjsPhyloSVGTree(){ + var uri = "/treebase-web/phylows/tree/"+document.TreeForm.treeList.value; + new Ajax.Request(uri,{ + method : 'get', + parameters : { format : 'nexml' }, + onSuccess : function(transport){ var dataObject = { - nexml: data, - fileSource: true + nexml : transport.responseXML, + fileSource : true }; phylocanvas = new Smits.PhyloCanvas( dataObject, 'svgCanvas', 600, 600 ); - }; - Y.on('io:complete', complete, Y); - var request = Y.io(uri); - }); + }, + onFailure: function(){ alert('Something went wrong while attempting to fetch '+uri) } + }); }; </script> <div id="svgCanvas" style="width:600px;height:600px"></div> @@ -180,7 +180,7 @@ <select name="treeList" size="10" - onclick="javascript:drawTree();" + onclick="javascript:drawjsPhyloSVGTree();" id="treeList"> <%--c:forEach var="x" items="${NEWICKSTRINGSMAP}" > <option value="${x.value}">${x.key}</option> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2011-05-12 19:41:09
|
Revision: 856 http://treebase.svn.sourceforge.net/treebase/?rev=856&view=rev Author: rvos Date: 2011-05-12 19:41:03 +0000 (Thu, 12 May 2011) Log Message: ----------- Now hardcodes the format parameter Modified Paths: -------------- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp Modified: trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp =================================================================== --- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-12 19:19:04 UTC (rev 855) +++ trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-12 19:41:03 UTC (rev 856) @@ -144,10 +144,9 @@ </legend> <script type="text/javascript"> function drawjsPhyloSVGTree(){ - var uri = "/treebase-web/phylows/tree/"+document.TreeForm.treeList.value; + var uri = "/treebase-web/phylows/tree/"+document.TreeForm.treeList.value+"?format=nexml"; new Ajax.Request(uri,{ method : 'get', - parameters : { format : 'nexml' }, onSuccess : function(transport){ var dataObject = { nexml : transport.responseXML, @@ -159,7 +158,9 @@ 600, 600 ); }, - onFailure: function(){ alert('Something went wrong while attempting to fetch '+uri) } + onFailure: function(){ + alert('Something went wrong while attempting to fetch '+uri) + } }); }; </script> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2011-05-12 19:52:44
|
Revision: 857 http://treebase.svn.sourceforge.net/treebase/?rev=857&view=rev Author: rvos Date: 2011-05-12 19:52:38 +0000 (Thu, 12 May 2011) Log Message: ----------- Fixed messed up fieldset legend Modified Paths: -------------- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp Modified: trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp =================================================================== --- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-12 19:41:03 UTC (rev 856) +++ trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-12 19:52:38 UTC (rev 857) @@ -139,15 +139,13 @@ </applet> </fieldset --%> <fieldset> - <legend>jsPhyloSVG - <a href="#" class="openHelp" onclick="openHelp('jsPhyloSVG')"><img class="iconButton" src="<fmt:message key="icons.help"/>" /></a> - </legend> + <legend>Tree window</legend> <script type="text/javascript"> function drawjsPhyloSVGTree(){ var uri = "/treebase-web/phylows/tree/"+document.TreeForm.treeList.value+"?format=nexml"; new Ajax.Request(uri,{ method : 'get', - onSuccess : function(transport){ + onSuccess : function(transport) { var dataObject = { nexml : transport.responseXML, fileSource : true This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2011-05-12 20:00:20
|
Revision: 858 http://treebase.svn.sourceforge.net/treebase/?rev=858&view=rev Author: rvos Date: 2011-05-12 20:00:14 +0000 (Thu, 12 May 2011) Log Message: ----------- Using onComplete, maybe then we have the whole response body? Modified Paths: -------------- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp Modified: trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp =================================================================== --- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-12 19:52:38 UTC (rev 857) +++ trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-12 20:00:14 UTC (rev 858) @@ -145,7 +145,7 @@ var uri = "/treebase-web/phylows/tree/"+document.TreeForm.treeList.value+"?format=nexml"; new Ajax.Request(uri,{ method : 'get', - onSuccess : function(transport) { + onComplete : function(transport) { var dataObject = { nexml : transport.responseXML, fileSource : true This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2011-05-12 20:42:42
|
Revision: 864 http://treebase.svn.sourceforge.net/treebase/?rev=864&view=rev Author: rvos Date: 2011-05-12 20:42:36 +0000 (Thu, 12 May 2011) Log Message: ----------- Commenting out all phylowidget-related javascript hacks. Hopefully this fixes the bug @jsPhyloSVG seems to see on his side. Modified Paths: -------------- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp Modified: trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp =================================================================== --- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-12 20:39:59 UTC (rev 863) +++ trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-12 20:42:36 UTC (rev 864) @@ -8,8 +8,8 @@ <title>-Tree viewer</title> <script type="text/javascript" src="<c:url value='/scripts/prototype/prototype-1.6.0.3.js'/>"></script> -<script type="text/javascript" src="<c:url value='/scripts/phylowidget/lib.js'/>"></script> -<script type="text/javascript" src="<c:url value='/scripts/phylowidget.js'/>"></script> +<!-- script type="text/javascript" src="<c:url value='/scripts/phylowidget/lib.js'/>"></script--> +<!-- script type="text/javascript" src="<c:url value='/scripts/phylowidget.js'/>"></script--> <script type="text/javascript" src="<c:url value='/scripts/raphael-min.js'/>"></script> <script type="text/javascript" src="<c:url value='/scripts/jsphylosvg-min.js'/>"></script> @@ -85,7 +85,7 @@ </style> </head> <body> - <script type="text/javascript"> + <!-- script type="text/javascript"> TreeBASE.register( function () { var treeList = $('treeList'); @@ -95,7 +95,7 @@ updateJavaTree(); } ); - </script> + </script --> <form name="TreeForm"> <table id="content" style="margin-top: 5px"> <tr> @@ -189,7 +189,7 @@ </c:forEach> </select> </fieldset> - <input + <!-- input type="hidden" name="treeText" id="treeText" @@ -200,7 +200,7 @@ name="clipText" id="clipText" onchange="updateJavaClip();" - value="" /> + value="" /--> <div id="comments" style="margin: 5px"> Make a selection by clicking on the tree list. </div> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2011-05-12 22:49:46
|
Revision: 866 http://treebase.svn.sourceforge.net/treebase/?rev=866&view=rev Author: rvos Date: 2011-05-12 22:49:40 +0000 (Thu, 12 May 2011) Log Message: ----------- using tree list to create links Modified Paths: -------------- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp Modified: trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp =================================================================== --- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-12 22:49:08 UTC (rev 865) +++ trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-12 22:49:40 UTC (rev 866) @@ -8,8 +8,6 @@ <title>-Tree viewer</title> <script type="text/javascript" src="<c:url value='/scripts/prototype/prototype-1.6.0.3.js'/>"></script> -<!-- script type="text/javascript" src="<c:url value='/scripts/phylowidget/lib.js'/>"></script--> -<!-- script type="text/javascript" src="<c:url value='/scripts/phylowidget.js'/>"></script--> <script type="text/javascript" src="<c:url value='/scripts/raphael-min.js'/>"></script> <script type="text/javascript" src="<c:url value='/scripts/jsphylosvg-min.js'/>"></script> @@ -85,64 +83,21 @@ </style> </head> <body> - <!-- script type="text/javascript"> - TreeBASE.register( - function () { - var treeList = $('treeList'); - var option = treeList.select('option'); - var treeText = $('treeText'); - treeText.value = option[0].value; - updateJavaTree(); - } - ); - </script --> <form name="TreeForm"> <table id="content" style="margin-top: 5px"> <tr> <td style="vertical-align:top"> - <%-- fieldset> - <legend>PhyloWidget -<a href="#" class="openHelp" onclick="openHelp('newPhyloWidget')"><img class="iconButton" src="<fmt:message key="icons.help"/>" /></a> - </legend> - <applet - code="org.phylowidget.PhyloWidget" - id="PhyloWidget" - name="PhyloWidget" - codebase="./phylowidget" - archive="PhyloWidget.jar,core.jar,itext.jar,jgrapht-jdk1.5.jar,pdf.jar" - mayscript="true" - width="600" height="600"> - <param name="tree" value="<c:out value="${DEFAULTNEWICK}"/>"/> - - - <!-- - Additional parameters can be passed to the widget, which - are parsed out by PhyloUI.java, e.g.: - <param name="showBranchLengths" value="true"/> - <param name="useBranchLengths" value="true"/> - --> - <param name="menuFile" value="limited-menus.xml" /> - <param name="image" value="loading.gif" /> - <param name="boxmessage" value="Loading PhyloWidget software..." /> - <param name="boxbgcolor" value="#FFFFFF" /> - <param name="progressbar" value="true" /> - <param name="subapplet.classname" value="org.phylowidget.PhyloWidget" /> - <param name="subapplet.displayname" value="PhyloWidget" /> - <param name="cache_archive" value="PhyloWidget.jar,core.jar,itext.jar,jgrapht-jdk1.5.jar,pdf.jar"/> - <param name="cache_archive_ex" value="PhyloWidget.jar;preload,core.jar;preload,itext.jar;preload,jgrapht-jdk1.5.jar;preload,pdf.jar;preload"/> - - - <!-- This is the message that shows up when people don't have - Java installed in their browser. --> - To view this content, you need to install Java from - <a href="http://java.com">java.com</a> - </applet> - </fieldset --%> <fieldset> <legend>Tree window</legend> <script type="text/javascript"> - function drawjsPhyloSVGTree(){ - var uri = "/treebase-web/phylows/tree/"+document.TreeForm.treeList.value+"?format=nexml"; + function drawjsPhyloSVGTree(namespacedGUID,ntax){ + var uri = "/treebase-web/phylows/tree/"; + if ( null != namespacedGUID ) { + uri = uri + namespacedGUID + "?format=nexml"; + } + else { + uri = uri + document.TreeForm.treeList.value + "?format=nexml"; + } new Ajax.Request(uri,{ method : 'get', onComplete : function(transport) { @@ -165,15 +120,7 @@ <div id="svgCanvas" style="width:600px;height:600px"></div> </fieldset> </td> - <td style="vertical-align:top"> - <fieldset style="margin-left:5px;margin-right:5px"> - <legend>Node Info</legend> - <div id="nodeText" style="background:white;margin:5px;padding:5px;"> - Mouse over a node to view its detailed information here. - Node details will be displayed if they were described in - the uploaded tree. - </div> - </fieldset> + <td style="vertical-align:top"> <fieldset style="margin-top:10px;margin-left:5px;margin-right:5px"> <legend><c:out value="${NEWICKSTRINGNAME}"/></legend> <select @@ -181,29 +128,19 @@ size="10" onclick="javascript:drawjsPhyloSVGTree();" id="treeList"> - <%--c:forEach var="x" items="${NEWICKSTRINGSMAP}" > - <option value="${x.value}">${x.key}</option> - </c:forEach --%> <c:forEach var="x" items="${PHYLOWSMAP}"> <option value="${x.value}">${x.key}</option> </c:forEach> </select> + <ol> + <c:forEach var="tree" items="${TREELIST}"> + <li> + <a href="javascript:drawjsPhyloSVGTree(${tree.treebaseIDString.namespacedGUID},${tree.nTax})">${tree.label} ${tree.title}</a> + </li> + <option value="${x.value}">${x.key}</option> + </c:forEach> + </ol> </fieldset> - <!-- input - type="hidden" - name="treeText" - id="treeText" - onfocus="selectOnce(this);" - value="" /> - <input - type="hidden" - name="clipText" - id="clipText" - onchange="updateJavaClip();" - value="" /--> - <div id="comments" style="margin: 5px"> - Make a selection by clicking on the tree list. - </div> <c:if test="${treeBlockID != null}"> <fieldset style="margin-left:5px;margin-right:5px;background-color:white"> <legend>Quick links</legend> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rv...@us...> - 2011-05-16 16:38:57
|
Revision: 868 http://treebase.svn.sourceforge.net/treebase/?rev=868&view=rev Author: rvos Date: 2011-05-16 16:38:51 +0000 (Mon, 16 May 2011) Log Message: ----------- It is better to use an onclick handler than the javascript: pseudo protocol. Also removed some of the styling. We'll make it look pretty once tree drawing works. Modified Paths: -------------- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp Modified: trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp =================================================================== --- trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-13 14:32:50 UTC (rev 867) +++ trunk/treebase-web/src/main/webapp/WEB-INF/pages/limitedPhylowidget.jsp 2011-05-16 16:38:51 UTC (rev 868) @@ -52,9 +52,7 @@ fieldset { display:block; - background:#CEE3F6; margin:auto; - text-align:center; } legend { @@ -91,13 +89,7 @@ <legend>Tree window</legend> <script type="text/javascript"> function drawjsPhyloSVGTree(namespacedGUID,ntax){ - var uri = "/treebase-web/phylows/tree/"; - if ( null != namespacedGUID ) { - uri = uri + namespacedGUID + "?format=nexml"; - } - else { - uri = uri + document.TreeForm.treeList.value + "?format=nexml"; - } + var uri = "/treebase-web/phylows/tree/" + namespacedGUID + "?format=nexml"; new Ajax.Request(uri,{ method : 'get', onComplete : function(transport) { @@ -108,7 +100,7 @@ phylocanvas = new Smits.PhyloCanvas( dataObject, 'svgCanvas', - 600, 600 + 600, ntax * 20 ); }, onFailure: function(){ @@ -117,40 +109,30 @@ }); }; </script> - <div id="svgCanvas" style="width:600px;height:600px"></div> + <div id="svgCanvas" style="width:600px"></div> </fieldset> </td> <td style="vertical-align:top"> - <fieldset style="margin-top:10px;margin-left:5px;margin-right:5px"> + <fieldset> <legend><c:out value="${NEWICKSTRINGNAME}"/></legend> - <select - name="treeList" - size="10" - onclick="javascript:drawjsPhyloSVGTree();" - id="treeList"> - <c:forEach var="x" items="${PHYLOWSMAP}"> - <option value="${x.value}">${x.key}</option> - </c:forEach> - </select> <ol> <c:forEach var="tree" items="${TREELIST}"> - <li> - <a href="javascript:drawjsPhyloSVGTree(${tree.treebaseIDString.namespacedGUID},${tree.nTax})">${tree.label} ${tree.title}</a> + <li onclick="drawjsPhyloSVGTree('${tree.treebaseIDString.namespacedGUID}',${tree.nTax})"> + ${tree.label} ${tree.title} </li> - <option value="${x.value}">${x.key}</option> </c:forEach> </ol> </fieldset> <c:if test="${treeBlockID != null}"> - <fieldset style="margin-left:5px;margin-right:5px;background-color:white"> + <fieldset> <legend>Quick links</legend> - <p style="text-align:left"> + <p> <a href="/treebase-web/search/study/trees.html?id=${studyID}" target="_new"> <img class="iconButton" style="vertical-align:middle" src="<fmt:message key="icons.trees"/>" /> Containing tree set </a> </p> - <p style="text-align:left"> + <p> <a href="/treebase-web/search/study/summary.html?id=${studyID}" target="_new"> <img class="iconButton" style="vertical-align:middle" src="<fmt:message key="icons.citation"/>" /> Containing study This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |