<classpathentry kind="lib" path="lib/jetty-http-9.2.10.v20150310.jar"/>
<classpathentry kind="lib" path="lib/jetty-io-9.2.10.v20150310.jar"/>
<classpathentry kind="lib" path="lib/java-json.jar"/>
- <classpathentry kind="lib" path="lib/Jmol-14.2.14_2015.06.11.jar"/>
+ <classpathentry kind="lib" path="lib/Jmol-14.6.4_2016.10.26.jar"/>
<classpathentry kind="con" path="org.testng.TESTNG_CONTAINER"/>
<classpathentry kind="lib" path="lib/biojava-core-4.1.0.jar"/>
<classpathentry kind="lib" path="lib/biojava-ontology-4.1.0.jar"/>
The people listed below are 'The Jalview Authors', who collectively
own the copyright to the Jalview source code and permit it to be released under GPL.
-This is the authoritative list. It was correct on 6th Oct 2016.
+This is the authoritative list. It was correct on 23rd November 2016.
If you are releasing a version of Jalview, please make sure any
statement of authorship in the GUI reflects the list shown here.
In particular, check the resources/authors.props file !
Jim Procter
-Andrew Waterhouse
Mungo Carstairs
Tochukwu 'Charles' Ofoegbu
+Kira Mourao
+Andrew Waterhouse
Jan Engelhardt
Lauren Lui
Anne Menard
-jalview.release=Release_2_10_0_Branch
-jalview.version=2.10.0b1
+jalview.release=releases/Release_2_10_1_Branch
+jalview.version=2.10.1
Licensing information for each library is given below:
JGoogleAnalytics_0.3.jar APL 2.0 License - http://code.google.com/p/jgoogleanalytics/
-Jmol-14.2.14_2015.06.11.jar GPL/LGPLv2 http://sourceforge.net/projects/jmol/files/
+Jmol-14.6.4_2016.10.26.jar GPL/LGPLv2 http://sourceforge.net/projects/jmol/files/
VARNAv3-93.jar GPL licenced software by K�vin Darty, Alain Denise and Yann Ponty. http://varna.lri.fr
activation.jar
apache-mime4j-0.6.jar
<property name="packageDir" value="dist" />
<property name="outputJar" value="jalview.jar" />
<!-- Jalview Applet JMol Jar Dependency -->
- <property name="jmolJar" value="JmolApplet-14.2.14_2015.06.11.jar" />
+ <property name="jmolJar" value="JmolApplet-14.6.4_2016.10.26.jar" />
<property name="varnaJar" value="VARNAv3-93.jar" />
<property name="jsoup" value="jsoup-1.8.1.jar" />
<property name="jsonSimple" value="json_simple-1.1.jar" />
<!-- temporary copy of source to update timestamps -->
<copy todir="_sourcedist">
<fileset dir=".">
+ <exclude name=".*" />
+ <exclude name="**/.*" />
+ <exclude name="*.class" />
+ <exclude name="**/*.class" />
<include name="LICENSE" />
<include name="README" />
<include name="build.xml" />
<exclude name="utils/InstallAnywhere/**Build.iap_xml" />
<exclude name="utils/InstallAnywhere/**Build*/**" />
<exclude name="utils/InstallAnywhere/**Build*/**" />
+ <exclude name="utils/InstallAnywhere/.build*.*/**" />
<exclude name="utils/InstallAnywhere/**locale*" />
<exclude name="utils/InstallAnywhere/**locale*/**" />
+ <exclude name="utils/InstallAnywhere/**locale*/**" />
<include name="${schemaDir}/**/*" />
<include name="utils/**/*" />
<include name="${docDir}/**/*" />
<td>Main Jalview Applet Jar</td>
</tr>
<tr>
- <td><a href="http://www.jalview.org/builds/develop/examples/JmolApplet-14.2.14_2015.06.11.jar">JmolApplet-14.2.14_2015.06.11.jar</a> </td>
+ <td><a href="http://www.jalview.org/builds/develop/examples/JmolApplet-14.6.4_2016.10.26.jar">JmolApplet-14.6.4_2016.10.26.jar</a> </td>
<td>Jmol Applet Jar</td>
</tr>
<tr>
<p>To run Jalview applet in your web page download the Jars listed above. The snippet below shows a minimal code for embedding Jalview applet into a web page.
<pre><code>
-<applet code="jalview.bin.JalviewLite" width="756" height="560" archive="jalviewApplet.jar,JmolApplet-14.2.14_2015.06.11.jar,java-json.jar,json_simple-1.1.jar">
+<applet code="jalview.bin.JalviewLite" width="756" height="560" archive="jalviewApplet.jar,JmolApplet-14.6.4_2016.10.26.jar,java-json.jar,json_simple-1.1.jar">
<param name="permissions" value="sandbox" />
<param name="file" value="plantfdx.fa" />
<param name="features" value="plantfdx.features" />
<td width="10%" valign="center">
<applet
code="jalview.bin.JalviewLite" width="140" height="35"
- archive="jalviewApplet.jar,JmolApplet-14.2.14_2015.06.11.jar,java-json.jar,json_simple-1.1.jar">
+ archive="jalviewApplet.jar,JmolApplet-14.6.4_2016.10.26.jar,java-json.jar,json_simple-1.1.jar">
<param name="permissions" value="sandbox"/>
<param name="file" value="uniref50.fa"/>
<param name="treeFile" value="ferredoxin.nw"/>
<tr>
<td width="10%" valign="center"><applet
code="jalview.bin.JalviewLite" width="140" height="35"
- archive="jalviewApplet.jar,JmolApplet-14.2.14_2015.06.11.jar,java-json.jar,json_simple-1.1.jar">
+ archive="jalviewApplet.jar,JmolApplet-14.6.4_2016.10.26.jar,java-json.jar,json_simple-1.1.jar">
<param name="permissions" value="sandbox"/>
<param name="file" value="uniref50.fa"/>
<param name="features" value="exampleFeatures.txt"/>
<tr>
<td width="10%" valign="center"><applet
code="jalview.bin.JalviewLite" width="140" height="35"
- archive="jalviewApplet.jar,JmolApplet-14.2.14_2015.06.11.jar,java-json.jar,json_simple-1.1.jar">
+ archive="jalviewApplet.jar,JmolApplet-14.6.4_2016.10.26.jar,java-json.jar,json_simple-1.1.jar">
<param name="permissions" value="sandbox"/>
<param name="file" value="uniref50.fa"/>
<param name="showFullId" value="false"/>
<tr>
<td width="10%" valign="center"><applet
code="jalview.bin.JalviewLite" width="140" height="35"
- archive="jalviewApplet.jar,JmolApplet-14.2.14_2015.06.11.jar,java-json.jar,json_simple-1.1.jar">
+ archive="jalviewApplet.jar,JmolApplet-14.6.4_2016.10.26.jar,java-json.jar,json_simple-1.1.jar">
<param name="permissions" value="sandbox"/>
<param name="file" value="jpred_msa.fasta"/>
<param name="jnetfile" value="jpred_msa.seq.concise"/>
<tr>
<td width="10%" valign="center"><applet
code="jalview.bin.JalviewLite" width="140" height="35"
- archive="jalviewApplet.jar,JmolApplet-14.2.14_2015.06.11.jar,java-json.jar,json_simple-1.1.jar">
+ archive="jalviewApplet.jar,JmolApplet-14.6.4_2016.10.26.jar,java-json.jar,json_simple-1.1.jar">
<param name="permissions" value="sandbox"/>
<param name="file" value="RF00031_folded.stk"/>
<param name="showFullId" value="false"/>
<td width="10%" valign="center">
<applet
code="jalview.bin.JalviewLite" width="140" height="35"
- archive="jalviewApplet.jar,JmolApplet-14.2.14_2015.06.11.jar,java-json.jar,json_simple-1.1.jar">
+ archive="jalviewApplet.jar,JmolApplet-14.6.4_2016.10.26.jar,java-json.jar,json_simple-1.1.jar">
<param name="permissions" value="sandbox"/>
<param name="file2" value="estrogenReceptorCdna_frag.fa"/>
<param name="file" value="estrogenReceptorProtein_frag.fa"/>
<a href="view-source:http://www.jalview.org/builds/develop/examples/embedded.html" target="_blank">View the source code for this example here</a> (If the link doesn't work on your browser try going to <a href="http://www.jalview.org/builds/develop/examples/embedded.html">this page</a> and viewing the page source manually).<p>
<applet
code="jalview.bin.JalviewLite" width="756" height="560"
- archive="jalviewApplet.jar,JmolApplet-14.2.14_2015.06.11.jar,java-json.jar,json_simple-1.1.jar">
+ archive="jalviewApplet.jar,JmolApplet-14.6.4_2016.10.26.jar,java-json.jar,json_simple-1.1.jar">
<param name="permissions" value="sandbox"/>
<param name="file" value="plantfdx.fa"/>
<param name="features" value="plantfdx.features"/>
<script language="JavaScript">
// instead of this, we use a custom JmolApplet spec
// jmolInitialize('jmol');
-jmolInitialize("","JmolApplet-14.2.14_2015.06.11.jar");
+jmolInitialize("","JmolApplet-14.6.4_2016.10.26.jar");
</script>
<script>
var loglevel=1;
var _jvA=new Object();
_jvA.attributes = {
code : 'jalview.bin.JalviewLite',
- archive : 'jalviewApplet.jar,JmolApplet-14.2.14_2015.06.11.jar,java-json.jar,json_simple-1.1.jar',
+ archive : 'jalviewApplet.jar,JmolApplet-14.6.4_2016.10.26.jar,java-json.jar,json_simple-1.1.jar',
width : '500',
height : '350',
mayscript : 'True',
</div>
<div>
<applet
- code="jalview.bin.JalviewLite" width="500" height="350" id="jvA" mayscript="mayscript" archive="jalviewApplet.jar,JmolApplet-14.2.14_2015.06.11.jar,java-json.jar,json_simple-1.1.jar">
+ code="jalview.bin.JalviewLite" width="500" height="350" id="jvA" mayscript="mayscript" archive="jalviewApplet.jar,JmolApplet-14.6.4_2016.10.26.jar,java-json.jar,json_simple-1.1.jar">
<param name="permissions" value="sandbox"/>
<param name="java_arguments" value="-Xmx256m"/>
<param name="externalstructureviewer" value="true"/>
<a href="view-source:http://www.jalview.org/builds/develop/examples/formComplete.html" target="_blank">View the source here to see how it has been done</a> (If the link doesn't work on your browser try going to <a href="http://www.jalview.org/builds/develop/examples/formComplete.html">this page</a> and viewing the page source manually).<br/>
<a name="api">View the full <a href="javascript:doSubmit('jalviewLiteJs')">JalviewLite API documentation</a>.</a>
<applet code="jalview.bin.JalviewLite" width="0" height="0"
- archive="jalviewApplet.jar,JmolApplet-14.2.14_2015.06.11.jar,java-json.jar,json_simple-1.1.jar" name="Jalview">
+ archive="jalviewApplet.jar,JmolApplet-14.6.4_2016.10.26.jar,java-json.jar,json_simple-1.1.jar" name="Jalview">
<param name="file" value="plantfdx.fa"/>
<param name="features" value="plantfdx.features"/>
String getFeatureInput(){
def swingBuilder = new SwingBuilder();
- def response = JOptionPane.showInputDialog(
- null, 'Select columns by feature by type','Enter type of feature', JOptionPane.OK_OPTION)
+ def response = JvOptionPane.showInputDialog(
+ null, 'Select columns by feature by type','Enter type of feature', JvOptionPane.OK_OPTION)
return response
}
\ No newline at end of file
</SCRIPT>
<form name="Form1">
<applet name="JalviewLite" code="jalview.bin.JalviewLite"
-archive="jalviewApplet.jar,JmolApplet-14.2.14_2015.06.11.jar,java-json.jar,json_simple-1.1.jar" width="0" height="0">
+archive="jalviewApplet.jar,JmolApplet-14.6.4_2016.10.26.jar,java-json.jar,json_simple-1.1.jar" width="0" height="0">
<param name="debug" value="true"/>
<param name="showbutton" value="false"/>
</applet>
<applet
- code="jalview.bin.JalviewLite" width="800" height="300" id="jvapp" mayscript="True" scriptable="True" archive="jalviewApplet.jar,JmolApplet-14.2.14_2015.06.11.jar,java-json.jar,json_simple-1.1.jar">
+ code="jalview.bin.JalviewLite" width="800" height="300" id="jvapp" mayscript="True" scriptable="True" archive="jalviewApplet.jar,JmolApplet-14.6.4_2016.10.26.jar,java-json.jar,json_simple-1.1.jar">
<param name="oninit" value="lJvApp"/>
<param name="automaticScrolling" value="true"/>
<param name="file" value="plantfdx.fa"/>
<applet
- code="jalview.bin.JalviewLite" width="800" height="300" id="jvfollower" mayscript="True" scriptable="True" archive="jalviewApplet.jar,JmolApplet-14.2.14_2015.06.11.jar,java-json.jar,json_simple-1.1.jar">
+ code="jalview.bin.JalviewLite" width="800" height="300" id="jvfollower" mayscript="True" scriptable="True" archive="jalviewApplet.jar,JmolApplet-14.6.4_2016.10.26.jar,java-json.jar,json_simple-1.1.jar">
<param name="oninit" value="lJvFollow"/>
<param name="file" value="plantfdx.fa"/>
<param name="annotations" value="plantfdx.annotations"/>
<mapID target="home" url="html/index.html" />
<mapID target="new" url="html/whatsNew.html"/>
- <mapID target="release" url="html/releases.html#Jalview.2.10.0b1"/>
+ <mapID target="release" url="html/releases.html#Jalview.2.10.1"/>
<mapID target="alannotation" url="html/features/annotation.html"/>
<mapID target="keys" url="html/keys.html"/>
<mapID target="newkeys" url="html/features/newkeystrokes.html"/>
<!-- DO NOT WRAP THESE LINES - help2Website relies on each item being on one line! -->
<tocitem text="Jalview Documentation" target="home" expand="true">
<tocitem text="What's new" target="new" expand="true">
- <tocitem text="Retrieval from ENSEMBL" target="ensemblfetch" />
- <tocitem text="UniProt Free Text Search" target="uniprotfetcher" />
- <tocitem text="SIFTS for mapping PDB structures to UniProt" target="siftsmapping" />
<tocitem text="Latest Release Notes" target="release"/>
</tocitem>
When a selection is highlighted in a Jalview window, use the
<em>Select→Select Highlighted Region</em> or press <em>B</em>
to add the mapped positions to the alignment window's column
- selection.
+ selection.<br /> <em>Hint: Use your machine's 'switch
+ application' key combination (Alt-Tab on Windows and Linux,
+ Cmd-Tab on OSX) to quickly switch between UCSF Chimera and Jalview
+ before pressing 'B' to select highlighted regions.</em>
</p>
<p>
Basic screen operations (see <a
<strong>Selecting regions from Search Results</strong>
</p>
<p>
- Press 'B' or select the <em>Select Highlighted Columns</em> option
- from the alignment window's select menu to add columns containing
+ Press 'B' or use the <em>Select Highlighted Columns</em> option from
+ the alignment window's select menu to add columns containing
highlighted search results to the alignment window's column
- selection.
+ selection. Alt-'B' will add all but the highlighted columns, and
+ Ctrl (or Cmd) -B will toggle the column selection for the
+ highlighted region.
</p>
<p>
</tr>
<tr><td><strong>B</strong></td>
<td>Both</td>
- <td>Mark the currently highlighted columns</td>
+ <td>Add highlighted columns to current column selection</td>
</tr>
<tr><td><strong>Alt 'B'</strong></td>
<td>Both</td>
- <td>Mark all but the currently highlighted columns</td>
+ <td>Add all but the currently highlighted columns to current selection</td>
</tr>
<tr><td><strong>Control 'B'</strong></td>
<td>Both</td>
- <td>Toggle the marks on the currently highlighted
- columns (or all others if Alt is pressed)</td>
+ <td>Toggle the column selection marks for the currently highlighted
+ columns (or all others if Alt is also pressed)</td>
</tr>
<tr>
<td><strong>H</strong></td>
<td width="60" nowrap>
<div align="center">
<strong><a name="Jalview.2.10.1">2.10.1</a><br />
- <em>24/11/2016</em></strong>
+ <em>29/11/2016</em></strong>
</div>
</td>
<td><div align="left">
- <em>General</em>
- <ul>
- <li><!-- JAL-98 -->Improved memory usage: sparse arrays used for all consensus calculations</li>
- <li><!-- JAL- --></li>
- </ul>
- <em>Application</em>
- <ul>
- <li><!-- JAL-1723 -->Sequence ID tool tips have been tamed (databases sorted alphabetically, abridged ID sets) </li>
- <li><!-- JAL-2282-->New replacement token for creating URLs <em>just</em> from database cross references. Users with custom links will receive a warning dialog asking them to update their preferences.</li>
- <li><!-- JAL-2287-->Cancel button and escape listener on dialog warning user about disconnecting Jalview from a Chimera session</li>
- <li><!-- JAL-2281-->Custom URL links for database cross-references are matched to database name regardless of case</li>
- <li></li>
-
-
- </ul>
- <em>Applet</em>
+ <em>General</em>
<ul>
+ <li>
+ <!-- JAL-98 -->Improved memory usage: sparse arrays used
+ for all consensus calculations
+ </li>
+ <li>
+ <!-- JAL-2177 -->Jmol updated to version 14.6.4 (released 3rd Oct 2016)
+ </li>
+ <li>Updated Jalview's Certum code signing certificate
+ for 2016-2017</li>
</ul>
- <em>Build and deployment</em>
+ <em>Application</em>
<ul>
- <li></li>
+ <li>
+ <!-- JAL-1723 -->Sequence ID tool tip presents abridged
+ set of database cross-references, sorted alphabetically
+ </li>
+ <li>
+ <!-- JAL-2282-->New replacement token for creating URLs <em>just</em>
+ from database cross references. Users with custom links
+ will receive a <a href="webServices/urllinks.html#warning">warning
+ dialog</a> asking them to update their preferences.
+ </li>
+ <li>
+ <!-- JAL-2287-->Cancel button and escape listener on
+ dialog warning user about disconnecting Jalview from a
+ Chimera session
+ </li>
+ <li>
+ <!-- JAL-2320-->Jalview's Chimera control window closes if
+ the Chimera it is connected to is shut down
+ </li>
+ <li>
+ <!-- JAL-1738-->New keystroke (B) and Select highlighted
+ columns menu item to mark columns containing
+ highlighted regions (e.g. from structure selections or results
+ of a Find operation)
+ </li>
+ <li>
+ <!-- JAL-2284-->Command line option for batch-generation
+ of HTML pages rendering alignment data with the BioJS
+ MSAviewer
+ </li>
</ul>
- </div>
- </td>
+ </div></td>
<td>
<div align="left">
<em>General</em>
<ul>
- <li><!-- JAL-2286 -->Columns with more than one modal residue are not coloured or thresholded according to percent identity (first observed in Jalview 2.8.2)</li>
- <li><!-- JAL-2301 -->Threonine incorrectly reported as not hydrophobic</li>
- <li><!-- JAL-2318 -->Updates to documentation pages (above PID threshold, amino acid properties)</li>
- <li><!-- JAL-2292 -->Lower case residues in sequences are not reported as mapped to residues in a structure file in the View Mapping report</li>
+ <li>
+ <!-- JAL-2286 -->Columns with more than one modal residue
+ are not coloured or thresholded according to percent
+ identity (first observed in Jalview 2.8.2)
+ </li>
+ <li>
+ <!-- JAL-2301 -->Threonine incorrectly reported as not
+ hydrophobic
+ </li>
+ <li>
+ <!-- JAL-2318 -->Updates to documentation pages (above PID
+ threshold, amino acid properties)
+ </li>
+ <li>
+ <!-- JAL-2292 -->Lower case residues in sequences are not
+ reported as mapped to residues in a structure file in the
+ View Mapping report
+ </li>
+ <li>
+ <!--JAL-2324 -->Identical features with non-numeric scores
+ could be added multiple times to a sequence
+ </li>
+ <li>
+ <!--JAL-2323, JAL-2333,JAL-2335,JAL-2327 -->Disulphide
+ bond features shown as two highlighted residues rather
+ than a range in linked structure views, and treated
+ correctly when selecting and computing trees from features
+ </li>
+ <li>
+ <!-- JAL-2281-->Custom URL links for database
+ cross-references are matched to database name regardless
+ of case
+ </li>
+
</ul>
<em>Application</em>
<ul>
- <li><!-- JAL-2282-->Custom URL links for specific database names without regular expressions also offer invalid links from Sequence ID</li>
- <li><!-- JAL-2315-->Removing a single configured link in the URL links pane in Connections preferences doesn't actually update Jalview configuration</li>
- <li><!-- JAL-2272-->CTRL-Click on a selected region to open the alignment area popup menu doesn't work on El-Capitan</li>
- <li><!-- JAL-2280 -->Jalview doesn't offer to associate mmCIF files with similarly named sequences if dropped onto the alignment</li>
- <li><!-- JAL-2312 -->Additional mappings are shown for PDB entries where more chains exist in the PDB accession than are reported in the SIFTS file</li>
- <li><!-- JAL-2317-->Certain structures do not get mapped to the structure view when displayed with Chimera</li>
- <li><!-- JAL-2317-->No chains shown in the Chimera view panel's View->Show Chains submenu</li>
-
- <li><!-- --></li>
- <li><!-- --></li>
- </ul>
- <em>Applet</em>
- <ul>
- </ul>
- <em>Build and deployment</em>
- <ul>
- <li><!-- JAL-2308, -->Failing/passing unit tests</li>
+ <li>
+ <!-- JAL-2282-->Custom URL links for specific database
+ names without regular expressions also offer links from
+ Sequence ID
+ </li>
+ <li>
+ <!-- JAL-2315-->Removing a single configured link in the
+ URL links pane in Connections preferences doesn't actually
+ update Jalview configuration
+ </li>
+ <li>
+ <!-- JAL-2272-->CTRL-Click on a selected region to open
+ the alignment area popup menu doesn't work on El-Capitan
+ </li>
+ <li>
+ <!-- JAL-2280 -->Jalview doesn't offer to associate mmCIF
+ files with similarly named sequences if dropped onto the
+ alignment
+ </li>
+ <li>
+ <!-- JAL-2312 -->Additional mappings are shown for PDB
+ entries where more chains exist in the PDB accession than
+ are reported in the SIFTS file
+ </li>
+ <li>
+ <!-- JAL-2317-->Certain structures do not get mapped to
+ the structure view when displayed with Chimera
+ </li>
+ <li>
+ <!-- JAL-2317-->No chains shown in the Chimera view
+ panel's View->Show Chains submenu
+ </li>
+ <li>
+ <!--JAL-2277 -->Export as HTML with embedded SVG doesn't
+ work for wrapped alignment views
+ </li>
+ <li>
+ <!--JAL-2197 -->Rename UI components for running JPred
+ predictions from 'JNet' to 'JPred'
+ </li>
+ <li>
+ <!-- JAL-2337,JAL-2277 -->Export as PNG or SVG is
+ corrupted when annotation panel vertical scroll is not at
+ first annotation row
+ </li>
+ <li>
+ <!--JAL-2332 -->Attempting to view structure for Hen
+ lysozyme results in a PDB Client error dialog box
+ </li>
</ul>
- <em>New Known Issues</em>
+<!-- <em>New Known Issues</em>
<ul>
<li></li>
- </ul>
+ </ul> -->
</div>
</td>
</tr>
the sequence ID for the sequence (<em>since Jalview 2.10.1</em>).
</p>
<p>
- If Jalview opens a project with links which include $SEQUENCE_ID$ tokens, it will present
- the user with a warning message, as these links may need to be updated to use $DB_ACCESSION$, if
- they were added before Jalview 2.10.1. The message lists the links which should be reviewed.
- The warning can be turned off completely via a checkbox in the message dialog.
+ <strong><a name="warning">Warning dialog about updating
+ your configured URL links</a></strong><br /> In the desktop
+ prior to Jalview 2.10.1, the only way to configure custom links for
+ a particular database cross-reference for a sequence was to give it
+ a name that
+ <em>exactly</em> matched the database source, and a regular
+ expression for filtering out any spurious matches generated when the
+ custom linked was tested against the Sequence's ID string. Since the
+ introduction of the $DB_ACCESSION$ token, however, $SEQUENCE_ID$
+ will not be used for database cross-reference accession strings, and
+ if you have custom links configured, Jalview will raise a warning
+ message so let you know that you may need to update your links to
+ use $DB_ACCESSION$.
</p>
<p>
<strong>Regular Expression Substitution</strong><br> A url may
</head>
<body>
<p>
- <strong>What's new in Jalview 2.10.0b1 ?</strong>
+ <strong>What's new in Jalview 2.10.1 ?</strong>
</p>
<p>
- Jalview 2.10.0b1 is a patch release for 2.10, the next major release
- in the Jalview 2 series. Full details are in the <a
- href="releases.html#Jalview.2.10.0b1">Jalview 2.10b1 Release
- Notes</a>, but the highlights are below.
+ Jalview 2.10.1 was released on 29th November 2016. Full details are
+ in the <a href="releases.html#Jalview.2.10.1">Jalview 2.10.1
+ Release Notes</a>, but the highlights are below. This is also the
+ first release to include contributions from Kira Mourão, who
+ joined Jalview's core development team in October 2016.
</p>
<ul>
- <li>Drag and drop reinstated for the Jalview desktop on
- Windows, Linux and older OSX systems.</li>
- <li>Problems loading local PDB files have been fixed</li>
- <li>Conservation shading can be disabled for PID and consensus
- based colour scheme</li>
- </ul>
- <p><em>Major highlights of the 2.10.0 Release</em></p>
- <ul>
- <li><strong>Ensembl sequence fetcher</strong><br />Annotated
- Genes, transcripts and proteins can be retrieved via Jalview's new
- <a href="features/ensemblsequencefetcher.html">Ensembl REST
- client</a>. Support for import of Ensembl data allows:
- <ul>
- <li><strong>Aligned locus view</strong><br />Transcripts
- retrieved for a gene identifier via the Ensembl or
- EnsemblGenomes sequence databases are automatically aligned to
- their reference genome, and introns hidden from the view.</li>
- <li><strong>Sequence variant data</strong><br />Jalview
- propagates variant annotation on genomic regions onto
- transcripts and protein products, complete with associated
- metadata such as clinical significance.</li>
- </ul></li>
- <li><strong>Ensembl and ENA 'show cross-references'
- support</strong><br />The Calculations menu's <strong>'Show
- cross-references'</strong> now offers Ensembl as well as EMBLCDS and
- Uniprot when CDS/Protein mapping data is available for download or
- display. This allows variant annotation to be added directly to an
- alignment of UniProt sequences.</li>
- <li><strong>Working with structures</strong>
- <ul>
- <li><strong>More accurate structure mappings</strong><br />
- Jalview now utilises the PDBe's SIFTS database (at EMBL-EBI)
- to <a href="features/siftsmapping.html">match structures
- to UniProt sequences</a>, even for structures containing
- multiple copies of a sequence.</li>
- <li><strong>Import structures as mmCIF</strong><br />Jalview
- now downloads data from the EMBL-EBI's PDBe site as <a
- href="features/mmcif.html">mmCIF</a>. This allows very large
- structures to be imported, such as the HIV virus capsid
- assembly.</li>
- <li><strong>Chimera users will need to upgrade to
- 1.11.1</strong><br />If you use Chimera to view structures
- downloaded by Jalview 2.10, you will need to make sure you are
- running the latest version of <a href="features/chimera.html">Chimera</a>.</li>
- </ul></li>
- <li><strong>UniProt Free Text Search</strong><br />The new
- search dialog for UniProt allows you to browse and retrieve
- sequences with free-text search, or structured queries.</li>
- <li><strong>Reference sequence alignment view</strong><br />
- Jalview 2.9 introduced support for reference sequences. In 2.10,
- when a reference sequence is defined for the alignment, the
- alignment column ruler is now numbered according to the reference
- sequence. The reference sequence for alignment views can also be
- saved and restored from Jalview projects.</li>
+ <li><strong>More memory efficient</strong><br />We've slimmed
+ down the consensus analysis data structures used by Jalview so
+ even wider alignments can be worked with.</li>
+ <li><strong>Select highlighted region</strong><br />Press 'B'
+ or use the new menu option in the alignment window's Select menu
+ to mark columns containing highlighted regions generated from
+ structure selections, mouse-overs, or resulting from a Find
+ operation.</li>
+ <li><strong>New custom link mechanism for opening URLs
+ for database cross references.</strong><br /> If you have customised URL
+ links in your Jalview preferences, then you may already have seen
+ the <a href="#warning"> warning dialog (see below).</a></li>
+ <li><strong>New command line export option for BioJS
+ MSAviewer</strong><br />A number of small bugs with the HTML export
+ functions from the Jalview desktop were also fixed.</li>
+ <li><strong>Small but significant changes to the
+ physicochemical properties and consensus calculations</strong><br />Threonine
+ is no longer considered a non-hydrophobic residue in the protein
+ conservation calculation, and minor bugs addressed in PID and
+ consensus colouring.</li>
+ <li><strong>Correct display of disulphide bond
+ features</strong><br /> In linked structure views, Jalview would
+ highlight all residues between in addition to the two linked
+ cysteines. The 'select columns by feature' function in the feature
+ settings would also select all intermediate columns.
</ul>
+ <p>
+ <strong><a name="warning">Warning dialog about updating
+ your configured URL links</a></strong><br /> In the desktop prior to Jalview
+ 2.10.1, the only way to configure custom links for a particular
+ database cross-reference for a sequence was to give it a name that <em>exactly</em>
+ matched the database source, and a regular expression for filtering
+ out any spurious matches generated when the custom linked was tested
+ against the Sequence's ID string. Since the introduction of the
+ $DB_ACCESSION$ token, however, $SEQUENCE_ID$ will not be used for
+ database cross-reference accession strings, and if you have custom
+ links configured, Jalview will raise a warning message so let you
+ know that you may need to update your links to use $DB_ACCESSION$.
+ </p>
</body>
</html>
file.reference.jaxrpc.jar=lib/jaxrpc.jar
file.reference.JGoogleAnalytics_0.3.jar=lib/JGoogleAnalytics_0.3.jar
file.reference.jhall.jar=lib/jhall.jar
-file.reference.Jmol-14.2.14_2015.06.11.jar=lib/Jmol-14.2.14_2015.06.11.jar
-file.reference.JmolApplet-14.2.14_2015.06.11.jar=appletlib/JmolApplet-14.2.14_2015.06.11.jar
+file.reference.Jmol-14.6.4_2016.10.26.jar=lib/Jmol-14.6.4_2016.10.26.jar
+file.reference.JmolApplet-14.6.4_2016.10.26.jar=appletlib/JmolApplet-14.6.4_2016.10.26.jar
file.reference.log4j-1.2.8.jar=lib/log4j-1.2.8.jar
file.reference.mail.jar=lib/mail.jar
file.reference.min-jaba-client.jar=lib/min-jaba-client-2.0.jar
${file.reference.jaxrpc.jar}:\
${file.reference.JGoogleAnalytics_0.3.jar}:\
${file.reference.jhall.jar}:\
- ${file.reference.Jmol-14.2.14_2015.06.11.jar}:\
+ ${file.reference.Jmol-14.6.4_2016.10.26.jar}:\
${file.reference.miglayout-4.0-swing.jar}:\
${file.reference.log4j-1.2.8.jar}:\
${file.reference.mail.jar}:\
${file.reference.xml-apis.jar}:\
${file.reference.xercesImpl.jar}:\
${file.reference.wsdl4j.jar}:\
- ${file.reference.JmolApplet-14.2.14_2015.06.11.jar} \
+ ${file.reference.JmolApplet-14.6.4_2016.10.26.jar} \
${file.reference.varna-3.9-dev.jar}
# Space-separated list of extra javac options
javac.compilerargs=
YEAR=2016
-AUTHORS=J Procter, M Carstairs, TC Ofoegbu, AM Waterhouse, J Engelhardt, LM Lui, A Menard, D Barton, N Sherstnev, D Roldan-Martinez, M Clamp, S Searle, G Barton
-AUTHORFNAMES=Jim Procter, Mungo Carstairs, Tochukwu 'Charles' Ofoegbu, Andrew Waterhouse, Jan Engelhardt, Lauren Lui, Anne Menard, Daniel Barton, Natasha Sherstnev, David Roldan-Martinez, Michele Clamp, James Cuff, Steve Searle, David Martin & Geoff Barton
+AUTHORS=J Procter, M Carstairs, TC Ofoegbu, K Mourao, AM Waterhouse, J Engelhardt, LM Lui, A Menard, D Barton, N Sherstnev, D Roldan-Martinez, M Clamp, S Searle, G Barton
+AUTHORFNAMES=Jim Procter, Mungo Carstairs, Tochukwu 'Charles' Ofoegbu, Kira Mourao, Andrew Waterhouse, Jan Engelhardt, Lauren Lui, Anne Menard, Daniel Barton, Natasha Sherstnev, David Roldan-Martinez, Michele Clamp, James Cuff, Steve Searle, David Martin & Geoff Barton
\ No newline at end of file
action.calculate = Calculate
action.select_all = Select all
action.select_highlighted_columns = Select Highlighted Columns
-tooltip.select_highlighted_columns = Press B to mark highlighted columns, Ctrl-B to toggle, and Alt-B to mark all but highlighted columns
+tooltip.select_highlighted_columns = Press B to mark highlighted columns, Ctrl-(or Cmd)-B to toggle, and Alt-B to mark all but highlighted columns
action.deselect_all = Deselect all
action.invert_selection = Invert selection
action.using_jmol = Using Jmol
action.colour = Color
action.calculate = Calcular
action.select_all = Seleccionar Todo
+action.select_highlighted_columns = Seleccionar columnas resaltadas
+tooltip.select_highlighted_columns = Presione B para marcar las columnas resaltadas, Ctrl (o Cmd)-B para cambiarlas, y Alt-B para marcar todas menos las columnas resaltadas
action.deselect_all = Deseleccionar Todo
action.invert_selection = Invertir selección
action.using_jmol = Usar Jmol
import jalview.appletgui.SequenceRenderer;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
+import jalview.io.DataSourceType;
import jalview.io.StructureFile;
import jalview.structure.AtomSpec;
import jalview.structure.StructureListener;
StructureSelectionManager ssm;
public AppletPDBCanvas(PDBEntry pdbentry, SequenceI[] seq,
- String[] chains, AlignmentPanel ap, String protocol)
+ String[] chains, AlignmentPanel ap, DataSourceType protocol)
{
this.ap = ap;
{
pdb = ssm.setMapping(seq, chains, pdbentry.getFile(), protocol);
- if (protocol.equals(jalview.io.AppletFormatAdapter.PASTE))
+ if (protocol == DataSourceType.PASTE)
{
pdbentry.setFile("INLINE" + pdb.getId());
}
import jalview.appletgui.EmbmenuFrame;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
+import jalview.io.DataSourceType;
import jalview.schemes.BuriedColourScheme;
import jalview.schemes.HelixColourScheme;
import jalview.schemes.HydrophobicColourScheme;
AppletPDBCanvas pdbcanvas;
public AppletPDBViewer(PDBEntry pdbentry, SequenceI[] seq,
- String[] chains, AlignmentPanel ap, String protocol)
+ String[] chains, AlignmentPanel ap, DataSourceType protocol)
{
try
{
}
+ @Override
public void actionPerformed(ActionEvent evt)
{
if (evt.getSource() == mapping)
}
+ @Override
public void itemStateChanged(ItemEvent evt)
{
if (evt.getSource() == allchains)
import jalview.gui.AlignmentPanel;
import jalview.gui.FeatureRenderer;
import jalview.gui.SequenceRenderer;
+import jalview.io.DataSourceType;
import jalview.io.StructureFile;
import jalview.structure.AtomSpec;
import jalview.structure.StructureListener;
String errorMessage;
void init(PDBEntry pdbentry, SequenceI[] seq, String[] chains,
- AlignmentPanel ap, String protocol)
+ AlignmentPanel ap, DataSourceType protocol)
{
this.ap = ap;
this.pdbentry = pdbentry;
{
pdb = ssm.setMapping(seq, chains, pdbentry.getFile(), protocol);
- if (protocol.equals(jalview.io.AppletFormatAdapter.PASTE))
+ if (protocol.equals(jalview.io.DataSourceType.PASTE))
{
pdbentry.setFile("INLINE" + pdb.getId());
}
import jalview.datamodel.SequenceI;
import jalview.gui.AlignmentPanel;
import jalview.gui.Desktop;
+import jalview.gui.JvOptionPane;
import jalview.gui.OOMWarning;
import jalview.gui.UserDefinedColours;
+import jalview.io.DataSourceType;
import jalview.io.JalviewFileChooser;
import jalview.io.JalviewFileView;
import jalview.schemes.BuriedColourScheme;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
import javax.swing.JRadioButtonMenuItem;
public class PDBViewer extends JInternalFrame implements Runnable
AlignmentPanel ap;
- String protocol;
+ DataSourceType protocol;
String tmpPDBFile;
public PDBViewer(PDBEntry pdbentry, SequenceI[] seq, String[] chains,
- AlignmentPanel ap, String protocol)
+ AlignmentPanel ap, DataSourceType protocol)
{
this.pdbentry = pdbentry;
this.seq = seq;
{
tmpPDBFile = pdbentry.getFile();
PDBfile pdbfile = new PDBfile(false, false, false, tmpPDBFile,
- jalview.io.AppletFormatAdapter.FILE);
+ DataSourceType.FILE);
pdbcanvas.init(pdbentry, seq, chains, ap, protocol);
{
radioItem.removeActionListener(radioItem.getActionListeners()[0]);
- int option = JOptionPane.showInternalConfirmDialog(
+ int option = JvOptionPane.showInternalConfirmDialog(
jalview.gui.Desktop.desktop, MessageManager
.getString("label.remove_from_default_list"),
MessageManager
.getString("label.remove_user_defined_colour"),
- JOptionPane.YES_NO_OPTION);
- if (option == JOptionPane.YES_OPTION)
+ JvOptionPane.YES_NO_OPTION);
+ if (option == JvOptionPane.YES_OPTION)
{
jalview.gui.UserDefinedColours
.removeColourFromDefaults(radioItem.getText());
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.DBRefSource;
import jalview.datamodel.SequenceI;
+import jalview.io.DataSourceType;
import jalview.io.FileParse;
import jalview.io.StructureFile;
import jalview.util.MessageManager;
}
public PDBfile(boolean addAlignmentAnnotations, boolean predictSecStr,
- boolean externalSecStr, String dataObject, String protocol)
+ boolean externalSecStr, String dataObject,
+ DataSourceType sourceType)
throws IOException
{
- super(false, dataObject, protocol);
+ super(false, dataObject, sourceType);
addSettings(addAlignmentAnnotations, predictSecStr, externalSecStr);
doParse();
}
}
@Override
- public String print()
+ public String print(SequenceI[] seqs, boolean jvSuffix)
{
return null;
}
+/* vim: set ts=2: */
+/**
+ * Copyright (c) 2006 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions, and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * 3. Redistributions must acknowledge that this software was
+ * originally developed by the UCSF Computer Graphics Laboratory
+ * under support by the NIH National Center for Research Resources,
+ * grant P41-RR01081.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
package ext.edu.ucsf.rbvi.strucviz2;
import java.awt.Color;
+/* vim: set ts=2: */
+/**
+ * Copyright (c) 2006 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions, and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * 3. Redistributions must acknowledge that this software was
+ * originally developed by the UCSF Computer Graphics Laboratory
+ * under support by the NIH National Center for Research Resources,
+ * grant P41-RR01081.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
package ext.edu.ucsf.rbvi.strucviz2;
import jalview.ws.HttpClientUtils;
+/* vim: set ts=2: */
+/**
+ * Copyright (c) 2006 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions, and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * 3. Redistributions must acknowledge that this software was
+ * originally developed by the UCSF Computer Graphics Laboratory
+ * under support by the NIH National Center for Research Resources,
+ * grant P41-RR01081.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
package ext.edu.ucsf.rbvi.strucviz2;
import java.awt.Color;
+/* vim: set ts=2: */
+/**
+ * Copyright (c) 2006 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions, and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * 3. Redistributions must acknowledge that this software was
+ * originally developed by the UCSF Computer Graphics Laboratory
+ * under support by the NIH National Center for Research Resources,
+ * grant P41-RR01081.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
package ext.edu.ucsf.rbvi.strucviz2;
import jalview.bin.Cache;
+/* vim: set ts=2: */
+/**
+ * Copyright (c) 2006 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions, and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * 3. Redistributions must acknowledge that this software was
+ * originally developed by the UCSF Computer Graphics Laboratory
+ * under support by the NIH National Center for Research Resources,
+ * grant P41-RR01081.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
package ext.edu.ucsf.rbvi.strucviz2;
/**
+/* vim: set ts=2: */
+/**
+ * Copyright (c) 2006 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions, and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * 3. Redistributions must acknowledge that this software was
+ * originally developed by the UCSF Computer Graphics Laboratory
+ * under support by the NIH National Center for Research Resources,
+ * grant P41-RR01081.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
package ext.edu.ucsf.rbvi.strucviz2.port;
import java.io.BufferedReader;
*/
package jalview.api;
+import jalview.io.DataSourceType;
+
import java.util.List;
/**
* add a features file of some kind to the current view
*
* @param file
- * @param protocol
+ * @param sourceType
* @param relaxedIdMatching
* if true, try harder to match up IDs with local sequence data
* @return true if parsing resulted in something being imported to the view or
* dataset
*/
- public boolean parseFeaturesFile(String file, String protocol,
+ public boolean parseFeaturesFile(String file, DataSourceType sourceType,
boolean relaxedIdMatching);
/**
import jalview.analysis.AlignmentAnnotationUtils;
import jalview.analysis.AlignmentUtils;
import jalview.analysis.Conservation;
+import jalview.bin.JalviewLite;
import jalview.commands.ChangeCaseCommand;
import jalview.commands.EditCommand;
import jalview.commands.EditCommand.Action;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
import jalview.io.AppletFormatAdapter;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
import jalview.io.SequenceAnnotationReport;
import jalview.schemes.Blosum62ColourScheme;
import jalview.schemes.BuriedColourScheme;
e.printStackTrace();
}
- for (int i = 0; i < jalview.io.AppletFormatAdapter.WRITEABLE_FORMATS.length; i++)
+ for (String ff : FileFormat.getWritableFormats(true))
{
- MenuItem item = new MenuItem(
- jalview.io.AppletFormatAdapter.WRITEABLE_FORMATS[i]);
+ MenuItem item = new MenuItem(ff);
item.addActionListener(this);
outputmenu.add(item);
Frame frame = new Frame();
frame.add(cap);
- jalview.bin.JalviewLite.addFrame(frame, MessageManager.formatMessage(
+ JalviewLite.addFrame(frame, MessageManager.formatMessage(
"label.selection_output_command",
new Object[] { e.getActionCommand() }), 600, 500);
// JBPNote: getSelectionAsNewSequence behaviour has changed - this method
// now returns a full copy of sequence data
// TODO consider using getSequenceSelection instead here
- cap.setText(new jalview.io.AppletFormatAdapter().formatSequences(
- e.getActionCommand(), ap.av.getShowJVSuffix(), ap, true));
+ FileFormat fileFormat = FileFormat.valueOf(e.getActionCommand());
+ cap.setText(new AppletFormatAdapter().formatSequences(fileFormat,
+ ap.av.getShowJVSuffix(), ap, true));
}
void addPDB()
{
- if (seq.getAllPDBEntries() != null)
+ Vector<PDBEntry> pdbs = seq.getAllPDBEntries();
+ if (pdbs != null&& !pdbs.isEmpty())
{
- PDBEntry entry = seq.getAllPDBEntries().firstElement();
+ PDBEntry entry = pdbs.firstElement();
if (ap.av.applet.jmolAvailable)
{
new jalview.appletgui.AppletJmol(entry, new SequenceI[] { seq },
- null, ap, AppletFormatAdapter.URL);
+ null, ap, DataSourceType.URL);
}
else
{
new MCview.AppletPDBViewer(entry, new SequenceI[] { seq }, null,
- ap, AppletFormatAdapter.URL);
+ ap, DataSourceType.URL);
}
}
import jalview.datamodel.SequenceI;
import jalview.io.AnnotationFile;
import jalview.io.AppletFormatAdapter;
+import jalview.io.DataSourceType;
import jalview.io.FeaturesFile;
+import jalview.io.FileFormat;
import jalview.io.TCoffeeScoreFile;
import jalview.schemes.Blosum62ColourScheme;
import jalview.schemes.BuriedColourScheme;
* is protocol for accessing data referred to by file
*/
- public boolean parseFeaturesFile(String file, String type)
+ public boolean parseFeaturesFile(String file, DataSourceType type)
{
return parseFeaturesFile(file, type, true);
}
*
* @param file
* file URL, content, or other resolvable path
- * @param type
+ * @param sourceType
* is protocol for accessing data referred to by file
* @param autoenabledisplay
* when true, display features flag will be automatically enabled if
* features are loaded
* @return true if data parsed as a features file
*/
- public boolean parseFeaturesFile(String file, String type,
+ public boolean parseFeaturesFile(String file, DataSourceType sourceType,
boolean autoenabledisplay)
{
boolean featuresFile = false;
.getFeatureRenderer().getFeatureColours();
boolean relaxedIdMatching = viewport.applet.getDefaultParameter(
"relaxedidmatch", false);
- featuresFile = new FeaturesFile(file, type).parse(
+ featuresFile = new FeaturesFile(file, sourceType).parse(
viewport.getAlignment(), colours, true, relaxedIdMatching);
} catch (Exception ex)
{
CutAndPasteTransfer cap = new CutAndPasteTransfer(true, this);
Frame frame = new Frame();
frame.add(cap);
- jalview.bin.JalviewLite.addFrame(frame, MessageManager.formatMessage(
+ JalviewLite.addFrame(frame, MessageManager.formatMessage(
"label.alignment_output_command",
new Object[] { e.getActionCommand() }), 600, 500);
- FeatureRenderer fr = this.alignPanel.cloneFeatureRenderer();
+ FileFormat fileFormat = FileFormat.valueOf(e.getActionCommand());
cap.setText(new AppletFormatAdapter(alignPanel).formatSequences(
- e.getActionCommand(), viewport.getAlignment(),
+ fileFormat, viewport.getAlignment(),
viewport.getShowJVSuffix()));
}
inputText.addActionListener(this);
Menu outputTextboxMenu = new Menu(
MessageManager.getString("label.out_to_textbox"));
- for (int i = 0; i < jalview.io.AppletFormatAdapter.WRITEABLE_FORMATS.length; i++)
+ for (String ff : FileFormat.getWritableFormats(true))
{
-
- MenuItem item = new MenuItem(
- jalview.io.AppletFormatAdapter.WRITEABLE_FORMATS[i]);
+ MenuItem item = new MenuItem(ff);
item.addActionListener(new java.awt.event.ActionListener()
{
}
// resolve data source
// TODO: this code should be a refactored to an io package
- String protocol = AppletFormatAdapter.resolveProtocol(pdbFile, "PDB");
+ DataSourceType protocol = AppletFormatAdapter.resolveProtocol(
+ pdbFile, FileFormat.PDB);
if (protocol == null)
{
return false;
}
public void newStructureView(JalviewLite applet, PDBEntry pdb,
- SequenceI[] seqs, String[] chains, String protocol)
+ SequenceI[] seqs, String[] chains, DataSourceType protocol)
{
// Scrub any null sequences from the array
Object[] sqch = cleanSeqChainArrays(seqs, chains);
System.err
.println("JalviewLite.AlignFrame:newStructureView: No sequence to bind structure to.");
}
- if (protocol == null || protocol.trim().length() == 0
- || protocol.equals("null"))
+ if (protocol == null)
{
- protocol = (String) pdb.getProperty("protocol");
+ String sourceType = (String) pdb.getProperty("protocol");
+ try
+ {
+ protocol = DataSourceType.valueOf(sourceType);
+ } catch (IllegalArgumentException e)
+ {
+ // ignore
+ }
if (protocol == null)
{
System.err.println("Couldn't work out protocol to open structure: "
{
// can only do alignments with Jmol
// find the last jmol window assigned to this alignment
- jalview.appletgui.AppletJmol ajm = null, tajm;
- Vector jmols = applet
- .getAppletWindow(jalview.appletgui.AppletJmol.class);
+ AppletJmol ajm = null, tajm;
+ Vector jmols = applet.getAppletWindow(AppletJmol.class);
for (int i = 0, iSize = jmols.size(); i < iSize; i++)
{
- tajm = (jalview.appletgui.AppletJmol) jmols.elementAt(i);
+ tajm = (AppletJmol) jmols.elementAt(i);
if (tajm.ap.alignFrame == this)
{
ajm = tajm;
// otherwise, create a new window
if (applet.jmolAvailable)
{
- new jalview.appletgui.AppletJmol(pdb, seqs, chains, alignPanel,
+ new AppletJmol(pdb, seqs, chains, alignPanel,
protocol);
applet.lastFrameX += 40;
applet.lastFrameY += 40;
*/
package jalview.appletgui;
+import jalview.bin.JalviewLite;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
-import jalview.io.AppletFormatAdapter;
import jalview.io.FileParse;
+import jalview.io.DataSourceType;
import jalview.io.StructureFile;
import jalview.schemes.BuriedColourScheme;
import jalview.schemes.HelixColourScheme;
}
public AppletJmol(PDBEntry pdbentry, SequenceI[] seq, String[] chains,
- AlignmentPanel ap, String protocol)
+ AlignmentPanel ap, DataSourceType protocol)
{
this.ap = ap;
jmb = new AppletJmolBinding(this, ap.getStructureSelectionManager(),
jmb.setColourBySequence(true);
if (pdbentry.getId() == null || pdbentry.getId().length() < 1)
{
- if (protocol.equals(AppletFormatAdapter.PASTE))
+ if (protocol == DataSourceType.PASTE)
{
pdbentry.setId("PASTED PDB"
+ (chains == null ? "_" : chains.toString()));
}
}
- if (jalview.bin.JalviewLite.debug)
+ if (JalviewLite.debug)
{
System.err
.println("AppletJmol: PDB ID is '" + pdbentry.getId() + "'");
}
});
pdbentry.setProperty("protocol", protocol);
-
if (pdbentry.getFile() != null)
+
{
// import structure data from pdbentry.getFile based on given protocol
- if (protocol.equals(AppletFormatAdapter.PASTE))
+ if (protocol == DataSourceType.PASTE)
{
// TODO: JAL-623 : correctly record file contents for matching up later
// pdbentry.getProperty().put("pdbfilehash",""+pdbentry.getFile().hashCode());
loadInline(pdbentry.getFile());
}
- else if (protocol.equals(AppletFormatAdapter.FILE)
- || protocol.equals(AppletFormatAdapter.URL))
+ else if (protocol == DataSourceType.FILE
+ || protocol == DataSourceType.URL)
{
jmb.viewer.openFile(pdbentry.getFile());
}
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
import jalview.ext.jmol.JalviewJmolBinding;
+import jalview.io.DataSourceType;
import jalview.structure.StructureSelectionManager;
import java.awt.Container;
import java.util.Map;
-import javajs.awt.Dimension;
-
import org.jmol.api.JmolAppConsoleInterface;
import org.jmol.console.AppletConsole;
import org.jmol.java.BS;
public AppletJmolBinding(AppletJmol appletJmol,
StructureSelectionManager sSm, PDBEntry[] pdbentry,
- SequenceI[][] seq, String protocol)
+ SequenceI[][] seq, DataSourceType protocol)
{
super(sSm, pdbentry, seq, protocol);
appletJmolBinding = appletJmol;
}
@Override
- public Dimension resizeInnerPanel(String data)
+ public int[] resizeInnerPanel(String data)
{
// TODO Auto-generated method stub
return null;
import jalview.datamodel.ColumnSelection;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
+import jalview.io.AlignmentFileI;
import jalview.io.AnnotationFile;
import jalview.io.AppletFormatAdapter;
-import jalview.io.FileParse;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormatI;
import jalview.io.IdentifyFile;
import jalview.io.NewickFile;
import jalview.io.TCoffeeScoreFile;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
+import java.io.IOException;
public class CutAndPasteTransfer extends Panel implements ActionListener,
MouseListener
AlignFrame alignFrame;
- FileParse source = null;
+ AlignmentFileI source = null;
public CutAndPasteTransfer(boolean forImport, AlignFrame alignFrame)
{
{
try
{
- NewickFile fin = new NewickFile(textarea.getText(), "Paste");
+ NewickFile fin = new NewickFile(textarea.getText(),
+ DataSourceType.PASTE);
fin.parse();
if (fin.getTree() != null)
{
AlignmentI al = null;
- String format = new IdentifyFile().identify(text,
- AppletFormatAdapter.PASTE);
- AppletFormatAdapter afa = new AppletFormatAdapter(alignFrame.alignPanel);
try
{
- al = afa.readFile(text, AppletFormatAdapter.PASTE, format);
+ FileFormatI format = new IdentifyFile().identify(text,
+ DataSourceType.PASTE);
+ AppletFormatAdapter afa = new AppletFormatAdapter(
+ alignFrame.alignPanel);
+ al = afa.readFile(text, DataSourceType.PASTE, format);
source = afa.getAlignFile();
- } catch (java.io.IOException ex)
- {
- ex.printStackTrace();
- }
if (al != null)
{
.getString("label.successfully_pasted_alignment_file"));
}
}
+ } catch (IOException ex)
+ {
+ ex.printStackTrace();
+ }
}
/**
* @param al
* @return
*/
- protected boolean openSplitFrame(AlignmentI al, String format)
+ protected boolean openSplitFrame(AlignmentI al, FileFormatI format)
{
final AlignmentI thisAlignment = this.alignFrame.getAlignViewport()
.getAlignment();
try
{
tcf = new TCoffeeScoreFile(textarea.getText(),
- jalview.io.AppletFormatAdapter.PASTE);
+ jalview.io.DataSourceType.PASTE);
if (tcf.isValid())
{
if (tcf.annotateAlignment(alignFrame.viewport.getAlignment(), true))
if (tcf == null)
{
if (new AnnotationFile().annotateAlignmentView(alignFrame.viewport,
- textarea.getText(), jalview.io.AppletFormatAdapter.PASTE))
+ textarea.getText(), jalview.io.DataSourceType.PASTE))
{
alignFrame.alignPanel.fontChanged();
alignFrame.alignPanel.setScrollValues(0, 0);
else
{
if (!alignFrame.parseFeaturesFile(textarea.getText(),
- jalview.io.AppletFormatAdapter.PASTE))
+ jalview.io.DataSourceType.PASTE))
{
alignFrame.statusBar
.setText(MessageManager
if (alignFrame.alignPanel.av.applet.jmolAvailable)
{
new jalview.appletgui.AppletJmol(pdb, new SequenceI[] { seq }, null,
- alignFrame.alignPanel, AppletFormatAdapter.PASTE);
+ alignFrame.alignPanel, DataSourceType.PASTE);
}
else
{
new MCview.AppletPDBViewer(pdb, new SequenceI[] { seq }, null,
- alignFrame.alignPanel, AppletFormatAdapter.PASTE);
+ alignFrame.alignPanel, DataSourceType.PASTE);
}
}
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
import jalview.ext.jmol.JalviewJmolBinding;
+import jalview.io.DataSourceType;
import java.awt.Container;
import java.util.ArrayList;
private AlignmentPanel ap;
- protected ExtJmol(jalview.appletgui.AlignFrame alframe,
+ protected ExtJmol(AlignFrame alframe,
PDBEntry[] pdbentry, SequenceI[][] seq,
- String protocol)
+ DataSourceType protocol)
{
super(alframe.alignPanel.getStructureSelectionManager(), pdbentry, seq,
protocol);
import jalview.gui.PromptUserConfig;
import jalview.io.AppletFormatAdapter;
import jalview.io.BioJsHTMLOutput;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
+import jalview.io.FileFormatException;
+import jalview.io.FileFormatI;
import jalview.io.FileLoader;
-import jalview.io.FormatAdapter;
import jalview.io.HtmlSvgOutput;
import jalview.io.IdentifyFile;
import jalview.io.NewickFile;
BioJsHTMLOutput.updateBioJS();
}
- String file = null, protocol = null, format = null, data = null;
+ String file = null, data = null;
+ FileFormatI format = null;
+ DataSourceType protocol = null;
FileLoader fileLoader = new FileLoader(!headless);
Vector<String> getFeatures = null; // vector of das source nicknames to
// fetch
{
try
{
- String viprotocol = AppletFormatAdapter
+ DataSourceType viprotocol = AppletFormatAdapter
.checkProtocol(vamsasImport);
- if (viprotocol == jalview.io.FormatAdapter.FILE)
+ if (viprotocol == DataSourceType.FILE)
{
inSession = desktop.vamsasImport(new File(vamsasImport));
}
- else if (viprotocol == FormatAdapter.URL)
+ else if (viprotocol == DataSourceType.URL)
{
inSession = desktop.vamsasImport(new URL(vamsasImport));
}
protocol = AppletFormatAdapter.checkProtocol(file);
- format = new IdentifyFile().identify(file, protocol);
+ try
+ {
+ format = new IdentifyFile().identify(file, protocol);
+ } catch (FileFormatException e1)
+ {
+ // TODO ?
+ }
AlignFrame af = fileLoader.LoadFileWaitTillLoaded(file, protocol,
format);
String imageName = "unnamed.png";
while (aparser.getSize() > 1)
{
- format = aparser.nextValue();
+ String outputFormat = aparser.nextValue();
file = aparser.nextValue();
- if (format.equalsIgnoreCase("png"))
+ if (outputFormat.equalsIgnoreCase("png"))
{
af.createPNG(new File(file));
imageName = (new File(file)).getName();
System.out.println("Creating PNG image: " + file);
continue;
}
- else if (format.equalsIgnoreCase("svg"))
+ else if (outputFormat.equalsIgnoreCase("svg"))
{
File imageFile = new File(file);
imageName = imageFile.getName();
System.out.println("Creating SVG image: " + file);
continue;
}
- else if (format.equalsIgnoreCase("html"))
+ else if (outputFormat.equalsIgnoreCase("html"))
{
File imageFile = new File(file);
imageName = imageFile.getName();
System.out.println("Creating HTML image: " + file);
continue;
}
- else if (format.equalsIgnoreCase("biojsmsa"))
+ else if (outputFormat.equalsIgnoreCase("biojsmsa"))
{
if (file == null)
{
+ file);
continue;
}
- else if (format.equalsIgnoreCase("imgMap"))
+ else if (outputFormat.equalsIgnoreCase("imgMap"))
{
af.createImageMap(new File(file), imageName);
System.out.println("Creating image map: " + file);
continue;
}
- else if (format.equalsIgnoreCase("eps"))
+ else if (outputFormat.equalsIgnoreCase("eps"))
{
File outputFile = new File(file);
System.out.println("Creating EPS file: "
jalview.bin.Cache.removeProperty("STARTUP_FILE");
}
- protocol = "File";
+ protocol = DataSourceType.FILE;
if (file.indexOf("http:") > -1)
{
- protocol = "URL";
+ protocol = DataSourceType.URL;
}
if (file.endsWith(".jar"))
{
- format = "Jalview";
+ format = FileFormat.Jalview;
}
else
{
- format = new IdentifyFile().identify(file, protocol);
+ try
+ {
+ format = new IdentifyFile().identify(file, protocol);
+ } catch (FileFormatException e)
+ {
+ // TODO what?
+ }
}
startUpAlframe = fileLoader.LoadFileWaitTillLoaded(file, protocol,
import jalview.datamodel.SequenceI;
import jalview.io.AnnotationFile;
import jalview.io.AppletFormatAdapter;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
+import jalview.io.FileFormatI;
import jalview.io.FileParse;
import jalview.io.IdentifyFile;
import jalview.io.JPredFile;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
+import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
{
try
{
+ FileFormatI theFormat = FileFormat.valueOf(format);
boolean seqlimits = suffix.equalsIgnoreCase(TRUE);
if (alf.viewport.getSelectionGroup() != null)
{
// JBPNote: getSelectionAsNewSequence behaviour has changed - this
// method now returns a full copy of sequence data
// TODO consider using getSequenceSelection instead here
- String reply = new AppletFormatAdapter().formatSequences(format,
+ String reply = new AppletFormatAdapter().formatSequences(theFormat,
new Alignment(alf.viewport.getSelectionAsNewSequence()),
seqlimits);
return reply;
}
- } catch (Exception ex)
+ } catch (IllegalArgumentException ex)
{
ex.printStackTrace();
- return "Error retrieving alignment in " + format + " format. ";
+ return "Error retrieving alignment, possibly invalid format specifier: "
+ + format;
}
return "";
}
{
boolean seqlimits = suffix.equalsIgnoreCase(TRUE);
- String reply = new AppletFormatAdapter().formatSequences(format,
+ FileFormatI theFormat = FileFormat.valueOf(format);
+ String reply = new AppletFormatAdapter().formatSequences(theFormat,
alf.viewport.getAlignment(), seqlimits);
return reply;
- } catch (Exception ex)
+ } catch (IllegalArgumentException ex)
{
ex.printStackTrace();
- return "Error retrieving alignment in " + format + " format. ";
+ return "Error retrieving alignment, possibly invalid format specifier: "
+ + format;
}
}
public void loadAnnotationFrom(AlignFrame alf, String annotation)
{
if (new AnnotationFile().annotateAlignmentView(alf.getAlignViewport(),
- annotation, AppletFormatAdapter.PASTE))
+ annotation, DataSourceType.PASTE))
{
alf.alignPanel.fontChanged();
alf.alignPanel.setScrollValues(0, 0);
}
else
{
- alf.parseFeaturesFile(annotation, AppletFormatAdapter.PASTE);
+ alf.parseFeaturesFile(annotation, DataSourceType.PASTE);
}
}
public boolean loadFeaturesFrom(AlignFrame alf, String features,
boolean autoenabledisplay)
{
- return alf.parseFeaturesFile(features, AppletFormatAdapter.PASTE,
+ return alf.parseFeaturesFile(features, DataSourceType.PASTE,
autoenabledisplay);
}
{
AlignmentI al = null;
- String format = new IdentifyFile().identify(text,
- AppletFormatAdapter.PASTE);
try
{
- al = new AppletFormatAdapter().readFile(text,
- AppletFormatAdapter.PASTE, format);
+ FileFormatI format = new IdentifyFile().identify(text,
+ DataSourceType.PASTE);
+ al = new AppletFormatAdapter().readFile(text, DataSourceType.PASTE,
+ format);
if (al.getHeight() > 0)
{
return new AlignFrame(al, this, title, false);
}
- } catch (java.io.IOException ex)
+ } catch (IOException ex)
{
ex.printStackTrace();
}
/**
* State variable: protocol for access to file source
*/
- String protocol;
+ DataSourceType protocol;
String _file; // alignment file or URL spec
*/
if (path.startsWith("PASTE"))
{
- protocol = AppletFormatAdapter.PASTE;
+ protocol = DataSourceType.PASTE;
return path.substring(5);
}
*/
if (path.indexOf("://") != -1)
{
- protocol = AppletFormatAdapter.URL;
+ protocol = DataSourceType.URL;
return path;
}
System.err.println("Prepended document base '" + documentBase
+ "' to make: '" + withDocBase + "'");
}
- protocol = AppletFormatAdapter.URL;
+ protocol = DataSourceType.URL;
return withDocBase;
}
if (!withCodeBase.equals(withDocBase)
&& HttpUtils.isValidUrl(withCodeBase))
{
- protocol = AppletFormatAdapter.URL;
+ protocol = DataSourceType.URL;
if (debug)
{
System.err.println("Prepended codebase '" + codeBase
*/
if (inArchive(path))
{
- protocol = AppletFormatAdapter.CLASSLOADER;
+ protocol = DataSourceType.CLASSLOADER;
}
return path;
}
return null;
}
String resolvedFile = resolveFileProtocol(fileParam);
- String format = new IdentifyFile().identify(resolvedFile, protocol);
- dbgMsg("File identified as '" + format + "'");
AlignmentI al = null;
try
{
+ FileFormatI format = new IdentifyFile().identify(resolvedFile,
+ protocol);
+ dbgMsg("File identified as '" + format + "'");
al = new AppletFormatAdapter().readFile(resolvedFile, protocol,
format);
if ((al != null) && (al.getHeight() > 0))
// update the focus.
currentAlignFrame = newAlignFrame;
- if (protocol == AppletFormatAdapter.PASTE)
+ if (protocol == DataSourceType.PASTE)
{
newAlignFrame.setTitle(MessageManager.formatMessage(
"label.sequences_from", new Object[] { applet
}
else
{
- pdbs.addElement(new Object[] { pdb, seqs, chains,
- new String(protocol) });
+ pdbs.addElement(new Object[] { pdb, seqs, chains, protocol });
}
}
}
import jalview.datamodel.AlignmentI;
import jalview.io.AppletFormatAdapter;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
+import jalview.io.FileFormatI;
import jalview.io.FileParse;
+import jalview.io.IdentifyFile;
import java.applet.Applet;
import java.io.InputStream;
*
* @return void
*/
+ @Override
public void init()
{
this.setSize(300, 200);
.println("Specify a resource to read on the file parameter");
return;
}
- String protocol = null;
+ DataSourceType protocol = null;
try
{
System.out.println("Loading thread started with:\n>>file\n" + file
+ (rtn ? "" : "not") + " located by classloader.");
if (rtn)
{
- protocol = AppletFormatAdapter.CLASSLOADER;
+ protocol = DataSourceType.CLASSLOADER;
}
} catch (Exception ex)
}
if (file.indexOf("://") > -1)
{
- protocol = AppletFormatAdapter.URL;
+ protocol = DataSourceType.URL;
}
else
{
// skipping codebase prepend check.
- protocol = AppletFormatAdapter.FILE;
+ protocol = DataSourceType.FILE;
}
System.out.println("Trying to get contents of resource:");
+ " cannot be read with protocol==" + protocol);
return;
}
- String format = getParameter("format");
- if (format == null || format.length() == 0)
+ FileFormatI format = FileFormat.valueOf(getParameter("format"));
+ if (format == null)
{
- format = new jalview.io.IdentifyFile().identify(file, protocol);
+ format = new IdentifyFile().identify(file, protocol);
System.out.println("Format is " + format);
}
else
if (al != null)
{
System.out.println(new AppletFormatAdapter().formatSequences(
- "FASTA", al, false));
+ FileFormat.Fasta, al, false));
}
} catch (Exception e)
{
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
+import jalview.io.DataSourceType;
import jalview.io.FeaturesFile;
import jalview.util.MessageManager;
SequenceFeature[] sfs = sq.getSequenceFeatures();
if (sfs != null)
{
- /*
- * check whether the feature start/end (base 1)
- * overlaps the selection start/end
- */
int ist = sq.findIndex(sq.getStart());
int iend = sq.findIndex(sq.getEnd());
if (iend < startPosition || ist > endPosition)
// - findIndex wastes time by starting from first character and
// counting
- int i = sq.findIndex(sf.getBegin());
- int j = sq.findIndex(sf.getEnd());
- if (j < startPosition || i > endPosition)
+ int sfStartCol = sq.findIndex(sf.getBegin());
+ int sfEndCol = sq.findIndex(sf.getEnd());
+
+ if (sf.isContactFeature())
+ {
+ /*
+ * 'contact' feature - check for 'start' or 'end'
+ * position within the selected region
+ */
+ if (sfStartCol >= startPosition
+ && sfStartCol <= endPosition)
+ {
+ bs.set(sfStartCol - 1);
+ sequenceHasFeature = true;
+ }
+ if (sfEndCol >= startPosition && sfEndCol <= endPosition)
+ {
+ bs.set(sfEndCol - 1);
+ sequenceHasFeature = true;
+ }
+ continue;
+ }
+
+ /*
+ * contiguous feature - select feature positions (if any)
+ * within the selected region
+ */
+ if (sfStartCol > endPosition || sfEndCol < startPosition)
{
// feature is outside selected region
continue;
}
sequenceHasFeature = true;
- if (i < startPosition)
+ if (sfStartCol < startPosition)
{
- i = startPosition;
+ sfStartCol = startPosition;
}
- if (i < ist)
+ if (sfStartCol < ist)
{
- i = ist;
+ sfStartCol = ist;
}
- if (j > endPosition)
+ if (sfEndCol > endPosition)
{
- j = endPosition;
+ sfEndCol = endPosition;
}
- for (; i <= j; i++)
+ for (; sfStartCol <= sfEndCol; sfStartCol++)
{
- bs.set(i - 1); // convert to base 0
+ bs.set(sfStartCol - 1); // convert to base 0
}
}
}
}
@Override
- public boolean parseFeaturesFile(String file, String protocol,
+ public boolean parseFeaturesFile(String file, DataSourceType protocol,
boolean relaxedIdMatching)
{
boolean featuresFile = false;
@Override
public String toString()
{
- return new FastaFile().print(getSequencesArray());
+ return new FastaFile().print(getSequencesArray(), true);
}
/**
public enum Type
{
- PDB, MMCIF, FILE;
+ // TODO is FILE needed; if not is this needed or can we
+ // use FileFormatI for PDB, MMCIF?
+ PDB("pdb", "xml"), MMCIF("mmcif", "mmcif"), FILE("?", "?");
+ String ext;
+
+ String format;
+
+ private Type(String fmt, String ex)
+ {
+ format = fmt;
+ ext = ex;
+ }
+
+ public String getFormat()
+ {
+ return format;
+ }
+ public String getExtension()
+ {
+ return ext;
+ }
+
/**
* case insensitive matching for Type enum
*
}
}
-
/**
* Answers true if obj is a PDBEntry with the same id and chain code (both
* ignoring case), file, type and properties
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.datamodel;
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.datamodel;
public interface ProfileI
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.datamodel;
public class Profiles implements ProfilesI
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.datamodel;
public interface ProfilesI
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.datamodel;
import jalview.util.Comparison;
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.datamodel;
/**
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.datamodel;
import java.util.BitSet;
return s.hashCode() + getBegin() + getEnd() + (int) getScore()
+ getStrand();
}
+
+ /**
+ * Answers true if the feature's start/end values represent two related
+ * positions, rather than ends of a range. Such features may be visualised or
+ * reported differently to features on a range.
+ */
+ public boolean isContactFeature()
+ {
+ // TODO abstract one day to a FeatureType class
+ if ("disulfide bond".equalsIgnoreCase(type)
+ || "disulphide bond".equalsIgnoreCase(type))
+ {
+ return true;
+ }
+ return false;
+ }
}
*/
package jalview.ext.ensembl;
+import jalview.io.DataSourceType;
import jalview.io.FileParse;
import jalview.util.StringUtils;
// request failed
return null;
}
- FileParse fp = new FileParse(reader, url.toString(), "HTTP_POST");
+ FileParse fp = new FileParse(reader, url.toString(), DataSourceType.URL);
return fp;
}
import jalview.datamodel.ColumnSelection;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
-import jalview.io.AppletFormatAdapter;
+import jalview.io.DataSourceType;
import jalview.io.StructureFile;
import jalview.schemes.ColourSchemeI;
import jalview.schemes.ResidueProperties;
import java.util.Map;
import java.util.Vector;
-import javajs.awt.Dimension;
-
import org.jmol.adapter.smarter.SmarterJmolAdapter;
import org.jmol.api.JmolAppConsoleInterface;
import org.jmol.api.JmolSelectionListener;
public JalviewJmolBinding(StructureSelectionManager ssm,
PDBEntry[] pdbentry, SequenceI[][] sequenceIs,
- String protocol)
+ DataSourceType protocol)
{
super(ssm, pdbentry, sequenceIs, protocol);
/*
// see JAL-623 - need method of matching pasted data up
{
pdb = getSsm().setMapping(getSequence()[pe], getChains()[pe],
- pdbfile, AppletFormatAdapter.PASTE);
+ pdbfile, DataSourceType.PASTE);
getPdbEntry(modelnum).setFile("INLINE" + pdb.getId());
matches = true;
foundEntry = true;
// needs
// to be tested. See mantis bug
// https://mantis.lifesci.dundee.ac.uk/view.php?id=36605
- String protocol = AppletFormatAdapter.URL;
+ DataSourceType protocol = DataSourceType.URL;
try
{
if (fl.exists())
{
- protocol = AppletFormatAdapter.FILE;
+ protocol = DataSourceType.FILE;
}
} catch (Exception e)
{
}
@Override
- public Dimension resizeInnerPanel(String data)
+ public int[] resizeInnerPanel(String data)
{
// Jalview doesn't honour resize panel requests
return null;
import jalview.datamodel.Annotation;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
+import jalview.io.DataSourceType;
import jalview.io.FileParse;
import jalview.io.StructureFile;
import jalview.schemes.ResidueProperties;
import java.util.Map;
import java.util.Vector;
-import javajs.awt.Dimension;
-
import org.jmol.api.JmolStatusListener;
import org.jmol.api.JmolViewer;
import org.jmol.c.CBK;
{
Viewer viewer = null;
- public JmolParser(String inFile, String type) throws IOException
+ public JmolParser(String inFile, DataSourceType sourceType)
+ throws IOException
{
- super(inFile, type);
+ super(inFile, sourceType);
}
public JmolParser(FileParse fp) throws IOException
* Not implemented - returns null
*/
@Override
- public String print()
+ public String print(SequenceI[] seqs, boolean jvSuffix)
{
return null;
}
* Not implemented - returns null
*/
@Override
- public Dimension resizeInnerPanel(String data)
+ public int[] resizeInnerPanel(String data)
{
return null;
}
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
import jalview.httpserver.AbstractRequestHandler;
+import jalview.io.DataSourceType;
import jalview.schemes.ColourSchemeI;
import jalview.schemes.ResidueProperties;
import jalview.structure.AtomSpec;
* @param protocol
*/
public JalviewChimeraBinding(StructureSelectionManager ssm,
- PDBEntry[] pdbentry, SequenceI[][] sequenceIs, String protocol)
+ PDBEntry[] pdbentry, SequenceI[][] sequenceIs, DataSourceType protocol)
{
super(ssm, pdbentry, sequenceIs, protocol);
viewer = new ChimeraManager(
import jalview.api.AlignExportSettingI;
import jalview.bin.Jalview;
+import jalview.io.FileFormatI;
import jalview.jbgui.GAlignExportSettings;
import jalview.util.MessageManager;
JDialog dialog;
public AlignExportSettings(boolean hasHiddenSeq, boolean hasHiddenCols,
- String alignFileFormat)
+ FileFormatI format)
{
- super(hasHiddenSeq, hasHiddenCols, alignFileFormat);
+ super(hasHiddenSeq, hasHiddenCols, format);
if (!Jalview.isHeadlessMode() && isShowDialog())
{
JOptionPane pane = new JOptionPane(null, JOptionPane.DEFAULT_OPTION,
- JOptionPane.DEFAULT_OPTION, null, new Object[] { this });
+ JvOptionPane.DEFAULT_OPTION, null, new Object[] { this });
dialog = pane.createDialog(Desktop.desktop,
MessageManager.getString("label.export_settings"));
dialog.addWindowListener(new WindowAdapter()
{
+ @Override
public void windowClosing(WindowEvent e)
{
cancelled = true;
}
}
+ @Override
public void ok_actionPerformed(ActionEvent e)
{
cancelled = false;
dialog.dispose();
}
+ @Override
public void cancel_actionPerformed(ActionEvent e)
{
cancelled = true;
return chkExportGrps.isSelected();
}
+ @Override
public boolean isCancelled()
{
return cancelled;
import jalview.io.AlignmentProperties;
import jalview.io.AnnotationFile;
import jalview.io.BioJsHTMLOutput;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
+import jalview.io.FileFormatI;
import jalview.io.FileLoader;
import jalview.io.FormatAdapter;
import jalview.io.HtmlSvgOutput;
import jalview.io.IdentifyFile;
+import jalview.io.JPredFile;
import jalview.io.JalviewFileChooser;
import jalview.io.JalviewFileView;
import jalview.io.JnetAnnotationMaker;
import jalview.io.NewickFile;
-import jalview.io.StructureFile;
import jalview.io.TCoffeeScoreFile;
import jalview.jbgui.GAlignFrame;
import jalview.schemes.Blosum62ColourScheme;
import javax.swing.JLayeredPane;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
/**
* Last format used to load or save alignments in this window
*/
- String currentFileFormat = null;
+ FileFormatI currentFileFormat = null;
/**
* Current filename for this alignment
* @param format
* format of file
*/
- public void setFileName(String file, String format)
+ public void setFileName(String file, FileFormatI format)
{
fileName = file;
setFileFormat(format);
// originating file's format
// TODO: work out how to recover feature settings for correct view(s) when
// file is reloaded.
- if (currentFileFormat.equals("Jalview"))
+ if (FileFormat.Jalview.equals(currentFileFormat))
{
JInternalFrame[] frames = Desktop.desktop.getAllFrames();
for (int i = 0; i < frames.length; i++)
Desktop.instance.closeAssociatedWindows();
FileLoader loader = new FileLoader();
- String protocol = fileName.startsWith("http:") ? "URL" : "File";
+ DataSourceType protocol = fileName.startsWith("http:") ? DataSourceType.URL
+ : DataSourceType.FILE;
loader.LoadFile(viewport, fileName, protocol, currentFileFormat);
}
else
Rectangle bounds = this.getBounds();
FileLoader loader = new FileLoader();
- String protocol = fileName.startsWith("http:") ? "URL" : "File";
+ DataSourceType protocol = fileName.startsWith("http:") ? DataSourceType.URL
+ : DataSourceType.FILE;
AlignFrame newframe = loader.LoadFileWaitTillLoaded(fileName,
protocol, currentFileFormat);
@Override
public void save_actionPerformed(ActionEvent e)
{
- if (fileName == null
- || (currentFileFormat == null || !jalview.io.FormatAdapter
- .isValidIOFormat(currentFileFormat, true))
+ if (fileName == null || (currentFileFormat == null)
|| fileName.startsWith("http"))
{
saveAs_actionPerformed(null);
@Override
public void saveAs_actionPerformed(ActionEvent e)
{
- JalviewFileChooser chooser = new JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"),
- jalview.io.AppletFormatAdapter.WRITABLE_EXTENSIONS,
- jalview.io.AppletFormatAdapter.WRITABLE_FNAMES,
- currentFileFormat, false);
+ JalviewFileChooser chooser = JalviewFileChooser.forWrite(
+ Cache.getProperty("LAST_DIRECTORY"),
+ // AppletFormatAdapter.WRITABLE_EXTENSIONS,
+ // AppletFormatAdapter.WRITABLE_FNAMES,
+ currentFileFormat.toString(), false);
chooser.setFileView(new JalviewFileView());
chooser.setDialogTitle(MessageManager
currentFileFormat = chooser.getSelectedFormat();
while (currentFileFormat == null)
{
- JOptionPane
+ JvOptionPane
.showInternalMessageDialog(
Desktop.desktop,
MessageManager
.getString("label.select_file_format_before_saving"),
MessageManager
.getString("label.file_format_not_specified"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
currentFileFormat = chooser.getSelectedFormat();
value = chooser.showSaveDialog(this);
if (value != JalviewFileChooser.APPROVE_OPTION)
fileName = chooser.getSelectedFile().getPath();
- jalview.bin.Cache.setProperty("DEFAULT_FILE_FORMAT",
- currentFileFormat);
+ Cache.setProperty("DEFAULT_FILE_FORMAT",
+ currentFileFormat.toString());
- jalview.bin.Cache.setProperty("LAST_DIRECTORY", fileName);
- if (currentFileFormat.indexOf(" ") > -1)
- {
- currentFileFormat = currentFileFormat.substring(0,
- currentFileFormat.indexOf(" "));
- }
+ Cache.setProperty("LAST_DIRECTORY", fileName);
saveAlignment(fileName, currentFileFormat);
}
}
- public boolean saveAlignment(String file, String format)
+ public boolean saveAlignment(String file, FileFormatI format)
{
boolean success = true;
- if (format.equalsIgnoreCase("Jalview"))
+ if (FileFormat.Jalview.equals(format))
{
String shortName = title;
}
else
{
- if (!jalview.io.AppletFormatAdapter.isValidFormat(format, true))
- {
- warningMessage("Cannot save file " + fileName + " using format "
- + format, "Alignment output format not supported");
- if (!Jalview.isHeadlessMode())
- {
- saveAs_actionPerformed(null);
- }
- return false;
- }
+ // if (!jalview.io.AppletFormatAdapter.isValidFormat(format, true))
+ // {
+ // warningMessage("Cannot save file " + fileName + " using format "
+ // + format, "Alignment output format not supported");
+ // if (!Jalview.isHeadlessMode())
+ // {
+ // saveAs_actionPerformed(null);
+ // }
+ // return false;
+ // }
AlignmentExportData exportData = getAlignmentForExport(format,
viewport, null);
if (!success)
{
- JOptionPane.showInternalMessageDialog(this, MessageManager
+ JvOptionPane.showInternalMessageDialog(this, MessageManager
.formatMessage("label.couldnt_save_file",
new Object[] { fileName }), MessageManager
.getString("label.error_saving_file"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
return success;
}
else
{
- JOptionPane.showInternalMessageDialog(this, warning, title,
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.showInternalMessageDialog(this, warning, title,
+ JvOptionPane.WARNING_MESSAGE);
}
return;
}
protected void outputText_actionPerformed(ActionEvent e)
{
- AlignmentExportData exportData = getAlignmentForExport(
- e.getActionCommand(), viewport, null);
+ FileFormatI fileFormat = FileFormat.forName(e.getActionCommand());
+ AlignmentExportData exportData = getAlignmentForExport(fileFormat,
+ viewport, null);
if (exportData.getSettings().isCancelled())
{
return;
cap.setForInput(null);
try
{
+ FileFormatI format = fileFormat;
cap.setText(new FormatAdapter(alignPanel, exportData.getSettings())
- .formatSequences(e.getActionCommand(),
+ .formatSequences(format,
exportData.getAlignment(),
exportData.getOmitHidden(),
exportData.getStartEndPostions(),
}
public static AlignmentExportData getAlignmentForExport(
- String exportFormat, AlignViewportI viewport,
+ FileFormatI format, AlignViewportI viewport,
AlignExportSettingI exportSettings)
{
AlignmentI alignmentToExport = null;
if (settings == null)
{
settings = new AlignExportSettings(hasHiddenSeqs,
- viewport.hasHiddenColumns(), exportFormat);
+ viewport.hasHiddenColumns(), format);
}
// settings.isExportAnnotations();
omitHidden = viewport.getViewAsString(true);
}
- String output = new FormatAdapter().formatSequences("Fasta", seqs,
+ String output = new FormatAdapter().formatSequences(FileFormat.Fasta,
+ seqs,
omitHidden, null);
StringSelection ss = new StringSelection(output);
return;
}
- String str, format;
+ String str;
+ FileFormatI format;
try
{
str = (String) contents.getTransferData(DataFlavor.stringFlavor);
return;
}
- format = new IdentifyFile().identify(str, "Paste");
+ format = new IdentifyFile().identify(str, DataSourceType.PASTE);
} catch (OutOfMemoryError er)
{
else
{
// parse the clipboard as an alignment.
- alignment = new FormatAdapter().readFile(str, "Paste", format);
+ alignment = new FormatAdapter().readFile(str, DataSourceType.PASTE,
+ format);
sequences = alignment.getSequencesArray();
}
.getAlignment().getWidth()) ? true : false;
if (isEntireAlignWidth)
{
- int confirm = JOptionPane.showConfirmDialog(this,
+ int confirm = JvOptionPane.showConfirmDialog(this,
MessageManager.getString("warn.delete_all"), // $NON-NLS-1$
MessageManager.getString("label.delete_all"), // $NON-NLS-1$
- JOptionPane.OK_CANCEL_OPTION);
+ JvOptionPane.OK_CANCEL_OPTION);
- if (confirm == JOptionPane.CANCEL_OPTION
- || confirm == JOptionPane.CLOSED_OPTION)
+ if (confirm == JvOptionPane.CANCEL_OPTION
+ || confirm == JvOptionPane.CLOSED_OPTION)
{
return;
}
{
radioItem.removeActionListener(radioItem.getActionListeners()[0]);
- int option = JOptionPane.showInternalConfirmDialog(
+ int option = JvOptionPane.showInternalConfirmDialog(
jalview.gui.Desktop.desktop, MessageManager
.getString("label.remove_from_default_list"),
MessageManager
.getString("label.remove_user_defined_colour"),
- JOptionPane.YES_NO_OPTION);
- if (option == JOptionPane.YES_OPTION)
+ JvOptionPane.YES_NO_OPTION);
+ if (option == JvOptionPane.YES_OPTION)
{
jalview.gui.UserDefinedColours
.removeColourFromDefaults(radioItem.getText());
if ((viewport.getSelectionGroup() == null)
|| (viewport.getSelectionGroup().getSize() < 2))
{
- JOptionPane.showInternalMessageDialog(this, MessageManager
+ JvOptionPane.showInternalMessageDialog(this, MessageManager
.getString("label.you_must_select_least_two_sequences"),
MessageManager.getString("label.invalid_selection"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
else
{
.getSelectionGroup().getSize() > 0))
|| (viewport.getAlignment().getHeight() < 4))
{
- JOptionPane
+ JvOptionPane
.showInternalMessageDialog(
this,
MessageManager
.getString("label.principal_component_analysis_must_take_least_four_input_sequences"),
MessageManager
.getString("label.sequence_selection_insufficient"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
{
if (viewport.getSelectionGroup().getSize() < 3)
{
- JOptionPane
+ JvOptionPane
.showMessageDialog(
Desktop.desktop,
MessageManager
.getString("label.you_need_more_two_sequences_selected_build_tree"),
MessageManager
.getString("label.not_enough_sequences"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
{
if (_s.getLength() < sg.getEndRes())
{
- JOptionPane
+ JvOptionPane
.showMessageDialog(
Desktop.desktop,
MessageManager
.getString("label.selected_region_to_tree_may_only_contain_residues_or_gaps"),
MessageManager
.getString("label.sequences_selection_not_aligned"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
// are the visible sequences aligned?
if (!viewport.getAlignment().isAligned(false))
{
- JOptionPane
+ JvOptionPane
.showMessageDialog(
Desktop.desktop,
MessageManager
.getString("label.sequences_must_be_aligned_before_creating_tree"),
MessageManager
.getString("label.sequences_not_aligned"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
else if (viewport.getSelectionGroup() != null
&& viewport.getSelectionGroup().getSize() == 1)
{
- int option = JOptionPane.showConfirmDialog(this,
+ int option = JvOptionPane.showConfirmDialog(this,
MessageManager.getString("warn.oneseq_msainput_selection"),
MessageManager.getString("label.invalid_selection"),
- JOptionPane.OK_CANCEL_OPTION);
- if (option == JOptionPane.OK_OPTION)
+ JvOptionPane.OK_CANCEL_OPTION);
+ if (option == JvOptionPane.OK_OPTION)
{
msa = viewport.getAlignmentView(false);
}
jalview.io.NewickFile fin = null;
try
{
- fin = new jalview.io.NewickFile(choice, "File");
+ fin = new NewickFile(choice, DataSourceType.FILE);
viewport.setCurrentTree(ShowNewickTree(fin, choice).getTree());
} catch (Exception ex)
{
- JOptionPane
+ JvOptionPane
.showMessageDialog(
Desktop.desktop,
ex.getMessage(),
MessageManager
.getString("label.problem_reading_tree_file"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
ex.printStackTrace();
}
if (fin != null && fin.hasWarningMessage())
{
- JOptionPane.showMessageDialog(Desktop.desktop, fin
+ JvOptionPane.showMessageDialog(Desktop.desktop, fin
.getWarningMessage(), MessageManager
.getString("label.possible_problem_with_tree_file"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
}
}
final String errorTitle = MessageManager
.getString("label.implementation_error")
+ MessageManager.getString("label.translation_failed");
- JOptionPane.showMessageDialog(Desktop.desktop, msg, errorTitle,
- JOptionPane.ERROR_MESSAGE);
+ JvOptionPane.showMessageDialog(Desktop.desktop, msg, errorTitle,
+ JvOptionPane.ERROR_MESSAGE);
return;
}
if (al == null || al.getHeight() == 0)
.getString("label.select_at_least_three_bases_in_at_least_one_sequence_to_cDNA_translation");
final String errorTitle = MessageManager
.getString("label.translation_failed");
- JOptionPane.showMessageDialog(Desktop.desktop, msg, errorTitle,
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.showMessageDialog(Desktop.desktop, msg, errorTitle,
+ JvOptionPane.WARNING_MESSAGE);
}
else
{
/**
* Set the file format
*
- * @param fileFormat
+ * @param format
*/
- public void setFileFormat(String fileFormat)
+ public void setFileFormat(FileFormatI format)
{
- this.currentFileFormat = fileFormat;
+ this.currentFileFormat = format;
}
/**
*
* @param file
* contents or path to retrieve file
- * @param type
+ * @param sourceType
* access mode of file (see jalview.io.AlignFile)
* @return true if features file was parsed correctly.
*/
- public boolean parseFeaturesFile(String file, String type)
+ public boolean parseFeaturesFile(String file, DataSourceType sourceType)
{
- return avc.parseFeaturesFile(file, type,
- jalview.bin.Cache.getDefault("RELAXEDSEQIDMATCHING", false));
+ return avc.parseFeaturesFile(file, sourceType,
+ Cache.getDefault("RELAXEDSEQIDMATCHING", false));
}
// Java's Transferable for native dnd
evt.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
Transferable t = evt.getTransferable();
- java.util.List<String> files = new ArrayList<String>(), protocols = new ArrayList<String>();
+ List<String> files = new ArrayList<String>();
+ List<DataSourceType> protocols = new ArrayList<DataSourceType>();
try
{
{
String file = files.get(i).toString();
String pdbfn = "";
- String protocol = FormatAdapter.checkProtocol(file);
- if (protocol == jalview.io.FormatAdapter.FILE)
+ DataSourceType protocol = FormatAdapter.checkProtocol(file);
+ if (protocol == DataSourceType.FILE)
{
File fl = new File(file);
pdbfn = fl.getName();
}
- else if (protocol == jalview.io.FormatAdapter.URL)
+ else if (protocol == DataSourceType.URL)
{
URL url = new URL(file);
pdbfn = url.getFile();
}
if (mtch != null)
{
- String type = null;
+ FileFormatI type = null;
try
{
type = new IdentifyFile().identify(file, protocol);
{
type = null;
}
- if (type != null)
+ if (type != null && type.isStructureFile())
{
- if (StructureFile.isStructureFile(type))
- {
- filesmatched.add(new Object[] { file, protocol, mtch });
- continue;
- }
+ filesmatched.add(new Object[] { file, protocol, mtch });
+ continue;
}
}
// File wasn't named like one of the sequences or wasn't a PDB file.
if (filesmatched.size() > 0)
{
if (Cache.getDefault("AUTOASSOCIATE_PDBANDSEQS", false)
- || JOptionPane
+ || JvOptionPane
.showConfirmDialog(
this,
MessageManager
.toString() }),
MessageManager
.getString("label.automatically_associate_structure_files_by_name"),
- JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION)
+ JvOptionPane.YES_NO_OPTION) == JvOptionPane.YES_OPTION)
{
for (Object[] fm : filesmatched)
{
PDBEntry pe = new AssociatePdbFileWithSeq()
.associatePdbWithSeq((String) fm[0],
- (String) fm[1], toassoc, false,
+ (DataSourceType) fm[1], toassoc, false,
Desktop.instance);
if (pe != null)
{
{
if (assocfiles > 0
&& (Cache.getDefault(
- "AUTOASSOCIATE_PDBANDSEQS_IGNOREOTHERS", false) || JOptionPane
+ "AUTOASSOCIATE_PDBANDSEQS_IGNOREOTHERS", false) || JvOptionPane
.showConfirmDialog(
this,
"<html>"
+ "</html>",
MessageManager
.getString("label.ignore_unmatched_dropped_files"),
- JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION))
+ JvOptionPane.YES_NO_OPTION) == JvOptionPane.YES_OPTION))
{
return;
}
* @param file
* either a filename or a URL string.
*/
- public void loadJalviewDataFile(String file, String protocol,
- String format, SequenceI assocSeq)
+ public void loadJalviewDataFile(String file, DataSourceType sourceType,
+ FileFormatI format, SequenceI assocSeq)
{
try
{
- if (protocol == null)
+ if (sourceType == null)
{
- protocol = FormatAdapter.checkProtocol(file);
+ sourceType = FormatAdapter.checkProtocol(file);
}
// if the file isn't identified, or not positively identified as some
// other filetype (PFAM is default unidentified alignment file type) then
// try to parse as annotation.
- boolean isAnnotation = (format == null || format
- .equalsIgnoreCase("PFAM")) ? new AnnotationFile()
- .annotateAlignmentView(viewport, file, protocol) : false;
+ boolean isAnnotation = (format == null || FileFormat.Pfam
+ .equals(format)) ? new AnnotationFile()
+ .annotateAlignmentView(viewport, file, sourceType) : false;
if (!isAnnotation)
{
TCoffeeScoreFile tcf = null;
try
{
- tcf = new TCoffeeScoreFile(file, protocol);
+ tcf = new TCoffeeScoreFile(file, sourceType);
if (tcf.isValid())
{
if (tcf.annotateAlignment(viewport.getAlignment(), true))
{
// some problem - if no warning its probable that the ID matching
// process didn't work
- JOptionPane
+ JvOptionPane
.showMessageDialog(
Desktop.desktop,
tcf.getWarningMessage() == null ? MessageManager
: tcf.getWarningMessage(),
MessageManager
.getString("label.problem_reading_tcoffee_score_file"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
}
else
// try to parse it as a features file
if (format == null)
{
- format = new IdentifyFile().identify(file, protocol);
+ format = new IdentifyFile().identify(file, sourceType);
}
- if (format.equalsIgnoreCase("JnetFile"))
+ if (FileFormat.Jnet.equals(format))
{
- jalview.io.JPredFile predictions = new jalview.io.JPredFile(
- file, protocol);
+ JPredFile predictions = new JPredFile(
+ file, sourceType);
new JnetAnnotationMaker();
JnetAnnotationMaker.add_annotation(predictions,
viewport.getAlignment(), 0, false);
viewport.setColumnSelection(cs);
isAnnotation = true;
}
- else if (IdentifyFile.FeaturesFile.equals(format))
+ // else if (IdentifyFile.FeaturesFile.equals(format))
+ else if (FileFormat.Features.equals(format))
{
- if (parseFeaturesFile(file, protocol))
+ if (parseFeaturesFile(file, sourceType))
{
alignPanel.paintAlignment(true);
}
}
else
{
- new FileLoader().LoadFile(viewport, file, protocol, format);
+ new FileLoader().LoadFile(viewport, file, sourceType, format);
}
}
}
}
new OOMWarning(
"loading data "
- + (protocol != null ? (protocol.equals(FormatAdapter.PASTE) ? "from clipboard."
- : "using " + protocol + " from " + file)
+ + (sourceType != null ? (sourceType == DataSourceType.PASTE ? "from clipboard."
+ : "using " + sourceType + " from " + file)
: ".")
+ (format != null ? "(parsing as '" + format
+ "' file)" : ""), oom, Desktop.desktop);
if (e.isPopupTrigger())
{
String msg = MessageManager.getString("label.enter_view_name");
- String reply = JOptionPane.showInternalInputDialog(this, msg, msg,
- JOptionPane.QUESTION_MESSAGE);
+ String reply = JvOptionPane.showInternalInputDialog(this, msg, msg,
+ JvOptionPane.QUESTION_MESSAGE);
if (reply != null)
{
} catch (Exception ex)
{
System.err.println((ex.toString()));
- JOptionPane
+ JvOptionPane
.showInternalMessageDialog(Desktop.desktop, MessageManager
.getString("label.couldnt_run_groovy_script"),
MessageManager
.getString("label.groovy_support_failed"),
- JOptionPane.ERROR_MESSAGE);
+ JvOptionPane.ERROR_MESSAGE);
}
}
else
MessageManager.getString("label.new_window"), };
final String question = JvSwingUtils.wrapTooltip(true,
MessageManager.getString("label.open_split_window?"));
- int response = JOptionPane.showOptionDialog(Desktop.desktop, question,
+ int response = JvOptionPane.showOptionDialog(Desktop.desktop, question,
MessageManager.getString("label.open_split_window"),
- JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null,
+ JvOptionPane.DEFAULT_OPTION, JvOptionPane.PLAIN_MESSAGE, null,
options, options[0]);
if (response != 1 && response != 2)
// TODO if we want this (e.g. to enable reload of the alignment from file),
// we will need to add parameters to the stack.
- // if (!protocol.equals(AppletFormatAdapter.PASTE))
+ // if (!protocol.equals(DataSourceType.PASTE))
// {
// alignFrame.setFileName(file, format);
// }
if (onscreen
|| (idwidth = Cache.getIntegerProperty("FIGURE_FIXEDIDWIDTH")) == null)
{
- return (getIdPanel().getWidth() > 0 ? getIdPanel().getWidth()
- : calculateIdWidth().width + 4);
+ int w = getIdPanel().getWidth();
+ return (w > 0 ? w : calculateIdWidth().width + 4);
}
return idwidth.intValue() + 4;
}
public void makePNGImageMap(File imgMapFile, String imageName)
{
- // /////ONLY WORKS WITH NONE WRAPPED ALIGNMENTS
+ // /////ONLY WORKS WITH NON WRAPPED ALIGNMENTS
// ////////////////////////////////////////////
int idWidth = getVisibleIdWidth(false);
FontMetrics fm = getFontMetrics(av.getFont());
{
int s, sSize = av.getAlignment().getHeight(), res, alwidth = av
.getAlignment().getWidth(), g, gSize, f, fSize, sy;
- StringBuffer text = new StringBuffer();
PrintWriter out = new PrintWriter(new FileWriter(imgMapFile));
out.println(jalview.io.HTMLOutput.getImageMapHTML());
out.println("<img src=\"" + imageName
SequenceGroup[] groups = av.getAlignment().findAllGroups(seq);
for (res = 0; res < alwidth; res++)
{
- text = new StringBuffer();
+ StringBuilder text = new StringBuilder();
String triplet = null;
if (av.getAlignment().isNucleotide())
{
{
if (text.length() < 1)
{
- text.append("<area shape=\"rect\" coords=\""
- + (idWidth + res * av.getCharWidth()) + "," + sy
- + "," + (idWidth + (res + 1) * av.getCharWidth())
- + "," + (av.getCharHeight() + sy) + "\""
- + " onMouseOver=\"toolTip('" + alIndex + " "
- + triplet);
+ text.append("<area shape=\"rect\" coords=\"")
+ .append((idWidth + res * av.getCharWidth()))
+ .append(",").append(sy).append(",")
+ .append((idWidth + (res + 1) * av.getCharWidth()))
+ .append(",").append((av.getCharHeight() + sy))
+ .append("\"").append(" onMouseOver=\"toolTip('")
+ .append(alIndex).append(" ").append(triplet);
}
if (groups[g].getStartRes() < res
&& groups[g].getEndRes() > res)
{
- text.append("<br><em>" + groups[g].getName() + "</em>");
+ text.append("<br><em>").append(groups[g].getName())
+ .append("</em>");
}
}
{
if (text.length() < 1)
{
- text.append("<area shape=\"rect\" coords=\""
- + (idWidth + res * av.getCharWidth()) + "," + sy
- + "," + (idWidth + (res + 1) * av.getCharWidth())
- + "," + (av.getCharHeight() + sy) + "\""
- + " onMouseOver=\"toolTip('" + alIndex + " "
- + triplet);
+ text.append("<area shape=\"rect\" coords=\"")
+ .append((idWidth + res * av.getCharWidth()))
+ .append(",").append(sy).append(",")
+ .append((idWidth + (res + 1) * av.getCharWidth()))
+ .append(",").append((av.getCharHeight() + sy))
+ .append("\"").append(" onMouseOver=\"toolTip('")
+ .append(alIndex).append(" ").append(triplet);
}
fSize = features.length;
for (f = 0; f < fSize; f++)
if ((features[f].getBegin() <= seq.findPosition(res))
&& (features[f].getEnd() >= seq.findPosition(res)))
{
- if (features[f].getType().equals("disulfide bond"))
+ if (features[f].isContactFeature())
{
if (features[f].getBegin() == seq.findPosition(res)
|| features[f].getEnd() == seq
.findPosition(res))
{
- text.append("<br>disulfide bond "
- + features[f].getBegin() + ":"
- + features[f].getEnd());
+ text.append("<br>").append(features[f].getType())
+ .append(" ").append(features[f].getBegin())
+ .append(":").append(features[f].getEnd());
}
}
else
&& !features[f].getType().equals(
features[f].getDescription()))
{
- text.append(" " + features[f].getDescription());
+ text.append(" ").append(features[f].getDescription());
}
if (features[f].getValue("status") != null)
{
- text.append(" (" + features[f].getValue("status")
- + ")");
+ text.append(" (").append(features[f].getValue("status"))
+ .append(")");
}
}
}
* type which are in the application scope (all, selected or unselected
* sequences).
*
- * @param type
+ * @param dataSourceType
*/
protected void changeShowHide_actionPerformed()
{
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
+import jalview.io.FileFormat;
import jalview.io.FormatAdapter;
import jalview.util.MessageManager;
alignmentStartEnd = av.getAlignment().getVisibleStartAndEndIndex(
hiddenCols);
}
- String output = new FormatAdapter().formatSequences("Fasta", seqs,
- omitHidden, alignmentStartEnd);
+ String output = new FormatAdapter().formatSequences(FileFormat.Fasta,
+ seqs, omitHidden, alignmentStartEnd);
Toolkit.getDefaultToolkit().getSystemClipboard()
.setContents(new StringSelection(output), Desktop.instance);
else if (action.equals(LABEL))
{
String exMesg = collectAnnotVals(anot, LABEL);
- String label = JOptionPane.showInputDialog(this,
+ String label = JvOptionPane.showInputDialog(this,
MessageManager.getString("label.enter_label"), exMesg);
if (label == null)
aa[activeRow].hasIcons = true;
}
- String label = JOptionPane.showInputDialog(MessageManager
+ String label = JvOptionPane.showInputDialog(MessageManager
.getString("label.enter_label_for_the_structure"), symbol);
if (label == null)
}
if (errormsgs.length() > 0)
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
.formatMessage("label.pdb_entries_couldnt_be_retrieved",
new String[] { errormsgs.toString() }),
MessageManager.getString("label.couldnt_load_file"),
- JOptionPane.ERROR_MESSAGE);
+ JvOptionPane.ERROR_MESSAGE);
}
return files;
}
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
import jalview.ext.jmol.JalviewJmolBinding;
+import jalview.io.DataSourceType;
import jalview.structure.StructureSelectionManager;
import java.awt.Container;
private FeatureRenderer fr = null;
public AppJmolBinding(AppJmol appJmol, StructureSelectionManager sSm,
- PDBEntry[] pdbentry, SequenceI[][] sequenceIs, String protocol)
+ PDBEntry[] pdbentry, SequenceI[][] sequenceIs, DataSourceType protocol)
{
super(sSm, pdbentry, sequenceIs, protocol);
appJmolWindow = appJmol;
_sideList.ensureIndexIsVisible(index);
/*
- * TODO Object newName = JOptionPane.showInputDialog( this,
+ * TODO Object newName = JvOptionPane.showInputDialog( this,
* "Specify a new name for this RNA", "Rename RNA",
- * JOptionPane.QUESTION_MESSAGE, (Icon)null, null, item.toString()); if
+ * JvOptionPane.QUESTION_MESSAGE, (Icon)null, null, item.toString()); if
* (newName!=null) { item.name = newName.toString();
* this._sideList.repaint(); }
*/
import jalview.api.StructureSelectionManagerProvider;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
+import jalview.io.DataSourceType;
import jalview.io.StructureFile;
import jalview.structure.StructureSelectionManager;
import jalview.util.MessageManager;
* @param choice
* @param sequence
*/
- public PDBEntry associatePdbWithSeq(String choice, String protocol,
+ public PDBEntry associatePdbWithSeq(String choice, DataSourceType file,
SequenceI sequence, boolean prompt,
StructureSelectionManagerProvider ssmp)
{
StructureFile pdbfile = null;
pdbfile = StructureSelectionManager.getStructureSelectionManager(ssmp)
.setMapping(false, new SequenceI[] { sequence }, null, choice,
- protocol);
+ file);
if (pdbfile == null)
{
// stacktrace already thrown so just return
if (prompt)
{
- reply = JOptionPane.showInternalInputDialog(Desktop.desktop,
+ reply = JvOptionPane.showInternalInputDialog(Desktop.desktop,
MessageManager
.getString("label.couldnt_find_pdb_id_in_file"),
MessageManager.getString("label.no_pdb_id_in_file"),
- JOptionPane.QUESTION_MESSAGE);
+ JvOptionPane.QUESTION_MESSAGE);
}
if (reply == null)
{
import jalview.ext.rbvi.chimera.ChimeraCommands;
import jalview.ext.rbvi.chimera.JalviewChimeraBinding;
import jalview.gui.StructureViewer.ViewerType;
-import jalview.io.AppletFormatAdapter;
+import jalview.io.DataSourceType;
import jalview.io.JalviewFileChooser;
import jalview.io.JalviewFileView;
import jalview.io.StructureFile;
if (!jmb.launchChimera())
{
- JOptionPane.showMessageDialog(Desktop.desktop,
+ JvOptionPane.showMessageDialog(Desktop.desktop,
MessageManager.getString("label.chimera_failed"),
MessageManager.getString("label.error_loading_file"),
- JOptionPane.ERROR_MESSAGE);
+ JvOptionPane.ERROR_MESSAGE);
this.dispose();
return;
}
"label.confirm_close_chimera",
new Object[] { jmb.getViewerTitle("Chimera", false) });
prompt = JvSwingUtils.wrapTooltip(true, prompt);
- int confirm = JOptionPane.showConfirmDialog(this, prompt,
+ int confirm = JvOptionPane.showConfirmDialog(this, prompt,
MessageManager.getString("label.close_viewer"),
- JOptionPane.YES_NO_CANCEL_OPTION);
+ JvOptionPane.YES_NO_CANCEL_OPTION);
/*
* abort closure if user hits escape or Cancel
*/
- if (confirm == JOptionPane.CANCEL_OPTION
- || confirm == JOptionPane.CLOSED_OPTION)
+ if (confirm == JvOptionPane.CANCEL_OPTION
+ || confirm == JvOptionPane.CLOSED_OPTION)
{
return;
}
- closeChimera = confirm == JOptionPane.YES_OPTION;
+ closeChimera = confirm == JvOptionPane.YES_OPTION;
}
jmb.closeViewer(closeChimera);
}
if (errormsgs.length() > 0)
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
.formatMessage("label.pdb_entries_couldnt_be_retrieved",
new Object[] { errormsgs.toString() }),
MessageManager.getString("label.couldnt_load_file"),
- JOptionPane.ERROR_MESSAGE);
+ JvOptionPane.ERROR_MESSAGE);
}
if (files.length() > 0)
jmb.openFile(pe);
jmb.addSequence(pos, jmb.getSequence()[pos]);
File fl = new File(pe.getFile());
- String protocol = AppletFormatAdapter.URL;
+ DataSourceType protocol = DataSourceType.URL;
try
{
if (fl.exists())
{
- protocol = AppletFormatAdapter.FILE;
+ protocol = DataSourceType.FILE;
}
} catch (Throwable e)
{
xrefsAlignment.getSequencesArray());
if (copyAlignment.getHeight() == 0)
{
- JOptionPane.showMessageDialog(alignFrame,
+ JvOptionPane.showMessageDialog(alignFrame,
MessageManager.getString("label.cant_map_cds"),
MessageManager.getString("label.operation_failed"),
- JOptionPane.OK_OPTION);
+ JvOptionPane.OK_OPTION);
System.err.println("Failed to make CDS alignment");
}
import jalview.datamodel.AlignmentI;
import jalview.datamodel.ColumnSelection;
import jalview.datamodel.SequenceI;
+import jalview.io.AlignmentFileI;
import jalview.io.AppletFormatAdapter;
-import jalview.io.FileParse;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormatException;
+import jalview.io.FileFormatI;
import jalview.io.FormatAdapter;
import jalview.io.IdentifyFile;
import jalview.io.JalviewFileChooser;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
import javax.swing.JPopupMenu;
import javax.swing.SwingUtilities;
AlignViewportI viewport;
- FileParse source = null;
+ AlignmentFileI source = null;
public CutAndPasteTransfer()
{
{
try
{
- java.io.PrintWriter out = new java.io.PrintWriter(
- new java.io.FileWriter(chooser.getSelectedFile()));
+ PrintWriter out = new PrintWriter(new FileWriter(
+ chooser.getSelectedFile()));
out.print(getText());
out.close();
return;
}
- String format = new IdentifyFile().identify(text, "Paste");
- if (format == null || format.equalsIgnoreCase("EMPTY DATA FILE"))
+ FileFormatI format = null;
+ try
+ {
+ format = new IdentifyFile().identify(text, DataSourceType.PASTE);
+ } catch (FileFormatException e1)
+ {
+ // leave as null
+ }
+ if (format == null)
{
System.err.println(MessageManager
.getString("label.couldnt_read_data"));
if (!Jalview.isHeadlessMode())
{
- javax.swing.JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
AppletFormatAdapter.SUPPORTED_FORMATS,
MessageManager.getString("label.couldnt_read_data"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
return;
}
// TODO: identify feature, annotation or tree file and parse appropriately.
AlignmentI al = null;
- if (FormatAdapter.isValidFormat(format))
+ try
{
- try
- {
- FormatAdapter fa = new FormatAdapter(alignpanel);
- al = fa.readFile(getText(), "Paste", format);
- source = fa.getAlignFile();
+ FormatAdapter fa = new FormatAdapter(alignpanel);
+ al = fa.readFile(getText(), DataSourceType.PASTE, format);
+ source = fa.getAlignFile();
- } catch (java.io.IOException ex)
- {
- JOptionPane.showInternalMessageDialog(Desktop.desktop,
- MessageManager.formatMessage(
- "label.couldnt_read_pasted_text",
- new String[] { ex.toString() }), MessageManager
- .getString("label.error_parsing_text"),
- JOptionPane.WARNING_MESSAGE);
- }
+ } catch (IOException ex)
+ {
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
+ .formatMessage("label.couldnt_read_pasted_text", new String[]
+ { ex.toString() }), MessageManager
+ .getString("label.error_parsing_text"),
+ JvOptionPane.WARNING_MESSAGE);
}
if (al != null && al.hasValidSequence())
{
String title = MessageManager.formatMessage(
- "label.input_cut_paste_params", new String[] { format });
+ "label.input_cut_paste_params",
+ new String[] { format.toString() });
FeatureSettingsModelI proxyColourScheme = source
.getFeatureColourScheme();
.getString("label.couldnt_read_data"));
if (!Jalview.isHeadlessMode())
{
- javax.swing.JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
AppletFormatAdapter.SUPPORTED_FORMATS,
MessageManager.getString("label.couldnt_read_data"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
}
}
pane12.add(urltf, BorderLayout.EAST);
panel.add(pane12, BorderLayout.SOUTH);
- int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop,
+ int reply = JvOptionPane.showInternalConfirmDialog(Desktop.desktop,
panel,
MessageManager.getString("label.enter_local_das_source"),
- JOptionPane.OK_CANCEL_OPTION);
+ JvOptionPane.OK_CANCEL_OPTION);
- if (reply != JOptionPane.OK_OPTION)
+ if (reply != JvOptionPane.OK_OPTION)
{
return;
}
if (!sourceRegistry.getSource(nickname).isLocal())
{
- JOptionPane
+ JvOptionPane
.showInternalMessageDialog(
Desktop.desktop,
MessageManager
.getString("label.you_can_only_edit_or_remove_local_das_sources"),
MessageManager.getString("label.public_das_source"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
Object[] options = { "Edit", "Remove", "Cancel" };
- int choice = JOptionPane.showInternalOptionDialog(Desktop.desktop,
+ int choice = JvOptionPane.showInternalOptionDialog(Desktop.desktop,
"Do you want to edit or remove " + nickname + "?",
"Edit / Remove Local DAS Source",
- JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE,
+ JvOptionPane.YES_NO_CANCEL_OPTION, JvOptionPane.QUESTION_MESSAGE,
null, options, options[2]);
switch (choice)
import jalview.api.AlignmentViewPanel;
import jalview.bin.Cache;
import jalview.bin.Jalview;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
+import jalview.io.FileFormatException;
+import jalview.io.FileFormatI;
import jalview.io.FileLoader;
-import jalview.io.FormatAdapter;
import jalview.io.IdentifyFile;
import jalview.io.JalviewFileChooser;
import jalview.io.JalviewFileView;
public void run()
{
Cache.log.debug("Filechooser init thread started.");
- new JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"),
- jalview.io.AppletFormatAdapter.READABLE_EXTENSIONS,
- jalview.io.AppletFormatAdapter.READABLE_FNAMES,
- jalview.bin.Cache.getProperty("DEFAULT_FILE_FORMAT"));
+ String fileFormat = Cache.getProperty("DEFAULT_FILE_FORMAT");
+ JalviewFileChooser.forRead(Cache.getProperty("LAST_DIRECTORY"),
+ // jalview.io.AppletFormatAdapter.READABLE_EXTENSIONS,
+ // jalview.io.AppletFormatAdapter.READABLE_FNAMES,
+ fileFormat, true);
Cache.log.debug("Filechooser init thread finished.");
}
}).start();
String file = (String) contents
.getTransferData(DataFlavor.stringFlavor);
- String format = new IdentifyFile().identify(file,
- FormatAdapter.PASTE);
+ FileFormatI format = new IdentifyFile().identify(file,
+ DataSourceType.PASTE);
- new FileLoader().LoadFile(file, FormatAdapter.PASTE, format);
+ new FileLoader().LoadFile(file, DataSourceType.PASTE, format);
}
} catch (Exception ex)
// Java's Transferable for native dnd
evt.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
Transferable t = evt.getTransferable();
- java.util.List<String> files = new ArrayList<String>();
- java.util.List<String> protocols = new ArrayList<String>();
+ List<String> files = new ArrayList<String>();
+ List<DataSourceType> protocols = new ArrayList<DataSourceType>();
try
{
for (int i = 0; i < files.size(); i++)
{
String file = files.get(i).toString();
- String protocol = (protocols == null) ? FormatAdapter.FILE
- : (String) protocols.get(i);
- String format = null;
+ DataSourceType protocol = (protocols == null) ? DataSourceType.FILE
+ : protocols.get(i);
+ FileFormatI format = null;
if (file.endsWith(".jar"))
{
- format = "Jalview";
+ format = FileFormat.Jalview;
}
else
@Override
public void inputLocalFileMenuItem_actionPerformed(AlignViewport viewport)
{
- JalviewFileChooser chooser = new JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"),
- jalview.io.AppletFormatAdapter.READABLE_EXTENSIONS,
- jalview.io.AppletFormatAdapter.READABLE_FNAMES,
- jalview.bin.Cache.getProperty("DEFAULT_FILE_FORMAT"));
+ String fileFormat = Cache.getProperty("DEFAULT_FILE_FORMAT");
+ JalviewFileChooser chooser = JalviewFileChooser.forRead(
+ Cache.getProperty("LAST_DIRECTORY"),
+ // AppletFormatAdapter.READABLE_EXTENSIONS,
+ // AppletFormatAdapter.READABLE_FNAMES,
+ fileFormat, true);
chooser.setFileView(new JalviewFileView());
chooser.setDialogTitle(MessageManager
if (value == JalviewFileChooser.APPROVE_OPTION)
{
String choice = chooser.getSelectedFile().getPath();
- jalview.bin.Cache.setProperty("LAST_DIRECTORY", chooser
+ Cache.setProperty("LAST_DIRECTORY", chooser
.getSelectedFile().getParent());
- String format = null;
- if (chooser.getSelectedFormat() != null
- && chooser.getSelectedFormat().equals("Jalview"))
+ FileFormatI format = null;
+ FileFormatI selectedFormat = chooser.getSelectedFormat();
+ if (FileFormat.Jalview.equals(selectedFormat))
{
- format = "Jalview";
+ format = FileFormat.Jalview;
}
else
{
- format = new IdentifyFile().identify(choice, FormatAdapter.FILE);
+ try
+ {
+ format = new IdentifyFile().identify(choice, DataSourceType.FILE);
+ } catch (FileFormatException e)
+ {
+ // format is null
+ }
}
if (viewport != null)
{
- new FileLoader().LoadFile(viewport, choice, FormatAdapter.FILE,
+ new FileLoader().LoadFile(viewport, choice, DataSourceType.FILE,
format);
}
else
{
- new FileLoader().LoadFile(choice, FormatAdapter.FILE, format);
+ new FileLoader().LoadFile(choice, DataSourceType.FILE, format);
}
}
}
}
}
- int reply = JOptionPane.showInternalConfirmDialog(desktop, panel,
+ int reply = JvOptionPane.showInternalConfirmDialog(desktop, panel,
MessageManager.getString("label.input_alignment_from_url"),
- JOptionPane.OK_CANCEL_OPTION);
+ JvOptionPane.OK_CANCEL_OPTION);
- if (reply != JOptionPane.OK_OPTION)
+ if (reply != JvOptionPane.OK_OPTION)
{
return;
}
{
if (viewport != null)
{
- new FileLoader().LoadFile(viewport, url, FormatAdapter.URL,
- "Jalview");
+ new FileLoader().LoadFile(viewport, url, DataSourceType.URL,
+ FileFormat.Jalview);
}
else
{
- new FileLoader().LoadFile(url, FormatAdapter.URL, "Jalview");
+ new FileLoader().LoadFile(url, DataSourceType.URL,
+ FileFormat.Jalview);
}
}
else
{
- String format = new IdentifyFile().identify(url, FormatAdapter.URL);
+ FileFormatI format = null;
+ try
+ {
+ format = new IdentifyFile().identify(url, DataSourceType.URL);
+ } catch (FileFormatException e)
+ {
+ // TODO revise error handling, distinguish between
+ // URL not found and response not valid
+ }
- if (format.equals("URL NOT FOUND"))
+ if (format == null)
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
MessageManager.formatMessage("label.couldnt_locate",
new Object[] { url }), MessageManager
.getString("label.url_not_found"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
if (viewport != null)
{
- new FileLoader().LoadFile(viewport, url, FormatAdapter.URL, format);
+ new FileLoader()
+ .LoadFile(viewport, url, DataSourceType.URL, format);
}
else
{
- new FileLoader().LoadFile(url, FormatAdapter.URL, format);
+ new FileLoader().LoadFile(url, DataSourceType.URL, format);
}
}
}
public void aboutMenuItem_actionPerformed(ActionEvent e)
{
// StringBuffer message = getAboutMessage(false);
- // JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ // JvOptionPane.showInternalMessageDialog(Desktop.desktop,
//
- // message.toString(), "About Jalview", JOptionPane.INFORMATION_MESSAGE);
+ // message.toString(), "About Jalview", JvOptionPane.INFORMATION_MESSAGE);
new Thread(new Runnable()
{
@Override
public void saveState_actionPerformed(ActionEvent e)
{
JalviewFileChooser chooser = new JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"),
- new String[] { "jvp" }, new String[] { "Jalview Project" },
+ Cache.getProperty("LAST_DIRECTORY"), "jvp", "Jalview Project",
"Jalview Project");
chooser.setFileView(new JalviewFileView());
Cache.log.error(
"Problems whilst trying to save to " + choice.getName(),
ex);
- JOptionPane.showMessageDialog(me, MessageManager.formatMessage(
+ JvOptionPane.showMessageDialog(me, MessageManager.formatMessage(
"label.error_whilst_saving_current_state_to",
new Object[] { choice.getName() }), MessageManager
.getString("label.couldnt_save_project"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
setProgressBar(null, choice.hashCode());
}
public void loadState_actionPerformed(ActionEvent e)
{
JalviewFileChooser chooser = new JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[] {
+ Cache.getProperty("LAST_DIRECTORY"), new String[] {
"jvp", "jar" }, new String[] { "Jalview Project",
"Jalview Project (old)" }, "Jalview Project");
chooser.setFileView(new JalviewFileView());
final File selectedFile = chooser.getSelectedFile();
setProjectFile(selectedFile);
final String choice = selectedFile.getAbsolutePath();
- jalview.bin.Cache.setProperty("LAST_DIRECTORY",
+ Cache.setProperty("LAST_DIRECTORY",
selectedFile.getParent());
new Thread(new Runnable()
{
{
Cache.log.error("Problems whilst loading project from "
+ choice, ex);
- JOptionPane.showMessageDialog(Desktop.desktop, MessageManager
+ JvOptionPane.showMessageDialog(Desktop.desktop, MessageManager
.formatMessage(
"label.error_whilst_loading_project_from",
new Object[] { choice }), MessageManager
.getString("label.couldnt_load_project"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
setProgressBar(null, choice.hashCode());
}
String fle = chooser.getSelectedFile().toString();
if (!vamsasImport(chooser.getSelectedFile()))
{
- JOptionPane
+ JvOptionPane
.showInternalMessageDialog(
Desktop.desktop,
MessageManager.formatMessage(
new Object[] { fle }),
MessageManager
.getString("label.vamsas_document_import_failed"),
- JOptionPane.ERROR_MESSAGE);
+ JvOptionPane.ERROR_MESSAGE);
}
}
}
if (v_client != null)
{
JalviewFileChooser chooser = new JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]
- { "vdj" }, // TODO: VAMSAS DOCUMENT EXTENSION is VDJ
- new String[] { "Vamsas Document" }, "Vamsas Document");
+ Cache.getProperty("LAST_DIRECTORY"), "vdj",// TODO: VAMSAS DOCUMENT EXTENSION is VDJ
+ "Vamsas Document", "Vamsas Document");
chooser.setFileView(new JalviewFileView());
chooser.setDialogTitle(MessageManager
JPanel progpanel = addProgressPanel(MessageManager.formatMessage(
"label.saving_vamsas_doc",
new Object[] { choice.getName() }));
- jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice.getParent());
+ Cache.setProperty("LAST_DIRECTORY", choice.getParent());
String warnmsg = null;
String warnttl = null;
try
removeProgressPanel(progpanel);
if (warnmsg != null)
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
- warnmsg, warnttl, JOptionPane.ERROR_MESSAGE);
+ warnmsg, warnttl, JvOptionPane.ERROR_MESSAGE);
}
}
}
*/
public void setVamsasUpdate(boolean b)
{
- jalview.bin.Cache.log.debug("Setting gui for Vamsas update "
+ Cache.log.debug("Setting gui for Vamsas update "
+ (b ? "in progress" : "finished"));
if (vamUpdate != null)
});
msgPanel.add(jcb);
- JOptionPane.showMessageDialog(Desktop.desktop, msgPanel,
+ JvOptionPane.showMessageDialog(Desktop.desktop, msgPanel,
MessageManager
.getString("label.SEQUENCE_ID_no_longer_used"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
}
});
} catch (Exception ex)
{
jalview.bin.Cache.log.error("Groovy Shell Creation failed.", ex);
- JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
MessageManager.getString("label.couldnt_create_groovy_shell"),
MessageManager.getString("label.groovy_support_failed"),
- JOptionPane.ERROR_MESSAGE);
+ JvOptionPane.ERROR_MESSAGE);
}
}
*
* jd.waitForInput();
*/
- JOptionPane
+ JvOptionPane
.showConfirmDialog(
Desktop.desktop,
new JLabel(
+ "<p>Check the <em>Connections</em> and <em>Web services</em> tab<br/>of the"
+ " Tools->Preferences dialog box to change them.</p></html>"),
"Web Service Configuration Problem",
- JOptionPane.DEFAULT_OPTION,
- JOptionPane.ERROR_MESSAGE);
+ JvOptionPane.DEFAULT_OPTION,
+ JvOptionPane.ERROR_MESSAGE);
serviceChangedDialog = null;
}
jalview.util.BrowserLauncher.openURL(url);
} catch (Exception ex)
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
MessageManager
.getString("label.web_browser_not_found_unix"),
MessageManager.getString("label.web_browser_not_found"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
ex.printStackTrace();
}
}
public static void transferFromDropTarget(List<String> files,
- List<String> protocols, DropTargetDropEvent evt, Transferable t)
+ List<DataSourceType> protocols, DropTargetDropEvent evt,
+ Transferable t)
throws Exception
{
.getTransferData(DataFlavor.javaFileListFlavor))
{
files.add(((File) file).toString());
- protocols.add(FormatAdapter.FILE);
+ protocols.add(DataSourceType.FILE);
}
}
else
{
Cache.log.debug("Adding missing FILE protocol for "
+ files.get(protocols.size()));
- protocols.add(FormatAdapter.FILE);
+ protocols.add(DataSourceType.FILE);
}
for (java.util.StringTokenizer st = new java.util.StringTokenizer(
data, "\r\n"); st.hasMoreTokens();)
java.net.URI uri = new java.net.URI(s);
if (uri.getScheme().toLowerCase().startsWith("http"))
{
- protocols.add(FormatAdapter.URL);
+ protocols.add(DataSourceType.URL);
files.add(uri.toString());
}
else
{
// otherwise preserve old behaviour: catch all for file objects
java.io.File file = new java.io.File(uri);
- protocols.add(FormatAdapter.FILE);
+ protocols.add(DataSourceType.FILE);
files.add(file.toString());
}
}
bg.add(lineart);
bg.add(text);
- JOptionPane pane = new JOptionPane(null, JOptionPane.DEFAULT_OPTION,
- JOptionPane.DEFAULT_OPTION, null, new Object[] { this });
+ JOptionPane pane = new JOptionPane(null, JvOptionPane.DEFAULT_OPTION,
+ JvOptionPane.DEFAULT_OPTION, null, new Object[] { this });
dialog = pane.createDialog(Desktop.desktop, "EPS Rendering options");
dialog.setVisible(true);
ok.setText(MessageManager.getString("action.ok"));
ok.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
ok_actionPerformed(e);
cancel.setText(MessageManager.getString("action.cancel"));
cancel.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
cancel_actionPerformed(e);
panel2.add(description, BorderLayout.CENTER);
panel.add(panel2, BorderLayout.SOUTH);
}
- int reply = JOptionPane.showInternalConfirmDialog(parent, panel, title,
- JOptionPane.OK_CANCEL_OPTION);
+ int reply = JvOptionPane.showInternalConfirmDialog(parent, panel, title,
+ JvOptionPane.OK_CANCEL_OPTION);
if (!parent.requestFocusInWindow())
{
System.err.println("Bad focus for dialog!");
}
- if (reply == JOptionPane.OK_OPTION)
+ if (reply == JvOptionPane.OK_OPTION)
{
accept = true;
}
: MessageManager.formatMessage("label.amend_delete_features",
new String[] { sequences[0].getName() });
- int reply = JOptionPane.showInternalOptionDialog(Desktop.desktop,
- bigPanel, title, JOptionPane.YES_NO_CANCEL_OPTION,
- JOptionPane.QUESTION_MESSAGE, null, options,
+ int reply = JvOptionPane.showInternalOptionDialog(Desktop.desktop,
+ bigPanel, title, JvOptionPane.YES_NO_CANCEL_OPTION,
+ JvOptionPane.QUESTION_MESSAGE, null, options,
MessageManager.getString("action.ok"));
jalview.io.FeaturesFile ffile = new jalview.io.FeaturesFile();
- if (reply == JOptionPane.OK_OPTION && name.getText().length() > 0)
+ if (reply == JvOptionPane.OK_OPTION && name.getText().length() > 0)
{
// This ensures that the last sequence
// is refreshed and new features are rendered
{
SequenceFeature sf = features[featureIndex];
- if (reply == JOptionPane.NO_OPTION)
+ if (reply == JvOptionPane.NO_OPTION)
{
sequences[0].getDatasetSequence().deleteFeature(sf);
}
- else if (reply == JOptionPane.YES_OPTION)
+ else if (reply == JvOptionPane.YES_OPTION)
{
sf.type = lastFeatureAdded;
sf.featureGroup = lastFeatureGroupAdded;
else
// NEW FEATURES ADDED
{
- if (reply == JOptionPane.OK_OPTION && lastFeatureAdded.length() > 0)
+ if (reply == JvOptionPane.OK_OPTION && lastFeatureAdded.length() > 0)
{
for (int i = 0; i < sequences.length; i++)
{
void load()
{
JalviewFileChooser chooser = new JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"),
- new String[] { "fc" },
- new String[] { "Sequence Feature Colours" },
- "Sequence Feature Colours");
+ Cache.getProperty("LAST_DIRECTORY"), "fc",
+ "Sequence Feature Colours", "Sequence Feature Colours");
chooser.setFileView(new jalview.io.JalviewFileView());
chooser.setDialogTitle(MessageManager
.getString("label.load_feature_colours"));
}
else
{
- Color color = new Color(Integer.parseInt(jucs.getColour(i)
- .getRGB(), 16));
+ Color color = new Color(
+ Integer.parseInt(jucs.getColour(i).getRGB(), 16));
fr.setColour(name = jucs.getColour(i).getName(),
new FeatureColour(color));
}
void save()
{
JalviewFileChooser chooser = new JalviewFileChooser(
- Cache.getProperty("LAST_DIRECTORY"), new String[] { "fc" },
- new String[] { "Sequence Feature Colours" },
- "Sequence Feature Colours");
+ Cache.getProperty("LAST_DIRECTORY"), "fc",
+ "Sequence Feature Colours", "Sequence Feature Colours");
chooser.setFileView(new jalview.io.JalviewFileView());
chooser.setDialogTitle(MessageManager
.getString("label.save_feature_colours"));
public void noDasSourceActive()
{
complete();
- JOptionPane
+ JvOptionPane
.showInternalConfirmDialog(
Desktop.desktop,
MessageManager
.getString("label.no_das_sources_selected_warn"),
MessageManager
.getString("label.no_das_sources_selected_title"),
- JOptionPane.DEFAULT_OPTION,
- JOptionPane.INFORMATION_MESSAGE);
+ JvOptionPane.DEFAULT_OPTION,
+ JvOptionPane.INFORMATION_MESSAGE);
}
// ///////////////////////////////////////////////////////////////////////
// 'SelectRegion' selection
if (!haveResults)
{
- JOptionPane.showInternalMessageDialog(this,
+ JvOptionPane.showInternalMessageDialog(this,
MessageManager.getString("label.finished_searching"), null,
- JOptionPane.INFORMATION_MESSAGE);
+ JvOptionPane.INFORMATION_MESSAGE);
resIndex = -1;
seqIndex = 0;
}
message += searchResults.getSize()
+ " subsequence matches found.";
}
- JOptionPane.showInternalMessageDialog(this, message, null,
- JOptionPane.INFORMATION_MESSAGE);
+ JvOptionPane.showInternalMessageDialog(this, message, null,
+ JvOptionPane.INFORMATION_MESSAGE);
resIndex = -1;
seqIndex = 0;
}
{
return false;
}
- JOptionPane.showInternalMessageDialog(this, error,
+ JvOptionPane.showInternalMessageDialog(this, error,
MessageManager.getString("label.invalid_search"), // $NON-NLS-1$
- JOptionPane.ERROR_MESSAGE);
+ JvOptionPane.ERROR_MESSAGE);
return true;
}
String message = iBounds.getHeight() < 1 ? MessageManager
.getString("label.font_doesnt_have_letters_defined")
: MessageManager.getString("label.font_too_small");
- JOptionPane.showInternalMessageDialog(this, message,
+ JvOptionPane.showInternalMessageDialog(this, message,
MessageManager.getString("label.invalid_font"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
/*
* Restore the changed value - note this will reinvoke this method via the
* ActionListener, but now validation should pass
bg.add(lineart);
bg.add(text);
- JOptionPane pane = new JOptionPane(null, JOptionPane.DEFAULT_OPTION,
- JOptionPane.DEFAULT_OPTION, null, new Object[] { this });
+ JOptionPane pane = new JOptionPane(null, JvOptionPane.DEFAULT_OPTION,
+ JvOptionPane.DEFAULT_OPTION, null, new Object[] { this });
dialog = pane.createDialog(Desktop.desktop, "HTML Rendering options");
dialog.setVisible(true);
ok.setText(MessageManager.getString("action.ok"));
ok.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
ok_actionPerformed(e);
cancel.setText(MessageManager.getString("action.cancel"));
cancel.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
cancel_actionPerformed(e);
jalview.util.BrowserLauncher.openURL(url);
} catch (Exception ex)
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
MessageManager.getString("label.web_browser_not_found_unix"),
MessageManager.getString("label.web_browser_not_found"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
ex.printStackTrace();
}
}
import jalview.datamodel.StructureViewerModel.StructureData;
import jalview.ext.varna.RnaModel;
import jalview.gui.StructureViewer.ViewerType;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
import jalview.schemabinding.version2.AlcodMap;
import jalview.schemabinding.version2.AlcodonFrame;
import jalview.schemabinding.version2.Annotation;
@Override
public void run()
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
finalErrorMessage, "Error "
+ (saving ? "saving" : "loading")
- + " Jalview file", JOptionPane.WARNING_MESSAGE);
+ + " Jalview file", JvOptionPane.WARNING_MESSAGE);
}
});
}
StructureData filedat = oldFiles.get(id);
String pdbFile = filedat.getFilePath();
SequenceI[] seq = filedat.getSeqList().toArray(new SequenceI[0]);
- binding.getSsm().setMapping(seq, null, pdbFile,
- jalview.io.AppletFormatAdapter.FILE);
+ binding.getSsm().setMapping(seq, null, pdbFile, DataSourceType.FILE);
binding.addSequenceForStructFile(pdbFile, seq);
}
// and add the AlignmentPanel's reference to the view panel
af = new AlignFrame(al, view.getWidth(), view.getHeight(),
uniqueSeqSetId, viewId);
- af.setFileName(file, "Jalview");
+ af.setFileName(file, FileFormat.Jalview);
for (int i = 0; i < JSEQ.length; i++)
{
import jalview.binding.UserColours;
import jalview.binding.Viewport;
import jalview.datamodel.PDBEntry;
+import jalview.io.FileFormat;
import jalview.schemes.ColourSchemeI;
import jalview.schemes.ColourSchemeProperty;
import jalview.structure.StructureSelectionManager;
System.err.println("Couldn't locate Jalview XML file : " + ex
+ "\n");
- JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
MessageManager.formatMessage("label.couldnt_locate",
new String[] { file }), MessageManager
.getString("label.url_not_found"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
});
}
public void run()
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
MessageManager.formatMessage(
"label.error_loading_file_params", new String[]
{ file }), MessageManager
.getString("label.error_loading_jalview_file"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
});
}
AlignFrame af = new AlignFrame(al, view.getWidth(), view.getHeight());
- af.setFileName(file, "Jalview");
+ af.setFileName(file, FileFormat.Jalview);
for (int i = 0; i < JSEQ.length; i++)
{
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
import jalview.ext.rbvi.chimera.JalviewChimeraBinding;
+import jalview.io.DataSourceType;
import jalview.structure.StructureSelectionManager;
public class JalviewChimeraBindingModel extends JalviewChimeraBinding
public JalviewChimeraBindingModel(ChimeraViewFrame chimeraViewFrame,
StructureSelectionManager ssm, PDBEntry[] pdbentry,
- SequenceI[][] sequenceIs, String protocol)
+ SequenceI[][] sequenceIs, DataSourceType protocol)
{
super(ssm, pdbentry, sequenceIs, protocol);
cvf = chimeraViewFrame;
--- /dev/null
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
+
+package jalview.gui;
+
+import java.awt.Component;
+import java.awt.HeadlessException;
+
+import javax.swing.Icon;
+import javax.swing.JOptionPane;
+
+public class JvOptionPane extends JOptionPane
+{
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3019167117756785229L;
+
+ private static Object mockResponse = JvOptionPane.CANCEL_OPTION;
+
+ private static boolean interactiveMode = true;
+
+ public static int showConfirmDialog(Component parentComponent,
+ Object message) throws HeadlessException
+ {
+ return isInteractiveMode() ? JOptionPane.showConfirmDialog(
+ parentComponent, message) : (int) getMockResponse();
+ }
+
+ public static int showConfirmDialog(Component parentComponent,
+ Object message, String title, int optionType)
+ throws HeadlessException
+ {
+ return isInteractiveMode() ? JOptionPane.showConfirmDialog(
+ parentComponent, message, title, optionType)
+ : (int) getMockResponse();
+ }
+
+ public static int showConfirmDialog(Component parentComponent,
+ Object message, String title, int optionType, int messageType)
+ throws HeadlessException
+ {
+ return isInteractiveMode() ? JOptionPane.showConfirmDialog(
+ parentComponent, message, title, optionType, messageType)
+ : (int) getMockResponse();
+ }
+
+ public static int showConfirmDialog(Component parentComponent,
+ Object message, String title, int optionType, int messageType,
+ Icon icon) throws HeadlessException
+ {
+ return isInteractiveMode() ? JOptionPane.showConfirmDialog(
+ parentComponent, message, title, optionType, messageType, icon)
+ : (int) getMockResponse();
+ }
+
+ public static int showInternalConfirmDialog(Component parentComponent,
+ Object message)
+ {
+ return isInteractiveMode() ? JOptionPane.showInternalConfirmDialog(
+ parentComponent, message) : (int) getMockResponse();
+ }
+
+ public static int showInternalConfirmDialog(Component parentComponent,
+ Object message, String title, int optionType)
+ {
+ return isInteractiveMode() ? JOptionPane.showConfirmDialog(
+ parentComponent, message, title, optionType)
+ : (int) getMockResponse();
+ }
+
+ public static int showInternalConfirmDialog(Component parentComponent,
+ Object message, String title, int optionType, int messageType)
+ {
+ return isInteractiveMode() ? JOptionPane.showConfirmDialog(
+ parentComponent, message, title, optionType, messageType)
+ : (int) getMockResponse();
+ }
+
+ public static int showInternalConfirmDialog(Component parentComponent,
+ Object message, String title, int optionType, int messageType,
+ Icon icon)
+ {
+ return isInteractiveMode() ? JOptionPane.showInternalConfirmDialog(
+ parentComponent, message, title, optionType, messageType, icon)
+ : (int) getMockResponse();
+ }
+
+ public static int showOptionDialog(Component parentComponent,
+ Object message, String title, int optionType, int messageType,
+ Icon icon, Object[] options, Object initialValue)
+ throws HeadlessException
+ {
+ return isInteractiveMode() ? JOptionPane.showOptionDialog(
+ parentComponent, message, title, optionType, messageType, icon,
+ options, initialValue) : (int) getMockResponse();
+ }
+
+ public static void showMessageDialog(Component parentComponent,
+ Object message) throws HeadlessException
+ {
+ if (isInteractiveMode())
+ {
+ JOptionPane.showMessageDialog(parentComponent, message);
+ }
+ else
+ {
+ outputMessage(message);
+ }
+ }
+
+ public static void showMessageDialog(Component parentComponent,
+ Object message, String title, int messageType)
+ throws HeadlessException
+ {
+ if (isInteractiveMode())
+ {
+ JOptionPane.showMessageDialog(parentComponent, message, title,
+ messageType);
+ }
+ else
+ {
+ outputMessage(message);
+ }
+ }
+
+ public static void showMessageDialog(Component parentComponent,
+ Object message, String title, int messageType, Icon icon)
+ throws HeadlessException
+ {
+ if (isInteractiveMode())
+ {
+ JOptionPane.showMessageDialog(parentComponent, message, title,
+ messageType, icon);
+ }
+ else
+ {
+ outputMessage(message);
+ }
+ }
+
+ public static void showInternalMessageDialog(Component parentComponent,
+ Object message)
+ {
+ if (isInteractiveMode())
+ {
+ JOptionPane.showMessageDialog(parentComponent, message);
+ }
+ else
+ {
+ outputMessage(message);
+ }
+ }
+
+ public static void showInternalMessageDialog(Component parentComponent,
+ Object message, String title, int messageType)
+ {
+ if (isInteractiveMode())
+ {
+ JOptionPane.showMessageDialog(parentComponent, message, title,
+ messageType);
+ }
+ else
+ {
+ outputMessage(message);
+ }
+ }
+
+ public static void showInternalMessageDialog(Component parentComponent,
+ Object message, String title, int messageType, Icon icon)
+ {
+ if (isInteractiveMode())
+ {
+ JOptionPane.showMessageDialog(parentComponent, message, title,
+ messageType, icon);
+ }
+ else
+ {
+ outputMessage(message);
+ }
+ }
+
+ public static String showInputDialog(Object message)
+ throws HeadlessException
+ {
+ return isInteractiveMode() ? JOptionPane.showInputDialog(message)
+ : getMockResponse().toString();
+ }
+
+ public static String showInputDialog(Object message,
+ Object initialSelectionValue)
+ {
+ return isInteractiveMode() ? JOptionPane.showInputDialog(message,
+ initialSelectionValue) : getMockResponse().toString();
+ }
+
+ public static String showInputDialog(Component parentComponent,
+ Object message) throws HeadlessException
+ {
+ return isInteractiveMode() ? JOptionPane.showInputDialog(
+ parentComponent, message) : getMockResponse().toString();
+ }
+
+ public static String showInputDialog(Component parentComponent,
+ Object message, Object initialSelectionValue)
+ {
+ return isInteractiveMode() ? JOptionPane.showInputDialog(
+ parentComponent, message, initialSelectionValue)
+ : getMockResponse().toString();
+ }
+
+ public static String showInputDialog(Component parentComponent,
+ Object message, String title, int messageType)
+ throws HeadlessException
+ {
+ return isInteractiveMode() ? JOptionPane.showInputDialog(
+ parentComponent, message, title, messageType)
+ : getMockResponse().toString();
+ }
+
+ public static Object showInputDialog(Component parentComponent,
+ Object message, String title, int messageType, Icon icon,
+ Object[] selectionValues, Object initialSelectionValue)
+ throws HeadlessException
+ {
+ return isInteractiveMode() ? JOptionPane.showInputDialog(
+ parentComponent, message, title, messageType, icon,
+ selectionValues, initialSelectionValue) : getMockResponse()
+ .toString();
+ }
+
+ public static String showInternalInputDialog(Component parentComponent,
+ Object message)
+ {
+ return isInteractiveMode() ? JOptionPane.showInternalInputDialog(
+ parentComponent, message) : getMockResponse().toString();
+ }
+
+ public static String showInternalInputDialog(Component parentComponent,
+ Object message, String title, int messageType)
+ {
+ return isInteractiveMode() ? JOptionPane.showInternalInputDialog(
+ parentComponent, message, title, messageType)
+ : getMockResponse().toString();
+ }
+
+ public static Object showInternalInputDialog(Component parentComponent,
+ Object message, String title, int messageType, Icon icon,
+ Object[] selectionValues, Object initialSelectionValue)
+ {
+ return isInteractiveMode() ? JOptionPane.showInternalInputDialog(
+ parentComponent, message, title, messageType, icon,
+ selectionValues, initialSelectionValue) : getMockResponse()
+ .toString();
+ }
+
+ private static void outputMessage(Object message)
+ {
+ System.out.println(">>> JOption Message : " + message.toString());
+ }
+
+ public static Object getMockResponse()
+ {
+ return mockResponse;
+ }
+
+ public static void setMockResponse(Object mockOption)
+ {
+ JvOptionPane.mockResponse = mockOption;
+ }
+
+ public static void resetMock()
+ {
+ setMockResponse(JvOptionPane.CANCEL_OPTION);
+ setInteractiveMode(true);
+ }
+
+ public static boolean isInteractiveMode()
+ {
+ return interactiveMode;
+ }
+
+ public static void setInteractiveMode(boolean interactiveMode)
+ {
+ JvOptionPane.interactiveMode = interactiveMode;
+ }
+
+}
this(string, oomerror, Desktop.desktop);
}
+ @Override
public void run()
{
- javax.swing.JOptionPane.showInternalMessageDialog(desktop,
+ JvOptionPane
+ .showInternalMessageDialog(desktop,
MessageManager.formatMessage("warn.out_of_memory_when_action",
new String[] { action }), MessageManager
.getString("label.out_of_memory"),
- javax.swing.JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
// hope that there's enough memory left that no more appear.
oomInprogress = false;
}
if (!sameLength)
{
- JOptionPane.showMessageDialog(Desktop.desktop,
+ JvOptionPane.showMessageDialog(Desktop.desktop,
MessageManager.getString("label.pca_sequences_not_aligned"),
MessageManager.getString("label.sequences_not_aligned"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
+import jalview.io.FileFormat;
+import jalview.io.FileFormatI;
import jalview.io.FormatAdapter;
import jalview.io.SequenceAnnotationReport;
import jalview.schemes.AnnotationColourGradient;
colours.add(purinePyrimidineColour);
colours.add(RNAInteractionColour);
- for (int i = 0; i < jalview.io.FormatAdapter.WRITEABLE_FORMATS.length; i++)
+ for (String ff : FileFormat.getWritableFormats(true))
{
- JMenuItem item = new JMenuItem(
- jalview.io.FormatAdapter.WRITEABLE_FORMATS[i]);
+ JMenuItem item = new JMenuItem(ff);
item.addActionListener(new java.awt.event.ActionListener()
{
{
if (dialog.getName().indexOf(" ") > -1)
{
- JOptionPane
+ JvOptionPane
.showMessageDialog(
ap,
MessageManager
.getString("label.spaces_converted_to_backslashes"),
MessageManager
.getString("label.no_spaces_allowed_sequence_name"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
sequence.setName(dialog.getName().replace(' ', '_'));
jalview.util.BrowserLauncher.openURL(url);
} catch (Exception ex)
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
MessageManager.getString("label.web_browser_not_found_unix"),
MessageManager.getString("label.web_browser_not_found"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
ex.printStackTrace();
}
// or we simply trust the user wants
// wysiwig behaviour
- cap.setText(new FormatAdapter(ap).formatSequences(e.getActionCommand(),
- ap, true));
+ FileFormatI fileFormat = FileFormat.forName(e.getActionCommand());
+ cap.setText(new FormatAdapter(ap).formatSequences(fileFormat, ap, true));
}
public void sequenceFeature_actionPerformed()
import jalview.bin.Cache;
import jalview.gui.Help.HelpId;
import jalview.gui.StructureViewer.ViewerType;
+import jalview.io.FileFormatI;
import jalview.io.JalviewFileChooser;
import jalview.io.JalviewFileView;
import jalview.jbgui.GPreferences;
@Override
public void startupFileTextfield_mouseClicked()
{
- JalviewFileChooser chooser = new JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[] {
- "fa, fasta, fastq", "aln", "pfam", "msf", "pir", "blc",
- "jar" }, new String[] { "Fasta", "Clustal", "PFAM", "MSF",
- "PIR", "BLC", "Jalview" },
- jalview.bin.Cache.getProperty("DEFAULT_FILE_FORMAT"));
+ String fileFormat = Cache.getProperty("DEFAULT_FILE_FORMAT");
+ JalviewFileChooser chooser = JalviewFileChooser.forRead(
+ Cache.getProperty("LAST_DIRECTORY"), fileFormat, true);
+ // new String[] {
+ // "fa, fasta, fastq", "aln", "pfam", "msf", "pir", "blc",
+ // "jar" }, new String[] { "Fasta", "Clustal", "PFAM", "MSF",
+ // "PIR", "BLC", "Jalview" },
+ // fileFormat);
chooser.setFileView(new JalviewFileView());
chooser.setDialogTitle(MessageManager
.getString("label.select_startup_file"));
if (value == JalviewFileChooser.APPROVE_OPTION)
{
- jalview.bin.Cache.applicationProperties.setProperty(
- "DEFAULT_FILE_FORMAT", chooser.getSelectedFormat());
+ FileFormatI format = chooser.getSelectedFormat();
+ if (format != null)
+ {
+ Cache.applicationProperties.setProperty("DEFAULT_FILE_FORMAT",
+ format.toString());
+ }
startupFileTextfield.setText(chooser.getSelectedFile()
.getAbsolutePath());
}
boolean valid = false;
while (!valid)
{
- if (JOptionPane.showInternalConfirmDialog(Desktop.desktop, link,
+ if (JvOptionPane.showInternalConfirmDialog(Desktop.desktop, link,
MessageManager.getString("label.new_sequence_url_link"),
- JOptionPane.OK_CANCEL_OPTION, -1, null) == JOptionPane.OK_OPTION)
+ JvOptionPane.OK_CANCEL_OPTION, -1, null) == JvOptionPane.OK_OPTION)
{
if (link.checkValid())
{
int index = linkNameList.getSelectedIndex();
if (index == -1)
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
MessageManager.getString("label.no_link_selected"),
MessageManager.getString("label.no_link_selected"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
while (!valid)
{
- if (JOptionPane.showInternalConfirmDialog(Desktop.desktop, link,
+ if (JvOptionPane.showInternalConfirmDialog(Desktop.desktop, link,
MessageManager.getString("label.new_sequence_url_link"),
- JOptionPane.OK_CANCEL_OPTION, -1, null) == JOptionPane.OK_OPTION)
+ JvOptionPane.OK_CANCEL_OPTION, -1, null) == JvOptionPane.OK_OPTION)
{
if (link.checkValid())
{
int index = linkNameList.getSelectedIndex();
if (index == -1)
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
MessageManager.getString("label.no_link_selected"),
MessageManager.getString("label.no_link_selected"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
nameLinks.removeElementAt(index);
}
} catch (NumberFormatException x)
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
.getString("warn.user_defined_width_requirements"),
MessageManager.getString("label.invalid_id_column_width"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
userIdWidth.setText("");
}
}
File f = new File(chimeraPath.getText());
if (!f.canExecute())
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
MessageManager.getString("label.invalid_chimera_path"),
MessageManager.getString("label.invalid_name"),
- JOptionPane.ERROR_MESSAGE);
+ JvOptionPane.ERROR_MESSAGE);
return false;
}
}
if (!found)
{
String[] options = { "OK", "Help" };
- int showHelp = JOptionPane.showInternalOptionDialog(
+ int showHelp = JvOptionPane.showInternalOptionDialog(
Desktop.desktop,
JvSwingUtils.wrapTooltip(true,
MessageManager.getString("label.chimera_missing")),
- "", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE,
+ "", JvOptionPane.YES_NO_OPTION, JvOptionPane.WARNING_MESSAGE,
null, options, options[0]);
- if (showHelp == JOptionPane.NO_OPTION)
+ if (showHelp == JvOptionPane.NO_OPTION)
{
try
{
}
try
{
- int reply = JOptionPane.showConfirmDialog(
+ int reply = JvOptionPane.showConfirmDialog(
Desktop.desktop, // component,
dialogText, dialogTitle,
- (allowCancel) ? JOptionPane.YES_NO_CANCEL_OPTION
- : JOptionPane.YES_NO_OPTION,
- JOptionPane.QUESTION_MESSAGE);
+ (allowCancel) ? JvOptionPane.YES_NO_CANCEL_OPTION
+ : JvOptionPane.YES_NO_OPTION,
+ JvOptionPane.QUESTION_MESSAGE);
// now, ask the desktop to relayer any external windows that might have
// been obsured
if (Desktop.instance != null)
}
// and finish parsing the result
jalview.bin.Cache.log.debug("Got response : " + reply);
- if (reply == JOptionPane.YES_OPTION)
+ if (reply == JvOptionPane.YES_OPTION)
{
jalview.bin.Cache.setProperty(property, "true");
}
- else if (reply == JOptionPane.NO_OPTION)
+ else if (reply == JvOptionPane.NO_OPTION)
{
if (removeifunset)
{
@Override
protected void okPressed()
{
- reply = JOptionPane.OK_OPTION;
+ reply = JvOptionPane.OK_OPTION;
}
@Override
protected void cancelPressed()
{
- reply = JOptionPane.CANCEL_OPTION;
+ reply = JvOptionPane.CANCEL_OPTION;
}
};
+ currentservice.getName(), 600, 800);
initTypeLists();
- reply = JOptionPane.CANCEL_OPTION;
+ reply = JvOptionPane.CANCEL_OPTION;
old = toedit;
current = null;
if (old != null)
{
setStateFor(old);
}
- updated = updated && reply == JOptionPane.OK_OPTION;
+ updated = updated && reply == JvOptionPane.OK_OPTION;
frame.validate();
}
bg.add(lineart);
bg.add(text);
- JOptionPane pane = new JOptionPane(null, JOptionPane.DEFAULT_OPTION,
- JOptionPane.DEFAULT_OPTION, null, new Object[] { this });
+ JOptionPane pane = new JOptionPane(null, JvOptionPane.DEFAULT_OPTION,
+ JvOptionPane.DEFAULT_OPTION, null, new Object[] { this });
dialog = pane.createDialog(Desktop.desktop, "SVG Rendering options");
dialog.setVisible(true);
ok.setText(MessageManager.getString("action.ok"));
ok.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
ok_actionPerformed(e);
cancel.setText(MessageManager.getString("action.cancel"));
cancel.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
cancel_actionPerformed(e);
if (av.getWrapAlignment() && seq > av.getAlignment().getHeight())
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
.getString("label.cannot_edit_annotations_in_wrapped_view"),
MessageManager.getString("label.wrapped_view_no_edit"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
import jalview.datamodel.SequenceI;
import jalview.fts.service.pdb.PDBFTSPanel;
import jalview.fts.service.uniprot.UniprotFTSPanel;
+import jalview.io.FileFormatI;
import jalview.io.gff.SequenceOntologyI;
import jalview.util.DBRefUtils;
import jalview.util.MessageManager;
@Override
public void run()
{
- JOptionPane
+ JvOptionPane
.showInternalMessageDialog(
Desktop.desktop,
MessageManager
.getString("warn.couldnt_create_sequence_fetcher_client"),
MessageManager
.getString("label.couldnt_create_sequence_fetcher"),
- JOptionPane.ERROR_MESSAGE);
+ JvOptionPane.ERROR_MESSAGE);
}
});
}
AlignmentI parseResult(AlignmentI al, String title,
- String currentFileFormat,
+ FileFormatI currentFileFormat,
FeatureSettingsModelI preferredFeatureColours)
{
@Override
public void run()
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop, error,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop, error,
MessageManager.getString("label.error_retrieving_data"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
});
}
import jalview.fts.core.FTSRestRequest;
import jalview.fts.core.FTSRestResponse;
import jalview.fts.service.pdb.PDBFTSRestClient;
+import jalview.io.DataSourceType;
import jalview.jbgui.GStructureChooser;
import jalview.structure.StructureMapping;
import jalview.structure.StructureSelectionManager;
public class StructureChooser extends GStructureChooser implements
IProgressIndicator
{
+ private static int MAX_QLENGTH = 7820;
+
private SequenceI selectedSequence;
private SequenceI[] selectedSequences;
private boolean cachedPDBExists;
- private static int MAX_QLENGHT = 7820;
-
public StructureChooser(SequenceI[] selectedSeqs, SequenceI selectedSeq,
AlignmentPanel ap)
{
{
errorMsg.append(error).append("\n");
}
- JOptionPane.showMessageDialog(this, errorMsg.toString(),
+ JvOptionPane.showMessageDialog(this, errorMsg.toString(),
MessageManager.getString("label.pdb_web-service_error"),
- JOptionPane.ERROR_MESSAGE);
+ JvOptionPane.ERROR_MESSAGE);
}
}
}
Set<String> seqRefs = new LinkedHashSet<String>();
if (seq.getAllPDBEntries() != null
- && queryBuilder.length() < MAX_QLENGHT)
+ && queryBuilder.length() < MAX_QLENGTH)
{
for (PDBEntry entry : seq.getAllPDBEntries())
{
for (DBRefEntry dbRef : seq.getDBRefs())
{
if (isValidSeqName(getDBRefId(dbRef))
- && queryBuilder.length() < MAX_QLENGHT)
+ && queryBuilder.length() < MAX_QLENGTH)
{
if (dbRef.getSource().equalsIgnoreCase(DBRefSource.UNIPROT))
{
{
errorMsg.append(error).append("\n");
}
- JOptionPane.showMessageDialog(
+ JvOptionPane.showMessageDialog(
null,
errorMsg.toString(),
MessageManager.getString("label.pdb_web-service_error"),
- JOptionPane.ERROR_MESSAGE);
+ JvOptionPane.ERROR_MESSAGE);
}
}
int[] selectedRows = getResultTable().getSelectedRows();
PDBEntry[] pdbEntriesToView = new PDBEntry[selectedRows.length];
int count = 0;
- ArrayList<SequenceI> selectedSeqsToView = new ArrayList<SequenceI>();
+ List<SequenceI> selectedSeqsToView = new ArrayList<SequenceI>();
for (int row : selectedRows)
{
String pdbIdStr = getResultTable().getValueAt(row,
.getModelIndex();
int refSeqColIndex = tbl_local_pdb.getColumn("Ref Sequence")
.getModelIndex();
- ArrayList<SequenceI> selectedSeqsToView = new ArrayList<SequenceI>();
+ List<SequenceI> selectedSeqsToView = new ArrayList<SequenceI>();
for (int row : selectedRows)
{
PDBEntry pdbEntry = (PDBEntry) tbl_local_pdb.getValueAt(row,
PDBEntry[] pdbEntriesToView = new PDBEntry[] { pdbEntry };
launchStructureViewer(ssm, pdbEntriesToView, ap,
new SequenceI[] { selectedSequence });
- }
- else if (currentView == VIEWS_FROM_FILE)
- {
- SequenceI userSelectedSeq = ((AssociateSeqOptions) fileChooserAssSeqPanel
- .getCmb_assSeq().getSelectedItem()).getSequence();
- if (userSelectedSeq != null)
- {
- selectedSequence = userSelectedSeq;
- }
- PDBEntry fileEntry = new AssociatePdbFileWithSeq()
- .associatePdbWithSeq(selectedPdbFileName,
- jalview.io.AppletFormatAdapter.FILE,
- selectedSequence, true, Desktop.instance);
+ }
+ else if (currentView == VIEWS_FROM_FILE)
+ {
+ SequenceI userSelectedSeq = ((AssociateSeqOptions) fileChooserAssSeqPanel
+ .getCmb_assSeq().getSelectedItem()).getSequence();
+ if (userSelectedSeq != null)
+ {
+ selectedSequence = userSelectedSeq;
+ }
+ PDBEntry fileEntry = new AssociatePdbFileWithSeq()
+ .associatePdbWithSeq(selectedPdbFileName,
+ DataSourceType.FILE,
+ selectedSequence, true, Desktop.instance);
launchStructureViewer(ssm, new PDBEntry[] { fileEntry }, ap,
new SequenceI[] { selectedSequence });
import jalview.datamodel.SequenceI;
import jalview.gui.StructureViewer.ViewerType;
import jalview.gui.ViewSelectionMenu.ViewSetProvider;
-import jalview.io.AppletFormatAdapter;
+import jalview.io.DataSourceType;
import jalview.jbgui.GStructureViewer;
import jalview.structures.models.AAStructureBindingModel;
import jalview.util.MessageManager;
*
* @param pdbId
* @param view
- * @return YES, NO or CANCEL JOptionPane code
+ * @return YES, NO or CANCEL JvOptionPane code
*/
protected int chooseAlignStructureToViewer(String pdbId,
StructureViewerBase view)
{
- int option = JOptionPane.showInternalConfirmDialog(Desktop.desktop,
+ int option = JvOptionPane.showInternalConfirmDialog(Desktop.desktop,
MessageManager.formatMessage("label.add_pdbentry_to_view",
new Object[] { pdbId, view.getTitle() }),
MessageManager
.getString("label.align_to_existing_structure_view"),
- JOptionPane.YES_NO_CANCEL_OPTION);
+ JvOptionPane.YES_NO_CANCEL_OPTION);
return option;
}
continue;
}
int option = chooseAlignStructureToViewer(pdbId, view);
- if (option == JOptionPane.CANCEL_OPTION)
+ if (option == JvOptionPane.CANCEL_OPTION)
{
return true;
}
- else if (option == JOptionPane.YES_OPTION)
+ else if (option == JvOptionPane.YES_OPTION)
{
view.useAlignmentPanelForSuperposition(apanel);
view.addStructure(pdbentry, seq, chains, true, apanel.alignFrame);
* create the mappings
*/
apanel.getStructureSelectionManager().setMapping(seq, chains,
- pdbFilename, AppletFormatAdapter.FILE);
+ pdbFilename, DataSourceType.FILE);
/*
* alert the FeatureRenderer to show new (PDB RESNUM) features
/*
* the PDB file is already loaded
*/
- int option = JOptionPane.showInternalConfirmDialog(Desktop.desktop,
+ int option = JvOptionPane.showInternalConfirmDialog(Desktop.desktop,
MessageManager.formatMessage(
"label.pdb_entry_is_already_displayed",
new Object[] { pdbId }), MessageManager
.formatMessage(
"label.map_sequences_to_visible_window",
new Object[] { pdbId }),
- JOptionPane.YES_NO_CANCEL_OPTION);
- if (option == JOptionPane.CANCEL_OPTION)
+ JvOptionPane.YES_NO_CANCEL_OPTION);
+ if (option == JvOptionPane.CANCEL_OPTION)
{
finished = true;
}
- else if (option == JOptionPane.YES_OPTION)
+ else if (option == JvOptionPane.YES_OPTION)
{
addSequenceMappingsToStructure(seq, chains, apanel, alreadyMapped);
finished = true;
}
});
- int reply = JOptionPane
+ int reply = JvOptionPane
.showInternalOptionDialog(
ap,
bigpanel,
MessageManager
.getString("label.adjunst_foreground_text_colour_threshold"),
- JOptionPane.OK_CANCEL_OPTION,
- JOptionPane.QUESTION_MESSAGE, null, null, null);
+ JvOptionPane.OK_CANCEL_OPTION,
+ JvOptionPane.QUESTION_MESSAGE, null, null, null);
- if (reply == JOptionPane.CANCEL_OPTION)
+ if (reply == JvOptionPane.CANCEL_OPTION)
{
if (sg == null)
{
import jalview.io.NewickFile;
import jalview.jbgui.GTreePanel;
import jalview.schemes.ResidueProperties;
+import jalview.util.ImageMaker;
import jalview.util.MessageManager;
import jalview.viewmodel.AlignmentViewport;
try
{
- jalview.io.JalviewFileChooser chooser = new jalview.io.JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]
- { "eps" }, new String[] { "Encapsulated Postscript" },
- "Encapsulated Postscript");
- chooser.setFileView(new jalview.io.JalviewFileView());
+ JalviewFileChooser chooser = new JalviewFileChooser(
+ Cache.getProperty("LAST_DIRECTORY"),
+ ImageMaker.EPS_EXTENSION, ImageMaker.EPS_EXTENSION,
+ ImageMaker.EPS_EXTENSION);
+ chooser.setFileView(new JalviewFileView());
chooser.setDialogTitle(MessageManager
.getString("label.create_eps_from_tree"));
chooser.setToolTipText(MessageManager.getString("action.save"));
int value = chooser.showSaveDialog(this);
- if (value != jalview.io.JalviewFileChooser.APPROVE_OPTION)
+ if (value != JalviewFileChooser.APPROVE_OPTION)
{
return;
}
- jalview.bin.Cache.setProperty("LAST_DIRECTORY", chooser
- .getSelectedFile().getParent());
+ Cache.setProperty("LAST_DIRECTORY", chooser.getSelectedFile()
+ .getParent());
FileOutputStream out = new FileOutputStream(chooser.getSelectedFile());
EpsGraphics2D pg = new EpsGraphics2D("Tree", out, 0, 0, width, height);
try
{
- jalview.io.JalviewFileChooser chooser = new jalview.io.JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]
- { "png" }, new String[] { "Portable network graphics" },
- "Portable network graphics");
+ JalviewFileChooser chooser = new JalviewFileChooser(
+ Cache.getProperty("LAST_DIRECTORY"),
+ ImageMaker.PNG_EXTENSION, ImageMaker.PNG_DESCRIPTION,
+ ImageMaker.PNG_DESCRIPTION);
chooser.setFileView(new jalview.io.JalviewFileView());
chooser.setDialogTitle(MessageManager
package jalview.gui;
import jalview.api.structures.JalviewStructureDisplayI;
+import jalview.bin.Cache;
import jalview.datamodel.SequenceGroup;
import jalview.io.JalviewFileChooser;
import jalview.jbgui.GUserDefinedColours;
{
if (isNoSelectionMade())
{
- JOptionPane.showMessageDialog(Desktop.desktop, MessageManager
+ JvOptionPane.showMessageDialog(Desktop.desktop, MessageManager
.getString("label.no_colour_selection_in_scheme"),
MessageManager.getString("label.no_colour_selection_warn"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
else
{
{
if (isNoSelectionMade())
{
- JOptionPane.showMessageDialog(Desktop.desktop, MessageManager
+ JvOptionPane.showMessageDialog(Desktop.desktop, MessageManager
.getString("label.no_colour_selection_in_scheme"),
MessageManager.getString("label.no_colour_selection_warn"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
UserColourScheme ucs = getSchemeFromButtons();
lowerCaseButtons = new ArrayList<JButton>();
JalviewFileChooser chooser = new JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"),
- new String[] { "jc" }, new String[] { "Jalview User Colours" },
- "Jalview User Colours");
+ Cache.getProperty("LAST_DIRECTORY"), "jc",
+ "Jalview User Colours", "Jalview User Colours");
chooser.setFileView(new jalview.io.JalviewFileView());
chooser.setDialogTitle(MessageManager
.getString("label.load_colour_scheme"));
{
if (schemeName.getText().trim().length() < 1)
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
.getString("label.user_colour_scheme_must_have_name"),
MessageManager.getString("label.no_name_colour_scheme"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
if (userColourSchemes != null
&& userColourSchemes.containsKey(schemeName.getText()))
{
- int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop,
+ int reply = JvOptionPane.showInternalConfirmDialog(Desktop.desktop,
MessageManager.formatMessage(
"label.colour_scheme_exists_overwrite", new Object[] {
schemeName.getText(), schemeName.getText() }),
MessageManager.getString("label.duplicate_scheme_name"),
- JOptionPane.YES_NO_OPTION);
- if (reply != JOptionPane.YES_OPTION)
+ JvOptionPane.YES_NO_OPTION);
+ if (reply != JvOptionPane.YES_OPTION)
{
return;
}
userColourSchemes.remove(schemeName.getText());
}
JalviewFileChooser chooser = new JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"),
- new String[] { "jc" }, new String[] { "Jalview User Colours" },
- "Jalview User Colours");
+ Cache.getProperty("LAST_DIRECTORY"), "jc",
+ "Jalview User Colours", "Jalview User Colours");
chooser.setFileView(new jalview.io.JalviewFileView());
chooser.setDialogTitle(MessageManager
+ qid + "&rid=" + rid;
jalview.bin.Cache.log.info("Prompting user for questionnaire at "
+ qurl);
- int reply = JOptionPane
+ int reply = JvOptionPane
.showInternalConfirmDialog(Desktop.desktop, MessageManager
.getString("label.jalview_new_questionnaire"),
MessageManager
.getString("label.jalview_user_survey"),
- JOptionPane.YES_NO_OPTION,
- JOptionPane.QUESTION_MESSAGE);
+ JvOptionPane.YES_NO_OPTION,
+ JvOptionPane.QUESTION_MESSAGE);
- if (reply == JOptionPane.YES_OPTION)
+ if (reply == JvOptionPane.YES_OPTION)
{
jalview.bin.Cache.log.debug("Opening " + qurl);
jalview.util.BrowserLauncher.openURL(qurl);
}
} catch (InvalidSessionDocumentException e)
{
- JOptionPane
+ JvOptionPane
.showInternalMessageDialog(
Desktop.desktop,
.getString("label.vamsas_doc_couldnt_be_opened_as_new_session"),
MessageManager
.getString("label.vamsas_document_import_failed"),
- JOptionPane.ERROR_MESSAGE);
+ JvOptionPane.ERROR_MESSAGE);
}
}
{
Cache.log
.debug("Asking user if the vamsas session should be stored.");
- int reply = JOptionPane
+ int reply = JvOptionPane
.showInternalConfirmDialog(
Desktop.desktop,
"The current VAMSAS session has unsaved data - do you want to save it ?",
"VAMSAS Session Shutdown",
- JOptionPane.YES_NO_OPTION,
- JOptionPane.QUESTION_MESSAGE);
+ JvOptionPane.YES_NO_OPTION,
+ JvOptionPane.QUESTION_MESSAGE);
- if (reply == JOptionPane.YES_OPTION)
+ if (reply == JvOptionPane.YES_OPTION)
{
Cache.log.debug("Prompting for vamsas store filename.");
Desktop.instance.vamsasSave_actionPerformed(null);
{
public void run()
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop, message,
- title, JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop, message,
+ title, JvOptionPane.WARNING_MESSAGE);
}
});
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
-import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
frame.validate();
javax.swing.SwingUtilities.invokeLater(new Runnable()
{
+ @Override
public void run()
{
// jobPanel.setDividerLocation(0.25);
new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
update_actionPerformed(e);
new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
delete_actionPerformed(e);
new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
create_actionPerformed(e);
new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
revert_actionPerformed(e);
MessageManager.getString("label.start_job_current_settings"),
new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
startjob_actionPerformed(e);
MessageManager.getString("label.cancel_job_close_dialog"),
new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
canceljob_actionPerformed(e);
validate();
}
+ @Override
public void argSetModified(Object modifiedElement, boolean b)
{
if (settingDialog)
settingDialog = stn;
}
+ @Override
public void refreshParamLayout()
{
// optsAndparams.setPreferredSize(null);
jf.addWindowListener(new WindowListener()
{
+ @Override
public void windowActivated(WindowEvent e)
{
// TODO Auto-generated method stub
}
+ @Override
public void windowClosed(WindowEvent e)
{
}
+ @Override
public void windowClosing(WindowEvent e)
{
thr.interrupt();
}
+ @Override
public void windowDeactivated(WindowEvent e)
{
// TODO Auto-generated method stub
}
+ @Override
public void windowDeiconified(WindowEvent e)
{
// TODO Auto-generated method stub
}
+ @Override
public void windowIconified(WindowEvent e)
{
// TODO Auto-generated method stub
}
+ @Override
public void windowOpened(WindowEvent e)
{
// TODO Auto-generated method stub
String curSetName = null;
+ @Override
public void itemStateChanged(ItemEvent e)
{
if (e.getSource() == setName && e.getStateChange() == e.SELECTED)
}
javax.swing.SwingUtilities.invokeLater(new Runnable()
{
+ @Override
public void run()
{
doPreferenceComboStateChange(setname);
}
settingDialog = true;
System.out.println("Prompting to save " + lsetname);
- if (javax.swing.JOptionPane
+ if (JvOptionPane
.showConfirmDialog(
this,
"Parameter set '"
+ lsetname
+ "' is modifed, and your changes will be lost.\nReally change preset ?",
"Warning: Unsaved Changes",
- javax.swing.JOptionPane.OK_CANCEL_OPTION) != JOptionPane.OK_OPTION)
+ JvOptionPane.OK_CANCEL_OPTION) != JvOptionPane.OK_OPTION)
{
// revert the combobox to the current item
settingDialog = true;
*/
String lastDescrText = null;
+ @Override
public void actionPerformed(ActionEvent e)
{
if (e.getSource() instanceof Component)
settingDialog = false;
javax.swing.SwingUtilities.invokeLater(new Runnable()
{
+ @Override
public void run()
{
- JOptionPane.showMessageDialog(ourframe, MessageManager
+ JvOptionPane.showMessageDialog(ourframe, MessageManager
.getString("label.invalid_name_preset_exists"),
MessageManager.getString("label.invalid_name"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
});
}
}
+ @Override
public void insertUpdate(DocumentEvent e)
{
checkDescrModified();
}
+ @Override
public void removeUpdate(DocumentEvent e)
{
checkDescrModified();
}
+ @Override
public void changedUpdate(DocumentEvent e)
{
checkDescrModified();
import jalview.bin.Cache;
import jalview.io.JalviewFileChooser;
+import jalview.io.JalviewFileView;
import jalview.util.MessageManager;
import jalview.ws.params.ParamDatastoreI;
import jalview.ws.params.ParamManager;
if (filename == null)
{
JalviewFileChooser chooser = new JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]
- { "wsparams" },
- new String[] { "Web Service Parameter File" },
- "Web Service Parameter File");
- chooser.setFileView(new jalview.io.JalviewFileView());
+ Cache.getProperty("LAST_DIRECTORY"), "wsparams",
+ "Web Service Parameter File", "Web Service Parameter File");
+ chooser.setFileView(new JalviewFileView());
chooser.setDialogTitle(MessageManager
.getString("label.choose_filename_for_param_file"));
chooser.setToolTipText(MessageManager.getString("action.save"));
File pfile = new File(filename);
if (pfile.exists() && pfile.canWrite())
{
- if (JOptionPane.showConfirmDialog(Desktop.instance,
+ if (JvOptionPane.showConfirmDialog(Desktop.instance,
"Delete the preset's file, too ?", "Delete User Preset ?",
- JOptionPane.OK_CANCEL_OPTION) == JOptionPane.OK_OPTION)
+ JvOptionPane.OK_CANCEL_OPTION) == JvOptionPane.OK_OPTION)
{
pfile.delete();
}
pane12.add(urltf, BorderLayout.EAST);
panel.add(pane12, BorderLayout.NORTH);
boolean valid = false;
- int resp = JOptionPane.CANCEL_OPTION;
+ int resp = JvOptionPane.CANCEL_OPTION;
while (!valid
- && (resp = JOptionPane.showInternalConfirmDialog(
+ && (resp = JvOptionPane.showInternalConfirmDialog(
Desktop.desktop, panel, title,
- JOptionPane.OK_CANCEL_OPTION)) == JOptionPane.OK_OPTION)
+ JvOptionPane.OK_CANCEL_OPTION)) == JvOptionPane.OK_OPTION)
{
try
{
} catch (Exception e)
{
valid = false;
- JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
MessageManager.getString("label.invalid_url"));
}
}
- if (valid && resp == JOptionPane.OK_OPTION)
+ if (valid && resp == JvOptionPane.OK_OPTION)
{
- int validate = JOptionPane.showInternalConfirmDialog(Desktop.desktop,
+ int validate = JvOptionPane.showInternalConfirmDialog(Desktop.desktop,
MessageManager.getString("info.validate_jabaws_server"),
MessageManager.getString("label.test_server"),
- JOptionPane.YES_NO_OPTION);
+ JvOptionPane.YES_NO_OPTION);
- if (validate == JOptionPane.OK_OPTION)
+ if (validate == JvOptionPane.OK_OPTION)
{
if (Jws2Discoverer.testServiceUrl(foo))
{
}
else
{
- int opt = JOptionPane
+ int opt = JvOptionPane
.showInternalOptionDialog(
Desktop.desktop,
"The Server '"
+ foo.toString()
+ "' failed validation,\ndo you want to add it anyway? ",
"Server Validation Failed",
- JOptionPane.YES_NO_OPTION,
- JOptionPane.INFORMATION_MESSAGE, null, null, null);
- if (opt == JOptionPane.YES_OPTION)
+ JvOptionPane.YES_NO_OPTION,
+ JvOptionPane.INFORMATION_MESSAGE, null, null, null);
+ if (opt == JvOptionPane.YES_OPTION)
{
return foo.toString();
}
else
{
- JOptionPane
+ JvOptionPane
.showInternalMessageDialog(
Desktop.desktop,
MessageManager
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
+import jalview.datamodel.SequenceI;
+
+import java.io.IOException;
public class AMSAFile extends jalview.io.FastaFile
{
this.al = al;
}
+ public AMSAFile(String inFile, DataSourceType sourceType)
+ throws IOException
+ {
+ super(inFile, sourceType);
+ }
+
+ public AMSAFile(FileParse source) throws IOException
+ {
+ super(source);
+ }
+
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
- public String print()
+ @Override
+ public String print(SequenceI[] sqs, boolean jvsuffix)
{
- super.print(getSeqsAsArray());
+ super.print(sqs, jvsuffix);
AlignmentAnnotation aa;
if (al.getAlignmentAnnotation() != null)
* @author $author$
* @version $Revision$
*/
-public abstract class AlignFile extends FileParse
+public abstract class AlignFile extends FileParse implements AlignmentFileI
{
int noSeqs = 0;
/**
* Properties to be added to generated alignment object
*/
- protected Hashtable properties;
+ private Hashtable properties;
long start;
long end;
- boolean jvSuffix = true;
-
private boolean parseCalled;
/**
initData();
}
+ public AlignFile(SequenceI[] seqs)
+ {
+ this();
+ setSeqs(seqs);
+ }
+
/**
* Constructor which parses the data from a file of some specified type.
*
* @param dataObject
* Filename, URL or Pasted String to read from.
- * @param type
+ * @param sourceType
* What type of file to read from (File, URL, Pasted String)
*/
- public AlignFile(String dataObject, String type) throws IOException
+ public AlignFile(String dataObject, DataSourceType sourceType)
+ throws IOException
{
- this(true, dataObject, type);
+ this(true, dataObject, sourceType);
}
/**
* if false, need to call 'doParse()' to begin parsing data
* @param dataObject
* Filename, URL or Pasted String to read from.
- * @param type
+ * @param sourceType
* What type of file to read from (File, URL)
* @throws IOException
*/
- public AlignFile(boolean parseImmediately, String dataObject, String type)
+ public AlignFile(boolean parseImmediately, String dataObject,
+ DataSourceType sourceType)
throws IOException
{
- super(dataObject, type);
+ super(dataObject, sourceType);
initData();
if (parseImmediately)
{
/**
* Return the Sequences in the seqs Vector as an array of Sequences
*/
+ @Override
public SequenceI[] getSeqsAsArray()
{
SequenceI[] s = new SequenceI[seqs.size()];
*
* @param al
*/
+ @Override
public void addAnnotations(AlignmentI al)
{
addProperties(al);
* @param s
* DOCUMENT ME!
*/
- protected void setSeqs(SequenceI[] s)
+ @Override
+ public void setSeqs(SequenceI[] s)
{
seqs = new Vector<SequenceI>();
public abstract void parse() throws IOException;
/**
- * Print out in alignment file format the Sequences in the seqs Vector.
- */
- public abstract String print();
-
- public void addJVSuffix(boolean b)
- {
- jvSuffix = b;
- }
-
- /**
* A general parser for ids.
*
* @String id Id to be parsed
}
/**
- * Creates the output id. Adds prefix Uniprot format source|id And suffix
- * Jalview /start-end
+ * Creates the output id. Adds prefix Uniprot format source|id and optionally
+ * suffix Jalview /start-end
+ *
+ * @param jvsuffix
*
* @String id Id to be parsed
*/
+ String printId(SequenceI seq, boolean jvsuffix)
+ {
+ return seq.getDisplayId(jvsuffix);
+ }
+
String printId(SequenceI seq)
{
- return seq.getDisplayId(jvSuffix);
+ return printId(seq, true);
}
/**
return newickStrings == null ? 0 : newickStrings.size();
}
+ @Override
public void addGroups(AlignmentI al)
{
--- /dev/null
+package jalview.io;
+
+import jalview.api.AlignExportSettingI;
+import jalview.api.AlignmentViewPanel;
+import jalview.api.FeatureSettingsModelI;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.SequenceI;
+
+public interface AlignmentFileI
+{
+
+ SequenceI[] getSeqsAsArray();
+
+ void addAnnotations(AlignmentI al);
+
+ void addGroups(AlignmentI al);
+
+ void setNewlineString(String newline);
+
+ void setExportSettings(AlignExportSettingI exportSettings);
+
+ void configureForView(AlignmentViewPanel viewpanel);
+
+ void setSeqs(SequenceI[] sequencesArray);
+
+ String print(SequenceI[] seqs, boolean jvsuffix);
+
+ boolean hasWarningMessage();
+
+ String getWarningMessage();
+
+ String getInFile();
+
+ DataSourceType getDataSourceType();
+
+ FeatureSettingsModelI getFeatureColourScheme();
+
+}
String refSeqId = null;
public boolean annotateAlignmentView(AlignViewportI viewport,
- String file, String protocol)
+ String file, DataSourceType protocol)
{
ColumnSelection colSel = viewport.getColumnSelection();
if (colSel == null)
}
public boolean readAnnotationFile(AlignmentI al, String file,
- String protocol)
+ DataSourceType sourceType)
{
- return readAnnotationFile(al, null, file, protocol);
+ return readAnnotationFile(al, null, file, sourceType);
}
public boolean readAnnotationFile(AlignmentI al, ColumnSelection colSel,
- String file, String protocol)
+ String file, DataSourceType sourceType)
{
BufferedReader in = null;
try
{
- if (protocol.equals(AppletFormatAdapter.FILE))
+ if (sourceType == DataSourceType.FILE)
{
in = new BufferedReader(new FileReader(file));
}
- else if (protocol.equals(AppletFormatAdapter.URL))
+ else if (sourceType == DataSourceType.URL)
{
URL url = new URL(file);
in = new BufferedReader(new InputStreamReader(url.openStream()));
}
- else if (protocol.equals(AppletFormatAdapter.PASTE))
+ else if (sourceType == DataSourceType.PASTE)
{
in = new BufferedReader(new StringReader(file));
}
- else if (protocol.equals(AppletFormatAdapter.CLASSLOADER))
+ else if (sourceType == DataSourceType.CLASSLOADER)
{
java.io.InputStream is = getClass().getResourceAsStream("/" + file);
if (is != null)
import jalview.datamodel.AlignmentI;
import jalview.datamodel.AlignmentView;
import jalview.datamodel.PDBEntry.Type;
+import jalview.datamodel.SequenceI;
import jalview.ext.jmol.JmolParser;
import jalview.structure.StructureImportSettings;
-import jalview.util.MessageManager;
import java.io.File;
import java.io.IOException;
{
private AlignmentViewPanel viewpanel;
- public static String FILE = "File";
-
- public static String URL = "URL";
-
- public static String PASTE = "Paste";
-
- public static String CLASSLOADER = "ClassLoader";
-
/**
* add jalview-derived non-secondary structure annotation from PDB structure
*/
*/
boolean serviceSecondaryStruct = false;
- private AlignFile alignFile = null;
+ private AlignmentFileI alignFile = null;
String inFile;
private AlignExportSettingI exportSettings;
- /**
- * List of valid format strings used in the isValidFormat method
- */
- public static final String[] READABLE_FORMATS = new String[] { "BLC",
- "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "STH", "PDB",
- "JnetFile", "RNAML", PhylipFile.FILE_DESC, JSONFile.FILE_DESC,
- IdentifyFile.FeaturesFile, "HTML", "mmCIF" };
-
- /**
- * List of readable format file extensions by application in order
- * corresponding to READABLE_FNAMES
- */
- public static final String[] READABLE_EXTENSIONS = new String[] {
- "fa, fasta, mfa, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa",
- "sto,stk", "xml,rnaml", PhylipFile.FILE_EXT, JSONFile.FILE_EXT,
- ".gff2,gff3", "jar,jvp", HtmlFile.FILE_EXT, "cif" };
-
- /**
- * List of readable formats by application in order corresponding to
- * READABLE_EXTENSIONS
- */
- public static final String[] READABLE_FNAMES = new String[] { "Fasta",
- "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "Stockholm", "RNAML",
- PhylipFile.FILE_DESC, JSONFile.FILE_DESC, IdentifyFile.FeaturesFile,
- "Jalview", HtmlFile.FILE_DESC, "mmCIF" };
-
- /**
- * List of valid format strings for use by callers of the formatSequences
- * method
- */
- public static final String[] WRITEABLE_FORMATS = new String[] { "BLC",
- "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "AMSA", "STH",
- PhylipFile.FILE_DESC, JSONFile.FILE_DESC };
-
- /**
- * List of extensions corresponding to file format types in WRITABLE_FNAMES
- * that are writable by the application.
- */
- public static final String[] WRITABLE_EXTENSIONS = new String[] {
- "fa, fasta, mfa, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa",
- "sto,stk", PhylipFile.FILE_EXT, JSONFile.FILE_EXT, "jvp" };
-
- /**
- * List of writable formats by the application. Order must correspond with the
- * WRITABLE_EXTENSIONS list of formats.
- */
- public static final String[] WRITABLE_FNAMES = new String[] { "Fasta",
- "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "STH",
- PhylipFile.FILE_DESC, JSONFile.FILE_DESC, "Jalview" };
-
public static String INVALID_CHARACTERS = "Contains invalid characters";
- // TODO: make these messages dynamic
public static String SUPPORTED_FORMATS = "Formats currently supported are\n"
- + prettyPrint(READABLE_FORMATS);
+ + prettyPrint(FileFormat.getReadableFormats());
public AppletFormatAdapter()
{
}
/**
- *
- * @param els
- * @return grammatically correct(ish) list consisting of els elements.
+ * Formats a grammatically correct(ish) list consisting of the given objects
+ *
+ * @param things
+ * @return
*/
- public static String prettyPrint(String[] els)
+ public static String prettyPrint(List<? extends Object> things)
{
StringBuffer list = new StringBuffer();
- for (int i = 0, iSize = els.length - 1; i < iSize; i++)
+ for (int i = 0, iSize = things.size() - 1; i < iSize; i++)
{
- list.append(els[i]);
+ list.append(things.get(i).toString());
list.append(", ");
}
- list.append(" and " + els[els.length - 1] + ".");
+ // could i18n 'and' here
+ list.append(" and " + things.get(things.size() - 1).toString() + ".");
return list.toString();
}
}
/**
- * check that this format is valid for reading
- *
- * @param format
- * a format string to be compared with READABLE_FORMATS
- * @return true if format is readable
- */
- public static final boolean isValidFormat(String format)
- {
- return isValidFormat(format, false);
- }
-
- /**
- * validate format is valid for IO
- *
- * @param format
- * a format string to be compared with either READABLE_FORMATS or
- * WRITEABLE_FORMATS
- * @param forwriting
- * when true, format is checked for containment in WRITEABLE_FORMATS
- * @return true if format is valid
- */
- public static final boolean isValidFormat(String format,
- boolean forwriting)
- {
- if (format == null)
- {
- return false;
- }
- boolean valid = false;
- String[] format_list = (forwriting) ? WRITEABLE_FORMATS
- : READABLE_FORMATS;
- for (String element : format_list)
- {
- if (element.equalsIgnoreCase(format))
- {
- return true;
- }
- }
-
- return valid;
- }
-
- /**
* Constructs the correct filetype parser for a characterised datasource
*
* @param inFile
* data/data location
- * @param type
+ * @param sourceType
* type of datasource
- * @param format
- * File format of data provided by datasource
+ * @param fileFormat
*
- * @return DOCUMENT ME!
+ * @return
*/
- public AlignmentI readFile(String inFile, String type, String format)
- throws java.io.IOException
+ public AlignmentI readFile(String file, DataSourceType sourceType,
+ FileFormatI fileFormat) throws IOException
{
- // TODO: generalise mapping between format string and io. class instances
- // using Constructor.invoke reflection
- this.inFile = inFile;
+ this.inFile = file;
try
{
- if (format.equals("FASTA"))
- {
- alignFile = new FastaFile(inFile, type);
- }
- else if (format.equals("MSF"))
- {
- alignFile = new MSFfile(inFile, type);
- }
- else if (format.equals("PileUp"))
- {
- alignFile = new PileUpfile(inFile, type);
- }
- else if (format.equals("CLUSTAL"))
- {
- alignFile = new ClustalFile(inFile, type);
- }
- else if (format.equals("BLC"))
- {
- alignFile = new BLCFile(inFile, type);
- }
- else if (format.equals("PIR"))
- {
- alignFile = new PIRFile(inFile, type);
- }
- else if (format.equals("PFAM"))
+ if (fileFormat.isStructureFile())
{
- alignFile = new PfamFile(inFile, type);
- }
- else if (format.equals("JnetFile"))
- {
- alignFile = new JPredFile(inFile, type);
- ((JPredFile) alignFile).removeNonSequences();
- }
- else if (format.equals("PDB"))
- {
- // TODO obtain config value from preference settings.
- // Set value to 'true' to test PDB processing with Jmol: JAL-1213
- boolean isParseWithJMOL = StructureImportSettings
- .getDefaultPDBFileParser().equalsIgnoreCase(
+ String structureParser = StructureImportSettings
+ .getDefaultPDBFileParser();
+ boolean isParseWithJMOL = structureParser.equalsIgnoreCase(
StructureImportSettings.StructureParser.JMOL_PARSER
.toString());
+ StructureImportSettings.addSettings(annotFromStructure,
+ localSecondaryStruct, serviceSecondaryStruct);
if (isParseWithJMOL)
{
- StructureImportSettings.addSettings(annotFromStructure,
- localSecondaryStruct, serviceSecondaryStruct);
- alignFile = new jalview.ext.jmol.JmolParser(inFile, type);
+ alignFile = new JmolParser(inFile, sourceType);
}
else
{
- StructureImportSettings.addSettings(annotFromStructure,
- localSecondaryStruct, serviceSecondaryStruct);
+ // todo is MCview parsing obsolete yet?
StructureImportSettings.setShowSeqFeatures(true);
alignFile = new MCview.PDBfile(annotFromStructure,
localSecondaryStruct, serviceSecondaryStruct, inFile,
- type);
+ sourceType);
}
- ((StructureFile) alignFile).setDbRefType(format);
- }
- else if (format.equalsIgnoreCase("mmCIF"))
- {
- StructureImportSettings.addSettings(annotFromStructure,
- localSecondaryStruct, serviceSecondaryStruct);
- alignFile = new jalview.ext.jmol.JmolParser(inFile, type);
- ((StructureFile) alignFile).setDbRefType(format);
- }
- else if (format.equals("STH"))
- {
- alignFile = new StockholmFile(inFile, type);
- }
- else if (format.equals("SimpleBLAST"))
- {
- alignFile = new SimpleBlastFile(inFile, type);
- }
- else if (format.equals(PhylipFile.FILE_DESC))
- {
- alignFile = new PhylipFile(inFile, type);
- }
- else if (format.equals(JSONFile.FILE_DESC))
- {
- alignFile = new JSONFile(inFile, type);
- }
- else if (format.equals(HtmlFile.FILE_DESC))
- {
- alignFile = new HtmlFile(inFile, type);
+ ((StructureFile) alignFile).setDbRefType(FileFormat.PDB
+ .equals(fileFormat) ? Type.PDB : Type.MMCIF);
}
- else if (format.equals("RNAML"))
- {
- alignFile = new RnamlFile(inFile, type);
- }
- else if (format.equals(IdentifyFile.FeaturesFile))
+ else
{
- alignFile = new FeaturesFile(true, inFile, type);
+ alignFile = fileFormat.getAlignmentFile(inFile, sourceType);
}
- return buildAlignmentFrom(alignFile);
+ return buildAlignmentFromFile();
} catch (Exception e)
{
e.printStackTrace();
- System.err.println("Failed to read alignment using the '" + format
- + "' reader.\n" + e);
+ System.err.println("Failed to read alignment using the '"
+ + fileFormat + "' reader.\n" + e);
if (e.getMessage() != null
&& e.getMessage().startsWith(INVALID_CHARACTERS))
{
- throw new java.io.IOException(e.getMessage());
+ throw new IOException(e.getMessage());
}
// Finally test if the user has pasted just the sequence, no id
- if (type.equalsIgnoreCase("Paste"))
+ if (sourceType == DataSourceType.PASTE)
{
try
{
// Possible sequence is just residues with no label
- alignFile = new FastaFile(">UNKNOWN\n" + inFile, "Paste");
- return buildAlignmentFrom(alignFile);
+ alignFile = new FastaFile(">UNKNOWN\n" + inFile,
+ DataSourceType.PASTE);
+ return buildAlignmentFromFile();
} catch (Exception ex)
{
if (ex.toString().startsWith(INVALID_CHARACTERS))
{
- throw new java.io.IOException(e.getMessage());
+ throw new IOException(e.getMessage());
}
ex.printStackTrace();
}
}
- if (format.equalsIgnoreCase("HTML"))
+ if (FileFormat.Html.equals(fileFormat))
{
throw new IOException(e.getMessage());
}
- // If we get to this stage, the format was not supported
- throw new java.io.IOException(SUPPORTED_FORMATS);
}
+ throw new FileFormatException(SUPPORTED_FORMATS);
}
/**
* @param format
* File format of data that will be provided by datasource
*
- * @return DOCUMENT ME!
+ * @return
*/
- public AlignmentI readFromFile(FileParse source, String format)
- throws java.io.IOException
+ public AlignmentI readFromFile(FileParse source, FileFormatI format)
+ throws IOException
{
- // TODO: generalise mapping between format string and io. class instances
- // using Constructor.invoke reflection
- // This is exactly the same as the readFile method except we substitute
- // 'inFile, type' with 'source'
this.inFile = source.getInFile();
- String type = source.type;
+ DataSourceType type = source.dataSourceType;
try
{
- if (format.equals("FASTA"))
- {
- alignFile = new FastaFile(source);
- }
- else if (format.equals("MSF"))
- {
- alignFile = new MSFfile(source);
- }
- else if (format.equals("PileUp"))
- {
- alignFile = new PileUpfile(source);
- }
- else if (format.equals("CLUSTAL"))
- {
- alignFile = new ClustalFile(source);
- }
- else if (format.equals("BLC"))
- {
- alignFile = new BLCFile(source);
- }
- else if (format.equals("PIR"))
- {
- alignFile = new PIRFile(source);
- }
- else if (format.equals("PFAM"))
- {
- alignFile = new PfamFile(source);
- }
- else if (format.equals("JnetFile"))
- {
- alignFile = new JPredFile(source);
- ((JPredFile) alignFile).removeNonSequences();
- }
- else if (format.equals("PDB"))
+ if (FileFormat.PDB.equals(format) || FileFormat.MMCif.equals(format))
{
// TODO obtain config value from preference settings
boolean isParseWithJMOL = false;
}
((StructureFile) alignFile).setDbRefType(Type.PDB);
}
- else if (format.equalsIgnoreCase("mmCIF"))
- {
- StructureImportSettings.addSettings(annotFromStructure,
- localSecondaryStruct, serviceSecondaryStruct);
- alignFile = new JmolParser(source);
- ((StructureFile) alignFile).setDbRefType(Type.MMCIF);
- }
- else if (format.equals("STH"))
- {
- alignFile = new StockholmFile(source);
- }
- else if (format.equals("RNAML"))
- {
- alignFile = new RnamlFile(source);
- }
- else if (format.equals("SimpleBLAST"))
- {
- alignFile = new SimpleBlastFile(source);
- }
- else if (format.equals(PhylipFile.FILE_DESC))
- {
- alignFile = new PhylipFile(source);
- }
- else if (format.equals(IdentifyFile.FeaturesFile))
- {
- alignFile = new FeaturesFile(inFile, type);
- }
- else if (format.equals(JSONFile.FILE_DESC))
- {
- alignFile = new JSONFile(source);
- }
- else if (format.equals(HtmlFile.FILE_DESC))
+ else
{
- alignFile = new HtmlFile(source);
+ alignFile = format.getAlignmentFile(source);
}
- return buildAlignmentFrom(alignFile);
+ return buildAlignmentFromFile();
} catch (Exception e)
{
if (e.getMessage() != null
&& e.getMessage().startsWith(INVALID_CHARACTERS))
{
- throw new java.io.IOException(e.getMessage());
+ throw new FileFormatException(e.getMessage());
}
// Finally test if the user has pasted just the sequence, no id
- if (type.equalsIgnoreCase("Paste"))
+ if (type == DataSourceType.PASTE)
{
try
{
// Possible sequence is just residues with no label
- alignFile = new FastaFile(">UNKNOWN\n" + inFile, "Paste");
- return buildAlignmentFrom(alignFile);
+ alignFile = new FastaFile(">UNKNOWN\n" + inFile,
+ DataSourceType.PASTE);
+ return buildAlignmentFromFile();
} catch (Exception ex)
{
if (ex.toString().startsWith(INVALID_CHARACTERS))
{
- throw new java.io.IOException(e.getMessage());
+ throw new IOException(e.getMessage());
}
ex.printStackTrace();
}
// If we get to this stage, the format was not supported
- throw new java.io.IOException(SUPPORTED_FORMATS);
+ throw new FileFormatException(SUPPORTED_FORMATS);
}
}
* boilerplate method to handle data from an AlignFile and construct a new
* alignment or import to an existing alignment
*
- * @param alignFile2
* @return AlignmentI instance ready to pass to a UI constructor
*/
- private AlignmentI buildAlignmentFrom(AlignFile alignFile2)
+ private AlignmentI buildAlignmentFromFile()
{
// Standard boilerplate for creating alignment from parser
// alignFile.configureForView(viewpanel);
* @param selectedOnly
* @return flatfile in a string
*/
- public String formatSequences(String format, boolean jvsuffix,
+ public String formatSequences(FileFormatI format, boolean jvsuffix,
AlignmentViewPanel ap, boolean selectedOnly)
{
*
* @return alignment flat file contents
*/
- public String formatSequences(String format, AlignmentI alignment,
+ public String formatSequences(FileFormatI format, AlignmentI alignment,
boolean jvsuffix)
{
try
{
- AlignFile afile = null;
- if (format.equalsIgnoreCase("FASTA"))
- {
- afile = new FastaFile();
- }
- else if (format.equalsIgnoreCase("MSF"))
- {
- afile = new MSFfile();
- }
- else if (format.equalsIgnoreCase("PileUp"))
- {
- afile = new PileUpfile();
- }
- else if (format.equalsIgnoreCase("CLUSTAL"))
- {
- afile = new ClustalFile();
- }
- else if (format.equalsIgnoreCase("BLC"))
- {
- afile = new BLCFile();
- }
- else if (format.equalsIgnoreCase("PIR"))
- {
- afile = new PIRFile();
- }
- else if (format.equalsIgnoreCase("PFAM"))
- {
- afile = new PfamFile();
- }
- else if (format.equalsIgnoreCase("STH"))
- {
- afile = new StockholmFile(alignment);
- }
- else if (format.equalsIgnoreCase("AMSA"))
- {
- afile = new AMSAFile(alignment);
- }
- else if (format.equalsIgnoreCase(PhylipFile.FILE_DESC))
- {
- afile = new PhylipFile();
- }
- else if (format.equalsIgnoreCase(JSONFile.FILE_DESC))
- {
- afile = new JSONFile();
- }
- else if (format.equalsIgnoreCase("RNAML"))
- {
- afile = new RnamlFile();
- }
-
- else
- {
- throw new Exception(
- MessageManager
- .getString("error.implementation_error_unknown_file_format_string"));
- }
+ AlignmentFileI afile = format.getAlignmentFile(alignment);
afile.setNewlineString(newline);
- afile.addJVSuffix(jvsuffix);
afile.setExportSettings(exportSettings);
afile.configureForView(viewpanel);
// check whether we were given a specific alignment to export, rather than
// the one in the viewpanel
+ SequenceI[] seqs = null;
if (viewpanel == null || viewpanel.getAlignment() == null
|| viewpanel.getAlignment() != alignment)
{
- afile.setSeqs(alignment.getSequencesArray());
+ seqs = alignment.getSequencesArray();
}
else
{
- afile.setSeqs(viewpanel.getAlignment().getSequencesArray());
+ seqs = viewpanel.getAlignment().getSequencesArray();
}
- String afileresp = afile.print();
+ String afileresp = afile.print(seqs, jvsuffix);
if (afile.hasWarningMessage())
{
System.err.println("Warning raised when writing as " + format
return null;
}
- public static String checkProtocol(String file)
+ public static DataSourceType checkProtocol(String file)
{
- String protocol = FILE;
+ DataSourceType protocol = DataSourceType.FILE;
String ft = file.toLowerCase().trim();
if (ft.indexOf("http:") == 0 || ft.indexOf("https:") == 0
|| ft.indexOf("file:") == 0)
{
- protocol = URL;
+ protocol = DataSourceType.URL;
}
return protocol;
}
System.gc();
long memf = -r.totalMemory() + r.freeMemory();
long t1 = -System.currentTimeMillis();
- AlignmentI al = afa.readFile(args[i], FILE,
- new IdentifyFile().identify(args[i], FILE));
+ AlignmentI al = afa
+ .readFile(args[i], DataSourceType.FILE,
+ new IdentifyFile().identify(args[i],
+ DataSourceType.FILE));
t1 += System.currentTimeMillis();
System.gc();
memf += r.totalMemory() - r.freeMemory();
try
{
System.out.println(new AppletFormatAdapter().formatSequences(
- "FASTA", al, true));
+ FileFormat.Fasta, al, true));
} catch (Exception e)
{
System.err
* @param format
* @return protocol that yields the data parsable as the given type
*/
- public static String resolveProtocol(String file, String format)
+ public static DataSourceType resolveProtocol(String file,
+ FileFormatI format)
{
return resolveProtocol(file, format, false);
}
- public static String resolveProtocol(String file, String format,
- boolean debug)
+ public static DataSourceType resolveProtocol(String file,
+ FileFormatI format, boolean debug)
{
// TODO: test thoroughly!
- String protocol = null;
+ DataSourceType protocol = null;
if (debug)
{
System.out.println("resolving datasource started with:\n>>file\n"
System.err.println("Resource '" + file + "' was "
+ (rtn ? "" : "not") + " located by classloader.");
}
- ;
if (rtn)
{
- protocol = AppletFormatAdapter.CLASSLOADER;
+ protocol = DataSourceType.CLASSLOADER;
}
} catch (Exception ex)
if (file.indexOf("://") > -1)
{
- protocol = AppletFormatAdapter.URL;
+ protocol = DataSourceType.URL;
}
else
{
// skipping codebase prepend check.
- protocol = AppletFormatAdapter.FILE;
+ protocol = DataSourceType.FILE;
}
FileParse fp = null;
try
{
System.out.println("Accessing as paste.");
}
- protocol = AppletFormatAdapter.PASTE;
+ protocol = DataSourceType.PASTE;
fp = null;
try
{
{
return null;
}
- if (format == null || format.length() == 0)
+ if (format == null)
{
return protocol;
}
{
try
{
- String idformat = new jalview.io.IdentifyFile().identify(file,
- protocol);
+ FileFormatI idformat = new IdentifyFile().identify(file, protocol);
if (idformat == null)
{
if (debug)
System.err.println("File deemed not accessible via " + protocol);
e.printStackTrace();
}
- ;
-
}
}
return null;
}
- public AlignFile getAlignFile()
+ public AlignmentFileI getAlignFile()
{
return alignFile;
}
-
- public void setAlignFile(AlignFile alignFile)
- {
- this.alignFile = alignFile;
- }
}
*
* @param inFile
* DOCUMENT ME!
- * @param type
+ * @param sourceType
* DOCUMENT ME!
*
* @throws IOException
* DOCUMENT ME!
*/
- public BLCFile(String inFile, String type) throws IOException
+ public BLCFile(String inFile, DataSourceType sourceType)
+ throws IOException
{
- super(inFile, type);
+ super(inFile, sourceType);
}
public BLCFile(FileParse source) throws IOException
/**
* DOCUMENT ME!
*/
+ @Override
public void initData()
{
super.initData();
/**
* DOCUMENT ME!
*/
+ @Override
public void parse() throws IOException
{
StringBuffer headerLines = new StringBuffer();
/**
* DOCUMENT ME!
*
- * @return DOCUMENT ME!
- */
- public String print()
- {
- return print(getSeqsAsArray());
- }
-
- /**
- * DOCUMENT ME!
- *
* @param s
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
- public String print(SequenceI[] s)
+ @Override
+ public String print(SequenceI[] s, boolean jvsuffix)
{
StringBuffer out = new StringBuffer();
/**
while ((i < s.length) && (s[i] != null))
{
- out.append(">" + printId(s[i]));
+ out.append(">" + printId(s[i], jvsuffix));
if (s[i].getDescription() != null)
{
out.append(" " + s[i].getDescription());
{
}
- public ClustalFile(String inFile, String type) throws IOException
+ public ClustalFile(String inFile, DataSourceType sourceType)
+ throws IOException
{
- super(inFile, type);
+ super(inFile, sourceType);
}
public ClustalFile(FileParse source) throws IOException
}
@Override
- public String print()
- {
- return print(getSeqsAsArray());
- // TODO: locaRNA style aln output
- }
-
- public String print(SequenceI[] s)
+ public String print(SequenceI[] s, boolean jvsuffix)
{
StringBuffer out = new StringBuffer("CLUSTAL" + newline + newline);
while ((i < s.length) && (s[i] != null))
{
- String tmp = printId(s[i]);
+ String tmp = printId(s[i], jvsuffix);
if (s[i].getSequence().length > max)
{
while ((j < s.length) && (s[j] != null))
{
- out.append(new Format("%-" + maxid + "s").form(printId(s[j]) + " "));
+ out.append(new Format("%-" + maxid + "s").form(printId(s[j],
+ jvsuffix) + " "));
int start = i * len;
int end = start + len;
*/
package jalview.io;
+import jalview.datamodel.SequenceI;
+
import java.io.IOException;
/**
public class DBRefFile extends AlignFile
{
+ @Override
public void parse() throws IOException
{
// TODO Auto-generated method stub
}
- public String print()
+ @Override
+ public String print(SequenceI[] sqs, boolean jvsuffix)
{
// TODO Auto-generated method stub
return null;
--- /dev/null
+package jalview.io;
+
+public enum DataSourceType
+{
+ FILE, URL, PASTE, CLASSLOADER;
+}
*
* @param inFile
* DOCUMENT ME!
- * @param type
+ * @param sourceType
* DOCUMENT ME!
*
* @throws IOException
* DOCUMENT ME!
*/
- public FastaFile(String inFile, String type) throws IOException
+ public FastaFile(String inFile, DataSourceType sourceType)
+ throws IOException
{
- super(inFile, type);
+ super(inFile, sourceType);
}
public FastaFile(FileParse source) throws IOException
super(source);
}
+ public FastaFile(SequenceI[] seqs)
+ {
+ super(seqs);
+ }
+
/**
* DOCUMENT ME!
*
}
}
- /**
- * DOCUMENT ME!
- *
- * @param s
- * DOCUMENT ME!
- * @param len
- * DOCUMENT ME!
- * @param gaps
- * DOCUMENT ME!
- * @param displayId
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- public String print(SequenceI[] s)
+ @Override
+ public String print(SequenceI[] s, boolean jvsuffix)
{
out = new StringBuffer();
int i = 0;
while ((i < s.length) && (s[i] != null))
{
- out.append(">" + printId(s[i]));
+ out.append(">" + printId(s[i], jvsuffix));
if (s[i].getDescription() != null)
{
out.append(" " + s[i].getDescription());
return out.toString();
}
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- @Override
- public String print()
- {
- return print(getSeqsAsArray());
- }
}
* Constructor which does not parse the file immediately
*
* @param inFile
- * @param type
+ * @param paste
* @throws IOException
*/
- public FeaturesFile(String inFile, String type) throws IOException
+ public FeaturesFile(String inFile, DataSourceType paste)
+ throws IOException
{
- super(false, inFile, type);
+ super(false, inFile, paste);
}
/**
* @param type
* @throws IOException
*/
- public FeaturesFile(boolean parseImmediately, String inFile, String type)
+ public FeaturesFile(boolean parseImmediately, String inFile,
+ DataSourceType type)
throws IOException
{
super(parseImmediately, inFile, type);
dataset = new Alignment(new SequenceI[] {});
}
- boolean parseResult = parse(dataset, null, false, true);
+ Map<String, FeatureColourI> featureColours = new HashMap<String, FeatureColourI>();
+ boolean parseResult = parse(dataset, featureColours, false, true);
if (!parseResult)
{
// pass error up somehow
* @return error message
*/
@Override
- public String print()
+ public String print(SequenceI[] sqs, boolean jvsuffix)
{
- return "Use printGffFormat() or printJalviewFormat()";
+ System.out.println("Use printGffFormat() or printJalviewFormat()");
+ return null;
}
/**
--- /dev/null
+package jalview.io;
+
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.PDBEntry;
+import jalview.ext.jmol.JmolParser;
+import jalview.structure.StructureImportSettings;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public enum FileFormat implements FileFormatI
+{
+ Fasta("Fasta", "fa, fasta, mfa, fastq", true, true)
+ {
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ return new FastaFile(inFile, sourceType);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ return new FastaFile(source);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return new FastaFile();
+ }
+ },
+ Pfam("PFAM", "pfam", true, true)
+ {
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ return new PfamFile(inFile, sourceType);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ return new PfamFile(source);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return new PfamFile();
+ }
+ },
+ Stockholm("Stockholm", "sto,stk", true, true)
+ {
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ return new StockholmFile(inFile, sourceType);
+ }
+ @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ return new StockholmFile(source);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return new StockholmFile(al);
+ }
+
+ },
+
+ PIR("PIR", "pir", true, true)
+ {
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ return new PIRFile(inFile, sourceType);
+ }
+ @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ return new PIRFile(source);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return new PIRFile();
+ }
+ },
+ BLC("BLC", "BLC", true, true)
+ {
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ return new BLCFile(inFile, sourceType);
+ } @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ return new BLCFile(source);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return new BLCFile();
+ }
+ },
+ AMSA("AMSA", "amsa", true, true)
+ {
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ return new AMSAFile(inFile, sourceType);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ return new AMSAFile(source);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return new AMSAFile(al);
+ }
+ },
+ Html("HTML", "html", true, false)
+ {
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ return new HtmlFile(inFile, sourceType);
+ } @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ return new HtmlFile(source);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return new HtmlFile();
+ }
+
+ @Override
+ public boolean isComplexAlignFile()
+ {
+ return true;
+ }
+
+ },
+ Rnaml("RNAML", "xml,rnaml", true, false)
+ {
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ return new RnamlFile(inFile, sourceType);
+ } @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ return new RnamlFile(source);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return new RnamlFile();
+ }
+
+ },
+ Json("JSON","json", true, true)
+ {
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ return new JSONFile(inFile, sourceType);
+ } @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ return new JSONFile(source);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return new JSONFile();
+ }
+
+ @Override
+ public boolean isComplexAlignFile()
+ {
+ return true;
+ }
+
+ },
+ Pileup("PileUp", "pileup", true, true)
+ {
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ return new PileUpfile(inFile, sourceType);
+ } @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ return new PileUpfile(source);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return new PileUpfile();
+ }
+
+ },
+ MSF("MSF", "msf", true, true)
+ {
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ return new MSFfile(inFile, sourceType);
+ } @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ return new MSFfile(source);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return new MSFfile();
+ }
+
+ },
+ Clustal("Clustal", "aln", true, true)
+ {
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ return new ClustalFile(inFile, sourceType);
+ } @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ return new ClustalFile(source);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return new ClustalFile();
+ }
+ },
+ Phylip("PHYLIP", "phy", true, true)
+ {
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ return new PhylipFile(inFile, sourceType);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ return new PhylipFile(source);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return new PhylipFile();
+ }
+ },
+ Jnet("JnetFile", "", false, false)
+ {
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ JPredFile af = new JPredFile(inFile, sourceType);
+ af.removeNonSequences();
+ return af;
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ JPredFile af = new JPredFile(source);
+ af.removeNonSequences();
+ return af;
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return null; // todo is this called?
+ }
+
+ },
+ Features("GFF or Jalview features", "gff2,gff3", true, false)
+ {
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ return new FeaturesFile(true, inFile, sourceType);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ return new FeaturesFile(source);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return new FeaturesFile();
+ }
+ },
+ PDB("PDB", "pdb,ent", true, false)
+ {
+
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ // TODO obtain config value from preference settings.
+ // Set value to 'true' to test PDB processing with Jmol: JAL-1213
+ boolean isParseWithJMOL = StructureImportSettings
+ .getDefaultStructureFileFormat() != PDBEntry.Type.PDB;
+ if (isParseWithJMOL)
+ {
+ return new JmolParser(inFile, sourceType);
+ }
+ else
+ {
+ StructureImportSettings.setShowSeqFeatures(true);
+ return new MCview.PDBfile(
+ StructureImportSettings.isVisibleChainAnnotation(),
+ StructureImportSettings.isProcessSecondaryStructure(),
+ StructureImportSettings.isExternalSecondaryStructure(),
+ inFile,
+ sourceType);
+ }
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ boolean isParseWithJMOL = StructureImportSettings
+ .getDefaultStructureFileFormat() != PDBEntry.Type.PDB;
+ if (isParseWithJMOL)
+ {
+ return new JmolParser(source);
+ }
+ else
+ {
+ StructureImportSettings.setShowSeqFeatures(true);
+ return new MCview.PDBfile(
+ StructureImportSettings.isVisibleChainAnnotation(),
+ StructureImportSettings.isProcessSecondaryStructure(),
+ StructureImportSettings.isExternalSecondaryStructure(),
+ source);
+ }
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return new JmolParser(); // todo or null?
+ }
+
+ @Override
+ public boolean isStructureFile()
+ {
+ return true;
+ }
+ },
+ MMCif("mmCIF", "cif", true, false)
+ {
+
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ return new JmolParser(inFile, sourceType);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ return new JmolParser(source);
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return new JmolParser(); // todo or null?
+ }
+
+ @Override
+ public boolean isStructureFile()
+ {
+ return true;
+ }
+ },
+ Jalview("Jalview", "jar,jvp", true, true)
+ {
+
+ @Override
+ public AlignmentFileI getAlignmentFile(String inFile,
+ DataSourceType sourceType) throws IOException
+ {
+ return null;
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(FileParse source)
+ throws IOException
+ {
+ return null;
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile(AlignmentI al)
+ {
+ return null;
+ }
+
+ @Override
+ public boolean isTextFormat()
+ {
+ return false;
+ }
+ };
+
+ /**
+ * A lookup map of enums by upper-cased name
+ */
+ private static Map<String, FileFormat> names;
+ static
+ {
+ names = new HashMap<String, FileFormat>();
+ for (FileFormat format : FileFormat.values())
+ {
+ names.put(format.toString().toUpperCase(), format);
+ }
+ }
+
+ private boolean writable;
+
+ private boolean readable;
+
+ private String extensions;
+
+ private String name;
+
+ /**
+ * Answers a list of writeable file formats (as string, corresponding to the
+ * toString() and forName() methods)
+ *
+ * @return
+ */
+ public static List<String> getWritableFormats(boolean textOnly)
+ {
+ List<String> l = new ArrayList<String>();
+ for (FileFormatI ff : values())
+ {
+ if (ff.isWritable() && (!textOnly || ff.isTextFormat()))
+ {
+ l.add(ff.toString());
+ }
+ }
+ return l;
+ }
+
+ /**
+ * Answers a list of readable file formats (as string, corresponding to the
+ * toString() and forName() methods)
+ *
+ * @return
+ */
+ public static List<String> getReadableFormats()
+ {
+ List<String> l = new ArrayList<String>();
+ for (FileFormatI ff : values())
+ {
+ if (ff.isReadable())
+ {
+ l.add(ff.toString());
+ }
+ }
+ return l;
+ }
+
+ @Override
+ public boolean isComplexAlignFile()
+ {
+ return false;
+ }
+
+ /**
+ * Returns the file format with the given name, or null if format is null or
+ * invalid. Unlike valueOf(), this is not case-sensitive, to be kind to
+ * writers of javascript.
+ *
+ * @param format
+ * @return
+ */
+ public static FileFormatI forName(String format)
+ {
+ // or could store format.getShortDescription().toUpperCase()
+ // in order to decouple 'given name' from enum name
+ return format == null ? null : names.get(format.toUpperCase());
+ }
+
+ @Override
+ public boolean isReadable()
+ {
+ return readable;
+ }
+
+ @Override
+ public boolean isWritable()
+ {
+ return writable;
+ }
+
+ /**
+ * Constructor
+ *
+ * @param shortName
+ * @param extensions
+ * comma-separated list of file extensions associated with the format
+ * @param isReadable
+ * @param isWritable
+ */
+ private FileFormat(String shortName, String extensions,
+ boolean isReadable, boolean isWritable)
+ {
+ this.name = shortName;
+ this.extensions = extensions;
+ this.readable = isReadable;
+ this.writable = isWritable;
+ }
+
+ @Override
+ public String getExtensions()
+ {
+ return extensions;
+ }
+
+ @Override
+ public String toString()
+ {
+ return name;
+ }
+
+ @Override
+ public AlignmentFileI getAlignmentFile()
+ {
+ return getAlignmentFile((AlignmentI) null);
+ }
+
+ @Override
+ public boolean isTextFormat()
+ {
+ return true;
+ }
+
+ @Override
+ public boolean isStructureFile()
+ {
+ return false;
+ }
+}
--- /dev/null
+package jalview.io;
+
+import java.io.IOException;
+
+public class FileFormatException extends IOException
+{
+
+ public FileFormatException(String msg)
+ {
+ super(msg);
+ }
+
+}
--- /dev/null
+package jalview.io;
+
+import jalview.datamodel.AlignmentI;
+
+import java.io.IOException;
+
+public interface FileFormatI
+{
+
+ AlignmentFileI getAlignmentFile(String inFile, DataSourceType sourceType)
+ throws IOException;
+
+ // TODO can we get rid of one of these methods?
+ AlignmentFileI getAlignmentFile(FileParse source) throws IOException;
+
+ AlignmentFileI getAlignmentFile(AlignmentI al);
+
+ AlignmentFileI getAlignmentFile();
+
+ boolean isComplexAlignFile();
+
+ /**
+ * Returns a comma-separated list of file extensions associated with the
+ * format
+ *
+ * @return
+ */
+ String getExtensions();
+
+ /**
+ * Answers true if the format is one that Jalview can read. This implies that
+ * the format provides implementations for getAlignmentFile(FileParse) and
+ * getAlignmentFile(String, DataSourceType) which parse the data source for
+ * sequence data.
+ *
+ * @return
+ */
+ boolean isReadable();
+
+ /**
+ * Answers true if the format is one that Jalview can write. This implies that
+ * the object returned by getAlignmentFile provides an implementation of the
+ * print() method.
+ *
+ * @return
+ */
+ boolean isWritable();
+
+ /**
+ * Answers true if the format is one that Jalview can output as text, e.g. to
+ * a text box
+ *
+ * @return
+ */
+ boolean isTextFormat();
+
+ /**
+ * Answers true if the file format is one that provides a 3D structure
+ *
+ * @return
+ */
+ boolean isStructureFile();
+}
import jalview.api.FeatureSettingsModelI;
import jalview.api.FeaturesDisplayedI;
import jalview.api.FeaturesSourceI;
+import jalview.bin.Cache;
import jalview.bin.Jalview;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.ColumnSelection;
import jalview.gui.AlignViewport;
import jalview.gui.Desktop;
import jalview.gui.Jalview2XML;
+import jalview.gui.JvOptionPane;
import jalview.json.binding.biojson.v1.ColourSchemeMapper;
import jalview.schemes.ColourSchemeI;
import jalview.structure.StructureSelectionManager;
import java.util.StringTokenizer;
import java.util.Vector;
-import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
public class FileLoader implements Runnable
{
String file;
- String protocol;
+ DataSourceType protocol;
- String format;
+ FileFormatI format;
- FileParse source = null; // alternative specification of where data comes
+ AlignmentFileI source = null; // alternative specification of where data comes
// from
}
public void LoadFile(AlignViewport viewport, String file,
- String protocol, String format)
+ DataSourceType protocol, FileFormatI format)
{
this.viewport = viewport;
LoadFile(file, protocol, format);
}
- public void LoadFile(String file, String protocol, String format)
+ public void LoadFile(String file, DataSourceType protocol,
+ FileFormatI format)
{
this.file = file;
this.protocol = protocol;
* @param file
* @param protocol
*/
- public void LoadFile(String file, String protocol)
+ public void LoadFile(String file, DataSourceType protocol)
{
LoadFile(file, protocol, null);
}
* Load alignment from (file, protocol) and wait till loaded
*
* @param file
- * @param protocol
+ * @param sourceType
* @return alignFrame constructed from file contents
*/
- public AlignFrame LoadFileWaitTillLoaded(String file, String protocol)
+ public AlignFrame LoadFileWaitTillLoaded(String file,
+ DataSourceType sourceType)
{
- return LoadFileWaitTillLoaded(file, protocol, null);
+ return LoadFileWaitTillLoaded(file, sourceType, null);
}
/**
* Load alignment from (file, protocol) of type format and wait till loaded
*
* @param file
- * @param protocol
+ * @param sourceType
* @param format
* @return alignFrame constructed from file contents
*/
- public AlignFrame LoadFileWaitTillLoaded(String file, String protocol,
- String format)
+ public AlignFrame LoadFileWaitTillLoaded(String file,
+ DataSourceType sourceType, FileFormatI format)
{
this.file = file;
- this.protocol = protocol;
+ this.protocol = sourceType;
this.format = format;
return _LoadFileWaitTillLoaded();
}
* @param format
* @return alignFrame constructed from file contents
*/
- public AlignFrame LoadFileWaitTillLoaded(FileParse source, String format)
+ public AlignFrame LoadFileWaitTillLoaded(AlignmentFileI source,
+ FileFormatI format)
{
this.source = source;
file = source.getInFile();
- protocol = source.type;
+ protocol = source.getDataSourceType();
this.format = format;
return _LoadFileWaitTillLoaded();
}
public void updateRecentlyOpened()
{
Vector recent = new Vector();
- if (protocol.equals(FormatAdapter.PASTE))
+ if (protocol == DataSourceType.PASTE)
{
// do nothing if the file was pasted in as text... there is no filename to
// refer to it as.
return;
}
- String type = protocol.equals(FormatAdapter.FILE) ? "RECENT_FILE"
+ String type = protocol == DataSourceType.FILE ? "RECENT_FILE"
: "RECENT_URL";
String historyItems = jalview.bin.Cache.getProperty(type);
newHistory.append(recent.elementAt(i));
}
- jalview.bin.Cache.setProperty(type, newHistory.toString());
+ Cache.setProperty(type, newHistory.toString());
- if (protocol.equals(FormatAdapter.FILE))
+ if (protocol == DataSourceType.FILE)
{
- jalview.bin.Cache.setProperty("DEFAULT_FILE_FORMAT", format);
+ Cache.setProperty("DEFAULT_FILE_FORMAT", format.toString());
}
}
@Override
public void run()
{
- String title = protocol.equals(AppletFormatAdapter.PASTE) ? "Copied From Clipboard"
+ String title = protocol == DataSourceType.PASTE ? "Copied From Clipboard"
: file;
Runtime rt = Runtime.getRuntime();
try
// just in case the caller didn't identify the file for us
if (source != null)
{
- format = new IdentifyFile().identify(source, false); // identify
- // stream and
- // rewind rather
- // than close
+ format = new IdentifyFile().identify(source, false);
+ // identify stream and rewind rather than close
}
else
{
}
- if (format == null || format.equalsIgnoreCase("EMPTY DATA FILE"))
+ if (format == null)
{
Desktop.instance.stopLoading();
System.err.println("The input file \"" + file
+ "\" has null or unidentifiable data content!");
if (!Jalview.isHeadlessMode())
{
- javax.swing.JOptionPane.showInternalMessageDialog(
+ JvOptionPane.showInternalMessageDialog(
Desktop.desktop,
MessageManager.getString("label.couldnt_read_data")
+ " in " + file + "\n"
+ AppletFormatAdapter.SUPPORTED_FORMATS,
MessageManager.getString("label.couldnt_read_data"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
return;
}
loadtime = -System.currentTimeMillis();
AlignmentI al = null;
- if (format.equalsIgnoreCase("Jalview"))
+ if (FileFormat.Jalview.equals(format))
{
if (source != null)
{
else
{
String error = AppletFormatAdapter.SUPPORTED_FORMATS;
- if (FormatAdapter.isValidFormat(format))
- {
try
{
if (source != null)
{
// read from the provided source
- al = new FormatAdapter().readFromFile(source, format);
+ al = new FormatAdapter().readFromFile(source, format);
}
else
{
{
error = ex.getMessage();
}
- }
- else
- {
- if (format != null && format.length() > 7)
- {
- // ad hoc message in format.
- error = format + "\n" + error;
- }
- }
if ((al != null) && (al.getHeight() > 0) && al.hasValidSequence())
{
}
}
// add metadata and update ui
- if (!protocol.equals(AppletFormatAdapter.PASTE))
+ if (!(protocol == DataSourceType.PASTE))
{
alignFrame.setFileName(file, format);
}
@Override
public void run()
{
- JOptionPane.showInternalMessageDialog(Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
errorMessage, MessageManager
.getString("label.error_loading_file"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
});
}
@Override
public void run()
{
- javax.swing.JOptionPane.showInternalMessageDialog(
+ JvOptionPane.showInternalMessageDialog(
Desktop.desktop, MessageManager.formatMessage(
"label.problems_opening_file",
new String[] { file }), MessageManager
.getString("label.file_open_error"),
- javax.swing.JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
});
}
@Override
public void run()
{
- javax.swing.JOptionPane.showInternalMessageDialog(
+ JvOptionPane.showInternalMessageDialog(
Desktop.desktop, MessageManager.formatMessage(
"warn.out_of_memory_loading_file", new String[]
{ file }), MessageManager
.getString("label.out_of_memory"),
- javax.swing.JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
});
}
*/
protected String suffix = null;
- protected String type = null;
+ protected DataSourceType dataSourceType = null;
protected BufferedReader dataIn = null;
suffix = from.suffix;
errormessage = from.errormessage; // inherit potential error messages
error = false; // reset any error condition.
- type = from.type;
+ dataSourceType = from.dataSourceType;
dataIn = from.dataIn;
if (dataIn != null)
{
* configurable values for the origin and the type of the source
*/
public FileParse(BufferedReader source, String originString,
- String typeString)
+ DataSourceType sourceType)
{
- type = typeString;
+ dataSourceType = sourceType;
error = false;
inFile = null;
dataName = originString;
*
* @param fileStr
* - datasource locator/content
- * @param type
+ * @param sourceType
* - protocol of source
* @throws MalformedURLException
* @throws IOException
*/
- public FileParse(String fileStr, String type)
+ public FileParse(String fileStr, DataSourceType sourceType)
throws MalformedURLException, IOException
{
- this.type = type;
+ this.dataSourceType = sourceType;
error = false;
- if (type.equals(AppletFormatAdapter.FILE))
+ if (sourceType == DataSourceType.FILE)
{
if (checkFileSource(fileStr))
{
}
}
}
- else if (type.equals(AppletFormatAdapter.URL))
+ else if (sourceType == DataSourceType.URL)
{
try
{
error = true;
}
}
- else if (type.equals(AppletFormatAdapter.PASTE))
+ else if (sourceType == DataSourceType.PASTE)
{
errormessage = "PASTE INACCESSIBLE!";
dataIn = new BufferedReader(new StringReader(fileStr));
dataName = "Paste";
}
- else if (type.equals(AppletFormatAdapter.CLASSLOADER))
+ else if (sourceType == DataSourceType.CLASSLOADER)
{
errormessage = "RESOURCE CANNOT BE LOCATED";
java.io.InputStream is = getClass()
else
{
errormessage = "PROBABLE IMPLEMENTATION ERROR : Datasource Type given as '"
- + (type != null ? type : "null") + "'";
+ + (sourceType != null ? sourceType : "null") + "'";
error = true;
}
if (dataIn == null || error)
{
return null;
}
+
+ public DataSourceType getDataSourceType()
+ {
+ return dataSourceType;
+ }
}
import jalview.api.AlignExportSettingI;
import jalview.api.AlignmentViewPanel;
+import jalview.bin.Cache;
import jalview.datamodel.Alignment;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
+import jalview.util.Comparison;
+
+import java.io.IOException;
/**
* Additional formatting methods used by the application in a number of places.
}
}
- public String formatSequences(String format, SequenceI[] seqs,
+ public String formatSequences(FileFormatI format, SequenceI[] seqs,
String[] omitHiddenColumns, int[] exportRange)
{
startIndex = startEnd[0];
endIndex = startEnd[1];
// get first non-gaped residue start position
- while (jalview.util.Comparison.isGap(seqs[i]
+ while (Comparison.isGap(seqs[i]
.getCharAt(startIndex)) && startIndex < endIndex)
{
startIndex++;
}
// get last non-gaped residue end position
- while (jalview.util.Comparison.isGap(seqs[i].getCharAt(endIndex))
+ while (Comparison.isGap(seqs[i].getCharAt(endIndex))
&& endIndex > startIndex)
{
endIndex--;
*
*
* @param format
- * Format string as givien in the AppletFormatAdaptor list (exact
- * match to name of class implementing file io for that format)
* @param seqs
* vector of sequences to write
*
* @return String containing sequences in desired format
*/
- public String formatSequences(String format, SequenceI[] seqs)
+ public String formatSequences(FileFormatI format, SequenceI[] seqs)
{
+ //
+ // try
+ // {
+ boolean withSuffix = getCacheSuffixDefault(format);
+ return format.getAlignmentFile().print(seqs, withSuffix);
+ // null;
+ //
+ // if (format.equalsIgnoreCase("FASTA"))
+ // {
+ // afile = new FastaFile();
+ // afile.addJVSuffix(jalview.bin.Cache.getDefault("FASTA_JVSUFFIX",
+ // true));
+ // }
+ // else if (format.equalsIgnoreCase("MSF"))
+ // {
+ // afile = new MSFfile();
+ // afile.addJVSuffix(jalview.bin.Cache
+ // .getDefault("MSF_JVSUFFIX", true));
+ // }
+ // else if (format.equalsIgnoreCase("PileUp"))
+ // {
+ // afile = new PileUpfile();
+ // afile.addJVSuffix(jalview.bin.Cache.getDefault("PILEUP_JVSUFFIX",
+ // true));
+ // }
+ // else if (format.equalsIgnoreCase("CLUSTAL"))
+ // {
+ // afile = new ClustalFile();
+ // afile.addJVSuffix(jalview.bin.Cache.getDefault("CLUSTAL_JVSUFFIX",
+ // true));
+ // }
+ // else if (format.equalsIgnoreCase("BLC"))
+ // {
+ // afile = new BLCFile();
+ // afile.addJVSuffix(jalview.bin.Cache
+ // .getDefault("BLC_JVSUFFIX", true));
+ // }
+ // else if (format.equalsIgnoreCase("PIR"))
+ // {
+ // afile = new PIRFile();
+ // afile.addJVSuffix(jalview.bin.Cache
+ // .getDefault("PIR_JVSUFFIX", true));
+ // }
+ // else if (format.equalsIgnoreCase("PFAM"))
+ // {
+ // afile = new PfamFile();
+ // afile.addJVSuffix(jalview.bin.Cache.getDefault("PFAM_JVSUFFIX",
+ // true));
+ // }
+ // /*
+ // * amsa is not supported by this function - it requires an alignment
+ // * rather than a sequence vector else if
+ // (format.equalsIgnoreCase("AMSA"))
+ // * { afile = new AMSAFile(); afile.addJVSuffix(
+ // * jalview.bin.Cache.getDefault("AMSA_JVSUFFIX", true)); }
+ // */
- try
- {
- AlignFile afile = null;
-
- if (format.equalsIgnoreCase("FASTA"))
- {
- afile = new FastaFile();
- afile.addJVSuffix(jalview.bin.Cache.getDefault("FASTA_JVSUFFIX",
- true));
- }
- else if (format.equalsIgnoreCase("MSF"))
- {
- afile = new MSFfile();
- afile.addJVSuffix(jalview.bin.Cache
- .getDefault("MSF_JVSUFFIX", true));
- }
- else if (format.equalsIgnoreCase("PileUp"))
- {
- afile = new PileUpfile();
- afile.addJVSuffix(jalview.bin.Cache.getDefault("PILEUP_JVSUFFIX",
- true));
- }
- else if (format.equalsIgnoreCase("CLUSTAL"))
- {
- afile = new ClustalFile();
- afile.addJVSuffix(jalview.bin.Cache.getDefault("CLUSTAL_JVSUFFIX",
- true));
- }
- else if (format.equalsIgnoreCase("BLC"))
- {
- afile = new BLCFile();
- afile.addJVSuffix(jalview.bin.Cache
- .getDefault("BLC_JVSUFFIX", true));
- }
- else if (format.equalsIgnoreCase("PIR"))
- {
- afile = new PIRFile();
- afile.addJVSuffix(jalview.bin.Cache
- .getDefault("PIR_JVSUFFIX", true));
- }
- else if (format.equalsIgnoreCase("PFAM"))
- {
- afile = new PfamFile();
- afile.addJVSuffix(jalview.bin.Cache.getDefault("PFAM_JVSUFFIX",
- true));
- }
- /*
- * amsa is not supported by this function - it requires an alignment
- * rather than a sequence vector else if (format.equalsIgnoreCase("AMSA"))
- * { afile = new AMSAFile(); afile.addJVSuffix(
- * jalview.bin.Cache.getDefault("AMSA_JVSUFFIX", true)); }
- */
-
- afile.setSeqs(seqs);
- String afileresp = afile.print();
- if (afile.hasWarningMessage())
- {
- System.err.println("Warning raised when writing as " + format
- + " : " + afile.getWarningMessage());
- }
- return afileresp;
- } catch (Exception e)
- {
- System.err.println("Failed to write alignment as a '" + format
- + "' file\n");
- e.printStackTrace();
- }
-
- return null;
+// afile.setSeqs(seqs);
+// String afileresp = afile.print();
+// if (afile.hasWarningMessage())
+// {
+// System.err.println("Warning raised when writing as " + format
+// + " : " + afile.getWarningMessage());
+// }
+// return afileresp;
+// } catch (Exception e)
+// {
+// System.err.println("Failed to write alignment as a '" + format
+// + "' file\n");
+// e.printStackTrace();
+// }
+//
+// return null;
}
- public boolean getCacheSuffixDefault(String format)
+ public boolean getCacheSuffixDefault(FileFormatI format)
{
- if (isValidFormat(format))
- {
- return jalview.bin.Cache.getDefault(format.toUpperCase()
- + "_JVSUFFIX", true);
- }
- return false;
+ return Cache.getDefault(format.toString() + "_JVSUFFIX", true);
}
- public String formatSequences(String format, AlignmentI alignment,
+ public String formatSequences(FileFormatI format, AlignmentI alignment,
String[] omitHidden, int[] exportRange, ColumnSelection colSel)
{
return formatSequences(format, alignment, omitHidden, exportRange,
getCacheSuffixDefault(format), colSel, null);
}
- public String formatSequences(String format, AlignmentI alignment,
- String[] omitHidden, int[] exportRange, ColumnSelection colSel,
- SequenceGroup sgp)
- {
- return formatSequences(format, alignment, omitHidden, exportRange,
- getCacheSuffixDefault(format), colSel, sgp);
- }
-
/**
* hack function to replace seuqences with visible sequence strings before
* generating a string of the alignment in the given format.
* defines hidden columns that are edited out of annotation
* @return string representation of the alignment formatted as format
*/
- public String formatSequences(String format, AlignmentI alignment,
+ public String formatSequences(FileFormatI format, AlignmentI alignment,
String[] omitHidden, int[] exportRange, boolean suffix,
ColumnSelection colSel)
{
suffix, colSel, null);
}
- public String formatSequences(String format, AlignmentI alignment,
+ public String formatSequences(FileFormatI format, AlignmentI alignment,
String[] omitHidden, int[] exportRange, boolean suffix,
- ColumnSelection colSel, jalview.datamodel.SequenceGroup selgp)
+ ColumnSelection colSel, SequenceGroup selgp)
{
if (omitHidden != null)
{
return this.formatSequences(format, alignment, suffix);
}
- /**
- * validate format is valid for IO in Application. This is basically the
- * AppletFormatAdapter.isValidFormat call with additional checks for
- * Application only formats like 'Jalview'.
- *
- * @param format
- * a format string to be compared with list of readable or writable
- * formats (READABLE_FORMATS or WRITABLE_FORMATS)
- * @param forwriting
- * when true, format is checked against list of writable formats.
- * @return true if format is valid
- */
- public static final boolean isValidIOFormat(String format,
- boolean forwriting)
+ @Override
+ public AlignmentI readFile(String file, DataSourceType sourceType,
+ FileFormatI fileFormat) throws IOException
{
- if (format.equalsIgnoreCase("jalview"))
- {
- return true;
- }
- return AppletFormatAdapter.isValidFormat(format, forwriting);
+ AlignmentI al = super.readFile(file, sourceType, fileFormat);
+ return al;
+ }
+
+ @Override
+ public AlignmentI readFromFile(FileParse source, FileFormatI format)
+ throws IOException
+ {
+ AlignmentI al = super.readFromFile(source, format);
+ return al;
}
/**
* alignment panel originating the view
* @return String containing flat file
*/
- public String formatSequences(String format, AlignmentViewPanel ap,
+ public String formatSequences(FileFormatI format, AlignmentViewPanel ap,
boolean selectedOnly)
{
return formatSequences(format, getCacheSuffixDefault(format), ap,
selectedOnly);
}
+ public AlignmentI readFromFile(AlignmentFileI source, FileFormatI format)
+ throws IOException
+ {
+ FileParse fp = new FileParse(source.getInFile(),
+ source.getDataSourceType());
+ return readFromFile(fp, format);
+ }
+
}
-/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
- */
package jalview.io;
import jalview.api.AlignExportSettingI;
import java.net.URL;
import java.util.Objects;
-
public abstract class HTMLOutput implements Runnable
{
protected AlignmentPanel ap;
};
}
AlignmentExportData exportData = jalview.gui.AlignFrame
- .getAlignmentForExport(JSONFile.FILE_DESC,
+ .getAlignmentForExport(FileFormat.Json,
ap.getAlignViewport(), exportSettings);
String bioJSON = new FormatAdapter(ap, exportData.getSettings())
- .formatSequences(JSONFile.FILE_DESC, exportData.getAlignment(),
+ .formatSequences(FileFormat.Json, exportData.getAlignment(),
exportData.getOmitHidden(), exportData
.getStartEndPostions(), ap.getAlignViewport()
.getColumnSelection());
* the file path of the generated HTML
*/
public abstract void exportHTML(String outputFile);
-}
+}
\ No newline at end of file
super(source);
}
- public HtmlFile(String inFile, String type) throws IOException
+ public HtmlFile(String inFile, DataSourceType sourceType)
+ throws IOException
{
- super(inFile, type);
+ super(inFile, sourceType);
}
@Override
}
@Override
- public String print()
+ public String print(SequenceI[] sqs, boolean jvsuffix)
{
throw new UnsupportedOperationException(
"Print method of HtmlFile is not supported!");
*/
public class IdentifyFile
{
- public static final String FeaturesFile = "GFF or Jalview features";
-
/**
* Identify a datasource's file content.
*
* instead.
*
* @param file
- * DOCUMENT ME!
- * @param protocol
- * DOCUMENT ME!
- * @return ID String
+ * @param sourceType
+ * @return
+ * @throws FileFormatException
*/
- public String identify(String file, String protocol)
+ public FileFormatI identify(String file, DataSourceType sourceType)
+ throws FileFormatException
{
String emessage = "UNIDENTIFIED FILE PARSING ERROR";
FileParse parser = null;
try
{
- parser = new FileParse(file, protocol);
+ parser = new FileParse(file, sourceType);
if (parser.isValid())
{
return identify(parser);
}
if (parser != null)
{
- return parser.errormessage;
+ throw new FileFormatException(parser.errormessage);
}
- return emessage;
+ throw new FileFormatException(emessage);
+ }
+
+ public FileFormatI identify(FileParse source) throws FileFormatException
+ {
+ return identify(source, true);
+ // preserves original behaviour prior to version 2.3
}
- public String identify(FileParse source)
+ public FileFormatI identify(AlignmentFileI file, boolean closeSource)
+ throws IOException
{
- return identify(source, true); // preserves original behaviour prior to
- // version 2.3
+ FileParse fp = new FileParse(file.getInFile(), file.getDataSourceType());
+ return identify(fp, closeSource);
}
/**
*
* @param source
* @param closeSource
- * @return filetype string
+ * @return (best guess at) file format
+ * @throws FileFormatException
*/
- public String identify(FileParse source, boolean closeSource)
+ public FileFormatI identify(FileParse source, boolean closeSource)
+ throws FileFormatException
{
- String reply = "PFAM";
+ FileFormatI reply = FileFormat.Pfam;
String data;
int bytesRead = 0;
int trimmedLength = 0;
if (fileStr.lastIndexOf(".jar") > -1
|| fileStr.lastIndexOf(".zip") > -1)
{
- reply = "Jalview";
+ reply = FileFormat.Jalview;
}
}
if (!lineswereskipped && data.startsWith("PK"))
{
- reply = "Jalview"; // archive.
+ reply = FileFormat.Jalview; // archive.
break;
}
}
if (data.startsWith("##GFF-VERSION"))
{
// GFF - possibly embedded in a Jalview features file!
- reply = FeaturesFile;
+ reply = FileFormat.Features;
break;
}
if (looksLikeFeatureData(data))
{
- reply = FeaturesFile;
+ reply = FileFormat.Features;
break;
}
if (data.indexOf("# STOCKHOLM") > -1)
{
- reply = "STH";
+ reply = FileFormat.Stockholm;
break;
}
if (data.indexOf("_ENTRY.ID") > -1
|| data.indexOf("_AUDIT_AUTHOR.NAME") > -1
|| data.indexOf("_ATOM_SITE.") > -1)
{
- reply = "mmCIF";
+ reply = FileFormat.MMCif;
break;
}
// if (data.indexOf(">") > -1)
{
// watch for PIR file attributes
checkPIR = true;
- reply = "PIR";
+ reply = FileFormat.PIR;
}
// could also be BLC file, read next line to confirm
data = source.nextLine();
if (data.indexOf(">") > -1)
{
- reply = "BLC";
+ reply = FileFormat.BLC;
}
else
{
{
if (c1 == 0 && c1 == data2.indexOf("*"))
{
- reply = "BLC";
+ reply = FileFormat.BLC;
}
else
{
- reply = "FASTA"; // possibly a bad choice - may be recognised as
+ reply = FileFormat.Fasta; // possibly a bad choice - may be
+ // recognised as
// PIR
}
// otherwise can still possibly be a PIR file
}
else
{
- reply = "FASTA";
+ reply = FileFormat.Fasta;
// TODO : AMSA File is indicated if there is annotation in the
// FASTA file - but FASTA will automatically generate this at the
// mo.
}
if (starterm)
{
- reply = "PIR";
+ reply = FileFormat.PIR;
break;
}
else
{
- reply = "FASTA"; // probably a bad choice!
+ reply = FileFormat.Fasta; // probably a bad choice!
}
}
// read as a FASTA (probably)
String upper = data.toUpperCase();
if (upper.substring(lessThan).startsWith("<HTML"))
{
- reply = HtmlFile.FILE_DESC;
+ reply = FileFormat.Html;
break;
}
if (upper.substring(lessThan).startsWith("<RNAML"))
{
- reply = "RNAML";
+ reply = FileFormat.Rnaml;
break;
}
}
if (data.indexOf("{\"") > -1)
{
- reply = JSONFile.FILE_DESC;
+ reply = FileFormat.Json;
break;
}
if ((data.length() < 1) || (data.indexOf("#") == 0))
if (data.indexOf("PILEUP") > -1)
{
- reply = "PileUp";
+ reply = FileFormat.Pileup;
break;
}
|| ((data.indexOf("!!") > -1) && (data.indexOf("!!") < data
.indexOf("_MULTIPLE_ALIGNMENT "))))
{
- reply = "MSF";
+ reply = FileFormat.MSF;
break;
}
else if (data.indexOf("CLUSTAL") > -1)
{
- reply = "CLUSTAL";
+ reply = FileFormat.Clustal;
break;
}
else if (data.indexOf("HEADER") == 0 || data.indexOf("ATOM") == 0)
{
- reply = "PDB";
+ reply = FileFormat.PDB;
break;
}
else if (data.matches("\\s*\\d+\\s+\\d+\\s*"))
{
- reply = PhylipFile.FILE_DESC;
+ reply = FileFormat.Phylip;
break;
}
else
{
if (!lineswereskipped && looksLikeJnetData(data))
{
- reply = "JnetFile";
+ reply = FileFormat.Jnet;
break;
}
}
} catch (Exception ex)
{
System.err.println("File Identification failed!\n" + ex);
- return source.errormessage;
+ throw new FileFormatException(source.errormessage);
}
if (trimmedLength == 0)
{
System.err
.println("File Identification failed! - Empty file was read.");
- return "EMPTY DATA FILE";
+ throw new FileFormatException("EMPTY DATA FILE");
}
+ System.out.println("File format identified as " + reply.toString());
return reply;
}
public static void main(String[] args)
{
-
for (int i = 0; args != null && i < args.length; i++)
{
IdentifyFile ider = new IdentifyFile();
- String type = ider.identify(args[i], AppletFormatAdapter.FILE);
+ FileFormatI type = null;
+ try
+ {
+ type = ider.identify(args[i], DataSourceType.FILE);
+ } catch (FileFormatException e)
+ {
+ System.err.println(String.format(
+ "Error '%s' identifying file type for %s", args[i],
+ e.getMessage()));
+ }
System.out.println("Type of " + args[i] + " is " + type);
}
if (args == null || args.length == 0)
*
* @param inFile
* DOCUMENT ME!
- * @param type
+ * @param sourceType
* DOCUMENT ME!
*
* @throws IOException
* DOCUMENT ME!
*/
- public JPredFile(String inFile, String type) throws IOException
+ public JPredFile(String inFile, DataSourceType sourceType)
+ throws IOException
{
- super(inFile, type);
+ super(inFile, sourceType);
}
public JPredFile(FileParse source) throws IOException
/**
* DOCUMENT ME!
*/
+ @Override
public void initData()
{
super.initData();
/**
* parse a JPred concise file into a sequence-alignment like object.
*/
+ @Override
public void parse() throws IOException
{
// JBPNote log.System.out.println("all read in ");
ascore = symbols.nextToken();
Float score = new Float(ascore);
- scores.addElement((Object) score);
+ scores.addElement(score);
}
Scores.put(id, scores);
for (int j = 0; j < i; j++)
{
scores.setElementAt(
- (Object) ((Float) scores.elementAt(j)).toString(), j);
+ ((Float) scores.elementAt(j)).toString(), j);
}
- scores.addElement((Object) ascore);
+ scores.addElement(ascore);
while (symbols.hasMoreTokens())
{
ascore = symbols.nextToken();
- scores.addElement((Object) ascore);
+ scores.addElement(ascore);
}
Scores.put(id, scores);
}
if (QuerySeqPosition == -1)
+ {
QuerySeqPosition = ids.size();
+ }
ids.addElement(name);
noSeqs++;
}
seq_entries.addElement(newseq.toString());
ids.addElement(id);
- Symscores.put((Object) id, (Object) new Integer(ids.size() - 1));
+ Symscores.put(id, new Integer(ids.size() - 1));
}
}
}
*
* @return String
*/
- public String print()
+ @Override
+ public String print(SequenceI[] sqs, boolean jvsuffix)
{
return "Not Supported";
}
{
try
{
- JPredFile blc = new JPredFile(args[0], "File");
+ JPredFile jpred = new JPredFile(args[0], DataSourceType.FILE);
- for (int i = 0; i < blc.seqs.size(); i++)
+ for (int i = 0; i < jpred.seqs.size(); i++)
{
- System.out.println(((Sequence) blc.seqs.elementAt(i)).getName()
+ System.out.println(((Sequence) jpred.seqs.elementAt(i)).getName()
+ "\n"
- + ((Sequence) blc.seqs.elementAt(i)).getSequenceAsString()
+ + ((Sequence) jpred.seqs.elementAt(i)).getSequenceAsString()
+ "\n");
}
} catch (java.io.IOException e)
}
// check that no stray annotations have been added at the end.
{
- SequenceI sq = (SequenceI) seqs.elementAt(j - 1);
+ SequenceI sq = seqs.elementAt(j - 1);
if (sq.getName().toUpperCase().startsWith("JPRED"))
{
annotSeqs.addElement(sq);
private String application = "Jalview";
- public static final String FILE_EXT = "json";
-
- public static final String FILE_DESC = "JSON";
-
private String globalColourScheme;
private boolean showSeqFeatures;
super(source);
}
- public JSONFile(String inFile, String type) throws IOException
+ public JSONFile(String inFile, DataSourceType sourceType)
+ throws IOException
{
- super(inFile, type);
+ super(inFile, sourceType);
}
@Override
}
@Override
- public String print()
+ public String print(SequenceI[] sqs, boolean jvsuffix)
{
String jsonOutput = null;
try
}
int count = 0;
- for (SequenceI seq : seqs)
+ for (SequenceI seq : sqs)
{
StringBuilder name = new StringBuilder();
name.append(seq.getName()).append("/").append(seq.getStart())
if (exportSettings.isExportFeatures())
{
jsonAlignmentPojo
- .setSeqFeatures(sequenceFeatureToJsonPojo(seqs, fr));
+ .setSeqFeatures(sequenceFeatureToJsonPojo(sqs, fr));
}
if (exportSettings.isExportGroups() && seqGroups != null
}
public List<SequenceFeaturesPojo> sequenceFeatureToJsonPojo(
- List<SequenceI> seqs, FeatureRenderer fr)
+ SequenceI[] sqs, FeatureRenderer fr)
{
displayedFeatures = (fr == null) ? null : fr.getFeaturesDisplayed();
List<SequenceFeaturesPojo> sequenceFeaturesPojo = new ArrayList<SequenceFeaturesPojo>();
- for (SequenceI seq : seqs)
+ if (sqs == null)
+ {
+ return sequenceFeaturesPojo;
+ }
+
+ for (SequenceI seq : sqs)
{
SequenceI dataSetSequence = seq.getDatasetSequence();
SequenceFeature[] seqFeatures = (dataSetSequence == null) ? null
//////////////////////////////////////////////////////////////////
package jalview.io;
+import jalview.gui.JvOptionPane;
import jalview.util.MessageManager;
import jalview.util.Platform;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
import java.util.StringTokenizer;
import java.util.Vector;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JFileChooser;
import javax.swing.JList;
-import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SpringLayout;
+import javax.swing.filechooser.FileView;
+import javax.swing.plaf.basic.BasicFileChooserUI;
/**
* Enhanced file chooser dialog box.
*/
public class JalviewFileChooser extends JFileChooser
{
+ /**
+ * Factory method to return a file chooser that offers readable alignment file
+ * formats
+ *
+ * @param directory
+ * @param selected
+ * @param selectAll
+ * @return
+ */
+ public static JalviewFileChooser forRead(String directory,
+ String selected, boolean selectAll)
+ {
+ List<String> extensions = new ArrayList<String>();
+ List<String> descs = new ArrayList<String>();
+ for (FileFormatI format : FileFormat.values())
+ {
+ if (format.isReadable())
+ {
+ extensions.add(format.getExtensions());
+ descs.add(format.toString());
+ }
+ }
+ return new JalviewFileChooser(directory,
+ extensions.toArray(new String[extensions.size()]),
+ descs.toArray(new String[descs.size()]),
+ selected);
+ }
+
+ /**
+ * Factory method to return a file chooser that offers writable alignment file
+ * formats
+ *
+ * @param directory
+ * @param selected
+ * @param selectAll
+ * @return
+ */
+ public static JalviewFileChooser forWrite(String directory,
+ String selected, boolean selectAll)
+ {
+ // TODO in Java 8, forRead and forWrite can be a single method
+ // with a lambda expression parameter for isReadable/isWritable
+ List<String> extensions = new ArrayList<String>();
+ List<String> descs = new ArrayList<String>();
+ for (FileFormatI format : FileFormat.values())
+ {
+ if (format.isWritable())
+ {
+ extensions.add(format.getExtensions());
+ descs.add(format.toString());
+ }
+ }
+ return new JalviewFileChooser(directory,
+ extensions.toArray(new String[extensions.size()]),
+ descs.toArray(new String[descs.size()]), selected);
+ }
+
public JalviewFileChooser(String dir)
{
super(safePath(dir));
setAccessory(new RecentlyOpened());
}
+ public JalviewFileChooser(String dir, String extension, String desc,
+ String selected)
+ {
+ super(safePath(dir));
+ init(Collections.singletonList(new String[] { extension, desc }),
+ selected);
+ }
+
+ public JalviewFileChooser(String dir, String[] extensions, String[] descs,
+ String selected)
+ {
+ super(safePath(dir));
+ if (extensions.length == descs.length)
+ {
+ List<String[]> formats = new ArrayList<String[]>();
+ for (int i = 0; i < extensions.length; i++)
+ {
+ formats.add(new String[] { extensions[i], descs[i] });
+ }
+ init(formats, selected);
+ }
+ else
+ {
+ System.err.println("JalviewFileChooser arguments mismatch: "
+ + extensions + ", " + descs);
+ }
+ }
+
private static File safePath(String dir)
{
if (dir == null)
return f;
}
- public JalviewFileChooser(String dir, String[] suffix, String[] desc,
- String selected, boolean selectAll)
- {
- super(safePath(dir));
- init(suffix, desc, selected, selectAll);
- }
-
- public JalviewFileChooser(String dir, String[] suffix, String[] desc,
- String selected)
- {
- super(safePath(dir));
- init(suffix, desc, selected, true);
- }
-
- void init(String[] suffix, String[] desc, String selected,
- boolean selectAll)
+ /**
+ *
+ * @param formats
+ * a list of {extensions, description} for each file format
+ * @param selected
+ */
+ void init(List<String[]> formats, String selected)
{
JalviewFileFilter chosen = null;
// SelectAllFilter needs to be set first before adding further
// file filters to fix bug on Mac OSX
- setAcceptAllFileFilterUsed(selectAll);
+ setAcceptAllFileFilterUsed(true);
- for (int i = 0; i < suffix.length; i++)
+ for (String[] format : formats)
{
- JalviewFileFilter jvf = new JalviewFileFilter(suffix[i], desc[i]);
+ JalviewFileFilter jvf = new JalviewFileFilter(format[0], format[1]);
addChoosableFileFilter(jvf);
- if ((selected != null) && selected.equalsIgnoreCase(desc[i]))
+ if ((selected != null) && selected.equalsIgnoreCase(format[1]))
{
chosen = jvf;
}
try
{
- if (getUI() instanceof javax.swing.plaf.basic.BasicFileChooserUI)
+ if (getUI() instanceof BasicFileChooserUI)
{
- final javax.swing.plaf.basic.BasicFileChooserUI ui = (javax.swing.plaf.basic.BasicFileChooserUI) getUI();
- final String name = ui.getFileName().trim();
+ final BasicFileChooserUI fcui = (BasicFileChooserUI) getUI();
+ final String name = fcui.getFileName().trim();
if ((name == null) || (name.length() == 0))
{
@Override
public void run()
{
- String currentName = ui.getFileName();
+ String currentName = fcui.getFileName();
if ((currentName == null) || (currentName.length() == 0))
{
- ui.setFileName(name);
+ fcui.setFileName(name);
}
}
});
}
}
- public String getSelectedFormat()
+ /**
+ * Returns the selected file format, or null if none selected
+ *
+ * @return
+ */
+ public FileFormatI getSelectedFormat()
{
if (getFileFilter() == null)
{
return null;
}
+ /*
+ * logic here depends on option description being formatted as
+ * formatName (extension, extension...)
+ * or the 'no option selected' value
+ * All Files
+ * @see JalviewFileFilter.getDescription
+ */
String format = getFileFilter().getDescription();
-
- if (format.toUpperCase().startsWith("JALVIEW"))
- {
- format = "Jalview";
- }
- else if (format.toUpperCase().startsWith("FASTA"))
- {
- format = "FASTA";
- }
- else if (format.toUpperCase().startsWith("MSF"))
- {
- format = "MSF";
- }
- else if (format.toUpperCase().startsWith("CLUSTAL"))
- {
- format = "CLUSTAL";
- }
- else if (format.toUpperCase().startsWith("BLC"))
- {
- format = "BLC";
- }
- else if (format.toUpperCase().startsWith("PIR"))
+ int parenPos = format.indexOf("(");
+ if (parenPos > 0)
{
- format = "PIR";
- }
- else if (format.toUpperCase().startsWith("PFAM"))
- {
- format = "PFAM";
- }
- else if (format.toUpperCase().startsWith(PhylipFile.FILE_DESC))
- {
- format = PhylipFile.FILE_DESC;
+ format = format.substring(0, parenPos).trim();
+ try
+ {
+ return FileFormat.valueOf(format);
+ } catch (IllegalArgumentException e)
+ {
+ System.err.println("Unexpected format: " + format);
+ }
}
-
- return format;
+ return null;
}
@Override
if ((ret == JalviewFileChooser.APPROVE_OPTION)
&& getSelectedFile().exists())
{
- int confirm = JOptionPane.showConfirmDialog(parent,
+ int confirm = JvOptionPane.showConfirmDialog(parent,
MessageManager.getString("label.overwrite_existing_file"),
MessageManager.getString("label.file_already_exists"),
- JOptionPane.YES_NO_OPTION);
+ JvOptionPane.YES_NO_OPTION);
- if (confirm != JOptionPane.YES_OPTION)
+ if (confirm != JvOptionPane.YES_OPTION)
{
ret = JalviewFileChooser.CANCEL_OPTION;
}
package jalview.io;
import java.io.File;
-import java.util.Hashtable;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
import javax.swing.Icon;
import javax.swing.ImageIcon;
public class JalviewFileView extends FileView
{
- static Hashtable alignSuffix = new Hashtable();
+ private static Map<String, String> extensions;
- static
+ private static Map<String, ImageIcon> icons;
+
+ private void loadExtensions()
{
- // TODO: these names should come from the FormatAdapter lists for
- // readable/writable extensions
- alignSuffix.put("amsa", "AMSA file");
- alignSuffix.put("fasta", "Fasta file");
- alignSuffix.put("fa", "Fasta file");
- alignSuffix.put("fastq", "Fasta file");
- alignSuffix.put("mfa", "Fasta file");
- alignSuffix.put("blc", "BLC file");
- alignSuffix.put("msf", "MSF file");
- alignSuffix.put("pfam", "PFAM file");
- alignSuffix.put("aln", "Clustal file");
- alignSuffix.put("pir", "PIR file");
- alignSuffix.put("jar", "Jalview Project file (old)");
- alignSuffix.put("jvp", "Jalview Project file");
- alignSuffix.put("amsa", "AMSA file");
- alignSuffix.put("sto", "Stockholm File");
- alignSuffix.put("stk", "Stockholm File");
- alignSuffix.put("sto", "Stockholm File");
+ extensions = new HashMap<String, String>();
+ for (FileFormatI ff : FileFormat.values())
+ {
+ String desc = ff.toString() + " file";
+ String exts = ff.getExtensions();
+ for (String ext : exts.split(","))
+ {
+ extensions.put(ext.trim().toLowerCase(), desc
+ + ("jar".equals(ext) ? " (old)" : ""));
+ }
+ }
}
+ @Override
public String getTypeDescription(File f)
{
String extension = getExtension(f);
- String type = null;
-
+ String type = getDescriptionForExtension(extension);
if (extension != null)
{
- if (alignSuffix.containsKey(extension))
+ if (extensions.containsKey(extension))
{
- type = alignSuffix.get(extension).toString();
+ type = extensions.get(extension).toString();
}
}
return type;
}
+ private String getDescriptionForExtension(String extension)
+ {
+ synchronized (this)
+ {
+ if (extensions == null)
+ {
+ loadExtensions();
+ }
+ }
+ return extensions.get(extension);
+ }
+
+ @Override
public Icon getIcon(File f)
{
String extension = getExtension(f);
Icon icon = null;
- if (extension != null)
+ if (getDescriptionForExtension(extension) != null)
{
- if (alignSuffix.containsKey(extension))
- {
- icon = createImageIcon("/images/file.png");
- }
+ icon = getImageIcon("/images/file.png");
}
return icon;
}
- /*
- * Get the extension of a file.
+ /**
+ * Returns the extension of a file (part of the name after the last period),
+ * in lower case, or null if the name ends in or does not include a period.
*/
public static String getExtension(File f)
{
return ext;
}
- /** Returns an ImageIcon, or null if the path was invalid. */
- protected static ImageIcon createImageIcon(String path)
+ /**
+ * Returns an ImageIcon, or null if the file was not found
+ *
+ * @param filePath
+ */
+ protected ImageIcon getImageIcon(String filePath)
{
- java.net.URL imgURL = JalviewFileView.class.getResource(path);
-
- if (imgURL != null)
+ /*
+ * we reuse a single icon object per path here
+ */
+ synchronized (this)
{
- return new ImageIcon(imgURL);
+ if (icons == null)
+ {
+ icons = new HashMap<String, ImageIcon>();
+ }
+ if (!icons.containsKey(filePath))
+ {
+ ImageIcon icon = null;
+ URL imgURL = JalviewFileView.class.getResource(filePath);
+ if (imgURL != null)
+ {
+ icon = new ImageIcon(imgURL);
+ }
+ else
+ {
+ System.err
+ .println("JalviewFileView.createImageIcon: Couldn't find file: "
+ + filePath);
+ }
+ icons.put(filePath, icon);
+ }
}
- else
- {
- System.err
- .println("JalviewFileView.createImageIcon: Couldn't find file: "
- + path);
- return null;
- }
+ /*
+ * return the image from the table (which may be null if
+ * icon creation failed)
+ */
+ return icons.get(filePath);
}
}
if (id.equals("JNETCONF"))
{
annot = new AlignmentAnnotation(preds[i].getName(),
- "JNet Output", annotations, 0f, 10f,
+ "JPred Output", annotations, 0f, 10f,
AlignmentAnnotation.BAR_GRAPH);
}
else
{
annot = new AlignmentAnnotation(preds[i].getName(),
- "JNet Output", annotations);
+ "JPred Output", annotations);
}
if (seqRef != null)
* @throws IOException
* DOCUMENT ME!
*/
- public MSFfile(String inFile, String type) throws IOException
+ public MSFfile(String inFile, DataSourceType type) throws IOException
{
super(inFile, type);
}
*
* @return DOCUMENT ME!
*/
- public String print(SequenceI[] sqs)
+ @Override
+ public String print(SequenceI[] sqs, boolean jvSuffix)
{
boolean is_NA = Comparison.isNucleotide(sqs);
while ((i < s.length) && (s[i] != null))
{
- nameBlock[i] = new String(" Name: " + printId(s[i]) + " ");
+ nameBlock[i] = new String(" Name: " + printId(s[i], jvSuffix) + " ");
idBlock[i] = new String("Len: "
+ maxLenpad.form(s[i].getSequence().length) + " Check: "
while ((j < s.length) && (s[j] != null))
{
- String name = printId(s[j]);
+ String name = printId(s[j], jvSuffix);
out.append(new Format("%-" + maxid + "s").form(name + " "));
return out.toString();
}
-
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- @Override
- public String print()
- {
- return print(getSeqsAsArray());
- }
}
*/
public NewickFile(String inStr) throws IOException
{
- super(inStr, "Paste");
+ super(inStr, DataSourceType.PASTE);
}
/**
*
* @param inFile
* DOCUMENT ME!
- * @param type
+ * @param protocol
* DOCUMENT ME!
*
* @throws IOException
* DOCUMENT ME!
*/
- public NewickFile(String inFile, String type) throws IOException
+ public NewickFile(String inFile, DataSourceType protocol)
+ throws IOException
{
- super(inFile, type);
+ super(inFile, protocol);
}
public NewickFile(FileParse source) throws IOException
treefile.close();
System.out.println("Read file :\n");
- NewickFile trf = new NewickFile(args[0], "File");
+ NewickFile trf = new NewickFile(args[0], DataSourceType.FILE);
trf.parse();
System.out.println("Original file :\n");
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
+import jalview.util.Comparison;
import java.io.IOException;
import java.util.Vector;
{
}
- public PIRFile(String inFile, String type) throws IOException
+ public PIRFile(String inFile, DataSourceType sourceType)
+ throws IOException
{
- super(inFile, type);
+ super(inFile, sourceType);
}
public PIRFile(FileParse source) throws IOException
}
@Override
- public String print()
+ public String print(SequenceI[] s, boolean jvsuffix)
{
- return print(getSeqsAsArray());
- }
-
- public String print(SequenceI[] s)
- {
- boolean is_NA = jalview.util.Comparison.isNucleotide(s);
+ boolean is_NA = Comparison.isNucleotide(s);
int len = 72;
StringBuffer out = new StringBuffer();
int i = 0;
}
else
{
- out.append(">P1;" + printId(s[i]));
+ out.append(">P1;" + printId(s[i], jvsuffix));
out.append(newline);
if (s[i].getDescription() != null)
{
{
}
- public PfamFile(String inFile, String type) throws IOException
+ public PfamFile(String inFile, DataSourceType sourceType)
+ throws IOException
{
- super(inFile, type);
+ super(inFile, sourceType);
}
public PfamFile(FileParse source) throws IOException
}
}
- public String print(SequenceI[] s)
+ @Override
+ public String print(SequenceI[] s, boolean jvsuffix)
{
StringBuffer out = new StringBuffer("");
while ((i < s.length) && (s[i] != null))
{
- String tmp = printId(s[i]);
+ String tmp = printId(s[i], jvsuffix);
if (s[i].getSequence().length > max)
{
while ((j < s.length) && (s[j] != null))
{
- out.append(new Format("%-" + maxid + "s").form(printId(s[j]) + " "));
+ out.append(new Format("%-" + maxid + "s")
+ .form(printId(s[j], jvsuffix) + " "));
out.append(s[j].getSequenceAsString());
out.append(newline);
return out.toString();
}
-
- @Override
- public String print()
- {
- return print(getSeqsAsArray());
- }
}
public class PhylipFile extends AlignFile
{
- // Define file extension and description to save repeating it elsewhere
- public static final String FILE_EXT = "phy";
-
public static final String FILE_DESC = "PHYLIP";
/**
/**
* @param inFile
- * @param type
+ * @param sourceType
* @throws IOException
* @see {@link AlignFile#AlignFile(FileParse)}
*/
- public PhylipFile(String inFile, String type) throws IOException
+ public PhylipFile(String inFile, DataSourceType sourceType)
+ throws IOException
{
- super(inFile, type);
+ super(inFile, sourceType);
}
/**
* @see {@link AlignFile#print()}
*/
@Override
- public String print()
+ public String print(SequenceI[] sqs, boolean jvsuffix)
{
- StringBuffer sb = new StringBuffer(Integer.toString(seqs.size()));
+ StringBuffer sb = new StringBuffer(Integer.toString(sqs.length));
sb.append(" ");
// if there are no sequences, then define the number of characters as 0
sb.append(
- (seqs.size() > 0) ? Integer
- .toString(seqs.get(0).getSequence().length) : "0")
+ (sqs.length > 0) ? Integer.toString(sqs[0].getSequence().length)
+ : "0")
.append(newline);
// Due to how IO is handled, there doesn't appear to be a way to store
int numInterleavedColumns = 60;
int sequenceLength = 0;
- for (SequenceI s : seqs)
+ for (SequenceI s : sqs)
{
// ensure name is only 10 characters
// add blank line to separate this matrix from previous
sb.append(newline);
int start = i * numInterleavedColumns;
- for (SequenceI s : seqs)
+ for (SequenceI s : sqs)
{
sb.append(
s.getSequence(start, Math.min(start
*
* @param inFile
* DOCUMENT ME!
- * @param type
+ * @param sourceType
* DOCUMENT ME!
*
* @throws IOException
* DOCUMENT ME!
*/
- public PileUpfile(String inFile, String type) throws IOException
+ public PileUpfile(String inFile, DataSourceType sourceType)
+ throws IOException
{
- super(inFile, type);
+ super(inFile, sourceType);
}
public PileUpfile(FileParse source) throws IOException
super(source);
}
- /**
- * DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
- @Override
- public String print()
- {
- return print(getSeqsAsArray());
- }
-
@Override
- public String print(SequenceI[] s)
+ public String print(SequenceI[] s, boolean jvsuffix)
{
StringBuffer out = new StringBuffer("PileUp");
out.append(newline);
while ((i < s.length) && (s[i] != null))
{
String seq = s[i].getSequenceAsString();
- out.append(" Name: " + printId(s[i]) + " oo Len: " + seq.length()
+ out.append(" Name: " + printId(s[i], jvsuffix) + " oo Len: "
+ + seq.length()
+ " Check: " + checksums[i] + " Weight: 1.00");
out.append(newline);
while ((j < s.length) && (s[j] != null))
{
- String name = printId(s[j]);
+ String name = printId(s[j], jvsuffix);
out.append(new Format("%-" + maxid + "s").form(name + " "));
}
- public RnamlFile(String inFile, String type) throws IOException
+ public RnamlFile(String inFile, DataSourceType type) throws IOException
{
super(inFile, type);
setSeqs(sqs);
}
- public static String print(SequenceI[] s)
- {
- return "not yet implemented";
- }
-
@Override
- public String print()
+ public String print(SequenceI[] s, boolean jvSuffix)
{
- System.out.print("print :");
- return print(getSeqsAsArray());
+ return "not yet implemented";
}
public List<RNA> getRNA()
void appendFeature(final StringBuilder sb, int rpos,
Map<String, float[][]> minmax, SequenceFeature feature)
{
- String tmpString;
- if (feature.getType().equals("disulfide bond"))
+ if (feature.isContactFeature())
{
if (feature.getBegin() == rpos || feature.getEnd() == rpos)
{
{
sb.append("<br>");
}
- sb.append("disulfide bond ").append(feature.getBegin()).append(":")
+ sb.append(feature.getType()).append(" ").append(feature.getBegin())
+ .append(":")
.append(feature.getEnd());
}
}
if (feature.getDescription() != null
&& !feature.description.equals(feature.getType()))
{
- tmpString = feature.getDescription();
+ String tmpString = feature.getDescription();
String tmp2up = tmpString.toUpperCase();
int startTag = tmp2up.indexOf("<HTML>");
if (startTag > -1)
// check score should be shown
if (!Float.isNaN(feature.getScore()))
{
- float[][] rng = (minmax == null) ? null : ((float[][]) minmax
- .get(feature.getType()));
+ float[][] rng = (minmax == null) ? null : minmax.get(feature
+ .getType());
if (rng != null && rng[0] != null && rng[0][0] != rng[0][1])
{
- sb.append(" Score=" + feature.getScore());
+ sb.append(" Score=").append(String.valueOf(feature.getScore()));
}
}
String status = (String) feature.getValue("status");
{
}
- public SimpleBlastFile(String inFile, String type) throws IOException
+ public SimpleBlastFile(String inFile, DataSourceType sourceType)
+ throws IOException
{
- super(inFile, type);
+ super(inFile, sourceType);
}
public SimpleBlastFile(FileParse source) throws IOException
super(source);
}
+ @Override
public void initData()
{
super.initData();
seqids = new Vector();
}
+ @Override
public void parse() throws IOException
{
String line;
}
}
- public String print(SequenceI[] s)
+ @Override
+ public String print(SequenceI[] sqs, boolean jvsuffix)
{
return new String("Not Implemented.");
}
-
- public String print()
- {
- return print(getSeqsAsArray());
- }
}
this.al = al;
}
- public StockholmFile(String inFile, String type) throws IOException
+ public StockholmFile(String inFile, DataSourceType type)
+ throws IOException
{
super(inFile, type);
}
return annot;
}
- public String print(SequenceI[] s)
+ @Override
+ public String print(SequenceI[] s, boolean jvSuffix)
{
+ out = new StringBuffer();
+ out.append("# STOCKHOLM 1.0");
+ out.append(newline);
+
// find max length of id
int max = 0;
int maxid = 0;
Hashtable dataRef = null;
while ((in < s.length) && (s[in] != null))
{
- String tmp = printId(s[in]);
+ String tmp = printId(s[in], jvSuffix);
if (s[in].getSequence().length > max)
{
max = s[in].getSequence().length;
// out.append("#=GR ");
out.append(new Format("%-" + maxid + "s").form("#=GR "
- + printId(s[i]) + " " + key + " "));
+ + printId(s[i], jvSuffix) + " " + key + " "));
ann = alAnot[j].annotations;
boolean isrna = alAnot[j].isValidStruc();
String seq = "";
}
}
- out.append(new Format("%-" + maxid + "s").form(printId(s[i]) + " "));
+ out.append(new Format("%-" + maxid + "s")
+ .form(printId(s[i], jvSuffix) + " "));
out.append(s[i].getSequenceAsString());
out.append(newline);
i++;
out.append(newline);
}
}
+
+ out.append("//");
+ out.append(newline);
+
return out.toString();
}
return seq;
}
- @Override
public String print()
{
out = new StringBuffer();
out.append("# STOCKHOLM 1.0");
out.append(newline);
- print(getSeqsAsArray());
+ print(getSeqsAsArray(), false);
out.append("//");
out.append(newline);
public abstract class StructureFile extends AlignFile
{
-
private String id;
- public enum StructureFileType
- {
- PDB, MMCIF, MMTF
- };
-
private PDBEntry.Type dbRefType;
/**
private boolean pdbIdAvailable;
- public StructureFile(String inFile, String type) throws IOException
+ public StructureFile(String inFile, DataSourceType sourceType)
+ throws IOException
{
- super(inFile, type);
+ super(inFile, sourceType);
}
public StructureFile(FileParse fp) throws IOException
}
public StructureFile(boolean parseImmediately, String dataObject,
- String type) throws IOException
+ DataSourceType sourceType) throws IOException
{
- super(parseImmediately, dataObject, type);
+ super(parseImmediately, dataObject, sourceType);
}
public StructureFile(boolean a, FileParse fp) throws IOException
new Object[] {});
AlignmentI al = ((AlignmentI) cl.getMethod("getRNAMLFor",
new Class[] { FileParse.class }).invoke(annotate3d,
- new Object[] { new FileParse(getDataName(), type) }));
+ new Object[] { new FileParse(getDataName(), dataSourceType) }));
for (SequenceI sq : al.getSequences())
{
if (sq.getDatasetSequence() != null)
Class cl = Class.forName("jalview.ext.jmol.JmolParser");
if (cl != null)
{
- final Constructor constructor = cl
- .getConstructor(new Class[] { FileParse.class });
- final Object[] args = new Object[] { new FileParse(getDataName(),
- type) };
+ final Constructor constructor = cl.getConstructor(new Class[] {FileParse.class });
+ final Object[] args = new Object[] { new FileParse(getDataName(), dataSourceType) };
StructureImportSettings.setShowSeqFeatures(false);
StructureImportSettings.setVisibleChainAnnotation(false);
{
this.pdbIdAvailable = pdbIdAvailable;
}
-
- public static boolean isStructureFile(String fileType)
- {
- if (fileType == null)
- {
- return false;
- }
- for (StructureFileType sfType : StructureFileType.values())
- {
- if (sfType.name().equalsIgnoreCase(fileType))
- {
- return true;
- }
- }
- return false;
- }
}
*/
public class TCoffeeScoreFile extends AlignFile
{
- public TCoffeeScoreFile(String inFile, String type) throws IOException
+ public TCoffeeScoreFile(String inFile, DataSourceType fileSourceType)
+ throws IOException
{
- super(inFile, type);
+ super(inFile, fileSourceType);
}
return result;
}
+ @Override
public void parse() throws IOException
{
/*
}
@Override
- public String print()
+ public String print(SequenceI[] sqs, boolean jvsuffix)
{
// TODO Auto-generated method stub
return "Not valid.";
import jalview.gui.AlignmentPanel;
import jalview.gui.CutAndPasteTransfer;
import jalview.gui.Desktop;
+import jalview.gui.JvOptionPane;
import jalview.util.MessageManager;
import java.util.ArrayList;
import java.util.Vector;
import javax.swing.ImageIcon;
-import javax.swing.JOptionPane;
import uk.ac.ebi.www.Data;
import uk.ac.ebi.www.InputParams;
{
// This must be outside the run() body as java 1.5
// will not return any value from the OptionPane to the expired thread.
- int reply = JOptionPane.showConfirmDialog(Desktop.desktop,
+ int reply = JvOptionPane.showConfirmDialog(Desktop.desktop,
"Automatically update suggested ids?",
- "Auto replace sequence ids", JOptionPane.YES_NO_OPTION);
+ "Auto replace sequence ids", JvOptionPane.YES_NO_OPTION);
- if (reply == JOptionPane.YES_OPTION)
+ if (reply == JvOptionPane.YES_OPTION)
{
Enumeration keys = suggestedIds.elements();
while (keys.hasMoreElements())
}
}
+ @Override
public void run()
{
while (jobsRunning > 0)
this.sequence = sequence;
}
+ @Override
public void run()
{
StartJob();
import jalview.api.FeatureColourI;
import jalview.datamodel.AlignmentI;
import jalview.io.AppletFormatAdapter;
+import jalview.io.FileFormatI;
import jalview.io.FileParse;
import jalview.io.FormatAdapter;
import jalview.io.IdentifyFile;
FileParse src = dta.getDataSource();
if (dta.getType().equals(DataProvider.JvDataType.ALIGNMENT))
{
- String fmt = null;
+ FileFormatI fmt = null;
try
{
fmt = new IdentifyFile().identify(src, false);
if (fmt != null)
{
- if (!FormatAdapter.isValidIOFormat(fmt, false))
+ // parse the alignment
+ AlignmentI al = null;
+ try
{
- errmsg = fmt;
- exerror = null;
+ al = new FormatAdapter().readFromFile(src, fmt);
+ } catch (Exception e)
+ {
+ errmsg = "Failed to parse alignment from result set";
+ exerror = e;
}
- else
+ if (al != null)
{
- // parse the alignment
- AlignmentI al = null;
- try
- {
- al = new FormatAdapter().readFromFile(src, fmt);
- } catch (Exception e)
- {
- errmsg = "Failed to parse alignment from result set";
- exerror = e;
- }
- if (al != null)
- {
- // deuniquify and construct/merge additional dataset entries if
- // necessary.
- context.addAlignment(al);
- context.updateSetModified(true);
- rslt.add(al);
- deuniquify = true;
- }
+ // deuniquify and construct/merge additional dataset entries if
+ // necessary.
+ context.addAlignment(al);
+ context.updateSetModified(true);
+ rslt.add(al);
+ deuniquify = true;
}
}
}
*/
package jalview.jbgui;
+import jalview.io.FileFormatI;
import jalview.util.MessageManager;
import java.awt.BorderLayout;
showDialog;
public GAlignExportSettings(boolean hasHiddenSeq, boolean hasHiddenCols,
- String alignFileFormat)
+ FileFormatI format)
{
this.hasHiddenSeq = hasHiddenSeq;
this.hasHiddenCols = hasHiddenCols;
- String[] complexFormats = { "JSON", "HTML" };
-
- for (String format : complexFormats)
- {
- if (format.equalsIgnoreCase(alignFileFormat))
- {
- this.isComplexAlignFile = true;
- break;
- }
- }
+ this.isComplexAlignFile = format.isComplexAlignFile();
if (this.hasHiddenCols || this.hasHiddenSeq || this.isComplexAlignFile)
{
this.showDialog = true;
chkAll.addItemListener(new ItemListener()
{
+ @Override
public void itemStateChanged(ItemEvent e)
{
checkAllAction();
btnOk.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
ok_actionPerformed(e);
btnCancel.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
cancel_actionPerformed(e);
import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
import jalview.api.SplitContainerI;
import jalview.bin.Cache;
+import jalview.gui.JvOptionPane;
import jalview.gui.JvSwingUtils;
import jalview.gui.Preferences;
+import jalview.io.FileFormat;
import jalview.schemes.ColourSchemeProperty;
import jalview.util.MessageManager;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JTabbedPane;
setJMenuBar(alignFrameMenuBar);
// dynamically fill save as menu with available formats
- for (int i = 0; i < jalview.io.FormatAdapter.WRITEABLE_FORMATS.length; i++)
+ for (String ff : FileFormat.getWritableFormats(true))
{
- JMenuItem item = new JMenuItem(
- jalview.io.FormatAdapter.WRITEABLE_FORMATS[i]);
+ JMenuItem item = new JMenuItem(ff);
item.addActionListener(new ActionListener()
{
{
radioItem.removeActionListener(radioItem.getActionListeners()[0]);
- int option = JOptionPane.showInternalConfirmDialog(
+ int option = JvOptionPane.showInternalConfirmDialog(
jalview.gui.Desktop.desktop, MessageManager
.getString("label.remove_from_default_list"),
MessageManager
.getString("label.remove_user_defined_colour"),
- JOptionPane.YES_NO_OPTION);
- if (option == JOptionPane.YES_OPTION)
+ JvOptionPane.YES_NO_OPTION);
+ if (option == JvOptionPane.YES_OPTION)
{
jalview.gui.UserDefinedColours
.removeColourFromDefaults(radioItem.getText());
package jalview.jbgui;
import jalview.api.AlignmentViewPanel;
+import jalview.io.FileFormatException;
import jalview.util.MessageManager;
import java.awt.FlowLayout;
inputLocalFileMenuItem
.addActionListener(new java.awt.event.ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
inputLocalFileMenuItem_actionPerformed(null);
inputURLMenuItem.setText(MessageManager.getString("label.from_url"));
inputURLMenuItem.addActionListener(new java.awt.event.ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
- inputURLMenuItem_actionPerformed(null);
+ try
+ {
+ inputURLMenuItem_actionPerformed(null);
+ } catch (FileFormatException e1)
+ {
+ System.err.println("Error loading from URL: " + e1.getMessage());
+ }
}
});
inputTextboxMenuItem.setText(MessageManager
inputTextboxMenuItem
.addActionListener(new java.awt.event.ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
inputTextboxMenuItem_actionPerformed(null);
quit.setText(MessageManager.getString("action.quit"));
quit.addActionListener(new java.awt.event.ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
quit();
aboutMenuItem.setText(MessageManager.getString("label.about"));
aboutMenuItem.addActionListener(new java.awt.event.ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
aboutMenuItem_actionPerformed(e);
documentationMenuItem
.addActionListener(new java.awt.event.ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
documentationMenuItem_actionPerformed(e);
preferences.setText(MessageManager.getString("label.preferences"));
preferences.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
preferences_actionPerformed(e);
saveState.setText(MessageManager.getString("action.save_project"));
saveState.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
saveState_actionPerformed(e);
loadState.setText(MessageManager.getString("action.load_project"));
loadState.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
loadState_actionPerformed(e);
vamsasStart.setVisible(false);
vamsasStart.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
vamsasStart_actionPerformed(e);
vamsasImport.setVisible(false);
vamsasImport.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
vamsasImport_actionPerformed(e);
vamsasSave.setVisible(false);
vamsasSave.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
vamsasSave_actionPerformed(e);
.getString("action.fetch_sequences"));
inputSequence.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
inputSequence_actionPerformed(e);
vamsasStop.setVisible(false);
vamsasStop.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
vamsasStop_actionPerformed(e);
closeAll.setText(MessageManager.getString("action.close_all"));
closeAll.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
closeAll_actionPerformed(e);
.getString("action.raise_associated_windows"));
raiseRelated.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
raiseRelated_actionPerformed(e);
.getString("action.minimize_associated_windows"));
minimizeAssociated.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
minimizeAssociated_actionPerformed(e);
.getString("label.collect_garbage"));
garbageCollect.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
garbageCollect_actionPerformed(e);
.getString("label.show_memory_usage"));
showMemusage.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
showMemusage_actionPerformed(e);
.setText(MessageManager.getString("label.show_java_console"));
showConsole.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
showConsole_actionPerformed(e);
showNews.setText(MessageManager.getString("label.show_jalview_news"));
showNews.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
showNews_actionPerformed(e);
snapShotWindow.setText(MessageManager.getString("label.take_snapshot"));
snapShotWindow.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
snapShotWindow_actionPerformed(e);
*
* @param e
* DOCUMENT ME!
+ * @throws FileFormatException
*/
protected void inputURLMenuItem_actionPerformed(
- jalview.gui.AlignViewport av)
+ jalview.gui.AlignViewport av) throws FileFormatException
{
}
package jalview.jbgui;
import jalview.datamodel.AlignmentI;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
import jalview.io.FormatAdapter;
import jalview.util.MessageManager;
findAll.setText(MessageManager.getString("action.find_all"));
findAll.addActionListener(new java.awt.event.ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
findAll_actionPerformed(e);
findNext.setText(MessageManager.getString("action.find_next"));
findNext.addActionListener(new java.awt.event.ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
findNext_actionPerformed(e);
createNewGroup.setText(MessageManager.getString("label.new_feature"));
createNewGroup.addActionListener(new java.awt.event.ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
createNewGroup_actionPerformed(e);
textfield.setLineWrap(true);
textfield.addCaretListener(new CaretListener()
{
+ @Override
public void caretUpdate(CaretEvent e)
{
textfield_caretUpdate(e);
});
textfield.addKeyListener(new java.awt.event.KeyAdapter()
{
+ @Override
public void keyPressed(KeyEvent e)
{
textfield_keyPressed(e);
{
SwingUtilities.invokeLater(new Runnable()
{
+ @Override
public void run()
{
String str = textfield.getText();
AlignmentI al = null;
try
{
- al = new FormatAdapter().readFile(str, "Paste", "FASTA");
+ al = new FormatAdapter().readFile(str, DataSourceType.PASTE,
+ FileFormat.Fasta);
} catch (Exception ex)
{
}
*/
package jalview.jbgui;
+import jalview.gui.JvOptionPane;
import jalview.gui.JvSwingUtils;
import jalview.util.MessageManager;
import jalview.util.UrlLink;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
-import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
return true;
}
- JOptionPane.showInternalMessageDialog(jalview.gui.Desktop.desktop,
+ JvOptionPane.showInternalMessageDialog(jalview.gui.Desktop.desktop,
MessageManager.getString("warn.url_must_contain"),
MessageManager.getString("label.invalid_url"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return false;
}
}
/**
- * This is used by the Molecule Viewer and Overview to get the accurate colour
- * of the rendered sequence
+ * This is used by Structure Viewers and the Overview Window to get the
+ * feature colour of the rendered sequence, returned as an RGB value
+ *
+ * @param defaultColour
+ * @param seq
+ * @param column
+ * @return
*/
- public synchronized int findFeatureColour(int initialCol,
+ public synchronized int findFeatureColour(int defaultColour,
final SequenceI seq, int column)
{
if (!av.isShowSequenceFeatures())
{
- return initialCol;
+ return defaultColour;
}
SequenceFeature[] sequenceFeatures = seq.getSequenceFeatures();
if (lastSequenceFeatures == null || sfSize == 0)
{
- return initialCol;
+ return defaultColour;
}
if (jalview.util.Comparison.isGap(lastSeq.getCharAt(column)))
if (offscreenImage != null)
{
- offscreenImage.setRGB(0, 0, initialCol);
+ offscreenImage.setRGB(0, 0, defaultColour);
drawSequence(offscreenImage.getGraphics(), lastSeq, column, column, 0);
return offscreenImage.getRGB(0, 0);
if (currentColour == null)
{
- return initialCol;
+ return defaultColour;
}
else
{
int epos;
+ /**
+ * Draws the sequence on the graphics context, or just determines the colour
+ * that would be drawn (if flag offscreenrender is true).
+ *
+ * @param g
+ * @param seq
+ * @param start
+ * start column (or sequence position in offscreenrender mode)
+ * @param end
+ * end column (not used in offscreenrender mode)
+ * @param y1
+ * vertical offset at which to draw on the graphics
+ */
public synchronized void drawSequence(Graphics g, final SequenceI seq,
int start, int end, int y1)
{
}
sfSize = lastSequenceFeatures.length;
- String type;
for (int renderIndex = 0; renderIndex < renderOrder.length; renderIndex++)
{
- type = renderOrder[renderIndex];
-
- if (type == null || !showFeatureOfType(type))
+ String type = renderOrder[renderIndex];
+ if (!showFeatureOfType(type))
{
continue;
}
continue;
}
- if (featureGroups != null
- && sequenceFeature.featureGroup != null
- && sequenceFeature.featureGroup.length() != 0
- && featureGroups.containsKey(sequenceFeature.featureGroup)
- && !featureGroups.get(sequenceFeature.featureGroup)
- .booleanValue())
+ if (featureGroupNotShown(sequenceFeature))
{
continue;
}
+ /*
+ * check feature overlaps the visible part of the alignment,
+ * unless doing offscreenRender (to the Overview window or a
+ * structure viewer) which is not limited
+ */
if (!offscreenRender
&& (sequenceFeature.getBegin() > epos || sequenceFeature
.getEnd() < spos))
continue;
}
+ Color featureColour = getColour(sequenceFeature);
+ boolean isContactFeature = sequenceFeature.isContactFeature();
+
if (offscreenRender && offscreenImage == null)
{
- if (sequenceFeature.begin <= start
- && sequenceFeature.end >= start)
+ /*
+ * offscreen mode with no image (image is only needed if transparency
+ * is applied to feature colours) - just check feature is rendered at
+ * the requested position (start == sequence position in this mode)
+ */
+ boolean featureIsAtPosition = sequenceFeature.begin <= start
+ && sequenceFeature.end >= start;
+ if (isContactFeature)
+ {
+ featureIsAtPosition = sequenceFeature.begin == start
+ || sequenceFeature.end == start;
+ }
+ if (featureIsAtPosition)
{
// this is passed out to the overview and other sequence renderers
// (e.g. molecule viewer) to get displayed colour for rendered
// sequence
- currentColour = new Integer(getColour(sequenceFeature).getRGB());
+ currentColour = new Integer(featureColour.getRGB());
// used to be retreived from av.featuresDisplayed
// currentColour = av.featuresDisplayed
// .get(sequenceFeatures[sfindex].type);
}
}
- else if (sequenceFeature.type.equals("disulfide bond"))
+ else if (isContactFeature)
{
renderFeature(g, seq, seq.findIndex(sequenceFeature.begin) - 1,
- seq.findIndex(sequenceFeature.begin) - 1,
- getColour(sequenceFeature)
- // new Color(((Integer) av.featuresDisplayed
- // .get(sequenceFeatures[sfindex].type)).intValue())
- , start, end, y1);
+ seq.findIndex(sequenceFeature.begin) - 1, featureColour,
+ start, end, y1);
renderFeature(g, seq, seq.findIndex(sequenceFeature.end) - 1,
- seq.findIndex(sequenceFeature.end) - 1,
- getColour(sequenceFeature)
- // new Color(((Integer) av.featuresDisplayed
- // .get(sequenceFeatures[sfindex].type)).intValue())
- , start, end, y1);
+ seq.findIndex(sequenceFeature.end) - 1, featureColour,
+ start, end, y1);
}
else if (showFeature(sequenceFeature))
renderScoreFeature(g, seq,
seq.findIndex(sequenceFeature.begin) - 1,
seq.findIndex(sequenceFeature.end) - 1,
- getColour(sequenceFeature), start, end, y1,
+ featureColour, start, end, y1,
normaliseScore(sequenceFeature));
}
else
{
renderFeature(g, seq, seq.findIndex(sequenceFeature.begin) - 1,
seq.findIndex(sequenceFeature.end) - 1,
- getColour(sequenceFeature), start, end, y1);
+ featureColour, start, end, y1);
}
}
-
}
-
}
if (transparency != 1.0f && g != null)
}
/**
+ * Answers true if the feature belongs to a feature group which is not
+ * currently displayed, else false
+ *
+ * @param sequenceFeature
+ * @return
+ */
+ protected boolean featureGroupNotShown(
+ final SequenceFeature sequenceFeature)
+ {
+ return featureGroups != null
+ && sequenceFeature.featureGroup != null
+ && sequenceFeature.featureGroup.length() != 0
+ && featureGroups.containsKey(sequenceFeature.featureGroup)
+ && !featureGroups.get(sequenceFeature.featureGroup)
+ .booleanValue();
+ }
+
+ /**
* Called when alignment in associated view has new/modified features to
* discover and display.
*
StructureImportSettings.showSeqFeatures = showSeqFeatures;
}
- public static String getDefaultStructureFileFormat()
+ public static PDBEntry.Type getDefaultStructureFileFormat()
{
- return defaultStructureFileFormat.toString();
+ return defaultStructureFileFormat;
}
public static void setDefaultStructureFileFormat(
import jalview.datamodel.SequenceI;
import jalview.ext.jmol.JmolParser;
import jalview.gui.IProgressIndicator;
-import jalview.io.AppletFormatAdapter;
+import jalview.io.DataSourceType;
import jalview.io.StructureFile;
import jalview.util.MappingUtils;
import jalview.util.MessageManager;
* @return null or the structure data parsed as a pdb file
*/
synchronized public StructureFile setMapping(SequenceI[] sequence,
- String[] targetChains, String pdbFile, String protocol)
+ String[] targetChains, String pdbFile, DataSourceType protocol)
{
return setMapping(true, sequence, targetChains, pdbFile, protocol);
}
* (may be nill, individual elements may be nill)
* @param pdbFile
* - structure data resource
- * @param protocol
+ * @param sourceType
* - how to resolve data from resource
* @return null or the structure data parsed as a pdb file
*/
synchronized public StructureFile setMapping(boolean forStructureView,
SequenceI[] sequenceArray, String[] targetChainIds,
- String pdbFile, String protocol)
+ String pdbFile, DataSourceType sourceType)
{
/*
* There will be better ways of doing this in the future, for now we'll use
boolean isMapUsingSIFTs = SiftsSettings.isMapWithSifts();
try
{
- pdb = new JmolParser(pdbFile, protocol);
+ pdb = new JmolParser(pdbFile, sourceType);
if (pdb.getId() != null && pdb.getId().trim().length() > 0
- && AppletFormatAdapter.FILE.equals(protocol))
+ && DataSourceType.FILE == sourceType)
{
registerPDBFile(pdb.getId().trim(), pdbFile);
}
continue;
}
- if (protocol.equals(jalview.io.AppletFormatAdapter.PASTE))
+ if (sourceType == DataSourceType.PASTE)
{
pdbFile = "INLINE" + pdb.getId();
}
- ArrayList<StructureMapping> seqToStrucMapping = new ArrayList<StructureMapping>();
+ List<StructureMapping> seqToStrucMapping = new ArrayList<StructureMapping>();
if (isMapUsingSIFTs && seq.isProtein())
{
setProgressBar(null);
}
else
{
- ArrayList<StructureMapping> foundSiftsMappings = new ArrayList<StructureMapping>();
+ List<StructureMapping> foundSiftsMappings = new ArrayList<StructureMapping>();
for (PDBChain chain : pdb.getChains())
{
try
import jalview.datamodel.AlignmentI;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
+import jalview.io.DataSourceType;
import jalview.structure.AtomSpec;
import jalview.structure.StructureListener;
import jalview.structure.StructureMapping;
/*
* datasource protocol for access to PDBEntrylatest
*/
- String protocol = null;
+ DataSourceType protocol = null;
protected boolean colourBySequence = true;
*/
public AAStructureBindingModel(StructureSelectionManager ssm,
PDBEntry[] pdbentry, SequenceI[][] sequenceIs,
- String protocol)
+ DataSourceType protocol)
{
this.ssm = ssm;
this.sequence = sequenceIs;
return chains;
}
- public String getProtocol()
+ public DataSourceType getProtocol()
{
return protocol;
}
*/
package jalview.util;
+import jalview.bin.Cache;
import jalview.bin.Jalview;
import jalview.gui.EPSOptions;
import jalview.gui.IProgressIndicator;
public class ImageMaker
{
+ public static final String SVG_DESCRIPTION = "Scalable Vector Graphics";
+
+ public static final String SVG_EXTENSION = "svg";
+
+ public static final String EPS_DESCRIPTION = "Encapsulated Postscript";
+
+ public static final String EPS_EXTENSION = "eps";
+
+ public static final String PNG_EXTENSION = "png";
+
+ public static final String PNG_DESCRIPTION = "Portable network graphics";
+
+ public static final String HTML_EXTENSION = "html";
+
+ public static final String HTML_DESCRIPTION = "Hypertext Markup Language";
+
EpsGraphics2D pg;
SVGGraphics2D g2;
out.close();
break;
case PNG:
- ImageIO.write(bi, "png", out);
+ ImageIO.write(bi, PNG_EXTENSION, out);
out.flush();
out.close();
break;
{
return null;
}
- return new jalview.io.JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"),
- new String[] { "png" },
- new String[] { "Portable network graphics" },
- "Portable network graphics");
+ return new JalviewFileChooser(Cache.getProperty("LAST_DIRECTORY"),
+ PNG_EXTENSION, PNG_DESCRIPTION, PNG_DESCRIPTION);
}
static JalviewFileChooser getEPSChooser()
{
return null;
}
- return new jalview.io.JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"),
- new String[] { "eps" },
- new String[] { "Encapsulated Postscript" },
- "Encapsulated Postscript");
+ return new JalviewFileChooser(Cache.getProperty("LAST_DIRECTORY"),
+ EPS_EXTENSION, EPS_DESCRIPTION, EPS_DESCRIPTION);
}
private void setProgressMessage(String message)
{
return null;
}
- return new jalview.io.JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"),
- new String[] { "svg" },
- new String[] { "Scalable Vector Graphics" },
- "Scalable Vector Graphics");
+ return new JalviewFileChooser(Cache.getProperty("LAST_DIRECTORY"),
+ SVG_EXTENSION, SVG_DESCRIPTION, SVG_DESCRIPTION);
}
}
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.util;
import jalview.ext.android.SparseIntArray;
continue;
}
- if ((features[i].getBegin() <= res)
- && (features[i].getEnd() >= res))
+ // check if start/end are at res, and if not a contact feature, that res
+ // lies between start and end
+ if ((features[i].getBegin() == res || features[i].getEnd() == res)
+ || (!features[i].isContactFeature()
+ && (features[i].getBegin() < res) && (features[i]
+ .getEnd() >= res)))
{
tmp.add(features[i]);
}
return fc.isColored(sequenceFeature);
}
+ /**
+ * Answers true if the feature type is currently selected to be displayed,
+ * else false
+ *
+ * @param type
+ * @return
+ */
protected boolean showFeatureOfType(String type)
{
- return av.getFeaturesDisplayed().isVisible(type);
+ return type == null ? false : av.getFeaturesDisplayed().isVisible(type);
}
@Override
import jalview.gui.AlignFrame;
import jalview.gui.Desktop;
import jalview.gui.FeatureSettings;
+import jalview.gui.JvOptionPane;
import jalview.util.DBRefUtils;
import jalview.util.MessageManager;
import jalview.util.UrlLink;
import java.util.StringTokenizer;
import java.util.Vector;
-import javax.swing.JOptionPane;
-
import org.biodas.jdas.client.FeaturesClient;
import org.biodas.jdas.client.adapters.features.DasGFFAdapter;
import org.biodas.jdas.client.adapters.features.DasGFFAdapter.GFFAdapter;
if (checkDbrefs && refCount < sequences.length && uniprotCount > 0)
{
- int reply = JOptionPane.YES_OPTION;
+ int reply = JvOptionPane.YES_OPTION;
if (promptFetchDbrefs)
{
- reply = JOptionPane
+ reply = JvOptionPane
.showInternalConfirmDialog(
Desktop.desktop,
MessageManager
.getString("info.you_want_jalview_to_find_uniprot_accessions"),
MessageManager
.getString("label.find_uniprot_accession_ids"),
- JOptionPane.YES_NO_OPTION,
- JOptionPane.QUESTION_MESSAGE);
+ JvOptionPane.YES_NO_OPTION,
+ JvOptionPane.QUESTION_MESSAGE);
}
- if (reply == JOptionPane.YES_OPTION)
+ if (reply == JvOptionPane.YES_OPTION)
{
Thread thread = new Thread(new FetchDBRefs());
thread.start();
+
/*
* Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
* Copyright (C) $$Year-Rel$$ The Jalview Authors
import jalview.datamodel.PDBEntry;
import jalview.datamodel.PDBEntry.Type;
import jalview.datamodel.SequenceI;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
+import jalview.io.FileFormatI;
import jalview.io.FormatAdapter;
import jalview.io.PDBFeatureSettings;
import jalview.structure.StructureImportSettings;
stopQuery();
return null;
}
- String ext = StructureImportSettings.getDefaultStructureFileFormat()
- .equalsIgnoreCase(Type.MMCIF.toString()) ? ".cif" : ".xml";
+ Type pdbFileFormat = StructureImportSettings
+ .getDefaultStructureFileFormat();
+ String ext = "." + pdbFileFormat.getExtension();
EBIFetchClient ebi = new EBIFetchClient();
- file = ebi.fetchDataAsFile(
- "pdb:" + id,
- StructureImportSettings.getDefaultStructureFileFormat()
- .toLowerCase(), ext).getAbsolutePath();
+ file = ebi.fetchDataAsFile("pdb:" + id, pdbFileFormat.getFormat(), ext)
+ .getAbsolutePath();
stopQuery();
if (file == null)
{
}
try
{
-
+ // todo get rid of Type and use FileFormatI instead?
+ // todo get rid of "ext" and just use "tmp"?
+ FileFormatI fileFormat = pdbFileFormat == Type.PDB ? FileFormat.PDB
+ : FileFormat.MMCif;
pdbAlignment = new FormatAdapter().readFile(file,
- jalview.io.AppletFormatAdapter.FILE,
- StructureImportSettings.getDefaultStructureFileFormat());
+ DataSourceType.FILE, fileFormat);
if (pdbAlignment != null)
{
List<SequenceI> toremove = new ArrayList<SequenceI>();
import jalview.datamodel.AlignmentI;
import jalview.datamodel.DBRefEntry;
import jalview.datamodel.DBRefSource;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
import jalview.io.FormatAdapter;
import com.stevesoft.pat.Regex;
// retrieved.
startQuery();
AlignmentI rcds = new FormatAdapter().readFile(getXFAMURL()
- + queries.trim().toUpperCase(), jalview.io.FormatAdapter.URL,
- "STH");
+ + queries.trim().toUpperCase(), DataSourceType.URL,
+ FileFormat.Stockholm);
for (int s = 0, sNum = rcds.getHeight(); s < sNum; s++)
{
rcds.getSequenceAt(s).addDBRef(new DBRefEntry(DBRefSource.PFAM,
import jalview.datamodel.AlignmentI;
import jalview.datamodel.DBRefEntry;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
import jalview.io.FormatAdapter;
import jalview.ws.seqfetcher.DbSourceProxyImpl;
// TODO: trap HTTP 404 exceptions and return null
AlignmentI rcds = new FormatAdapter().readFile(getXFAMURL()
+ queries.trim().toUpperCase() + getXFAMURLSUFFIX(),
- jalview.io.FormatAdapter.URL, "STH");
+ DataSourceType.URL, FileFormat.Stockholm);
for (int s = 0, sNum = rcds.getHeight(); s < sNum; s++)
{
rcds.getSequenceAt(s).addDBRef(new DBRefEntry(getXfamSource(),
package jalview.ws.jws1;
import jalview.datamodel.AlignmentI;
+import jalview.io.FileFormat;
import jalview.io.FileParse;
import jalview.io.FormatAdapter;
import jalview.io.InputStreamParser;
while (r.hasNext())
{
FileParse fp = new InputStreamParser(r.next(), source.getDataName());
- AlignmentI nal = new FormatAdapter().readFromFile(fp, "RNAML");
+ AlignmentI nal = new FormatAdapter().readFromFile(fp,
+ FileFormat.Rnaml);
if (al == null)
{
al = nal;
*/
package jalview.ws.jws1;
+import jalview.gui.JvOptionPane;
import jalview.util.MessageManager;
import java.util.Hashtable;
import java.util.StringTokenizer;
import java.util.Vector;
-import javax.swing.JOptionPane;
-
import ext.vamsas.IRegistry;
import ext.vamsas.IRegistryServiceLocator;
import ext.vamsas.RegistryServiceSoapBindingStub;
{
if (jalview.gui.Desktop.desktop != null)
{
- JOptionPane.showMessageDialog(jalview.gui.Desktop.desktop,
+ JvOptionPane.showMessageDialog(jalview.gui.Desktop.desktop,
MessageManager.getString("label.set_proxy_settings"),
MessageManager
.getString("label.proxy_authorization_failed"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
}
else
/**
* creates a new thread to call discoverServices()
*/
+ @Override
public void run()
{
final Discoverer discoverer = this;
Thread discoverThread = new Thread()
{
+ @Override
public void run()
{
discoverer.doDiscovery();
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
import jalview.gui.Desktop;
+import jalview.gui.JvOptionPane;
import jalview.gui.WebserviceInfo;
import jalview.util.MessageManager;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
import ext.vamsas.Jpred;
import ext.vamsas.JpredServiceLocator;
} catch (Exception ex)
{
- JOptionPane
+ JvOptionPane
.showMessageDialog(
Desktop.desktop,
MessageManager
new String[] { WebServiceName, WsURL }),
MessageManager
.getString("label.internal_jalview_error"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
wsInfo.setProgressText(MessageManager
.formatMessage(
"label.secondary_structure_prediction_service_couldnt_be_located",
return server;
}
+ @Override
public void attachWSMenuEntry(JMenu wsmenu, final ServiceHandle sh,
final AlignFrame af)
{
method.setToolTipText(sh.getEndpointURL());
method.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
AlignmentView msa = af.gatherSeqOrMsaForSecStrPrediction();
package jalview.ws.jws1;
import jalview.analysis.AlignSeq;
+import jalview.analysis.SeqsetUtils;
import jalview.bin.Cache;
import jalview.datamodel.Alignment;
import jalview.datamodel.AlignmentAnnotation;
import jalview.gui.AlignFrame;
import jalview.gui.Desktop;
import jalview.gui.WebserviceInfo;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormatI;
import jalview.io.FormatAdapter;
+import jalview.io.IdentifyFile;
+import jalview.io.JPredFile;
+import jalview.io.JnetAnnotationMaker;
+import jalview.io.PileUpfile;
import jalview.util.Comparison;
import jalview.util.MessageManager;
import jalview.ws.AWsJob;
* @return true if getResultSet will return a valid alignment and prediction
* result.
*/
+ @Override
public boolean hasResults()
{
if (subjobComplete && result != null && result.isFinished()
return false;
}
+ @Override
public boolean hasValidInput()
{
if (sequence != null)
JpredResult result = (JpredResult) this.result;
- jalview.bin.Cache.log.debug("Parsing output from JNet job.");
+ Cache.log.debug("Parsing output from JNet job.");
// JPredFile prediction = new JPredFile("C:/JalviewX/files/jpred.txt",
// "File");
- jalview.io.JPredFile prediction = new jalview.io.JPredFile(
- result.getPredfile(), "Paste");
+ JPredFile prediction = new JPredFile(
+ result.getPredfile(), DataSourceType.PASTE);
SequenceI[] preds = prediction.getSeqsAsArray();
- jalview.bin.Cache.log.debug("Got prediction profile.");
+ Cache.log.debug("Got prediction profile.");
if ((this.msa != null) && (result.getAligfile() != null))
{
- jalview.bin.Cache.log.debug("Getting associated alignment.");
+ Cache.log.debug("Getting associated alignment.");
// we ignore the returned alignment if we only predicted on a single
// sequence
- String format = new jalview.io.IdentifyFile().identify(
- result.getAligfile(), "Paste");
+ FileFormatI format = new IdentifyFile().identify(
+ result.getAligfile(), DataSourceType.PASTE);
- if (jalview.io.FormatAdapter.isValidFormat(format))
+ if (format != null)
{
SequenceI sqs[];
if (predMap != null)
else
{
al = new FormatAdapter().readFile(result.getAligfile(),
- "Paste", format);
+ DataSourceType.PASTE, format);
sqs = new SequenceI[al.getHeight()];
for (int i = 0, j = al.getHeight(); i < j; i++)
{
sqs[i] = al.getSequenceAt(i);
}
- if (!jalview.analysis.SeqsetUtils.deuniquify(SequenceInfo, sqs))
+ if (!SeqsetUtils.deuniquify(SequenceInfo, sqs))
{
throw (new Exception(
MessageManager
{
al.setDataset(null);
}
- jalview.io.JnetAnnotationMaker.add_annotation(prediction, al,
+ JnetAnnotationMaker.add_annotation(prediction, al,
FirstSeq, false, predMap);
}
{
throw (new Exception(MessageManager.formatMessage(
"exception.unknown_format_for_file", new String[] {
- format, result.getAligfile() })));
+ format.toString(), result.getAligfile() })));
}
}
else
if (msf.length > 1)
{
msa = new vamsas.objects.simple.Msfalignment();
- jalview.io.PileUpfile pileup = new jalview.io.PileUpfile();
- msa.setMsf(pileup.print(msf));
+ PileUpfile pileup = new PileUpfile();
+ msa.setMsf(pileup.print(msf, true));
}
}
}
}
}
+ @Override
public void StartJob(AWsJob j)
{
if (!(j instanceof JPredJob))
}
}
+ @Override
public void parseResult()
{
int results = 0; // number of result sets received
wsInfo.showResultsNewFrame
.addActionListener(new java.awt.event.ActionListener()
{
+ @Override
public void actionPerformed(java.awt.event.ActionEvent evt)
{
displayResults(true);
wsInfo.mergeResults
.addActionListener(new java.awt.event.ActionListener()
{
+ @Override
public void actionPerformed(java.awt.event.ActionEvent evt)
{
displayResults(false);
}
}
+ @Override
public void pollJob(AWsJob job) throws Exception
{
((JPredJob) job).result = server.getresult(job.getJobId());
}
+ @Override
public boolean isCancellable()
{
return false;
}
+ @Override
public void cancelJob()
{
throw new Error(MessageManager.getString("error.implementation_error"));
}
+ @Override
public boolean canMergeResults()
{
return false;
import jalview.datamodel.AlignmentView;
import jalview.gui.AlignFrame;
import jalview.gui.Desktop;
+import jalview.gui.JvOptionPane;
import jalview.gui.WebserviceInfo;
import jalview.util.MessageManager;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
import ext.vamsas.MuscleWSServiceLocator;
import ext.vamsas.MuscleWSSoapBindingStub;
alignFrame = _alignFrame;
if (!sh.getAbstractName().equals("MsaWS"))
{
- JOptionPane.showMessageDialog(Desktop.desktop, MessageManager
+ JvOptionPane.showMessageDialog(Desktop.desktop, MessageManager
.formatMessage("label.service_called_is_not_msa_service",
new String[] { sh.getName() }), MessageManager
.getString("label.internal_jalview_error"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
if ((wsInfo = setWebService(sh)) == null)
{
- JOptionPane.showMessageDialog(Desktop.desktop, MessageManager
+ JvOptionPane.showMessageDialog(Desktop.desktop, MessageManager
.formatMessage("label.msa_service_is_unknown",
new String[] { sh.getName() }), MessageManager
.getString("label.internal_jalview_error"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
import jalview.datamodel.AlignmentView;
import jalview.gui.AlignFrame;
import jalview.gui.Desktop;
+import jalview.gui.JvOptionPane;
import jalview.gui.WebserviceInfo;
import jalview.util.MessageManager;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
import ext.vamsas.SeqSearchServiceLocator;
import ext.vamsas.SeqSearchServiceSoapBindingStub;
// name to service client name
if (!sh.getAbstractName().equals(this.getServiceActionKey()))
{
- JOptionPane.showMessageDialog(Desktop.desktop, MessageManager
+ JvOptionPane.showMessageDialog(Desktop.desktop, MessageManager
.formatMessage(
"label.service_called_is_not_seq_search_service",
new String[] { sh.getName() }), MessageManager
.getString("label.internal_jalview_error"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
if ((wsInfo = setWebService(sh)) == null)
{
- JOptionPane.showMessageDialog(Desktop.desktop, MessageManager
+ JvOptionPane.showMessageDialog(Desktop.desktop, MessageManager
.formatMessage("label.seq_search_service_is_unknown",
new String[] { sh.getName() }), MessageManager
.getString("label.internal_jalview_error"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
if (inFile != null && inFile.length() > 0)
{
new jalview.io.AnnotationFile().readAnnotationFile(al, inFile,
- jalview.io.AppletFormatAdapter.PASTE);
+ jalview.io.DataSourceType.PASTE);
}
} catch (Exception e)
{
if (inFile != null && inFile.length() > 0)
{
jalview.io.FeaturesFile ff = new jalview.io.FeaturesFile(
- inFile, jalview.io.AppletFormatAdapter.PASTE);
+ inFile, jalview.io.DataSourceType.PASTE);
ff.parse(al, featureColours, false);
}
} catch (Exception e)
if (inFile != null && inFile.length() > 0)
{
nf = new jalview.io.NewickFile(inFile,
- jalview.io.AppletFormatAdapter.PASTE);
+ jalview.io.DataSourceType.PASTE);
if (!nf.isValid())
{
nf.close();
import jalview.datamodel.AlignmentView;
import jalview.gui.AlignFrame;
import jalview.gui.Desktop;
+import jalview.gui.JvOptionPane;
import jalview.gui.JvSwingUtils;
import jalview.util.MessageManager;
import jalview.ws.jws2.jabaws2.Jws2Instance;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
import javax.swing.ToolTipManager;
import compbio.data.msa.MsaWS;
if (!(sh.service instanceof MsaWS))
{
// redundant at mo - but may change
- JOptionPane.showMessageDialog(Desktop.desktop, MessageManager
+ JvOptionPane.showMessageDialog(Desktop.desktop, MessageManager
.formatMessage("label.service_called_is_not_msa_service",
new String[] { sh.serviceType }), MessageManager
.getString("label.internal_jalview_error"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
server = (MsaWS) sh.service;
if ((wsInfo = setWebService(sh, false)) == null)
{
- JOptionPane.showMessageDialog(Desktop.desktop, MessageManager
+ JvOptionPane.showMessageDialog(Desktop.desktop, MessageManager
.formatMessage("label.msa_service_is_unknown",
new String[] { sh.serviceType }), MessageManager
.getString("label.internal_jalview_error"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
return;
}
}
else
{
- JOptionPane.showMessageDialog(alignFrame,
+ JvOptionPane.showMessageDialog(alignFrame,
MessageManager.getString("info.invalid_msa_input_mininfo"),
MessageManager.getString("info.invalid_msa_notenough"),
- JOptionPane.INFORMATION_MESSAGE);
+ JvOptionPane.INFORMATION_MESSAGE);
wsInfo.setVisible(false);
}
}
// dan changed! dan test. comment out if conditional
// if (alignFrame.getViewport().getAlignment().isNucleotide())
// {
- // JOptionPane.showMessageDialog(Desktop.desktop, sh.serviceType
+ // JvOptionPane.showMessageDialog(Desktop.desktop, sh.serviceType
// + " can only be used\nfor amino acid alignments.",
- // "Wrong type of sequences!", JOptionPane.WARNING_MESSAGE);
+ // "Wrong type of sequences!", JvOptionPane.WARNING_MESSAGE);
// return;
//
// }
import jalview.gui.AlignViewport;
import jalview.gui.AlignmentPanel;
import jalview.gui.Desktop;
+import jalview.gui.JvOptionPane;
import jalview.gui.WebserviceInfo;
import jalview.io.packed.DataProvider.JvDataType;
import jalview.util.MessageManager;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;
else
{
// TODO: try to tell the user why the job couldn't be started.
- JOptionPane
+ JvOptionPane
.showMessageDialog(
Desktop.desktop,
(jobsthread.hasWarnings() ? jobsthread.getWarnings()
.getString("label.job_couldnt_be_started_check_input")),
MessageManager
.getString("label.unable_start_web_service_analysis"),
- JOptionPane.WARNING_MESSAGE);
+ JvOptionPane.WARNING_MESSAGE);
}
}
package jalview.ws.rest.params;
import jalview.datamodel.AlignmentI;
+import jalview.io.FileFormat;
+import jalview.io.FileFormatI;
+import jalview.io.FormatAdapter;
import jalview.ws.params.OptionI;
import jalview.ws.params.simple.BooleanOption;
import jalview.ws.params.simple.Option;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import org.apache.http.entity.mime.content.ContentBody;
super(new Class[] { AlignmentI.class });
}
- String format = "FASTA";
+ FileFormatI format = FileFormat.Fasta;
molType type;
PrintWriter pw = new PrintWriter(
new OutputStreamWriter(new BufferedOutputStream(
new FileOutputStream(fa)), "UTF-8"));
- pw.append(new jalview.io.FormatAdapter().formatSequences(format,
+ pw.append(new FormatAdapter().formatSequences(format,
alignment, jvsuffix));
pw.close();
return new FileBody(fa, "text/plain");
}
else
{
- jalview.io.FormatAdapter fa = new jalview.io.FormatAdapter();
+ FormatAdapter fa = new FormatAdapter();
fa.setNewlineString("\r\n");
return new StringBody(
(fa.formatSequences(format, alignment, jvsuffix)));
{
prms.add("jvsuffix");
}
- ;
if (writeAsFile)
{
prms.add("writeasfile");
}
- ;
return prms;
}
if (tok.startsWith("format"))
{
- for (String fmt : jalview.io.FormatAdapter.WRITEABLE_FORMATS)
+ for (FileFormatI fmt : FileFormat.values())
{
- if (val.equalsIgnoreCase(fmt))
+ if (fmt.isWritable() && val.equalsIgnoreCase(fmt.toString()))
{
format = fmt;
return true;
}
warnings.append("Invalid alignment format '" + val
+ "'. Must be one of (");
- for (String fmt : jalview.io.FormatAdapter.WRITEABLE_FORMATS)
+ for (FileFormatI fmt : FileFormat.values())
{
- warnings.append(" " + fmt);
+ if (fmt.isWritable())
+ {
+ warnings.append(" " + fmt).toString();
+ }
}
warnings.append(")\n");
}
"Append jalview style /start-end suffix to ID", false, false,
writeAsFile, null));
- lst.add(new Option("format", "Alignment upload format", true, "FASTA",
- format, Arrays
- .asList(jalview.io.FormatAdapter.WRITEABLE_FORMATS),
+ lst.add(new Option("format", "Alignment upload format", true,
+ FileFormat.Fasta.toString(), format.toString(), getWritableFormats(),
null));
lst.add(createMolTypeOption("type", "Sequence type", false, type, null));
return lst;
}
+ /**
+ * @return
+ */
+ protected List<String> getWritableFormats()
+ {
+ List<String> formats = new ArrayList<String>();
+ for (FileFormatI ff : FileFormat.values())
+ {
+ if (ff.isWritable())
+ {
+ formats.add(ff.toString());
+ }
+ }
+ return formats;
+ }
+
}
import jalview.api.FeatureSettingsModelI;
import jalview.datamodel.AlignmentI;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormatI;
import jalview.io.FormatAdapter;
import jalview.io.IdentifyFile;
protected AlignmentI parseResult(String result) throws Exception
{
AlignmentI sequences = null;
- String format = new IdentifyFile().identify(result, "Paste");
- if (FormatAdapter.isValidFormat(format))
+ FileFormatI format = new IdentifyFile().identify(result,
+ DataSourceType.PASTE);
+ if (format != null)
{
- sequences = new FormatAdapter().readFile(result.toString(), "Paste",
+ sequences = new FormatAdapter().readFile(result.toString(),
+ DataSourceType.PASTE,
format);
}
return sequences;
import static org.testng.AssertJUnit.assertEquals;
+import jalview.gui.JvOptionPane;
+
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AtomTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* Test the constructor that parses a PDB file format ATOM line. Fields are in
* fixed column positions
import static org.testng.AssertJUnit.assertEquals;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class BondTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testTranslate()
{
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import jalview.schemes.ColourSchemeI;
import jalview.schemes.TaylorColourScheme;
import jalview.structure.StructureImportSettings;
import java.awt.Color;
import java.util.Vector;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class PDBChainTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
PDBChain c;
final Atom a1 = new Atom(1f, 2f, 3f);
import jalview.datamodel.PDBEntry;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
-import jalview.io.AppletFormatAdapter;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
import jalview.structure.StructureImportSettings;
import java.io.IOException;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class PDBfileTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testIsRna()
{
* Constructor with file path performs parse()
*/
PDBfile pf = new PDBfile(false, false, false, "examples/3W5V.pdb",
- AppletFormatAdapter.FILE);
+ DataSourceType.FILE);
assertEquals("3W5V", pf.getId());
// verify no alignment annotations created
public void testParse_withAnnotations_noSS() throws IOException
{
PDBfile pf = new PDBfile(true, false, false, "examples/3W5V.pdb",
- AppletFormatAdapter.FILE);
+ DataSourceType.FILE);
AlignmentAnnotation[] anns = getAlignmentAnnotations(pf);
assertEquals(4, anns.length);
public void testParse_withJmol_noAnnotations() throws IOException
{
PDBfile pf = new PDBfile(false, true, false, "examples/3W5V.pdb",
- AppletFormatAdapter.FILE);
+ DataSourceType.FILE);
/*
* alignment annotations _are_ created anyway (in
throws IOException
{
PDBfile pf = new PDBfile(true, true, false, "examples/3W5V.pdb",
- AppletFormatAdapter.FILE);
+ DataSourceType.FILE);
/*
* Alignment annotations for TempFactor, SecStruct, per sequence (chain)
// TODO requires a mock for Annotate3D processing
// and/or run as an integration test
PDBfile pf = new PDBfile(true, true, true, "examples/2GIS.pdb",
- AppletFormatAdapter.FILE);
+ DataSourceType.FILE);
}
/**
return al.getAlignmentAnnotation();
}
- // @formatter:on
-
@BeforeMethod(alwaysRun = true)
public void setUp()
{
import static org.testng.AssertJUnit.assertNull;
import static org.testng.AssertJUnit.assertSame;
+import jalview.gui.JvOptionPane;
+
import java.util.Vector;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ResidueTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testFindAtom()
{
import jalview.datamodel.ProfilesI;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AAFrequencyTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testCalculate_noProfile()
{
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AlignSeqTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testExtractGaps()
{
import jalview.datamodel.AlignmentI;
import jalview.datamodel.Annotation;
import jalview.datamodel.SequenceI;
-import jalview.io.AppletFormatAdapter;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class AlignmentAnnotationUtilsTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
// 4 sequences x 13 positions
final static String EOL = "\n";
public void setUp() throws IOException
{
alignment = new jalview.io.FormatAdapter().readFile(TEST_DATA,
- AppletFormatAdapter.PASTE, "FASTA");
+ DataSourceType.PASTE, FileFormat.Fasta);
AlignmentAnnotation[] anns = new AlignmentAnnotation[SEQ_ANN_COUNT];
for (int i = 0; i < anns.length; i++)
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import jalview.io.AppletFormatAdapter;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
+import jalview.io.FileFormatI;
import jalview.io.FormatAdapter;
import jalview.util.MapList;
import jalview.util.MappingUtils;
import java.util.Map;
import java.util.TreeMap;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AlignmentUtilsTests
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
public static Sequence ts = new Sequence("short",
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklm");
SequenceI s1 = ts.deriveSequence().getSubSequence(i, i + 7);
al.addSequence(s1);
}
- System.out.println(new AppletFormatAdapter().formatSequences("Clustal",
+ System.out.println(new AppletFormatAdapter().formatSequences(
+ FileFormat.Clustal,
al, true));
for (int flnk = -1; flnk < 25; flnk++)
{
AlignmentI exp = AlignmentUtils.expandContext(al, flnk);
System.out.println("\nFlank size: " + flnk);
System.out.println(new AppletFormatAdapter().formatSequences(
- "Clustal", exp, true));
+ FileFormat.Clustal, exp, true));
if (flnk == -1)
{
/*
{
final String data = ">Seq1Name\nKQYL\n" + ">Seq2Name\nRFPW\n"
+ ">Seq1Name\nABCD\n";
- AlignmentI al = loadAlignment(data, "FASTA");
+ AlignmentI al = loadAlignment(data, FileFormat.Fasta);
Map<String, List<SequenceI>> map = AlignmentUtils
.getSequencesByName(al);
assertEquals(2, map.keySet().size());
* @return
* @throws IOException
*/
- protected AlignmentI loadAlignment(final String data, String format)
+ protected AlignmentI loadAlignment(final String data, FileFormatI format)
throws IOException
{
AlignmentI a = new FormatAdapter().readFile(data,
- AppletFormatAdapter.PASTE, format);
+ DataSourceType.PASTE, format);
a.setDataset(null);
return a;
}
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class AnnotationSorterTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private static final int NUM_SEQS = 6;
private static final int NUM_ANNS = 7;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
import java.util.Arrays;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class CodingUtilsTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testDecodeCodon()
{
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.analysis;
import static org.testng.Assert.assertEquals;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ConservationTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testRecordConservation()
{
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import jalview.util.DBRefUtils;
import jalview.util.MapList;
import jalview.ws.SequenceFetcher;
import java.util.List;
import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class CrossRefTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testFindXDbRefs()
{
import jalview.datamodel.AlignmentI;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import jalview.io.FastaFile;
import java.util.Arrays;
import java.util.Random;
+import org.testng.annotations.BeforeClass;
+
/**
* Generates, and outputs in Fasta format, a random DNA alignment for given
* sequence length and count. Will regenerate the same alignment each time if
*/
public class DnaAlignmentGenerator
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private static final char GAP = '-';
private static final char ZERO = '0';
private Random random;
+
/**
* Outputs a DNA 'alignment' where each position is a random choice from
* 'GTCA-'.
+ " bases with " + gapPercentage + "% gaps and "
+ changePercentage + "% mutations (random seed = " + randomSeed
+ ")");
- System.out.println(new FastaFile().print(al.getSequencesArray()));
+ System.out.println(new FastaFile().print(al.getSequencesArray(), true));
}
/**
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignViewport;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
import jalview.io.FormatAdapter;
import java.io.IOException;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class DnaTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
// @formatter:off
// AA encoding codons as ordered on the Jalview help page Amino Acid Table
private static String fasta = ">B\n" + "GCT" + "GCC" + "GCA" + "GCG"
throws IOException
{
AlignmentI alf = new FormatAdapter().readFile(
- JAL_1312_example_align_fasta, jalview.io.FormatAdapter.PASTE,
- "FASTA");
+ JAL_1312_example_align_fasta, DataSourceType.PASTE,
+ FileFormat.Fasta);
ColumnSelection cs = new ColumnSelection();
AlignViewportI av = new AlignViewport(alf, cs);
Dna dna = new Dna(av, new int[] { 0, alf.getWidth() - 1 });
throws IOException
{
AlignmentI alf = new FormatAdapter().readFile(
- JAL_1312_example_align_fasta, jalview.io.FormatAdapter.PASTE,
- "FASTA");
+ JAL_1312_example_align_fasta, DataSourceType.PASTE,
+ FileFormat.Fasta);
int vwidth = 15;
for (int ipos = 0; ipos + vwidth < alf.getWidth(); ipos += vwidth)
{
public void testTranslateCdna_simple() throws IOException
{
AlignmentI alf = new FormatAdapter().readFile(fasta,
- FormatAdapter.PASTE, "FASTA");
+ DataSourceType.PASTE, FileFormat.Fasta);
ColumnSelection cs = new ColumnSelection();
AlignViewportI av = new AlignViewport(alf, cs);
Dna dna = new Dna(av, new int[] { 0, alf.getWidth() - 1 });
public void testTranslateCdna_hiddenColumns() throws IOException
{
AlignmentI alf = new FormatAdapter().readFile(fasta,
- FormatAdapter.PASTE, "FASTA");
- ColumnSelection cs = new jalview.datamodel.ColumnSelection();
+ DataSourceType.PASTE, FileFormat.Fasta);
+ ColumnSelection cs = new ColumnSelection();
cs.hideColumns(6, 14); // hide codons 3/4/5
cs.hideColumns(24, 35); // hide codons 9-12
cs.hideColumns(177, 191); // hide codons 60-64
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.analysis;
import static org.testng.Assert.assertEquals;
import jalview.datamodel.SearchResultsI;
import jalview.datamodel.Sequence;
import jalview.gui.AlignFrame;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
import jalview.io.FileLoader;
-import jalview.io.FormatAdapter;
import java.util.List;
public class FinderTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private AlignFrame af;
private AlignmentI al;
String seqData = "seq1 ABCD--EF-GHI\n" + "seq2 A--BCDefHI\n"
+ "seq3 --bcdEFH\n" + "seq4 aa---aMMMMMaaa\n";
af = new FileLoader().LoadFileWaitTillLoaded(seqData,
- FormatAdapter.PASTE);
+ DataSourceType.PASTE);
al = af.getViewport().getAlignment();
}
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import java.util.Arrays;
import org.testng.AssertJUnit;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class GroupingTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
Sequence s1 = new Sequence("s1", "AAAADDDDEEEE");
Sequence s2 = new Sequence("s2", "AAAADDDDEEEE");
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
+import jalview.gui.JvOptionPane;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class ParsePropertiesTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private Alignment al;
private ParseProperties pp;
import static org.testng.AssertJUnit.fail;
import jalview.analysis.SecStrConsensus.SimpleBP;
+import jalview.gui.JvOptionPane;
import java.util.Vector;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class RnaTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testGetSimpleBPs() throws WUSSParseException
{
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import java.util.Hashtable;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
*/
public class SeqsetUtilsTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
+
/**
* test for JAL-2046 bug - duplication of sequence features on reconstructed
* alignment
import jalview.analysis.SequenceIdMatcher.SeqIdName;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class SequenceIdMatcherTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
+
/**
* Test the method that checks for one sequence id starting with the other,
* followed by an 'allowed' separator character
import jalview.datamodel.Mapping;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import java.io.PrintStream;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestAlignSeq
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
SequenceI s1, s2, s3;
/**
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
import jalview.io.FileLoader;
-import jalview.io.FormatAdapter;
+
+import java.util.Arrays;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class FeatureScoreModelTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
public static String alntestFile = "FER1_MESCR/72-76 DVYIL\nFER1_SPIOL/71-75 DVYIL\nFER3_RAPSA/21-25 DVYVL\nFER1_MAIZE/73-77 DVYIL\n";
int[] sf1 = new int[] { 74, 74, 73, 73, 23, 23, -1, -1 };
public AlignFrame getTestAlignmentFrame()
{
AlignFrame alf = new FileLoader(false).LoadFileWaitTillLoaded(
- alntestFile, FormatAdapter.PASTE);
+ alntestFile, DataSourceType.PASTE);
AlignmentI al = alf.getViewport().getAlignment();
Assert.assertEquals(al.getHeight(), 4);
Assert.assertEquals(al.getWidth(), 5);
+ "(" + s + ") should still be distinct from FER1_MAIZE (3)");
}
}
+
+ /**
+ * Check findFeatureAt doesn't return contact features except at contact
+ * points TODO:move to under the FeatureRendererModel test suite
+ */
+ @Test(groups = { "Functional" })
+ public void testFindFeatureAt_PointFeature() throws Exception
+ {
+ String alignment = "a CCCCCCGGGGGGCCCCCC\n" + "b CCCCCCGGGGGGCCCCCC\n"
+ + "c CCCCCCGGGGGGCCCCCC\n";
+ AlignFrame af = new jalview.io.FileLoader(false)
+ .LoadFileWaitTillLoaded(alignment, DataSourceType.PASTE);
+ SequenceI aseq = af.getViewport().getAlignment().getSequenceAt(0);
+ SequenceFeature sf = null;
+ sf = new SequenceFeature("disulphide bond", "", 2, 5, Float.NaN, "");
+ aseq.addSequenceFeature(sf);
+ Assert.assertTrue(sf.isContactFeature());
+ af.refreshFeatureUI(true);
+ af.getFeatureRenderer().setAllVisible(Arrays.asList("disulphide bond"));
+ Assert.assertEquals(af.getFeatureRenderer().getDisplayedFeatureTypes()
+ .size(), 1, "Should be just one feature type displayed");
+ // step through and check for pointwise feature presence/absence
+ Assert.assertEquals(af.getFeatureRenderer().findFeaturesAtRes(aseq, 1)
+ .size(), 0);
+ // step through and check for pointwise feature presence/absence
+ Assert.assertEquals(af.getFeatureRenderer().findFeaturesAtRes(aseq, 2)
+ .size(), 1);
+ // step through and check for pointwise feature presence/absence
+ Assert.assertEquals(af.getFeatureRenderer().findFeaturesAtRes(aseq, 3)
+ .size(), 0);
+ // step through and check for pointwise feature presence/absence
+ Assert.assertEquals(af.getFeatureRenderer().findFeaturesAtRes(aseq, 4)
+ .size(), 0);
+ // step through and check for pointwise feature presence/absence
+ Assert.assertEquals(af.getFeatureRenderer().findFeaturesAtRes(aseq, 5)
+ .size(), 1);
+ // step through and check for pointwise feature presence/absence
+ Assert.assertEquals(af.getFeatureRenderer().findFeaturesAtRes(aseq, 6)
+ .size(), 0);
+ }
+
}
import static org.testng.AssertJUnit.assertNull;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ArgsParserTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testGetValue()
{
import static org.testng.AssertJUnit.assertEquals;
+import jalview.gui.JvOptionPane;
+
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class CacheTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private Locale locale;
@BeforeClass(alwaysRun = true)
*/
package jalview.bin;
+import jalview.gui.JvOptionPane;
+
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import org.testng.Assert;
import org.testng.FileAssert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class CommandLineOperations
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private static final int TEST_TIMEOUT = 4500; // Note longer timeout needed on
// full test run than on
// individual tests
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertNull;
+import jalview.gui.JvOptionPane;
+
import java.util.Arrays;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class JalviewLiteTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testSeparatorListToArray()
{
import jalview.datamodel.AlignmentI;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class EditCommandTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private EditCommand testee;
private SequenceI[] seqs;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
*/
public class TrimRegionCommandTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private AlignmentI al;
@BeforeMethod(alwaysRun = true)
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
import jalview.io.FileLoader;
-import jalview.io.FormatAdapter;
import java.util.Arrays;
import java.util.BitSet;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AlignViewControllerTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testFindColumnsWithFeature()
{
- SequenceI seq1 = new Sequence("seq1", "aMMMaaaaaaaaaaaaaaaa");
- SequenceI seq2 = new Sequence("seq2", "aaaMMMMMMMaaaaaaaaaa");
- SequenceI seq3 = new Sequence("seq3", "aaaaaaaaaaMMMMMaaaaa");
- SequenceI seq4 = new Sequence("seq3", "aaaaaaaaaaaaaaaaaaaa");
+ SequenceI seq1 = new Sequence("seq1", "-a-MMMaaaaaaaaaaaaaaaa");
+ SequenceI seq2 = new Sequence("seq2", "aa--aMM-MMMMMaaaaaaaaaa");
+ SequenceI seq3 = new Sequence("seq3", "abcab-caD-aaMMMMMaaaaa");
+ SequenceI seq4 = new Sequence("seq4", "abc--abcaaaaaaaaaaaaaa");
/*
* features start/end are base 1
null));
seq3.addSequenceFeature(new SequenceFeature("Metal", "desc", 11, 15,
0f, null));
+ // disulfide bond is a 'contact feature' - only select its 'start' and 'end'
+ seq3.addSequenceFeature(new SequenceFeature("disulfide bond", "desc", 8, 12,
+ 0f, null));
/*
- * select the first three columns --> Metal in seq1 2-3
+ * select the first five columns --> Metal in seq1 cols 4-5
*/
SequenceGroup sg = new SequenceGroup();
sg.setStartRes(0); // base 0
- sg.setEndRes(2);
+ sg.setEndRes(4);
sg.addSequence(seq1, false);
sg.addSequence(seq2, false);
sg.addSequence(seq3, false);
bs);
assertEquals(1, seqCount);
assertEquals(2, bs.cardinality());
- assertTrue(bs.get(1));
- assertTrue(bs.get(2));
+ assertTrue(bs.get(3)); // base 0
+ assertTrue(bs.get(4));
/*
- * select the first four columns: Metal in seq1 2:4, seq2 4:4
+ * select the first seven columns: Metal in seq1 cols 4-6, seq2 cols 6-7
*/
- sg.setEndRes(3);
+ sg.setEndRes(6);
bs.clear();
seqCount = AlignViewController.findColumnsWithFeature("Metal", sg, bs);
assertEquals(2, seqCount);
- assertEquals(3, bs.cardinality());
- assertTrue(bs.get(1));
- assertTrue(bs.get(2));
+ assertEquals(4, bs.cardinality());
assertTrue(bs.get(3));
+ assertTrue(bs.get(4));
+ assertTrue(bs.get(5));
+ assertTrue(bs.get(6));
/*
- * select column 11: Metal in seq3 only
+ * select column 14: Metal in seq3 only
*/
- sg.setStartRes(10);
- sg.setEndRes(10);
+ sg.setStartRes(13);
+ sg.setEndRes(13);
bs.clear();
seqCount = AlignViewController.findColumnsWithFeature("Metal", sg, bs);
assertEquals(1, seqCount);
assertEquals(1, bs.cardinality());
- assertTrue(bs.get(10));
+ assertTrue(bs.get(13));
/*
- * select columns 16-20: no Metal feature
+ * select columns 18-20: no Metal feature
*/
- sg.setStartRes(15);
+ sg.setStartRes(17);
sg.setEndRes(19);
bs.clear();
seqCount = AlignViewController.findColumnsWithFeature("Metal", sg, bs);
assertEquals(0, bs.cardinality());
/*
+ * columns 11-13 should not match disulfide bond at 8/12
+ */
+ sg.setStartRes(10);
+ sg.setEndRes(12);
+ bs.clear();
+ seqCount = AlignViewController.findColumnsWithFeature("disulfide bond",
+ sg, bs);
+ assertEquals(0, seqCount);
+ assertEquals(0, bs.cardinality());
+
+ /*
+ * columns 6-18 should match disulfide bond at columns 9, 14
+ */
+ sg.setStartRes(5);
+ sg.setEndRes(17);
+ bs.clear();
+ seqCount = AlignViewController.findColumnsWithFeature("disulfide bond",
+ sg, bs);
+ assertEquals(1, seqCount);
+ assertEquals(2, bs.cardinality());
+ assertTrue(bs.get(8));
+ assertTrue(bs.get(13));
+
+ /*
* look for a feature that isn't there
*/
sg.setStartRes(0);
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
"seq1 aMMMaaaaaaaaaaaaaaaa\n" + "seq2 aaaMMMMMMMaaaaaaaaaa\n"
+ "seq3 aaaaaaaaaaMMMMMaaaaa\n"
- + "seq4 aaaaaaaaaaaaaaaaaaaa\n", FormatAdapter.PASTE);
+ + "seq4 aaaaaaaaaaaaaaaaaaaa\n", DataSourceType.PASTE);
SearchResultsI sr = new SearchResults();
SequenceI[] sqs = af.getViewport().getAlignment().getSequencesArray();
import static org.testng.AssertJUnit.assertTrue;
import static org.testng.internal.junit.ArrayAsserts.assertArrayEquals;
+import jalview.gui.JvOptionPane;
import jalview.util.MapList;
import java.util.Arrays;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AlignedCodonFrameTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* Test the method that locates the first aligned sequence that has a mapping.
*/
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertFalse;
+import jalview.gui.JvOptionPane;
import jalview.util.MapList;
import java.util.Iterator;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
*/
public class AlignedCodonIteratorTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* Test normal case for iterating over aligned codons.
*/
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AlignedCodonTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testEquals()
{
import static org.testng.AssertJUnit.assertNull;
import jalview.analysis.AlignSeq;
+import jalview.gui.JvOptionPane;
import jalview.io.AppletFormatAdapter;
+import jalview.io.FileFormat;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AlignmentAnnotationTests
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testCopyConstructor()
{
alSeq2.setEnd(sqTo.getStart() + align.getSeq2End() - 1);
alSeq2.setDatasetSequence(sqTo);
System.out.println(new AppletFormatAdapter()
- .formatSequences("STH", new Alignment(new SequenceI[] { sqFrom,
+.formatSequences(
+ FileFormat.Stockholm, new Alignment(new SequenceI[] { sqFrom,
alSeq1, sqTo, alSeq2 }), true));
Mapping mp = align.getMappingFromS1(false);
AlignmentI all = new Alignment(new SequenceI[] { alSeq1, alSeq2 });
all.addAnnotation(almap1);
all.addAnnotation(almap2);
- System.out.println(new AppletFormatAdapter().formatSequences("STH",
+ System.out.println(new AppletFormatAdapter().formatSequences(
+ FileFormat.Stockholm,
all, true));
for (int p = 0; p < alSeq1.getLength(); p++)
ann.getDefaultRnaHelixSymbol(i));
}
}
-}
\ No newline at end of file
+}
import static org.testng.AssertJUnit.assertTrue;
import jalview.datamodel.AlignedCodonFrame.SequenceToSequenceMapping;
-import jalview.io.AppletFormatAdapter;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
+import jalview.io.FileFormatI;
import jalview.io.FormatAdapter;
import jalview.util.MapList;
import java.util.List;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
*/
public class AlignmentTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
// @formatter:off
private static final String TEST_DATA =
"# STOCKHOLM 1.0\n" +
* @return
* @throws IOException
*/
- protected AlignmentI loadAlignment(final String data, String format)
+ protected AlignmentI loadAlignment(final String data, FileFormatI format)
throws IOException
{
- AlignmentI a = new FormatAdapter().readFile(data,
- AppletFormatAdapter.PASTE, format);
+ AlignmentI a = new FormatAdapter().readFile(data, DataSourceType.PASTE,
+ format);
a.setDataset(null);
return a;
}
@BeforeMethod(alwaysRun = true)
public void setUp() throws IOException
{
- al = loadAlignment(TEST_DATA, "STH");
+ al = loadAlignment(TEST_DATA, FileFormat.Stockholm);
int i = 0;
for (AlignmentAnnotation ann : al.getAlignmentAnnotation())
{
public void testAlignAs_dnaAsDna() throws IOException
{
// aligned cDNA:
- AlignmentI al1 = loadAlignment(CDNA_SEQS_1, "FASTA");
+ AlignmentI al1 = loadAlignment(CDNA_SEQS_1, FileFormat.Fasta);
// unaligned cDNA:
- AlignmentI al2 = loadAlignment(CDNA_SEQS_2, "FASTA");
+ AlignmentI al2 = loadAlignment(CDNA_SEQS_2, FileFormat.Fasta);
/*
* Make mappings between sequences. The 'aligned cDNA' is playing the role
public void testAlignAs_proteinAsCdna() throws IOException
{
// see also AlignmentUtilsTests
- AlignmentI al1 = loadAlignment(CDNA_SEQS_1, "FASTA");
- AlignmentI al2 = loadAlignment(AA_SEQS_1, "FASTA");
+ AlignmentI al1 = loadAlignment(CDNA_SEQS_1, FileFormat.Fasta);
+ AlignmentI al2 = loadAlignment(AA_SEQS_1, FileFormat.Fasta);
makeMappings(al1, al2);
// Fudge - alignProteinAsCdna expects mappings to be on protein
/*
* Load alignments and add mappings for cDNA to protein
*/
- AlignmentI al1 = loadAlignment(CDNA_SEQS_1, "FASTA");
- AlignmentI al2 = loadAlignment(AA_SEQS_1, "FASTA");
+ AlignmentI al1 = loadAlignment(CDNA_SEQS_1, FileFormat.Fasta);
+ AlignmentI al2 = loadAlignment(AA_SEQS_1, FileFormat.Fasta);
makeMappings(al1, al2);
/*
* Load alignments and add mappings from nucleotide to protein (or from
* first to second if both the same type)
*/
- AlignmentI al1 = loadAlignment(fromSeqs, "FASTA");
- AlignmentI al2 = loadAlignment(toSeqs, "FASTA");
+ AlignmentI al1 = loadAlignment(fromSeqs, FileFormat.Fasta);
+ AlignmentI al2 = loadAlignment(toSeqs, FileFormat.Fasta);
makeMappings(al1, al2);
/*
String dna1 = "A-Aa-gG-GCC-cT-TT";
String dna2 = "c--CCGgg-TT--T-AA-A";
AlignmentI al1 = loadAlignment(">Dna1/6-17\n" + dna1
- + "\n>Dna2/20-31\n" + dna2 + "\n", "FASTA");
+ + "\n>Dna2/20-31\n" + dna2 + "\n", FileFormat.Fasta);
AlignmentI al2 = loadAlignment(
- ">Pep1/7-9\n-P--YK\n>Pep2/11-13\nG-T--F\n", "FASTA");
+ ">Pep1/7-9\n-P--YK\n>Pep2/11-13\nG-T--F\n", FileFormat.Fasta);
AlignedCodonFrame acf = new AlignedCodonFrame();
// Seq1 has intron at dna positions 3,4,9 so splice is AAG GCC TTT
// Seq2 has intron at dna positions 1,5,6 so splice is CCG TTT AAA
@Test(groups = "Functional")
public void testCopyConstructor() throws IOException
{
- AlignmentI protein = loadAlignment(AA_SEQS_1, FormatAdapter.PASTE);
+ AlignmentI protein = loadAlignment(AA_SEQS_1, FileFormat.Fasta);
// create sequence and alignment datasets
protein.setDataset(null);
AlignedCodonFrame acf = new AlignedCodonFrame();
public void testCreateDatasetAlignment() throws IOException
{
AlignmentI protein = new FormatAdapter().readFile(AA_SEQS_1,
- AppletFormatAdapter.PASTE, "FASTA");
+ DataSourceType.PASTE, FileFormat.Fasta);
/*
* create a dataset sequence on first sequence
* leave the second without one
import static org.testng.Assert.assertEquals;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AlignmentViewTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testGetVisibleAlignmentGapChar()
{
import static org.testng.AssertJUnit.assertTrue;
import static org.testng.AssertJUnit.fail;
+import jalview.gui.JvOptionPane;
+
import java.util.Arrays;
import java.util.BitSet;
import java.util.Collections;
import java.util.ConcurrentModificationException;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ColumnSelectionTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testAddElement()
{
import static org.testng.AssertJUnit.assertSame;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
import jalview.util.MapList;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class DBRefEntryTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* Tests for the method that compares equality of reference (but not mapping)
*/
import static org.testng.internal.junit.ArrayAsserts.assertArrayEquals;
import jalview.gui.AlignViewport;
+import jalview.gui.JvOptionPane;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
@Test(singleThreaded = true)
public class HiddenSequencesTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
static int SEQ_COUNT = 10;
SequenceI[] seqs;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertSame;
+import jalview.gui.JvOptionPane;
import jalview.util.MapList;
import java.util.Arrays;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
*/
public class MappingTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* trite test of the intersectVisContigs method for a simple DNA -> Protein
* exon map and a range of visContigs
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertSame;
-import jalview.datamodel.MappingType;
+import jalview.gui.JvOptionPane;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class MappingTypeTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testGetInverse()
{
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class MatchTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testToString()
{
import static org.testng.Assert.fail;
import jalview.datamodel.PDBEntry.Type;
+import jalview.gui.JvOptionPane;
//import org.testng.Assert;
import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class PDBEntryTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@BeforeMethod(alwaysRun = true)
public void setUp() throws Exception
{
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.datamodel;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import jalview.datamodel.ResidueCount.SymbolCounts;
+import jalview.gui.JvOptionPane;
import org.junit.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ResidueCountTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* Test a mix of add and put for nucleotide counting
*/
import static org.testng.AssertJUnit.assertSame;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
import java.util.BitSet;
import org.junit.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class SearchResultsTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testToString()
{
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertFalse;
+import jalview.gui.JvOptionPane;
import jalview.util.Comparison;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
*/
public class SeqCigarTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testFindPosition()
{
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@Test
public class SequenceDummyTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* test for become method
*/
import static org.testng.AssertJUnit.assertSame;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class SequenceFeatureTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testCopyConstructor()
{
sf1.setStatus("new");
assertTrue(sf1.equals(sf2));
}
+
+ @Test(groups = { "Functional" })
+ public void testIsContactFeature()
+ {
+ SequenceFeature sf = new SequenceFeature("type", "desc", 22, 33, 12.5f,
+ "group");
+ assertFalse(sf.isContactFeature());
+ sf.setType("");
+ assertFalse(sf.isContactFeature());
+ sf.setType(null);
+ assertFalse(sf.isContactFeature());
+ sf.setType("Disulfide Bond");
+ assertTrue(sf.isContactFeature());
+ sf.setType("disulfide bond");
+ assertTrue(sf.isContactFeature());
+ sf.setType("Disulphide Bond");
+ assertTrue(sf.isContactFeature());
+ sf.setType("disulphide bond");
+ assertTrue(sf.isContactFeature());
+ }
}
import static org.testng.internal.junit.ArrayAsserts.assertArrayEquals;
import jalview.datamodel.PDBEntry.Type;
+import jalview.gui.JvOptionPane;
import jalview.util.MapList;
import java.io.File;
import java.util.Vector;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class SequenceTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
Sequence seq;
@BeforeMethod(alwaysRun = true)
import jalview.datamodel.DBRefEntry;
import jalview.datamodel.DBRefSource;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import jalview.util.MapList;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class EmblEntryTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testGetCdsRanges()
{
import static org.testng.AssertJUnit.assertNull;
import jalview.datamodel.DBRefEntry;
+import jalview.gui.JvOptionPane;
import java.util.Vector;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class EmblFileTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testGetEmblFile()
{
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.ext.android;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.fail;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/*
*/
public class SparseIntArrayTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testPut()
{
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.ext.android;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.fail;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class SparseShortArrayTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testPut()
{
import jalview.datamodel.SequenceDummy;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import jalview.io.gff.SequenceOntologyFactory;
import jalview.io.gff.SequenceOntologyLite;
import jalview.util.MapList;
public class EnsemblCdnaTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@BeforeClass(alwaysRun = true)
public void setUp()
{
import jalview.datamodel.SequenceDummy;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import jalview.io.gff.SequenceOntologyFactory;
import jalview.io.gff.SequenceOntologyLite;
import jalview.util.MapList;
public class EnsemblCdsTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@BeforeClass(alwaysRun = true)
public void setUp()
{
import jalview.datamodel.SequenceDummy;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import jalview.io.gff.SequenceOntologyFactory;
import jalview.io.gff.SequenceOntologyLite;
import jalview.util.MapList;
public class EnsemblGeneTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@BeforeClass(alwaysRun = true)
public void setUp()
{
import jalview.datamodel.SequenceDummy;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import jalview.io.gff.SequenceOntologyFactory;
import jalview.io.gff.SequenceOntologyLite;
import jalview.util.MapList;
public class EnsemblGenomeTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@BeforeClass(alwaysRun = true)
public void setUp()
{
import static org.testng.AssertJUnit.assertEquals;
+import jalview.gui.JvOptionPane;
+
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class EnsemblProteinTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testIsValidReference() throws Exception
{
import jalview.datamodel.Alignment;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
-import jalview.io.AppletFormatAdapter;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
import jalview.io.FastaFile;
import jalview.io.FileParse;
import jalview.io.gff.SequenceOntologyFactory;
public class EnsemblSeqProxyTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private static final Object[][] allSeqs = new Object[][] {
{
new EnsemblProtein(),
FileParse fp = proxy.getSequenceReader(Arrays
.asList(new String[] { sq }));
SequenceI[] sqs = new FastaFile(fp).getSeqsAsArray();
- FastaFile trueRes = new FastaFile(fastasq, AppletFormatAdapter.PASTE);
+ FastaFile trueRes = new FastaFile(fastasq, DataSourceType.PASTE);
SequenceI[] trueSqs = trueRes.getSeqsAsArray();
Assert.assertEquals(sqs.length, trueSqs.length,
"Different number of sequences retrieved for query " + sq);
import static org.testng.AssertJUnit.assertFalse;
import jalview.datamodel.DBRefEntry;
+import jalview.gui.JvOptionPane;
import java.io.BufferedReader;
import java.io.IOException;
import java.net.URL;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class EnsemblXrefTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
//@formatter:off
private static final String JSON =
"[{\"primary_id\":\"CCDS5863\",\"dbname\":\"CCDS\"}," +
package jalview.ext.htsjdk;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import java.io.File;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
*/
public class TestHtsContigDb
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public final void testHTSReferenceSequence() throws Exception
{
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
+import jalview.gui.JvOptionPane;
import jalview.gui.SequenceRenderer;
import jalview.structure.StructureMappingcommandSet;
import jalview.structure.StructureSelectionManager;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class JmolCommandsTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testGetColourBySequenceCommand_noFeatures()
{
import jalview.datamodel.AlignmentI;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
-import jalview.io.AppletFormatAdapter;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
import jalview.io.FileLoader;
import jalview.structure.StructureImportSettings;
import jalview.structure.StructureImportSettings.StructureParser;
import java.util.Vector;
import org.jmol.c.STR;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
*/
public class JmolParserTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/*
* 1GAQ has been reduced to alpha carbons only
* 1QCF is the full PDB file including headers, HETATM etc
for (String f : testFile)
{
FileLoader fl = new jalview.io.FileLoader(false);
- AlignFrame af = fl
- .LoadFileWaitTillLoaded(f, AppletFormatAdapter.FILE);
+ AlignFrame af = fl.LoadFileWaitTillLoaded(f, DataSourceType.FILE);
validateSecStrRows(af.getViewport().getAlignment());
}
}
for (String pdbStr : testFile)
{
PDBfile mctest = new PDBfile(false, false, false, pdbStr,
- AppletFormatAdapter.FILE);
- JmolParser jtest = new JmolParser(pdbStr, AppletFormatAdapter.FILE);
+ DataSourceType.FILE);
+ JmolParser jtest = new JmolParser(pdbStr, DataSourceType.FILE);
Vector<SequenceI> seqs = jtest.getSeqs(), mcseqs = mctest.getSeqs();
assertTrue(
public void testParse_missingResidues() throws Exception
{
PDBfile mctest = new PDBfile(false, false, false,
- pastePDBDataWithChainBreak, AppletFormatAdapter.PASTE);
- JmolParser jtest = new JmolParser(pastePDBDataWithChainBreak,
- AppletFormatAdapter.PASTE);
+ pastePDBDataWithChainBreak, DataSourceType.PASTE);
+ JmolParser jtest = new JmolParser(pastePDBDataWithChainBreak, DataSourceType.PASTE);
Vector<SequenceI> seqs = jtest.getSeqs();
Vector<SequenceI> mcseqs = mctest.getSeqs();
public void testParse_alternativeResidues() throws Exception
{
PDBfile mctest = new PDBfile(false, false, false, pdbWithAltLoc,
- AppletFormatAdapter.PASTE);
+ DataSourceType.PASTE);
JmolParser jtest = new JmolParser(pdbWithAltLoc,
- AppletFormatAdapter.PASTE);
+ DataSourceType.PASTE);
Vector<SequenceI> seqs = jtest.getSeqs();
Vector<SequenceI> mcseqs = mctest.getSeqs();
* reads a local structure
*/
structureData = new JmolParser("examples/testdata/localstruct.pdb",
- AppletFormatAdapter.FILE);
+ DataSourceType.FILE);
assertNotNull(structureData);
/*
* local structure files should yield a false ID based on the filename
import jalview.bin.Jalview;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
+import jalview.gui.JvOptionPane;
import jalview.gui.Preferences;
import jalview.gui.StructureViewer;
import jalview.gui.StructureViewer.ViewerType;
-import jalview.io.FormatAdapter;
+import jalview.io.DataSourceType;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
public class JmolViewerTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* @throws java.lang.Exception
*/
Cache.setProperty(Preferences.STRUCTURE_DISPLAY, ViewerType.JMOL.name());
String inFile = "examples/1gaq.txt";
AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
- inFile, FormatAdapter.FILE);
+ inFile, DataSourceType.FILE);
assertTrue("Didn't read input file " + inFile, af != null);
for (SequenceI sq : af.getViewport().getAlignment().getSequences())
{
package jalview.ext.jmol;
import jalview.datamodel.SequenceI;
-import jalview.io.AppletFormatAdapter;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
import java.io.File;
import java.io.IOException;
import java.util.Set;
import java.util.Vector;
+import org.testng.annotations.BeforeClass;
+
import MCview.PDBfile;
/**
public class JmolVsJalviewPDBParserEndToEndTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
public static void main(String[] args)
{
if (args == null || args[0] == null)
JmolParser jtest = null;
try
{
- mctest = new PDBfile(false, false, false, testFile,
- AppletFormatAdapter.FILE);
- jtest = new JmolParser(testFile, AppletFormatAdapter.FILE);
+ mctest = new PDBfile(false, false, false, testFile, DataSourceType.FILE);
+ jtest = new JmolParser(testFile, DataSourceType.FILE);
} catch (IOException e)
{
System.err.println("Exception thrown while parsing : " + pdbStr);
import jalview.datamodel.AlignmentI;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
import jalview.io.FastaFile;
+import jalview.io.FileFormat;
import jalview.io.FormatAdapter;
import java.io.BufferedReader;
import org.testng.Assert;
import org.testng.AssertJUnit;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import MCview.PDBfile;
public class TestAnnotate3D
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Network" }, enabled = true)
public void test1GIDbyId() throws Exception
{
public void testPDBfileVsRNAML() throws Exception
{
PDBfile pdbf = new PDBfile(true, false, true, "examples/2GIS.pdb",
- FormatAdapter.FILE);
+ DataSourceType.FILE);
Assert.assertTrue(pdbf.isValid());
// Comment - should add new FileParse constructor like new FileParse(Reader
// ..). for direct reading
assertTrue("No data returned by Annotate3D", sb.length() > 0);
final String lines = sb.toString();
AlignmentI al = new FormatAdapter().readFile(lines,
- FormatAdapter.PASTE, "RNAML");
+ DataSourceType.PASTE, FileFormat.Rnaml);
if (al == null || al.getHeight() == 0)
{
System.out.println(lines);
{
AssertJUnit
.fail("Couldn't find this sequence in original input:\n"
- + new FastaFile()
- .print(new SequenceI[] { sq })
+ + new FastaFile().print(
+ new SequenceI[] { sq }, true)
+ "\n\nOriginal input:\n"
- + new FastaFile().print(pdbf.getSeqsAsArray())
- + "\n");
+ + new FastaFile().print(
+ pdbf.getSeqsAsArray(), true) + "\n");
}
}
}
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
+import jalview.gui.JvOptionPane;
+
import java.awt.Color;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ChimeraCommandsTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testBuildColourCommands()
{
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import ext.edu.ucsf.rbvi.strucviz2.ChimeraManager;
public class ChimeraConnect
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testLaunchAndExit()
{
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
import jalview.gui.Desktop;
+import jalview.gui.JvOptionPane;
import jalview.gui.Preferences;
import jalview.gui.StructureViewer;
import jalview.gui.StructureViewer.ViewerType;
import jalview.io.FileLoader;
-import jalview.io.FormatAdapter;
import jalview.structure.StructureMapping;
import jalview.structure.StructureSelectionManager;
import jalview.ws.sifts.SiftsClient;
import java.io.IOException;
import java.util.List;
import java.util.Vector;
+import jalview.io.DataSourceType;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
public class JalviewChimeraView
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private JalviewStructureDisplayI chimeraViewer;
/**
{
String inFile = "examples/1gaq.txt";
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(inFile,
- FormatAdapter.FILE);
+ DataSourceType.FILE);
assertNotNull(af, "Failed to create AlignFrame");
SequenceI sq = af.getViewport().getAlignment().getSequenceAt(0);
assertEquals(sq.getName(), "1GAQ|A");
{
String inFile = "examples/uniref50.fa";
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(inFile,
- FormatAdapter.FILE);
+ DataSourceType.FILE);
assertNotNull(af, "Failed to create AlignFrame");
SequenceI sq = af.getViewport().getAlignment().findName("FER2_ARATH");
assertNotNull(sq, "Didn't find FER2_ARATH");
{
String inFile = "examples/uniref50.fa";
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(inFile,
- FormatAdapter.FILE);
+ DataSourceType.FILE);
assertNotNull(af, "Failed to create AlignFrame");
SequenceI fer2Arath = af.getViewport().getAlignment()
.findName("FER2_ARATH");
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
import jalview.io.gff.SequenceOntologyI;
import org.testng.annotations.BeforeClass;
public class SequenceOntologyTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private SequenceOntologyI so;
@BeforeClass(alwaysRun = true)
import jalview.fts.api.FTSDataColumnI;
import jalview.fts.api.FTSDataColumnI.FTSDataColumnGroupI;
+import jalview.gui.JvOptionPane;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class FTSRestClientTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private FTSRestClient ftsRestClient;
@BeforeMethod(alwaysRun = true)
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
import javax.swing.JInternalFrame;
import javax.swing.JTextField;
import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class PDBFTSPanelTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@BeforeMethod(alwaysRun = true)
public void setUp() throws Exception
{
import jalview.fts.api.FTSDataColumnI;
import jalview.fts.core.FTSRestRequest;
import jalview.fts.core.FTSRestResponse;
+import jalview.gui.JvOptionPane;
import java.io.BufferedReader;
import java.io.FileReader;
import org.json.simple.parser.ParseException;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class PDBFTSRestClientTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@BeforeMethod(alwaysRun = true)
public void setUp() throws Exception
{
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AlignFrameTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testHideFeatureColumns()
{
import jalview.datamodel.SearchResultsI;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
+import jalview.io.DataSourceType;
import jalview.io.FileLoader;
-import jalview.io.FormatAdapter;
import jalview.schemes.ColourSchemeI;
import jalview.schemes.PIDColourScheme;
import jalview.structure.StructureSelectionManager;
public class AlignViewportTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
AlignmentI al;
AlignViewport testee;
* alignment with reference to mappings
*/
AlignFrame af1 = new FileLoader().LoadFileWaitTillLoaded(
- ">Seq1\nCAGT\n", FormatAdapter.PASTE);
+ ">Seq1\nCAGT\n", DataSourceType.PASTE);
SequenceI s1 = af1.getViewport().getAlignment().getSequenceAt(0);
AlignedCodonFrame acf1 = new AlignedCodonFrame();
ssm.resetAll();
AlignFrame af1 = new FileLoader().LoadFileWaitTillLoaded(
- ">Seq1\nRSVQ\n", FormatAdapter.PASTE);
+ ">Seq1\nRSVQ\n", DataSourceType.PASTE);
AlignFrame af2 = new FileLoader().LoadFileWaitTillLoaded(
- ">Seq2\nDGEL\n", FormatAdapter.PASTE);
+ ">Seq2\nDGEL\n", DataSourceType.PASTE);
SequenceI cs1 = new Sequence("cseq1", "CCCGGGTTTAAA");
SequenceI cs2 = new Sequence("cseq2", "CTTGAGTCTAGA");
SequenceI s1 = af1.getViewport().getAlignment().getSequenceAt(0);
ssm.resetAll();
AlignFrame af1 = new FileLoader().LoadFileWaitTillLoaded(
- ">Seq1\nRSVQ\n", FormatAdapter.PASTE);
+ ">Seq1\nRSVQ\n", DataSourceType.PASTE);
AlignFrame af2 = new FileLoader().LoadFileWaitTillLoaded(
- ">Seq2\nDGEL\n", FormatAdapter.PASTE);
+ ">Seq2\nDGEL\n", DataSourceType.PASTE);
SequenceI cs1 = new Sequence("cseq1", "CCCGGGTTTAAA");
SequenceI cs2 = new Sequence("cseq2", "CTTGAGTCTAGA");
SequenceI s1 = af1.getViewport().getAlignment().getSequenceAt(0);
Cache.applicationProperties.setProperty("SHOW_IDENTITY",
Boolean.FALSE.toString());
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
- "examples/uniref50.fa", FormatAdapter.FILE);
+ "examples/uniref50.fa", DataSourceType.FILE);
AlignmentAnnotation[] anns = af.viewport.getAlignment()
.getAlignmentAnnotation();
assertNotNull("No annotations found", anns);
Cache.applicationProperties.setProperty("SHOW_CONSERVATION",
Boolean.TRUE.toString());
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
- "examples/uniref50.fa", FormatAdapter.FILE);
+ "examples/uniref50.fa", DataSourceType.FILE);
ColourSchemeI cs = new PIDColourScheme();
af.getViewport().setGlobalColourScheme(cs);
assertFalse(cs.conservationApplied());
public void testSetGetHasSearchResults()
{
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
- "examples/uniref50.fa", FormatAdapter.FILE);
+ "examples/uniref50.fa", DataSourceType.FILE);
SearchResultsI sr = new SearchResults();
SequenceI s1 = af.getViewport().getAlignment().getSequenceAt(0);
import jalview.datamodel.Annotation;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
-import jalview.io.AppletFormatAdapter;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
+import jalview.io.FormatAdapter;
import jalview.util.MessageManager;
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JPanel;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
*/
public class AnnotationChooserTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
// 4 sequences x 13 positions
final static String TEST_DATA = ">FER_CAPAA Ferredoxin\n"
+ "TIETHKEAELVG-\n"
Cache.applicationProperties.setProperty("SHOW_CONSERVATION", TRUE);
Cache.applicationProperties.setProperty("SHOW_IDENTITY", TRUE);
- AlignmentI al = new jalview.io.FormatAdapter().readFile(TEST_DATA,
- AppletFormatAdapter.PASTE, "FASTA");
+ AlignmentI al = new FormatAdapter().readFile(TEST_DATA,
+ DataSourceType.PASTE, FileFormat.Fasta);
af = new AlignFrame(al, 700, 500);
parentPanel = new AlignmentPanel(af, af.getViewport());
addAnnotations();
import static org.testng.AssertJUnit.assertNull;
import static org.testng.AssertJUnit.assertSame;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AppVarnaTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testReplaceOddGaps()
{
import java.awt.Font;
import java.awt.FontMetrics;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class FontChooserTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* Not a real test as it runs no methods on FontChooser and makes no
* assertions, but this method writes to sysout the names of any (currently
import javax.help.HelpSetException;
import javax.help.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class HelpTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void checkHelpTargets() throws HelpSetException
{
{
@BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
}
--- /dev/null
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
+
+package jalview.gui;
+
+import java.awt.Component;
+import java.awt.Dimension;
+
+import javax.swing.Icon;
+import javax.swing.JDesktopPane;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+
+import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+public class JvOptionPaneTest
+{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
+ Component parentComponent = null;
+
+ String message = "Hello World!";
+
+ String title = "Title";
+
+ int optionType = JvOptionPane.OK_CANCEL_OPTION;
+
+ int messageType = JvOptionPane.INFORMATION_MESSAGE;
+
+ Icon icon = null;
+
+ Object initialSelectionValue = null;
+
+ Object[] selectionValues = null;
+
+
+ @Test(groups = { "Functional" })
+ public void showConfirmDialogFamilyTest()
+ {
+ JvOptionPane.showConfirmDialog(parentComponent, message);
+ JvOptionPane.showConfirmDialog(parentComponent, message, title,
+ optionType);
+ JvOptionPane.showConfirmDialog(parentComponent, message, title,
+ optionType, messageType);
+ JvOptionPane.showConfirmDialog(parentComponent, message, title,
+ optionType, messageType, icon);
+ Assert.assertTrue(true);
+ }
+
+ @Test(groups = { "Functional" })
+ public void showInputDialogFamilyTest()
+ {
+ JvOptionPane.showInputDialog(message);
+ JvOptionPane.showInputDialog(parentComponent, message);
+ JvOptionPane.showInputDialog(message, initialSelectionValue);
+ JvOptionPane.showInputDialog(parentComponent, message,
+ initialSelectionValue);
+ JvOptionPane.showInputDialog(parentComponent, message, title,
+ messageType);
+ JvOptionPane.showInputDialog(parentComponent, message, title,
+ messageType, icon, selectionValues, initialSelectionValue);
+ Assert.assertTrue(true);
+ }
+
+ @Test(groups = { "Functional" })
+ public void showMessageDialogFamilyTest()
+ {
+ JvOptionPane.showMessageDialog(parentComponent, message);
+ JvOptionPane.showMessageDialog(parentComponent, message, title,
+ messageType);
+ JvOptionPane.showMessageDialog(parentComponent, message, title,
+ messageType, icon);
+ Assert.assertTrue(true);
+ }
+
+ @Test(groups = { "Functional" })
+ public void showInternalMessageDialogFamilyTest()
+ {
+ JvOptionPane.showInternalMessageDialog(parentComponent, message);
+ JvOptionPane.showInternalMessageDialog(parentComponent, message, title,
+ messageType);
+ JvOptionPane.showInternalMessageDialog(parentComponent, message, title,
+ messageType, icon);
+ Assert.assertTrue(true);
+ }
+
+ @Test(groups = { "Functional" })
+ public void showInternalConfirmDialogFamilyTest()
+ {
+ JvOptionPane.showInternalConfirmDialog(parentComponent, message, title,
+ optionType);
+ JvOptionPane.showInternalConfirmDialog(parentComponent, message, title,
+ optionType, messageType);
+
+ JvOptionPane.showInternalConfirmDialog(getDummyDesktopPane(), message);
+
+ JvOptionPane.showInternalConfirmDialog(getDummyDesktopPane(), message,
+ title, optionType, messageType, icon);
+ JvOptionPane.showInternalInputDialog(getDummyDesktopPane(), message);
+ JvOptionPane.showInternalInputDialog(getDummyDesktopPane(), message,
+ title, messageType);
+ JvOptionPane.showInternalInputDialog(getDummyDesktopPane(), message,
+ title, messageType, icon, selectionValues,
+ initialSelectionValue);
+ Assert.assertTrue(true);
+
+ }
+
+ private JDesktopPane getDummyDesktopPane()
+ {
+ JFrame frame = new JFrame("Dummy JDesktopPane");
+ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ @SuppressWarnings("serial")
+ JDesktopPane jdpDesktop = new JDesktopPane()
+ {
+ @Override
+ public Dimension getPreferredSize()
+ {
+ return new Dimension(400, 300);
+ }
+ };
+ frame.setContentPane(jdpDesktop);
+ JPanel panel = new JPanel();
+ panel.setBounds(0, 0, 400, 300);
+ jdpDesktop.add(panel);
+ frame.pack();
+ frame.setVisible(true);
+ panel.setVisible(true);
+ return jdpDesktop;
+ }
+}
import javax.swing.JScrollBar;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class JvSwingUtilsTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testGetScrollBarProportion()
{
import javax.swing.JPanel;
import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class PaintRefresherTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
// TODO would prefer PaintRefresher to be a single rather than static
@BeforeMethod(alwaysRun = true)
public void setUp()
import jalview.datamodel.DBRefSource;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
-import jalview.io.AppletFormatAdapter;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
import jalview.io.FormatAdapter;
import jalview.util.MessageManager;
import javax.swing.JPopupMenu;
import javax.swing.JSeparator;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class PopupMenuTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
// 4 sequences x 13 positions
final static String TEST_DATA = ">FER_CAPAA Ferredoxin\n"
+ "TIETHKEAELVG-\n"
public void setUp() throws IOException
{
alignment = new FormatAdapter().readFile(TEST_DATA,
- AppletFormatAdapter.PASTE, "FASTA");
+ DataSourceType.PASTE, FileFormat.Fasta);
AlignFrame af = new AlignFrame(alignment, 700, 500);
parentPanel = new AlignmentPanel(af, af.getViewport());
testee = new PopupMenu(parentPanel, null, null);
import javax.swing.JPanel;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ProgressBarTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private JPanel statusPanel;
private JLabel statusBar;
import java.awt.Color;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class SequenceRendererTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testGetResidueBoxColour_zappo()
{
import java.util.Vector;
import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class StructureChooserTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
Sequence seq;
@BeforeMethod(alwaysRun = true)
import jalview.datamodel.PDBEntry;
import jalview.datamodel.PDBEntry.Type;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class StructureViewerTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testGetUniquePdbFiles()
{
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
+import jalview.gui.JvOptionPane;
import jalview.structure.StructureImportSettings;
import jalview.structure.StructureImportSettings.StructureParser;
public class AnnotatedPDBFileInputTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
AlignmentI al;
String pdbId;
Boolean.TRUE.toString());
FileLoader loader = new FileLoader(false);
AlignFrame af = loader.LoadFileWaitTillLoaded("examples/1gaq.txt",
- FormatAdapter.FILE);
+ DataSourceType.FILE);
al = af.getViewport().getAlignment();
pdbId = al.getSequenceAt(0).getDatasetSequence().getAllPDBEntries()
.get(0).getId();
String tfile = File.createTempFile("JalviewTest", ".jvp")
.getAbsolutePath();
AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
- inFile, FormatAdapter.FILE);
+ inFile, DataSourceType.FILE);
assertTrue("Didn't read input file " + inFile, af != null);
assertTrue("Failed to store as a project.",
- af.saveAlignment(tfile, "Jalview"));
+ af.saveAlignment(tfile, FileFormat.Jalview));
af.closeMenuItem_actionPerformed(true);
af = null;
af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(tfile,
- FormatAdapter.FILE);
+ DataSourceType.FILE);
assertTrue("Failed to import new project", af != null);
for (SequenceI asq : af.getViewport().getAlignment().getSequences())
{
import jalview.datamodel.AlignmentI;
import jalview.datamodel.ColumnSelection;
+import jalview.gui.JvOptionPane;
import jalview.io.AnnotationFile.ViewDef;
import java.io.File;
import java.util.Hashtable;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class AnnotationFileIOTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
static String TestFiles[][] = {
{ "Test example annotation import/export", "examples/uniref50.fa",
"examples/testdata/example_annot_file.jva" },
{
FormatAdapter rf = new FormatAdapter();
- AlignmentI al = rf.readFile(ff, AppletFormatAdapter.FILE,
- new IdentifyFile().identify(ff, AppletFormatAdapter.FILE));
+ AlignmentI al = rf.readFile(ff, DataSourceType.FILE,
+ new IdentifyFile().identify(ff, DataSourceType.FILE));
// make sure dataset is initialised ? not sure about this
for (int i = 0; i < al.getSequencesArray().length; ++i)
+ testname
+ "\nAlignment was not annotated - annotation file not imported.",
new AnnotationFile().readAnnotationFile(al, cs, af,
- FormatAdapter.FILE));
+ DataSourceType.FILE));
AnnotationFile aff = new AnnotationFile();
ViewDef v = aff.new ViewDef(null, al.getHiddenSequences(), cs,
+ testname
+ "\nregenerated annotation file did not annotate alignment.",
new AnnotationFile().readAnnotationFile(al_new, anfileout,
- FormatAdapter.PASTE));
+ DataSourceType.PASTE));
// test for consistency in io
StockholmFileTest.testAlignmentEquivalence(al, al_new, false);
*/
package jalview.io;
+import jalview.gui.JvOptionPane;
import jalview.json.binding.biojs.BioJSReleasePojo;
import jalview.json.binding.biojs.BioJSRepositoryPojo;
import org.testng.Assert;
import org.testng.AssertJUnit;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class BioJsHTMLOutputTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void getJalviewAlignmentAsJsonString()
{
import jalview.gui.CrossRefAction;
import jalview.gui.Desktop;
import jalview.gui.Jalview2XML;
+import jalview.gui.JvOptionPane;
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@Test(singleThreaded = true)
public class CrossRef2xmlTests extends Jalview2xmlBase
{
+ @Override
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* test store and recovery of all reachable cross refs from all reachable
* crossrefs for one or more fetched db refs. Currently, this test has a known
Desktop.instance.closeAll_actionPerformed(null);
// recover stored project
af = new FileLoader(false).LoadFileWaitTillLoaded(savedProjects
- .get(first).toString(), FormatAdapter.FILE);
+ .get(first).toString(), DataSourceType.FILE);
System.out.println("Recovered view for '" + first + "' from '"
+ savedProjects.get(first).toString() + "'");
dna = af.getViewport().getAlignment().isNucleotide();
// recover stored project
AlignFrame af2 = new FileLoader(false)
.LoadFileWaitTillLoaded(savedProjects.get(nextxref)
- .toString(), FormatAdapter.FILE);
+ .toString(), DataSourceType.FILE);
System.out.println("Recovered view for '" + nextxref
+ "' from '" + savedProjects.get(nextxref).toString()
+ "'");
AlignFrame af2 = new FileLoader(false)
.LoadFileWaitTillLoaded(
savedProjects.get(nextnextxref)
- .toString(), FormatAdapter.FILE);
+ .toString(),
+ DataSourceType.FILE);
System.out.println("Recovered view for '"
+ nextnextxref + "' from '"
+ savedProjects.get(nextnextxref).toString()
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
+import jalview.gui.JvOptionPane;
import java.awt.Color;
import java.io.File;
import java.io.IOException;
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class FeaturesFileTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private static String simpleGffFile = "examples/testdata/simpleGff3.gff";
@Test(groups = { "Functional" })
Map<String, FeatureColourI> colours = af.getFeatureRenderer()
.getFeatureColours();
FeaturesFile featuresFile = new FeaturesFile(
- "examples/exampleFeatures.txt", FormatAdapter.FILE);
+ "examples/exampleFeatures.txt", DataSourceType.FILE);
assertTrue("Test " + "Features file test"
+ "\nFailed to parse features file.",
featuresFile.parse(al.getDataset(), colours, true));
+ "FER_CAPAA\tuniprot\tMETAL\t44\t45\t4.0\t.\t.\tNote Iron-sulfur; Note 2Fe-2S\n"
+ "FER1_SOLLC\tuniprot\tPfam\t55\t130\t2.0\t.\t.";
FeaturesFile featuresFile = new FeaturesFile(gffData,
- FormatAdapter.PASTE);
+ DataSourceType.PASTE);
assertTrue("Failed to parse features file",
featuresFile.parse(al.getDataset(), colours, true));
String ff = f.getPath();
FormatAdapter rf = new FormatAdapter();
- AlignmentI al = rf.readFile(ff, FormatAdapter.FILE,
- new IdentifyFile().identify(ff, FormatAdapter.FILE));
+ AlignmentI al = rf.readFile(ff, DataSourceType.FILE,
+ new IdentifyFile().identify(ff, DataSourceType.FILE));
al.setDataset(null); // creates dataset sequences
assertNotNull("Couldn't read supplied alignment data.", al);
+ "Note=Iron-sulfur (2Fe-2S);Note=another note;evidence=ECO:0000255|PROSITE-ProRule:PRU00465\n"
+ "FER1_SOLLC\tuniprot\tPfam\t55\t130\t3.0\t.\t.\tID=$23";
FeaturesFile featuresFile = new FeaturesFile(gffData,
- FormatAdapter.PASTE);
+ DataSourceType.PASTE);
assertTrue("Failed to parse features file",
featuresFile.parse(al.getDataset(), colours, true));
String featureData = "Iron-sulfur (2Fe-2S)\tFER_CAPAA\t-1\t39\t39\tMETAL\n"
+ "Iron-phosphorus (2Fe-P)\tID_NOT_SPECIFIED\t2\t86\t87\tMETALLIC\n";
FeaturesFile featuresFile = new FeaturesFile(featureData,
- FormatAdapter.PASTE);
+ DataSourceType.PASTE);
assertTrue("Failed to parse features file",
featuresFile.parse(al.getDataset(), colours, true));
public void readGff3File() throws IOException
{
FeaturesFile gffreader = new FeaturesFile(true, simpleGffFile,
- FormatAdapter.FILE);
+ DataSourceType.FILE);
Alignment dataset = new Alignment(gffreader.getSeqsAsArray());
gffreader.addProperties(dataset);
checkDatasetfromSimpleGff3(dataset);
public void simpleGff3FileClass() throws IOException
{
AlignmentI dataset = new Alignment(new SequenceI[] {});
- FeaturesFile ffile = new FeaturesFile(simpleGffFile, FormatAdapter.FILE);
-
+ FeaturesFile ffile = new FeaturesFile(simpleGffFile,
+ DataSourceType.FILE);
+
boolean parseResult = ffile.parse(dataset, null, false, false);
assertTrue("return result should be true", parseResult);
checkDatasetfromSimpleGff3(dataset);
public void simpleGff3FileLoader() throws IOException
{
AlignFrame af = new FileLoader(false).LoadFileWaitTillLoaded(
- simpleGffFile, FormatAdapter.FILE);
+ simpleGffFile, DataSourceType.FILE);
assertTrue(
"Didn't read the alignment into an alignframe from Gff3 File",
af != null);
public void simpleGff3RelaxedIdMatching() throws IOException
{
AlignmentI dataset = new Alignment(new SequenceI[] {});
- FeaturesFile ffile = new FeaturesFile(simpleGffFile, FormatAdapter.FILE);
-
+ FeaturesFile ffile = new FeaturesFile(simpleGffFile,
+ DataSourceType.FILE);
+
boolean parseResult = ffile.parse(dataset, null, false, true);
assertTrue("return result (relaxedID matching) should be true",
parseResult);
+ "<html>Pfam domain<a href=\"http://pfam.xfam.org/family/PF00111\">Pfam_3_4</a></html>\tFER_CAPAA\t-1\t20\t20\tPfam\n"
+ "ENDGROUP\tuniprot\n";
FeaturesFile featuresFile = new FeaturesFile(features,
- FormatAdapter.PASTE);
+ DataSourceType.PASTE);
featuresFile.parse(al.getDataset(), colours, false);
/*
*/
package jalview.io;
+import jalview.gui.JvOptionPane;
+
import java.io.File;
import java.io.IOException;
public class FileIOTester
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* @throws java.lang.Exception
*/
final static File STARS_FA_FILE2 = new File(
"test/jalview/io/test_fasta_stars2.fa");
- private void assertValidFormat(String fmt, String src, FileParse fp)
+ private void assertValidFormat(FileFormatI fmt, String src, FileParse fp)
+ throws FileFormatException
{
AssertJUnit.assertTrue("Couldn't resolve " + src + " as a valid file",
fp.isValid());
- String type = new IdentifyFile().identify(fp);
- AssertJUnit.assertTrue("Data from '" + src + "' Expected to be '" + fmt
- + "' identified as '" + type + "'", type.equalsIgnoreCase(fmt));
+ FileFormatI type = new IdentifyFile().identify(fp);
+ AssertJUnit.assertSame("Data from '" + src + "' Expected to be '" + fmt
+ + "' identified as '" + type + "'", type, fmt);
}
@Test(groups = { "Functional" })
{
String uri;
FileParse fp = new FileParse(uri = STARS_FA_FILE1.getAbsoluteFile()
- .toString(), AppletFormatAdapter.FILE);
- assertValidFormat("FASTA", uri, fp);
+ .toString(), DataSourceType.FILE);
+ assertValidFormat(FileFormat.Fasta, uri, fp);
}
@Test(groups = { "Functional" })
{
String uri;
FileParse fp = new FileParse(uri = STARS_FA_FILE2.getAbsoluteFile()
- .toString(), AppletFormatAdapter.FILE);
- assertValidFormat("FASTA", uri, fp);
+ .toString(), DataSourceType.FILE);
+ assertValidFormat(FileFormat.Fasta, uri, fp);
}
@Test(groups = { "Functional" })
{
String uri;
FileParse fp = new FileParse(uri = ALIGN_FILE.getAbsoluteFile().toURI()
- .toString(), AppletFormatAdapter.URL);
- assertValidFormat("FASTA", uri, fp);
+ .toString(), DataSourceType.URL);
+ assertValidFormat(FileFormat.Fasta, uri, fp);
}
@Test(groups = { "Functional" })
{
String filepath;
FileParse fp = new FileParse(filepath = ALIGN_FILE.getAbsoluteFile()
- .toString(), AppletFormatAdapter.FILE);
- assertValidFormat("FASTA", filepath, fp);
+ .toString(), DataSourceType.FILE);
+ assertValidFormat(FileFormat.Fasta, filepath, fp);
}
@Test(groups = { "Functional" })
{
String uri;
FileParse fp = new FileParse(uri = NOTGZALIGN_FILE.getAbsoluteFile()
- .toURI().toString(), AppletFormatAdapter.URL);
- assertValidFormat("FASTA", uri, fp);
+ .toURI().toString(), DataSourceType.URL);
+ assertValidFormat(FileFormat.Fasta, uri, fp);
}
@Test(groups = { "Functional" })
{
String filepath;
FileParse fp = new FileParse(filepath = NOTGZALIGN_FILE
- .getAbsoluteFile().toString(), AppletFormatAdapter.FILE);
- assertValidFormat("FASTA", filepath, fp);
+ .getAbsoluteFile().toString(), DataSourceType.FILE);
+ assertValidFormat(FileFormat.Fasta, filepath, fp);
}
}
import jalview.datamodel.AlignmentI;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class FormatAdapterTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* Test saving and re-reading in a specified format
*
* @throws IOException
*/
@Test(groups = { "Functional" }, dataProvider = "formats")
- public void testRoundTrip(String format) throws IOException
+ public void testRoundTrip(FileFormatI format) throws IOException
{
try
{
AlignmentI al = new FormatAdapter().readFile("examples/uniref50.fa",
- FormatAdapter.FILE, "FASTA");
+ DataSourceType.FILE, FileFormat.Fasta);
/*
* 'gap' is the gap character used in the alignment data file here,
false);
AlignmentI reloaded = new FormatAdapter().readFile(formatted,
- FormatAdapter.PASTE, format);
+ DataSourceType.PASTE, format);
List<SequenceI> reread = reloaded.getSequences();
assertEquals("Wrong number of reloaded sequences", seqs.length,
reread.size());
* @return
*/
String adjustForGapTreatment(String sequenceString, char gap,
- String format)
+ FileFormatI format)
{
- if ("MSF".equals(format))
+ if (FileFormat.MSF.equals(format))
{
/*
* MSF forces gap character to '.', so change it back
/**
* Data provider that serves alignment formats that are both readable and
- * writable
+ * (text) writable
*
* @return
*/
@DataProvider(name = "formats")
static Object[][] getFormats()
{
- List<String> both = new ArrayList<String>();
- String[] readable = FormatAdapter.READABLE_FORMATS;
- List<String> writeable = Arrays.asList(FormatAdapter.WRITEABLE_FORMATS);
- for (String r : readable)
+ List<FileFormatI> both = new ArrayList<FileFormatI>();
+ for (FileFormat format : FileFormat.values())
{
- if (writeable.contains(r))
+ if (format.isReadable() && format.isWritable()
+ && format.isTextFormat())
{
- both.add(r);
+ both.add(format);
}
}
Object[][] formats = new Object[both.size()][];
int i = 0;
- for (String format : both)
+ for (FileFormatI format : both)
{
formats[i] = new Object[] { format };
i++;
@Test(groups = { "Functional" }, enabled = false)
public void testOneFormatRoundTrip() throws IOException
{
- testRoundTrip("JSON");
+ testRoundTrip(FileFormat.Json);
}
}
*/
package jalview.io;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class HtmlFileTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" }, enabled = false)
public void test()
{
*/
package jalview.io;
-import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertFalse;
+import static org.testng.AssertJUnit.assertSame;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class IdentifyFileTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" }, dataProvider = "identifyFiles")
- public void testIdentify(String data, String expectedFileType)
+ public void testIdentify(String data, FileFormatI expectedFileType)
+ throws FileFormatException
{
- String protocol = AppletFormatAdapter.FILE;
+ DataSourceType protocol = DataSourceType.FILE;
IdentifyFile ider = new IdentifyFile();
- String actualFiletype = ider.identify(data, protocol);
- Assert.assertEquals(actualFiletype, expectedFileType,
+ FileFormatI actualFiletype = ider.identify(data, protocol);
+ Assert.assertSame(actualFiletype, expectedFileType,
"File identification Failed!");
}
/**
* Additional tests for Jalview features file
+ *
+ * @throws FileFormatException
*/
@Test(groups = "Functional")
- public void testIdentify_featureFile()
+ public void testIdentify_featureFile() throws FileFormatException
{
IdentifyFile ider = new IdentifyFile();
*/
String data = "Iron-sulfur (2Fe-2S)\tFER_CAPAA\t-1\t39\t39\tMETAL\n"
+ "Iron-phosphorus (2Fe-P)\tID_NOT_SPECIFIED\t2\t86\t87\tMETALLIC\n";
- assertEquals(IdentifyFile.FeaturesFile,
- ider.identify(data, AppletFormatAdapter.PASTE));
+ assertSame(FileFormat.Features,
+ ider.identify(data, DataSourceType.PASTE));
/*
* Jalview feature colour followed by GFF format feature data
*/
data = "METAL\tcc9900\n" + "GFF\n"
+ "FER_CAPAA\tuniprot\tMETAL\t44\t45\t4.0\t.\t.\n";
- assertEquals(IdentifyFile.FeaturesFile,
- ider.identify(data, AppletFormatAdapter.PASTE));
+ assertSame(FileFormat.Features,
+ ider.identify(data, DataSourceType.PASTE));
/*
* Feature with '<' in the name (JAL-2098)
*/
data = "kD < 3\tred\n" + "Low kD\tFER_CAPAA\t-1\t39\t39\tkD < 3\n";
- assertEquals(IdentifyFile.FeaturesFile,
- ider.identify(data, AppletFormatAdapter.PASTE));
+ assertSame(FileFormat.Features,
+ ider.identify(data, DataSourceType.PASTE));
}
@DataProvider(name = "identifyFiles")
public Object[][] IdentifyFileDP()
{
return new Object[][] {
- { "examples/example.json", "JSON" },
- { "examples/plantfdx.fa", "FASTA" },
- { "examples/dna_interleaved.phy", "PHYLIP" },
- { "examples/2GIS.pdb", "PDB" },
- { "examples/rf00031_folded.stk", "STH" },
- { "examples/testdata/test.rnaml", "RNAML" },
- { "examples/testdata/test.aln", "CLUSTAL" },
- { "examples/testdata/test.pfam", "PFAM" },
- { "examples/testdata/test.msf", "MSF" },
- { "examples/testdata/test.pir", "PIR" },
- { "examples/testdata/test.html", "HTML" },
- { "examples/testdata/test.pileup", "PileUp" },
- { "examples/testdata/test.blc", "BLC" },
- { "examples/exampleFeatures.txt", IdentifyFile.FeaturesFile },
- { "examples/testdata/simpleGff3.gff", IdentifyFile.FeaturesFile },
- { "examples/testdata/test.jvp", "Jalview" },
- { "examples/testdata/test.cif", "mmCIF" },
+ { "examples/example.json", FileFormat.Json },
+ { "examples/plantfdx.fa", FileFormat.Fasta },
+ { "examples/dna_interleaved.phy", FileFormat.Phylip },
+ { "examples/2GIS.pdb", FileFormat.PDB },
+ { "examples/rf00031_folded.stk", FileFormat.Stockholm },
+ { "examples/testdata/test.rnaml", FileFormat.Rnaml },
+ { "examples/testdata/test.aln", FileFormat.Clustal },
+ { "examples/testdata/test.pfam", FileFormat.Pfam },
+ { "examples/testdata/test.msf", FileFormat.MSF },
+ { "examples/testdata/test.pir", FileFormat.PIR },
+ { "examples/testdata/test.html", FileFormat.Html },
+ { "examples/testdata/test.pileup", FileFormat.Pileup },
+ { "examples/testdata/test.blc", FileFormat.BLC },
+ { "examples/exampleFeatures.txt", FileFormat.Features },
+ { "examples/testdata/simpleGff3.gff", FileFormat.Features },
+ { "examples/testdata/test.jvp", FileFormat.Jalview },
+ { "examples/testdata/test.cif", FileFormat.MMCif },
{
"examples/testdata/cullpdb_pc25_res3.0_R0.3_d150729_chains9361.fasta.15316",
- "FASTA" },
+ FileFormat.Fasta },
// { "examples/testdata/test.amsa", "AMSA" },
// { "examples/test.jnet", "JnetFile" },
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
+import jalview.gui.JvOptionPane;
import jalview.json.binding.biojson.v1.ColourSchemeMapper;
import jalview.schemes.ColourSchemeI;
import org.testng.Assert;
import org.testng.AssertJUnit;
import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class JSONFileTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private int TEST_SEQ_HEIGHT = 0;
private int TEST_GRP_HEIGHT = 0;
try
{
alignment = (Alignment) formatAdapter.readFile(TEST_JSON_FILE,
- AppletFormatAdapter.FILE, JSONFile.FILE_DESC);
+ DataSourceType.FILE, FileFormat.Json);
jf = (JSONFile) formatAdapter.getAlignFile();
AlignFrame af = new AlignFrame(alignment, jf.getHiddenSequences(),
af.getViewport().setFeaturesDisplayed(jf.getDisplayedFeatures());
formatAdapter = new AppletFormatAdapter(af.alignPanel, exportSettings);
- String jsonOutput = formatAdapter.formatSequences(JSONFile.FILE_DESC,
+ String jsonOutput = formatAdapter.formatSequences(FileFormat.Json,
af.alignPanel.getAlignment(), false);
formatAdapter = new AppletFormatAdapter();
testAlignment = formatAdapter.readFile(jsonOutput,
- AppletFormatAdapter.PASTE, JSONFile.FILE_DESC);
+ DataSourceType.PASTE, FileFormat.Json);
testJsonFile = (JSONFile) formatAdapter.getAlignFile();
// System.out.println(jsonOutput);
} catch (IOException e)
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.SequenceI;
import jalview.gui.Desktop;
+import jalview.gui.JvOptionPane;
import java.util.Date;
public class Jalview2xmlBase
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* @throws java.lang.Exception
*/
import jalview.gui.AlignmentPanel;
import jalview.gui.Desktop;
import jalview.gui.Jalview2XML;
+import jalview.gui.JvOptionPane;
import jalview.schemes.AnnotationColourGradient;
import jalview.schemes.ColourSchemeI;
import jalview.schemes.ColourSchemeProperty;
import org.testng.Assert;
import org.testng.AssertJUnit;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@Test(singleThreaded = true)
public class Jalview2xmlTests extends Jalview2xmlBase
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testRNAStructureRecovery() throws Exception
{
String inFile = "examples/RF00031_folded.stk";
String tfile = File.createTempFile("JalviewTest", ".jvp")
.getAbsolutePath();
- AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(inFile,
- FormatAdapter.FILE);
- assertNotNull("Didn't read input file " + inFile, af);
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
+ inFile, DataSourceType.FILE);
+ assertTrue("Didn't read input file " + inFile, af != null);
int olddsann = countDsAnn(af.getViewport());
assertTrue("Didn't find any dataset annotations", olddsann > 0);
af.rnahelicesColour_actionPerformed(null);
"Couldn't apply RNA helices colourscheme",
af.getViewport().getGlobalColourScheme() instanceof jalview.schemes.RNAHelicesColour);
assertTrue("Failed to store as a project.",
- af.saveAlignment(tfile, "Jalview"));
+ af.saveAlignment(tfile, FileFormat.Jalview));
af.closeMenuItem_actionPerformed(true);
af = null;
- af = new FileLoader().LoadFileWaitTillLoaded(tfile, FormatAdapter.FILE);
- assertNotNull("Failed to import new project", af);
+ af = new FileLoader().LoadFileWaitTillLoaded(tfile, DataSourceType.FILE);
+ assertTrue("Failed to import new project", af != null);
int newdsann = countDsAnn(af.getViewport());
assertTrue(
"Differing numbers of dataset sequence annotation\nOriginally "
String inFile = "examples/uniref50.fa", inAnnot = "examples/uniref50.score_ascii";
String tfile = File.createTempFile("JalviewTest", ".jvp")
.getAbsolutePath();
- AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(inFile,
- FormatAdapter.FILE);
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
+ inFile, DataSourceType.FILE);
assertNotNull("Didn't read input file " + inFile, af);
- af.loadJalviewDataFile(inAnnot, FormatAdapter.FILE, null, null);
+ af.loadJalviewDataFile(inAnnot, DataSourceType.FILE, null, null);
assertSame("Didn't set T-coffee colourscheme", af.getViewport()
.getGlobalColourScheme().getClass(), TCoffeeColourScheme.class);
assertNotNull("Recognise T-Coffee score from string",
- jalview.schemes.ColourSchemeProperty.getColour(af.getViewport()
+ ColourSchemeProperty.getColour(af.getViewport()
.getAlignment(), ColourSchemeProperty.getColourName(af
.getViewport().getGlobalColourScheme())));
assertTrue("Failed to store as a project.",
- af.saveAlignment(tfile, "Jalview"));
+ af.saveAlignment(tfile, FileFormat.Jalview));
af.closeMenuItem_actionPerformed(true);
af = null;
- af = new FileLoader().LoadFileWaitTillLoaded(tfile, FormatAdapter.FILE);
+ af = new FileLoader().LoadFileWaitTillLoaded(tfile,
+ DataSourceType.FILE);
assertNotNull("Failed to import new project", af);
assertSame("Didn't set T-coffee colourscheme for imported project.", af
.getViewport().getGlobalColourScheme().getClass(),
String inFile = "examples/uniref50.fa", inAnnot = "examples/testdata/uniref50_iupred.jva";
String tfile = File.createTempFile("JalviewTest", ".jvp")
.getAbsolutePath();
- AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(inFile,
- FormatAdapter.FILE);
+ AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(inFile, DataSourceType.FILE);
assertNotNull("Didn't read input file " + inFile, af);
- af.loadJalviewDataFile(inAnnot, FormatAdapter.FILE, null, null);
+ af.loadJalviewDataFile(inAnnot, DataSourceType.FILE, null, null);
AlignmentAnnotation[] aa = af.getViewport().getAlignment()
.getSequenceAt(0).getAnnotation("IUPredWS (Short)");
assertTrue(
sg.addSequence(af.getViewport().getAlignment().getSequenceAt(2), true);
af.alignPanel.alignmentChanged();
assertTrue("Failed to store as a project.",
- af.saveAlignment(tfile, "Jalview"));
+ af.saveAlignment(tfile, FileFormat.Jalview));
af.closeMenuItem_actionPerformed(true);
af = null;
- af = new FileLoader().LoadFileWaitTillLoaded(tfile, FormatAdapter.FILE);
- assertNotNull("Failed to import new project", af);
+ af = new FileLoader().LoadFileWaitTillLoaded(tfile, DataSourceType.FILE);
+ assertTrue("Failed to import new project", af != null);
// check for group and alignment colourschemes
int origCount = Desktop.getAlignFrames() == null ? 0 : Desktop
.getAlignFrames().length;
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
- "examples/exampleFile_2_7.jar", FormatAdapter.FILE);
+ "examples/exampleFile_2_7.jar", DataSourceType.FILE);
assertNotNull("Didn't read in the example file correctly.", af);
assertTrue("Didn't gather the views in the example file.",
Desktop.getAlignFrames().length == 1 + origCount);
StructureImportSettings.setProcessSecondaryStructure(true);
StructureImportSettings.setVisibleChainAnnotation(true);
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
- "examples/exampleFile_2_7.jar", FormatAdapter.FILE);
+ "examples/exampleFile_2_7.jar", DataSourceType.FILE);
assertNotNull("Didn't read in the example file correctly.", af);
AlignmentViewPanel sps = null;
for (AlignmentViewPanel ap : af.alignPanel.alignFrame.getAlignPanels())
public void testCopyViewSettings() throws Exception
{
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
- "examples/exampleFile_2_7.jar", FormatAdapter.FILE);
+ "examples/exampleFile_2_7.jar", DataSourceType.FILE);
assertNotNull("Didn't read in the example file correctly.", af);
AlignmentViewPanel sps = null, groups = null;
for (AlignmentViewPanel ap : af.alignPanel.alignFrame.getAlignPanels())
Desktop.instance.closeAll_actionPerformed(null);
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
- "examples/exampleFile_2_7.jar", FormatAdapter.FILE);
+ "examples/exampleFile_2_7.jar", DataSourceType.FILE);
Assert.assertEquals(Desktop.getAlignFrames().length, 1);
String afid = af.getViewport().getSequenceSetId();
{
Assert.assertEquals(Desktop.getAlignFrames().length, 0);
}
- af = new FileLoader().LoadFileWaitTillLoaded(tfile.getAbsolutePath(),
- FormatAdapter.FILE);
+ af = new FileLoader().LoadFileWaitTillLoaded(
+ tfile.getAbsolutePath(), DataSourceType.FILE);
Assert.assertNotNull(af);
Assert.assertEquals(
Desktop.getAlignFrames().length,
{
Desktop.instance.closeAll_actionPerformed(null);
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
- "examples/exampleFile_2_7.jar", FormatAdapter.FILE);
+ "examples/exampleFile_2_7.jar", DataSourceType.FILE);
assertNotNull("Didn't read in the example file correctly.", af);
String afid = af.getViewport().getSequenceSetId();
Assert.assertEquals(Desktop.getAlignFrames().length, 0);
}
- af = new FileLoader().LoadFileWaitTillLoaded(tfile.getAbsolutePath(),
- FormatAdapter.FILE);
+ af = new FileLoader().LoadFileWaitTillLoaded(
+ tfile.getAbsolutePath(), DataSourceType.FILE);
afid = af.getViewport().getSequenceSetId();
for (AlignmentViewPanel ap : Desktop.getAlignmentPanels(afid))
{
Desktop.instance.closeAll_actionPerformed(null);
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(
- "examples/uniref50.fa", FormatAdapter.FILE);
+ "examples/uniref50.fa", DataSourceType.FILE);
assertNotNull("Didn't read in the example file correctly.", af);
String afid = af.getViewport().getSequenceSetId();
// make a second view of the alignment
{
Assert.assertEquals(Desktop.getAlignFrames().length, 0);
}
-
- af = new FileLoader().LoadFileWaitTillLoaded(tfile.getAbsolutePath(),
- FormatAdapter.FILE);
+
+ af = new FileLoader().LoadFileWaitTillLoaded(
+ tfile.getAbsolutePath(), DataSourceType.FILE);
afid = af.getViewport().getSequenceSetId();
for (AlignmentViewPanel ap : Desktop.getAlignmentPanels(afid))
Desktop.instance.closeAll_actionPerformed(null);
String exampleFile = "examples/3W5V.pdb";
AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(exampleFile,
- FormatAdapter.FILE);
+ DataSourceType.FILE);
assertNotNull("Didn't read in the example file correctly.", af);
String afid = af.getViewport().getSequenceSetId();
}
AlignFrame restoredFrame = new FileLoader().LoadFileWaitTillLoaded(
- tfile.getAbsolutePath(), FormatAdapter.FILE);
+ tfile.getAbsolutePath(), DataSourceType.FILE);
String rfid = restoredFrame.getViewport().getSequenceSetId();
AlignmentPanel[] rAlignPanels = Desktop.getAlignmentPanels(rfid);
AlignmentViewPanel rap = rAlignPanels[0];
import jalview.datamodel.SequenceGroup;
import jalview.gui.AlignFrame;
+import jalview.gui.JvOptionPane;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
public class JalviewExportPropertiesTests
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* @throws java.lang.Exception
*/
assertTrue("Couldn't set gap character to '.'",
".".equals("" + jalview.bin.Cache.getProperty("GAP_SYMBOL")));
AlignFrame af = new jalview.io.FileLoader().LoadFileWaitTillLoaded(
- "examples/uniref50.fa", FormatAdapter.FILE);
+ "examples/uniref50.fa", DataSourceType.FILE);
assertTrue("Didn't read in the example file correctly.", af != null);
assertTrue("Didn't set the gap character correctly", af.getViewport()
.getAlignment().getSequenceAt(0).getCharAt(5) == '.');
sg.setEndRes(7);
af.getViewport().setSelectionGroup(sg);
String fseqs = new FormatAdapter(af.alignPanel).formatSequences(
- "FASTA", af.alignPanel, true);
+ FileFormat.Fasta, af.alignPanel, true);
assertTrue("Couldn't find '.' in the exported region\n" + fseqs,
fseqs.indexOf(".") > -1);
}
--- /dev/null
+package jalview.io;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNotSame;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertSame;
+
+import java.io.File;
+
+import javax.swing.ImageIcon;
+
+import org.testng.annotations.Test;
+
+public class JalviewFileViewTest
+{
+ @Test
+ public void testGetImageIcon()
+ {
+ JalviewFileView jfv = new JalviewFileView();
+ ImageIcon icon1 = jfv.getImageIcon("/images/file.png");
+ ImageIcon icon2 = jfv.getImageIcon("/images/file.png");
+ ImageIcon icon3 = jfv.getImageIcon("/images/dna.png");
+ ImageIcon icon4 = jfv.getImageIcon("/images/dna.png");
+
+ /*
+ * verify a single image object is served per file path
+ */
+ assertNotNull(icon1);
+ assertSame(icon1, icon2);
+ assertNotNull(icon3);
+ assertSame(icon3, icon4);
+ assertNotSame(icon1, icon3);
+
+ assertNull(jfv.getImageIcon("/images/nosuchfile.png"));
+ assertNull(jfv.getImageIcon("images/file.png"));
+ }
+
+ @Test
+ public void testGetExtension()
+ {
+ assertEquals(JalviewFileView.getExtension(new File("text.txt")), "txt");
+ assertEquals(JalviewFileView.getExtension(new File(
+ "/a/longer/file/path/text.png.TXT")), "txt");
+ assertNull(JalviewFileView.getExtension(new File(
+ "/a/longer/file/path/text.")));
+ assertNull(JalviewFileView.getExtension(new File(
+ "/a/longer/file/path/text")));
+ }
+
+ @Test
+ public void testGetTypeDescription()
+ {
+ JalviewFileView jfw = new JalviewFileView();
+ assertEquals(jfw.getTypeDescription(new File("uniref50.fa")),
+ "Fasta file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.fasta")),
+ "Fasta file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.MFA")),
+ "Fasta file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.fastQ")),
+ "Fasta file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.pfam")),
+ "PFAM file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.stk")),
+ "Stockholm file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.sto")),
+ "Stockholm file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.pir")),
+ "PIR file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.blc")),
+ "BLC file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.amsa")),
+ "AMSA file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.html")),
+ "HTML file");
+ assertNull(jfw.getTypeDescription(new File("uniref50.htm")));
+ assertEquals(jfw.getTypeDescription(new File("uniref50.xml")),
+ "RNAML file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.rnaml")),
+ "RNAML file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.json")),
+ "JSON file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.pileup")),
+ "PileUp file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.msf")),
+ "MSF file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.aln")),
+ "Clustal file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.phy")),
+ "PHYLIP file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.gff2")),
+ "GFF or Jalview features file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.gff3")),
+ "GFF or Jalview features file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.pdb")),
+ "PDB file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.ent")),
+ "PDB file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.cif")),
+ "mmCIF file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.jvp")),
+ "Jalview file");
+ assertEquals(jfw.getTypeDescription(new File("uniref50.jar")),
+ "Jalview file (old)");
+ }
+}
import jalview.analysis.SequenceIdMatcher;
import jalview.datamodel.SequenceI;
import jalview.datamodel.SequenceNode;
+import jalview.gui.JvOptionPane;
import java.util.Arrays;
import java.util.Collection;
public class NewickFileTests
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Factory
public static Object[] factoryData()
{
{
stage = "Parsing testTree " + treename;
System.out.println(treename + "\n" + testTree);
- NewickFile nf = new NewickFile(testTree, FormatAdapter.PASTE);
+ NewickFile nf = new NewickFile(testTree, DataSourceType.PASTE);
nf.parse();
AssertJUnit.assertTrue(
stage + "Invalid Tree '" + nf.getWarningMessage() + "'",
AssertJUnit.assertTrue(stage + "Empty string generated",
gentree != null && gentree.trim().length() > 0);
stage = "Parsing regenerated testTree " + treename;
- NewickFile nf_regen = new NewickFile(gentree, FormatAdapter.PASTE);
+ NewickFile nf_regen = new NewickFile(gentree, DataSourceType.PASTE);
nf_regen.parse();
AssertJUnit.assertTrue(
stage + "Newick file is invalid ('"
package jalview.io;
import jalview.datamodel.AlignmentI;
+import jalview.gui.JvOptionPane;
import java.io.IOException;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class PfamFormatInputTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testPfamFormatNoLimits() throws IOException
{
AlignmentI al = new AppletFormatAdapter().readFile("ASEQ"
- + '\t' + "...--FFAFAFF--", AppletFormatAdapter.PASTE, "PFAM");
+ + '\t' + "...--FFAFAFF--", DataSourceType.PASTE,
+ FileFormat.Pfam);
Assert.assertEquals(1, al.getHeight(), "Wrong number of sequences");
Assert.assertTrue(al.hasValidSequence(),
"Didn't extract limits from PFAM ID");
@Test(groups = "Functional")
public void testPfamFormatValidLimits() throws IOException
{
- AlignmentI al = new AppletFormatAdapter().readFile(
- "ASEQ/15-25" + '\t' + "...--FFAFAFF--",
- AppletFormatAdapter.PASTE, "PFAM");
+ AlignmentI al = new AppletFormatAdapter().readFile("ASEQ/15-25" + '\t'
+ + "...--FFAFAFF--", DataSourceType.PASTE, FileFormat.Pfam);
Assert.assertEquals(1, al.getHeight(), "Wrong number of sequences");
Assert.assertTrue(al.hasValidSequence(),
"Didn't extract limits from PFAM ID");
import jalview.datamodel.AlignmentI;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
public class PhylipFileTests
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
// interleaved file from
// http://www.molecularevolution.org/molevolfiles/fileformats/dna.phy.dat
// sequential file is the interleave file converted into sequential format
private void testDataExtraction(String file) throws IOException
{
AppletFormatAdapter rf = new AppletFormatAdapter();
- AlignmentI al = rf.readFile(file, AppletFormatAdapter.FILE,
- PhylipFile.FILE_DESC);
+ AlignmentI al = rf.readFile(file, DataSourceType.FILE,
+ FileFormat.Phylip);
assertNotNull("Couldn't read supplied alignment data.", al);
Map<String, String> data = PhylipFileTests.getTestData();
public void testIO(String file) throws IOException
{
AppletFormatAdapter rf = new AppletFormatAdapter();
- AlignmentI al = rf.readFile(file, AppletFormatAdapter.FILE,
- PhylipFile.FILE_DESC);
+ AlignmentI al = rf.readFile(file, DataSourceType.FILE,
+ FileFormat.Phylip);
assertNotNull("Couldn't read supplied alignment data.", al);
- String outputfile = rf.formatSequences(PhylipFile.FILE_DESC, al, true);
+ String outputfile = rf.formatSequences(FileFormat.Phylip, al, true);
AlignmentI al_input = new AppletFormatAdapter().readFile(outputfile,
- AppletFormatAdapter.PASTE, PhylipFile.FILE_DESC);
+ DataSourceType.PASTE, FileFormat.Phylip);
assertNotNull("Couldn't parse reimported alignment data.", al_input);
StockholmFileTest.testAlignmentEquivalence(al, al_input, false);
*/
package jalview.io;
+import jalview.gui.JvOptionPane;
+
import java.io.File;
import org.testng.annotations.AfterClass;
{
@BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
}
public void testRnamlToStockholmIO()
{
StockholmFileTest.testFileIOwithFormat(new File(
- "examples/testdata/rna-alignment.xml"), "STH", -1, -1);
+ "examples/testdata/rna-alignment.xml"), FileFormat.Stockholm,
+ -1, -1);
}
import static org.testng.AssertJUnit.assertEquals;
import jalview.datamodel.SequenceFeature;
+import jalview.gui.JvOptionPane;
import java.util.Hashtable;
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class SequenceAnnotationReportTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testAppendFeature_disulfideBond()
{
import jalview.datamodel.Annotation;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import java.io.File;
import java.util.BitSet;
import java.util.HashMap;
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class StockholmFileTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
static String PfamFile = "examples/PF00111_seed.stk",
RfamFile = "examples/RF00031_folded.stk";
@Test(groups = { "Functional" })
public void pfamFileIO() throws Exception
{
- testFileIOwithFormat(new File(PfamFile), "STH", -1, 0);
+ testFileIOwithFormat(new File(PfamFile), FileFormat.Stockholm, -1, 0);
}
@Test(groups = { "Functional" })
public void pfamFileDataExtraction() throws Exception
{
AppletFormatAdapter af = new AppletFormatAdapter();
- AlignmentI al = af.readFile(PfamFile, af.FILE,
- new IdentifyFile().identify(PfamFile, af.FILE));
+ AlignmentI al = af.readFile(PfamFile, DataSourceType.FILE,
+ new IdentifyFile().identify(PfamFile, DataSourceType.FILE));
int numpdb = 0;
for (SequenceI sq : al.getSequences())
{
@Test(groups = { "Functional" })
public void rfamFileIO() throws Exception
{
- testFileIOwithFormat(new File(RfamFile), "STH", 2, 1);
+ testFileIOwithFormat(new File(RfamFile), FileFormat.Stockholm, 2, 1);
}
/**
* f
*/
- public static void testFileIOwithFormat(File f, String ioformat,
+ public static void testFileIOwithFormat(File f, FileFormatI ioformat,
int naliannot, int nminseqann)
{
System.out.println("Reading file: " + f);
{
AppletFormatAdapter rf = new AppletFormatAdapter();
- AlignmentI al = rf.readFile(ff, AppletFormatAdapter.FILE,
- new IdentifyFile().identify(ff, AppletFormatAdapter.FILE));
+ AlignmentI al = rf.readFile(ff, DataSourceType.FILE,
+ new IdentifyFile().identify(ff, DataSourceType.FILE));
assertNotNull("Couldn't read supplied alignment data.", al);
+ outputfile + "\n<<EOF\n");
// test for consistency in io
AlignmentI al_input = new AppletFormatAdapter().readFile(outputfile,
- AppletFormatAdapter.PASTE, ioformat);
+ DataSourceType.PASTE, ioformat);
assertNotNull("Couldn't parse reimported alignment data.", al_input);
- String identifyoutput = new IdentifyFile().identify(outputfile,
- AppletFormatAdapter.PASTE);
+ FileFormatI identifyoutput = new IdentifyFile().identify(outputfile,
+ DataSourceType.PASTE);
assertNotNull("Identify routine failed for outputformat " + ioformat,
identifyoutput);
assertTrue(
*/
package jalview.io;
+import jalview.gui.JvOptionPane;
import jalview.io.TCoffeeScoreFile.Block;
import jalview.io.TCoffeeScoreFile.Header;
import java.util.List;
import org.testng.AssertJUnit;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class TCoffeeScoreFileTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
final static File SCORE_FILE = new File(
"test/jalview/io/tcoffee.score_ascii");
{
TCoffeeScoreFile scoreFile = new TCoffeeScoreFile(SCORE_FILE.getPath(),
- AppletFormatAdapter.FILE);
+ DataSourceType.FILE);
AssertJUnit.assertTrue(scoreFile.getWarningMessage(),
scoreFile.isValid());
try
{
TCoffeeScoreFile result = new TCoffeeScoreFile(ALIGN_FILE.getPath(),
- FormatAdapter.FILE);
+ DataSourceType.FILE);
AssertJUnit.assertFalse(result.isValid());
} catch (IOException x)
{
public void testHeightAndWidth() throws IOException
{
TCoffeeScoreFile result = new TCoffeeScoreFile(SCORE_FILE.getPath(),
- FormatAdapter.FILE);
+ DataSourceType.FILE);
AssertJUnit.assertTrue(result.isValid());
AssertJUnit.assertEquals(8, result.getHeight());
AssertJUnit.assertEquals(83, result.getWidth());
+ "1QCF 99999999999999999999999999974-------2---------24\n"
+ "cons 999999999999999999999999999851000110321100001134\n"
+ "\n" + "\n";
- FileParse source = new FileParse(BLOCK, FormatAdapter.PASTE);
+ FileParse source = new FileParse(BLOCK, DataSourceType.PASTE);
Block block = TCoffeeScoreFile.readBlock(source, 0);
AssertJUnit.assertNotNull(block);
{
TCoffeeScoreFile parser = new TCoffeeScoreFile(SCORE_FILE.getPath(),
- FormatAdapter.FILE);
+ DataSourceType.FILE);
AssertJUnit
.assertEquals(
{
TCoffeeScoreFile parser = new TCoffeeScoreFile(SCORE_FILE.getPath(),
- FormatAdapter.FILE);
+ DataSourceType.FILE);
AssertJUnit.assertTrue(parser.getWarningMessage(), parser.isValid());
List<String> scores = parser.getScoresList();
AssertJUnit
{
TCoffeeScoreFile parser = new TCoffeeScoreFile(SCORE_FILE.getPath(),
- FormatAdapter.FILE);
+ DataSourceType.FILE);
AssertJUnit.assertTrue(parser.getWarningMessage(), parser.isValid());
byte[][] scores = parser.getScoresArray();
public void testHeightAndWidthWithResidueNumbers() throws Exception
{
String file = "test/jalview/io/tcoffee.score_ascii_with_residue_numbers";
- TCoffeeScoreFile result = new TCoffeeScoreFile(file, FormatAdapter.FILE);
+ TCoffeeScoreFile result = new TCoffeeScoreFile(file, DataSourceType.FILE);
AssertJUnit.assertTrue(result.isValid());
AssertJUnit.assertEquals(5, result.getHeight());
AssertJUnit.assertEquals(84, result.getWidth());
import jalview.datamodel.SequenceDummy;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
import jalview.io.FileLoader;
-import jalview.io.FormatAdapter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ExonerateHelperTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testGetMappingType()
{
{
FileLoader loader = new FileLoader(false);
AlignFrame af = loader.LoadFileWaitTillLoaded(
- "examples/testdata/exonerateseqs.fa", FormatAdapter.FILE);
-
+ "examples/testdata/exonerateseqs.fa",
+ DataSourceType.FILE);
+
af.loadJalviewDataFile("examples/testdata/exonerateoutput.gff",
- FormatAdapter.FILE, null, null);
-
+ DataSourceType.FILE, null, null);
+
/*
* verify one mapping to a dummy sequence, one to a real one
*/
- List<AlignedCodonFrame> mappings = af.getViewport().getAlignment()
- .getDataset().getCodonFrames();
+ List<AlignedCodonFrame> mappings = af
+ .getViewport().getAlignment().getDataset().getCodonFrames();
assertEquals(2, mappings.size());
Iterator<AlignedCodonFrame> iter = mappings.iterator();
-
+
// first mapping is to dummy sequence
AlignedCodonFrame mapping = iter.next();
Mapping[] mapList = mapping.getProtMappings();
// 143 in protein should map to codon [11270, 11269, 11268] in dna
int[] mappedRegion = mapList[0].getMap().locateInFrom(143, 143);
assertArrayEquals(new int[] { 11270, 11268 }, mappedRegion);
-
+
// second mapping is to a sequence in the alignment
mapping = iter.next();
mapList = mapping.getProtMappings();
.findName("DDB_G0280897");
assertSame(proteinSeq.getDatasetSequence(), mapList[0].getTo());
assertEquals(1, mapping.getdnaToProt().length);
-
+
// 143 in protein should map to codon [11270, 11269, 11268] in dna
mappedRegion = mapList[0].getMap().locateInFrom(143, 143);
assertArrayEquals(new int[] { 11270, 11268 }, mappedRegion);
-
+
// 182 in protein should map to codon [11153, 11152, 11151] in dna
mappedRegion = mapList[0].getMap().locateInFrom(182, 182);
assertArrayEquals(new int[] { 11153, 11151 }, mappedRegion);
-
+
// and the reverse mapping:
mappedRegion = mapList[0].getMap().locateInTo(11151, 11153);
assertArrayEquals(new int[] { 182, 182 }, mappedRegion);
-
+
// 11150 in dna should _not_ map to protein
mappedRegion = mapList[0].getMap().locateInTo(11150, 11150);
assertNull(mappedRegion);
-
+
// similarly 183 in protein should _not_ map to dna
mappedRegion = mapList[0].getMap().locateInFrom(183, 183);
assertNull(mappedRegion);
import jalview.datamodel.SequenceDummy;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class Gff3HelperTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* Test processing one PASA GFF line giving a match from forward strand to
* forward strand
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
import java.util.Arrays;
import java.util.List;
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class GffHelperBaseTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* Test the method that parses lines like <br>
* ID=2345;Name=Something,Another thing;Notes=Hello;Notes=World
import static org.testng.AssertJUnit.assertSame;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class GffHelperFactoryTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testGetHelper()
{
import jalview.datamodel.SequenceDummy;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
import jalview.io.FileLoader;
-import jalview.io.FormatAdapter;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
*/
public class GffTests
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* Test the case where we load a protein ('query') sequence, then exonerateGff
* describing its mapping to cDNA, and then a DNA sequence including the
{
String proteinSeq = ">prot1/10-16\nYCWRSGA";
AlignFrame af = new FileLoader(false).LoadFileWaitTillLoaded(
- proteinSeq, FormatAdapter.PASTE);
+ proteinSeq, DataSourceType.PASTE);
/*
* exonerate GFF output mapping residues 11-15 (CWRSG)
*/
String exonerateGff = "##gff-version 2\n"
+ "prot1\tprotein2genome\tsimilarity\t11\t15\t99\t-\t.\talignment_id 0 ; Target dna1 ; Align 11 24 5";
- af.loadJalviewDataFile(exonerateGff, FormatAdapter.PASTE, null, null);
+ af.loadJalviewDataFile(exonerateGff, DataSourceType.PASTE, null, null);
/*
* check we have a mapping from prot1 to SequenceDummy 'dna1'
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceDummy;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class InterProScanHelperTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* Test processing one InterProScan GFF line
*
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class DnaCodonTests
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testAmbiguityCodeGeneration()
{
import static org.testng.AssertJUnit.fail;
import jalview.datamodel.SequenceFeature;
+import jalview.gui.JvOptionPane;
import jalview.util.Format;
import java.awt.Color;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class FeatureColourTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testCopyConstructor()
{
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.schemes;
import static org.testng.AssertJUnit.assertEquals;
import jalview.datamodel.Profile;
import jalview.datamodel.ProfileI;
import jalview.datamodel.Profiles;
+import jalview.gui.JvOptionPane;
import java.awt.Color;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ResidueColourSchemeTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testAboveThreshold()
{
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertNull;
+import jalview.gui.JvOptionPane;
+
import java.util.Collections;
import java.util.List;
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ResiduePropertiesTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* Test 'standard' codon translations (no ambiguity codes)
*/
package jalview.schemes;
import jalview.api.analysis.ScoreModelI;
+import jalview.gui.JvOptionPane;
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ScoreMatrixPrinter
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void printAllMatrices()
{
import static org.testng.AssertJUnit.assertNull;
import static org.testng.AssertJUnit.assertSame;
+import jalview.gui.JvOptionPane;
+
import java.awt.Color;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class UserColourSchemeTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testGetColourFromString()
{
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
import jalview.io.FileLoader;
-import jalview.io.FormatAdapter;
import jalview.io.StructureFile;
import org.testng.Assert;
import org.testng.AssertJUnit;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class Mapping
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/*
* more test data
*
StructureSelectionManager ssm = new jalview.structure.StructureSelectionManager();
StructureFile pmap = ssm.setMapping(true, new SequenceI[] { uprot },
new String[] { "A" }, "test/jalview/ext/jmol/1QCF.pdb",
- jalview.io.FormatAdapter.FILE);
+ DataSourceType.FILE);
assertTrue(pmap != null);
SequenceI protseq = pmap.getSeqsAsArray()[0];
AlignmentAnnotation pstra = protseq
// Associate the 1GAQ pdb file with the subsequence 'imported' from another
// source
StructureFile pde = ssm.setMapping(true, new SequenceI[] { sq },
- new String[] { "A" }, inFile = "examples/1gaq.txt",
- jalview.io.FormatAdapter.FILE);
+ new String[]
+ { "A" }, inFile = "examples/1gaq.txt", DataSourceType.FILE);
assertTrue("PDB File couldn't be found", pde != null);
StructureMapping[] mp = ssm.getMapping(inFile);
assertTrue("No mappings made.", mp != null && mp.length > 0);
AlignFrame seqf = new FileLoader(false)
.LoadFileWaitTillLoaded(
">FER1_MAIZE/1-150 Ferredoxin-1, chloroplast precursor\nMATVLGSPRAPAFFFSSSSLRAAPAPTAVALPAAKVGIMGRSASSRRRLRAQATYNVKLITPEGEVELQVPD\nDVYILDQAEEDGIDLPYSCRAGSCSSCAGKVVSGSVDQSDQSYLDDGQIADGWVLTCHAYPTSDVVIETHKE\nEELTGA",
- FormatAdapter.PASTE, "FASTA");
+ DataSourceType.PASTE, FileFormat.Fasta);
SequenceI newseq = seqf.getViewport().getAlignment().getSequenceAt(0);
StructureSelectionManager ssm = new jalview.structure.StructureSelectionManager();
StructureFile pmap = ssm.setMapping(true, new SequenceI[] { newseq },
new String[] { null }, "examples/3W5V.pdb",
- jalview.io.FormatAdapter.FILE);
+ DataSourceType.FILE);
if (pmap == null)
{
AssertJUnit.fail("Couldn't make a mapping for 3W5V to FER1_MAIZE");
StructureImportSettings.setShowSeqFeatures(true);
AlignFrame ref = new FileLoader(false)
.LoadFileWaitTillLoaded("test/jalview/ext/jmol/1QCF.pdb",
- jalview.io.FormatAdapter.FILE);
+ DataSourceType.FILE);
SequenceI refseq = ref.getViewport().getAlignment().getSequenceAt(0);
SequenceI newseq = new Sequence(refseq.getName() + "Copy",
refseq.getSequenceAsString());
ssm.setAddTempFacAnnot(true);
StructureFile pmap = ssm.setMapping(true, new SequenceI[] { newseq },
new String[] { null }, "test/jalview/ext/jmol/1QCF.pdb",
- jalview.io.FormatAdapter.FILE);
+ DataSourceType.FILE);
assertTrue(pmap != null);
assertEquals("Original and copied sequence of different lengths.",
refseq.getLength(), newseq.getLength());
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
-import jalview.io.FormatAdapter;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
import jalview.io.StructureFile;
import jalview.util.MapList;
import java.util.ArrayList;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class StructureSelectionManagerTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private StructureSelectionManager ssm;
@BeforeMethod(alwaysRun = true)
sm.setProcessSecondaryStructure(true);
sm.setAddTempFacAnnot(true);
StructureFile pmap = sm.setMapping(true, new SequenceI[] { seq },
- new String[] { null }, "examples/1gaq.txt", FormatAdapter.FILE);
+ new String[] { null }, "examples/1gaq.txt", DataSourceType.FILE);
assertTrue(pmap != null);
assertEquals(3, pmap.getSeqs().size());
import jalview.datamodel.PDBEntry.Type;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
-import jalview.io.AppletFormatAdapter;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
import jalview.structure.AtomSpec;
import jalview.structure.StructureSelectionManager;
import jalview.structures.models.AAStructureBindingModel.SuperposeData;
import java.util.Arrays;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
*/
public class AAStructureBindingModelTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/*
* Scenario: Jalview has 4 sequences, corresponding to 1YCS (chains A and B), 3A6S|B, 1OOT|A
*/
StructureSelectionManager ssm = new StructureSelectionManager();
ssm.setMapping(new SequenceI[] { seq1a, seq1b }, null, PDB_1,
- AppletFormatAdapter.PASTE);
+ DataSourceType.PASTE);
ssm.setMapping(new SequenceI[] { seq2 }, null, PDB_2,
- AppletFormatAdapter.PASTE);
+ DataSourceType.PASTE);
ssm.setMapping(new SequenceI[] { seq3 }, null, PDB_3,
- AppletFormatAdapter.PASTE);
+ DataSourceType.PASTE);
testee = new AAStructureBindingModel(ssm, pdbFiles, seqs, null)
{
import static org.testng.AssertJUnit.assertEquals;
+import jalview.gui.JvOptionPane;
+
import java.util.Arrays;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ArrayUtilsTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testReverseIntArray()
{
import static org.testng.Assert.assertNotEquals;
import static org.testng.Assert.assertTrue;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class CaseInsensitiveStringTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testEquals()
{
import static org.testng.AssertJUnit.assertNull;
import static org.testng.AssertJUnit.assertSame;
+import jalview.gui.JvOptionPane;
+
import java.awt.Color;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ColorUtilsTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
Color paleColour = new Color(97, 203, 111); // pale green
Color midColour = new Color(135, 57, 41); // mid red
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ComparisonTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testIsGap()
{
import jalview.datamodel.PDBEntry;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class DBRefUtilsTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* Test the method that selects DBRefEntry items whose source is in a supplied
* list
import static org.testng.AssertJUnit.assertNull;
import static org.testng.AssertJUnit.fail;
+import jalview.gui.JvOptionPane;
+
import java.text.ParseException;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class DnaUtilsTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* Tests for parsing an ENA/GenBank location specifier
*
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.util;
import static org.testng.Assert.assertEquals;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class FormatTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testAppendPercentage()
{
import static org.testng.AssertJUnit.assertTrue;
import static org.testng.internal.junit.ArrayAsserts.assertArrayEquals;
+import jalview.gui.JvOptionPane;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class MapListTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testSomething()
{
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignViewport;
-import jalview.io.AppletFormatAdapter;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
+import jalview.io.FileFormatI;
import jalview.io.FormatAdapter;
import java.awt.Color;
import java.util.Arrays;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class MappingUtilsTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private AlignViewportI dnaView;
private AlignViewportI proteinView;
* viewport).
*/
AlignmentI cdna = loadAlignment(">Seq1\nACG\n>Seq2\nTGA\n>Seq3\nTAC\n",
- "FASTA");
+ FileFormat.Fasta);
cdna.setDataset(null);
AlignmentI protein = loadAlignment(">Seq1\nK\n>Seq2\nL\n>Seq3\nQ\n",
- "FASTA");
+ FileFormat.Fasta);
protein.setDataset(null);
AlignedCodonFrame acf = new AlignedCodonFrame();
MapList map = new MapList(new int[] { 1, 3 }, new int[] { 1, 1 }, 3, 1);
* @return
* @throws IOException
*/
- protected AlignmentI loadAlignment(final String data, String format)
+ protected AlignmentI loadAlignment(final String data, FileFormatI format)
throws IOException
{
AlignmentI a = new FormatAdapter().readFile(data,
- AppletFormatAdapter.PASTE, format);
+ DataSourceType.PASTE, format);
a.setDataset(null);
return a;
}
*/
AlignmentI cdna = loadAlignment(">Seq1/10-18\nAC-GctGtC-T\n"
+ ">Seq2/20-27\nTc-GA-G-T-Tc\n" + ">Seq3/30-38\nTtTT-AaCGg-\n",
- "FASTA");
+ FileFormat.Fasta);
cdna.setDataset(null);
AlignmentI protein = loadAlignment(
">Seq1/40-41\n-K-P\n>Seq2/50-51\nL--Q\n>Seq3/60-61\nG--S\n",
- "FASTA");
+ FileFormat.Fasta);
protein.setDataset(null);
// map first dna to first protein seq
* viewport).
*/
AlignmentI cdna = loadAlignment(
- ">Seq1\nACGGCA\n>Seq2\nTGACAG\n>Seq3\nTACGTA\n", "FASTA");
+ ">Seq1\nACGGCA\n>Seq2\nTGACAG\n>Seq3\nTACGTA\n",
+ FileFormat.Fasta);
cdna.setDataset(null);
AlignmentI protein = loadAlignment(">Seq1\nKA\n>Seq2\nLQ\n>Seq3\nQV\n",
- "FASTA");
+ FileFormat.Fasta);
protein.setDataset(null);
AlignedCodonFrame acf = new AlignedCodonFrame();
MapList map = new MapList(new int[] { 1, 6 }, new int[] { 1, 2 }, 3, 1);
*/
AlignmentI cdna = loadAlignment(
">Seq1\nA-CG-GC--AT-CA\n>Seq2\n-TG-AC-AG-T-AT\n>Seq3\n-T--ACG-TAAT-G\n",
- "FASTA");
+ FileFormat.Fasta);
cdna.setDataset(null);
AlignmentI protein = loadAlignment(
- ">Seq1\n-KA-S\n>Seq2\n--L-QY\n>Seq3\nQ-V-M\n", "FASTA");
+ ">Seq1\n-KA-S\n>Seq2\n--L-QY\n>Seq3\nQ-V-M\n", FileFormat.Fasta);
protein.setDataset(null);
AlignedCodonFrame acf = new AlignedCodonFrame();
MapList map = new MapList(new int[] { 1, 9 }, new int[] { 1, 3 }, 3, 1);
import static org.testng.AssertJUnit.assertEquals;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ParseHtmlBodyAndLinksTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testParseHtml_noLinks()
{
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.util;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
+import jalview.gui.JvOptionPane;
+
import java.awt.Button;
import java.awt.Event;
import java.awt.event.MouseEvent;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class PlatformTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
Button b = new Button();
/**
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
import java.util.Arrays;
import java.util.Random;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class QuickSortTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private static final String c1 = "Blue";
private static final String c2 = "Yellow";
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertNull;
+import jalview.gui.JvOptionPane;
+
import java.util.Arrays;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ShiftListTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testParseMap()
{
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.util;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class SparseCountTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = "Functional")
public void testAdd()
{
import static org.testng.AssertJUnit.assertNull;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class StringUtilsTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testInsertCharAt()
{
import jalview.datamodel.DBRefEntry;
import jalview.datamodel.DBRefSource;
import jalview.datamodel.Sequence;
+import jalview.gui.JvOptionPane;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class UrlLinkTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
final static String DB = "Test";
final static String URL_PREFIX = "http://www.jalview.org/";
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertTrue;
+import jalview.gui.JvOptionPane;
+
import java.awt.Color;
import java.lang.reflect.Field;
import java.util.Random;
import org.testng.AssertJUnit;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ViewStyleTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
Random r = new Random();
/**
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
+import jalview.gui.JvOptionPane;
import java.util.Collections;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class AlignCalcManagerTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private AlignFrame alignFrame;
/**
import jalview.bin.Cache;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import jalview.structure.StructureImportSettings;
import jalview.structure.StructureImportSettings.StructureParser;
import jalview.ws.seqfetcher.DbSourceProxy;
import java.util.List;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class PDBSequenceFetcherTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
SequenceFetcher sf;
@BeforeMethod(alwaysRun = true)
import jalview.datamodel.AlignmentI;
import jalview.datamodel.DBRefSource;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import jalview.ws.seqfetcher.ASequenceFetcher;
import jalview.ws.seqfetcher.DbSourceProxy;
import java.util.List;
import java.util.Vector;
+import org.testng.annotations.BeforeClass;
+
public class SequenceFetcherTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* simple run method to test dbsources.
*
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
import jalview.datamodel.UniprotEntry;
+import jalview.gui.JvOptionPane;
import java.io.Reader;
import java.io.StringReader;
import java.util.Vector;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class UniprotTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
// adapted from http://www.uniprot.org/uniprot/A9CKP4.xml
private static final String UNIPROT_XML = "<?xml version='1.0' encoding='UTF-8'?>"
+ "<uniprot>"
package jalview.ws.dbsources;
import jalview.datamodel.AlignmentI;
+import jalview.gui.JvOptionPane;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class XfamFetcherTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "External" })
public void testRfamSeed() throws Exception
{
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertNull;
+import jalview.gui.JvOptionPane;
+
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class EBIFetchClientTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* Test method that constructs URL to fetch from
*/
package jalview.ws.gui;
import jalview.bin.Cache;
+import jalview.gui.JvOptionPane;
import jalview.gui.WsJobParameters;
import jalview.util.MessageManager;
import jalview.ws.jabaws.JalviewJabawsTestUtils;
public class Jws2ParamView
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* which services to test
*/
import jalview.bin.Cache;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
+import jalview.gui.JvOptionPane;
import jalview.io.AnnotationFile;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
import jalview.io.FormatAdapter;
import jalview.io.StockholmFileTest;
import jalview.ws.jws2.AADisorderClient;
@Test(groups = { "External" })
public class DisorderAnnotExportImport
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
public static String testseqs = "examples/uniref50.fa";
public static Jws2Discoverer disc;
assertTrue("Couldn't discover any IUPred services to use to test.",
iupreds.size() > 0);
jalview.io.FileLoader fl = new jalview.io.FileLoader(false);
- af = fl.LoadFileWaitTillLoaded(testseqs, jalview.io.FormatAdapter.FILE);
+ af = fl.LoadFileWaitTillLoaded(testseqs, jalview.io.DataSourceType.FILE);
assertNotNull("Couldn't load test data ('" + testseqs + "')", af);
}
{
try
{
- String aligfileout = new FormatAdapter().formatSequences("PFAM",
- al.getSequencesArray());
+ String aligfileout = FileFormat.Pfam.getAlignmentFile().print(
+ al.getSequencesArray(), true);
String anfileout = new AnnotationFile()
.printAnnotationsForAlignment(al);
assertTrue(
+ "\n<<EOF\n");
AlignmentI al_new = new FormatAdapter().readFile(aligfileout,
- FormatAdapter.PASTE, "PFAM");
+ DataSourceType.PASTE, FileFormat.Pfam);
assertTrue(
"Test "
+ testname
+ "\nregenerated annotation file did not annotate alignment.",
new AnnotationFile().readAnnotationFile(al_new, anfileout,
- FormatAdapter.PASTE));
+ DataSourceType.PASTE));
// test for consistency in io
StockholmFileTest.testAlignmentEquivalence(al, al_new, true);
*/
package jalview.ws.jabaws;
+import jalview.gui.JvOptionPane;
import jalview.ws.jws2.Jws2Discoverer;
import java.util.Vector;
{
@BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
}
import jalview.bin.Cache;
import jalview.datamodel.AlignmentI;
import jalview.gui.Jalview2XML;
+import jalview.gui.JvOptionPane;
import jalview.io.AnnotationFile;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
import jalview.io.FormatAdapter;
import jalview.io.StockholmFileTest;
import jalview.ws.jws2.JPred301Client;
public class JpredJabaStructExportImport
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
public static String testseqs = "examples/uniref50.fa";
public static Jws2Discoverer disc;
System.out.println("State of jpredws: " + jpredws);
Assert.assertNotNull(jpredws, "jpredws is null!");
jalview.io.FileLoader fl = new jalview.io.FileLoader(false);
- af = fl.LoadFileWaitTillLoaded(testseqs, jalview.io.FormatAdapter.FILE);
+ af = fl.LoadFileWaitTillLoaded(testseqs, jalview.io.DataSourceType.FILE);
assertNotNull("Couldn't load test data ('" + testseqs + "')", af);
}
try
{
// what format would be appropriate for RNAalifold annotations?
- String aligfileout = new FormatAdapter().formatSequences("PFAM",
- al.getSequencesArray());
+ String aligfileout = FileFormat.Pfam.getAlignmentFile().print(
+ al.getSequencesArray(), true);
String anfileout = new AnnotationFile()
.printAnnotationsForAlignment(al);
// again what format would be appropriate?
AlignmentI al_new = new FormatAdapter().readFile(aligfileout,
- FormatAdapter.PASTE, "PFAM");
+ DataSourceType.PASTE, FileFormat.Fasta);
assertTrue(
"Test "
+ testname
+ "\nregenerated annotation file did not annotate alignment.",
new AnnotationFile().readAnnotationFile(al_new, anfileout,
- FormatAdapter.PASTE));
+ DataSourceType.PASTE));
// test for consistency in io
StockholmFileTest.testAlignmentEquivalence(al, al_new, false);
import static org.testng.AssertJUnit.assertEquals;
+import jalview.gui.JvOptionPane;
+
import java.util.ArrayList;
import java.util.List;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import compbio.data.msa.MsaWS;
public class MinJabawsClientTests
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* simple test for the benefit of JAL-1338
*
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.gui.Jalview2XML;
+import jalview.gui.JvOptionPane;
import jalview.io.AnnotationFile;
-import jalview.io.FileLoader;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
import jalview.io.FormatAdapter;
import jalview.io.StockholmFileTest;
import jalview.ws.jws2.Jws2Discoverer;
public class RNAStructExportImport
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
private static final String JAR_FILE_NAME = "testRnalifold_param.jar";
public static String testseqs = "examples/RF00031_folded.stk";
Assert.fail("no web service");
}
- FileLoader fl = new FileLoader(false);
+ jalview.io.FileLoader fl = new jalview.io.FileLoader(false);
- af = fl.LoadFileWaitTillLoaded(testseqs, FormatAdapter.FILE);
+ af = fl.LoadFileWaitTillLoaded(testseqs, jalview.io.DataSourceType.FILE);
assertNotNull("Couldn't load test data ('" + testseqs + "')", af);
try
{
// what format would be appropriate for RNAalifold annotations?
- String aligfileout = new FormatAdapter().formatSequences("PFAM",
- al.getSequencesArray());
+ String aligfileout = FileFormat.Pfam.getAlignmentFile().print(
+ al.getSequencesArray(), true);
String anfileout = new AnnotationFile()
.printAnnotationsForAlignment(al);
// again what format would be appropriate?
AlignmentI al_new = new FormatAdapter().readFile(aligfileout,
- FormatAdapter.PASTE, "PFAM");
+ DataSourceType.PASTE, FileFormat.Pfam);
assertTrue(
"Test "
+ testname
+ "\nregenerated annotation file did not annotate alignment.",
new AnnotationFile().readAnnotationFile(al_new, anfileout,
- FormatAdapter.PASTE));
+ DataSourceType.PASTE));
// test for consistency in io
StockholmFileTest.testAlignmentEquivalence(al, al_new, false);
import static org.testng.AssertJUnit.assertTrue;
import jalview.bin.Cache;
+import jalview.gui.JvOptionPane;
import jalview.ws.jabaws.JalviewJabawsTestUtils;
import jalview.ws.jws2.jabaws2.Jws2Instance;
public class ParameterUtilsTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/*
* To limit tests to specify services, add them to this list; leave list empty
* to test all
import static org.testng.AssertJUnit.assertEquals;
import jalview.bin.Cache;
+import jalview.gui.JvOptionPane;
import java.util.Vector;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class RestClientTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* Refactored 'as is' from main method
*/
import static org.testng.AssertJUnit.assertTrue;
import jalview.gui.AlignFrame;
+import jalview.gui.JvOptionPane;
import java.util.Map;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
public class ShmmrRSBSService
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testShmmrService()
{
assertNotNull(_rc);
AlignFrame alf = new jalview.io.FileLoader(false)
.LoadFileWaitTillLoaded("examples/testdata/smad.fa",
- jalview.io.FormatAdapter.FILE);
+ jalview.io.DataSourceType.FILE);
assertNotNull("Couldn't find test data.", alf);
alf.loadJalviewDataFile("examples/testdata/smad_groups.jva",
- jalview.io.FormatAdapter.FILE, null, null);
+ jalview.io.DataSourceType.FILE, null, null);
assertTrue(
"Couldn't load the test data's annotation file (should be 5 groups but found "
+ alf.getViewport().getAlignment().getGroups().size()
*/
package jalview.ws.seqfetcher;
+import jalview.gui.JvOptionPane;
+
import org.testng.AssertJUnit;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class DasSequenceFetcher
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
@Test(groups = { "Functional" })
public void testDasRegistryContact()
{
import jalview.datamodel.FeatureProperties;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import jalview.gui.JvOptionPane;
import jalview.util.DBRefUtils;
import jalview.ws.SequenceFetcher;
import jalview.ws.dbsources.Pdb;
public class DbRefFetcherTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
/**
* @throws java.lang.Exception
*/
import jalview.datamodel.DBRefSource;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
-import jalview.io.AppletFormatAdapter;
+import jalview.gui.JvOptionPane;
+import jalview.io.DataSourceType;
import jalview.structure.StructureMapping;
import jalview.xml.binding.sifts.Entry.Entity;
import org.testng.Assert;
import org.testng.FileAssert;
import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class SiftsClientTest
{
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
public static final String DEFAULT_SIFTS_DOWNLOAD_DIR = System
.getProperty("user.home")
+ File.separatorChar
try
{
pdbFile = new PDBfile(false, false, false, "test/jalview/io/"
- + testPDBId + ".pdb", AppletFormatAdapter.FILE);
+ + testPDBId + ".pdb", DataSourceType.FILE);
siftsClient = new SiftsClient(pdbFile);
} catch (Exception e)
{
try
{
pdbFile = new PDBfile(false, false, false, "test/jalview/io/2nq2"
- + ".pdb", AppletFormatAdapter.FILE);
+ + ".pdb", DataSourceType.FILE);
siftsClientX = new SiftsClient(pdbFile);
} catch (Exception e)
{
try
{
pdbFile = new PDBfile(false, false, false,
- "test/jalview/io/3ucu.cif", AppletFormatAdapter.FILE);
+ "test/jalview/io/3ucu.cif", DataSourceType.FILE);
siftsClientX = new SiftsClient(pdbFile);
} catch (Exception e)
{
<string><![CDATA[664]]></string>
</property>
<property name="sourceName">
- <string><![CDATA[Jmol-14.2.14_2015.06.11.jar]]></string>
+ <string><![CDATA[Jmol-14.6.4_2016.10.26.jar]]></string>
</property>
<property name="overrideUnixPermissions">
<boolean>false</boolean>
<boolean>true</boolean>
</property>
<property name="destinationName">
- <string><![CDATA[Jmol-14.2.14_2015.06.11.jar]]></string>
+ <string><![CDATA[Jmol-14.6.4_2016.10.26.jar]]></string>
</property>
<property name="fileSize">
<long>5417196</long>
<boolean>true</boolean>
</property>
<property name="bundledVM">
- <string><![CDATA[OracleJRE8u5_Macosx.vm]]></string>
+ <string><![CDATA[OracleJRE180u92_macosx.vm]]></string>
</property>
<property name="withoutVmSearchOption">
<short>10</short>
<boolean>true</boolean>
</property>
<property name="bundledVM">
- <string><![CDATA[SunJRE170_03Win32.vm]]></string>
+ <string><![CDATA[OracleJRE8u92_windows(x86).vm]]></string>
</property>
<property name="withoutVmSearchOption">
<short>10</short>
<boolean>true</boolean>
</property>
<property name="buildWithVM">
- <boolean>true</boolean>
+ <boolean>false</boolean>
</property>
<property name="bundledVM">
- <string><![CDATA[JRE16_16002HPUX11PA-RISC.vm]]></string>
+ <string><![CDATA[JRE16_16010HPUXPA-RISC.vm]]></string>
</property>
<property name="withoutVmSearchOption">
<short>10</short>
<boolean>true</boolean>
</property>
<property name="bundledVM">
- <string><![CDATA[ORACLEJRE7u60_linux32.vm]]></string>
+ <string><![CDATA[OracleJRE180u92_Linux32.vm]]></string>
</property>
<property name="withoutVmSearchOption">
<short>10</short>
<boolean>true</boolean>
</property>
<property name="bundledVM">
- <string><![CDATA[ORACLEJRE7u60_linux32.vm]]></string>
+ <string><![CDATA[OracleJRE180u92_Linux32.vm]]></string>
</property>
<property name="withoutVmSearchOption">
<short>10</short>
<boolean>true</boolean>
</property>
<property name="bundledVM">
- <string><![CDATA[OracleJRE8u5_windows(x64).vm]]></string>
+ <string><![CDATA[OracleJRE180u92_windows(x64).vm]]></string>
</property>
<property name="withoutVmSearchOption">
<short>10</short>
</method>
<method name="put">
<string><![CDATA[com.zerog.ia.installer.options.valid.vm.list]]></string>
- <string><![CDATA[1.7+]]></string>
+ <string><![CDATA[1.8+]]></string>
</method>
<method name="put">
<string><![CDATA[com.zerog.ia.project.build.last.date]]></string>
</method>
<method name="put">
<string><![CDATA[com.zerog.ia.installer.options.platform.macosx.vm.version]]></string>
- <string><![CDATA[1.7+]]></string>
+ <string><![CDATA[1.8+]]></string>
</method>
<method name="put">
<string><![CDATA[com.zerog.ia.build.platform.java.novm]]></string>