Merge branch 'develop' into releases/Release_2_11_Branch
authorJim Procter <jprocter@issues.jalview.org>
Wed, 3 Jul 2019 17:36:59 +0000 (18:36 +0100)
committerJim Procter <jprocter@issues.jalview.org>
Wed, 3 Jul 2019 17:36:59 +0000 (18:36 +0100)
97 files changed:
.gitignore
JAVA-11-README
THIRDPARTYLIBS
build.gradle
doc/NEW_JARS [new file with mode: 0644]
doc/building.md
doc/getdown_installation_structure.pdf [new file with mode: 0644]
getdown/lib/getdown-core.jar
getdown/lib/getdown-launcher.jar
getdown/src/getdown/ant/pom.xml
getdown/src/getdown/core/pom.xml
getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/Application.java
getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/Build.java.tmpl
getdown/src/getdown/core/src/main/java/com/threerings/getdown/data/SysProps.java
getdown/src/getdown/launcher/pom.xml
getdown/src/getdown/launcher/src/main/java/com/threerings/getdown/launcher/Getdown.java
getdown/src/getdown/launcher/src/main/java/com/threerings/getdown/launcher/GetdownApp.java
getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages.properties
getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_de.properties
getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_es.properties
getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_fr.properties
getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_it.properties
getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_ja.properties
getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_ko.properties
getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_pt.properties
getdown/src/getdown/launcher/src/main/resources/com/threerings/getdown/messages_zh.properties
getdown/src/getdown/mvn_cmd
getdown/src/getdown/pom.xml
gradle.properties
help/help/help.jhm
help/help/helpTOC.xml
help/help/html/features/clarguments.html
help/help/html/features/featuresFormat.html
help/help/html/features/importvcf.html [new file with mode: 0755]
help/help/html/features/jalarchive.html
help/help/html/features/preferences.html
help/help/html/memory.html
help/help/html/menus/alwcalculate.html
help/help/html/menus/alwfile.html
help/help/html/menus/desktopMenu.html
help/help/html/privacy.html
help/help/html/releases.html
help/help/html/vamsas/index.html [deleted file]
help/help/html/whatsNew.html
j11lib/getdown-core.jar
j11lib/javax.activation-MODULE.jar [deleted file]
j11lib/javax.activation-api-1.2.0.jar [new file with mode: 0644]
j11lib/javax.annotation-api-1.3.2.jar [moved from j11lib/javax.annotation-api-MODULE.jar with 69% similarity]
j11lib/javax.servlet-api-4.0.1.jar [new file with mode: 0644]
j11lib/javax.servlet-api-MODULE.jar [deleted file]
j11lib/javax.xml.soap-api-1.4.0.jar [moved from j11lib/javax.xml.soap-api.jar with 100% similarity]
j11lib/jaxb-api-2.3.1.jar [moved from j11lib/jaxb-api-java9.jar with 60% similarity]
j11lib/jaxb-runtime-2.3.2.jar [new file with mode: 0644]
j11lib/jaxb-runtime.jar [deleted file]
j11lib/jaxws-api-2.3.1.jar [moved from j11lib/jaxws-api.jar with 100% similarity]
j11lib/jersey-client-1.19.1.jar [deleted file]
j11lib/jersey-client-1.19.4.jar [moved from j8lib/jersey-client-1.19.jar with 82% similarity]
j11lib/jersey-core-1.19.1.jar [deleted file]
j11lib/jersey-core-1.19.4.jar [moved from j8lib/jersey-core-1.19.jar with 85% similarity]
j11lib/jersey-json-1.19.4.jar [moved from j8lib/jersey-json-1.19.jar with 85% similarity]
j11lib/mimepull-1.9.11.jar [new file with mode: 0644]
j11lib/mimepull.jar [deleted file]
j11lib/policy-2.7.6.jar [new file with mode: 0644]
j11lib/policy.jar [deleted file]
j11lib/slf4j-api-1.7.26.jar [new file with mode: 0644]
j11lib/slf4j-api-1.7.7.jar [deleted file]
j11lib/slf4j-log4j12-1.7.26.jar [new file with mode: 0644]
j11lib/slf4j-log4j12-1.7.7.jar [deleted file]
j11lib/stax-ex-1.8.1.jar [new file with mode: 0644]
j11lib/stax-ex.jar [deleted file]
j11lib/stax2-api-4.2.jar [new file with mode: 0644]
j11lib/stax2-api-MODULE.jar [deleted file]
j11lib/streambuffer-1.5.7.jar [new file with mode: 0644]
j11lib/streambuffer.jar [deleted file]
j11lib/txw2-2.3.2.jar [new file with mode: 0644]
j11lib/txw2.jar [deleted file]
j11lib/wsdl4j-1.6.3.jar [new file with mode: 0644]
j11lib/wsdl4j-MODULE.jar [deleted file]
j8lib/getdown-core.jar
j8lib/jersey-client-1.19.4.jar [new file with mode: 0644]
j8lib/jersey-core-1.19.4.jar [new file with mode: 0644]
j8lib/jersey-json-1.19.4.jar [moved from j11lib/jersey-json-1.19.1.jar with 54% similarity]
resources/images/Jalview_Logo_small_with_border.png [new file with mode: 0644]
src/jalview/bin/Jalview.java
src/jalview/gui/CrossRefAction.java
src/jalview/gui/Desktop.java
src/jalview/gui/VamsasApplication.java
src/jalview/gui/WebserviceInfo.java
src/jalview/jbgui/GDesktop.java
src/jalview/jbgui/GPreferences.java
src/jalview/jbgui/GWebserviceInfo.java
utils/getdown/jalview_logo_background_fade-640x480.xcf [new file with mode: 0644]
utils/getdown/jalview_logo_background_getdown-640x480.png
utils/getdown/jalview_logo_background_getdown_error-640x480.png
utils/getdown/jalview_logo_background_getdown_instant-640x480.png
utils/getdown/jalview_logo_background_getdown_instant-640x480.xcf [deleted file]
utils/publishHelp.xml [new file with mode: 0644]

index 0b21681..46cc0e5 100644 (file)
@@ -19,7 +19,7 @@ TESTNG
 /site
 /.gradle
 /build
-/utils/HelpLinksChecker.out
+/utils/HelpLinksChecker.touch
 /getdown/website
 /getdown/full_app
 /getdown/files
index 805a4c1..fabae31 100644 (file)
@@ -1,3 +1,26 @@
+2019-07-01 (pre 2.11.0 release)
+Notes below are out of date, but might be useful for future development with Java 11
+
+Presently the Java 11 build of Jalview treats all libraries as libraries on the classpath, and does not use them as modules. The Java 11 JRE prepped for future release is a standard AdoptOpenJDK release (possibly repackaged for getdown/install4j to use).
+
+At time of writing, the JRE cannot be updated over the air on macOS platform due to a limitation of getdown's unpackaging system only using jars and hence cannot work with symbolic links.  There is a symbolic link that is essential (as a symbolic link) in the macOS distribution (Contents/MacOS/libjli.dylib -> ../Home/lib/jli/libjli.dylib).  Without this, the install4j launcher will not work.  Some work has started on incorporating tar capabilities in getdown using the apache-commons-compress library, though this is not complete.
+
+Future releases might incorporate Java 11 modules into a bespoke Java 11 JRE that can be updated over the air via getdown.This could reduce the size of the distribution but will absolutely need the bespoke JRE.  This would mean Jalview being restricted to platforms that we (can) support, or distributing the modules as libraries in a second distribution (the shadowJar distribution).
+
+build.gradle is written to support compilation of either Java 1.8 or Java 11 compatible bytecode.  Please note that the compilation (and therefore build) process REQUIRES a Java 11 (or above) JDK.  This is because there is Java 11 specific code in some Jalview classes (devolved into separate classes which fail "gracefully" when read by a Java 1.8 JRE).
+Java 11 is therefore the default build target, but can be changed simply by specifying the property JAVA_VERSION=1.8 (e.g.
+
+gradle compileJava -PJAVA_VERSION=1.8
+
+).  Some different versions of supporting libraries are used between Java 1.8 and 11 builds, and can be found in j8lib and j11lib folders respectively.  Note that there are a number of extra libraries used in the Java 11 distribution which are present in the Java 1.8 JRE but not distributed with the Java 11 JRE.
+
+Also see doc/building.md or doc/building.html
+
+
+
+
+Old notes:
+
 Java 11 module replacements
 
 As Java 11 no longer ships with Java EE libraries, which were standard in Java 8, and available (modularised, through the --add-modules CLI mechanism) in Java 9 and 10, third party replacement libraries for these libraries/modules have to be found.
@@ -91,4 +114,3 @@ jlink --module-path $JAVA_HOME/jmods:j11lib --compress=2 --add-modules `cat modu
 To create a Java 11 JRE in j11jre/openjdk11_platform (or whatever you wish to call it).
 You can point JAVA_HOME at the JDK11 of a different platform, so long as the jlink in your path is to the jlink for the platform you're running on.
 
-
index 728711e..348827e 100644 (file)
@@ -13,53 +13,80 @@ ext.edu.ucsf.rbvi.strucviz2 includes sources originally developed by Scooter Mor
 
 Licensing information for each library is given below:
 
-JGoogleAnalytics_0.3.jar       APL 2.0 License - http://code.google.com/p/jgoogleanalytics/
-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
+j8lib:
+
 activation.jar 
 apache-mime4j-0.6.jar
 axis.jar
-castor-1.1-cycle-xml.jar
+biojava-core-4.1.0.jar LGPLv2.1 - latest license at https://github.com/biojava/biojava/blob/master/LICENSE
+biojava-ontology-4.1.0.jar     LGPLv2.1 - latest license at https://github.com/biojava/biojava/blob/master/LICENSE
 commons-codec-1.3.jar
-commons-discovery.jar
+commons-compress-1.18.jar
 commons-logging-1.1.1.jar
-commons-logging.jar
-commons-net-3.3.jar
-groovy-all-2.4.6-indy.jar      APL 2.0 License - downloaded and extracted from https://dl.bintray.com/groovy/maven/apache-groovy-binary-2.4.6.zip
+getdown-core.jar       Getdown license - https://github.com/threerings/getdown/blob/master/LICENSE
+groovy-all-2.4.12-indy.jar     APL 2.0 License - downloaded and extracted from https://dl.bintray.com/groovy/maven/apache-groovy-binary-2.4.6.zip
+htsjdk-2.12.0.jar      built from maven master at https://github.com/samtools/htsjdk MIT License to Broad Institute
 httpclient-4.0.3.jar
 httpcore-4.0.1.jar
 httpmime-4.0.3.jar
+intervalstore-v1.0.jar
+jabaws-min-client-2.2.0.jar
+java-json.jar
 jaxrpc.jar
+jersey-client-1.19.4.jar       CDDL 1.1 + GPL2 w/ CPE - http://glassfish.java.net/public/CDDL+GPL_1_1.html
+jersey-core-1.19.4.jar CDDL 1.1 + GPL2 w/ CPE - http://glassfish.java.net/public/CDDL+GPL_1_1.html
+jersey-json-1.19.4.jar CDDL 1.1 + GPL2 w/ CPE - http://glassfish.java.net/public/CDDL+GPL_1_1.html
+jetty-http-9.2.10.v20150310.jar
+jetty-io-9.2.10.v20150310.jar
+jetty-server-9.2.10.v20150310.jar
+jetty-util-9.2.10.v20150310.jar
+jfreesvg-2.1.jar       GPL v3 licensed library from the JFree suite - http://www.jfree.org/jfreesvg/
+JGoogleAnalytics_0.3.jar       APL 2.0 License - http://code.google.com/p/jgoogleanalytics/
 jhall.jar
-jswingreader-0.3.jar : Apache license - built from http://jswingreader.sourceforge.net/ svn/trunk v12
+Jmol-14.6.4_2016.10.26.jar     GPL/LGPLv2 http://sourceforge.net/projects/jmol/files/
+json_simple-1.1.jar    Apache 2.0 license - downloaded from https://code.google.com/p/json-simple/downloads/list (will move to 1.1.1 version when jalview is mavenised and osgi-ised)
+jsoup-1.8.1.jar
+jsr311-api-1.1.1.jar
+jswingreader-0.3.jar   Apache license - built from http://jswingreader.sourceforge.net/ svn/trunk v12
+libquaqua64-8.0.jnilib.jar     quaqua: v.8.0 (latest stable) by Randel S Hofer. LGPL and BSD Modified license: downloaded from http://www.randelshofer.ch/quaqua/ 
+libquaqua-8.0.jnilib.jar       quaqua: v.8.0 (latest stable) by Randel S Hofer. LGPL and BSD Modified license: downloaded from http://www.randelshofer.ch/quaqua/ 
 log4j-1.2.8.jar
 mail.jar
-miglayout-4.0-swing.jar        BSD http://www.migcalendar.com/miglayout/versions/4.0/license.txt
-min-jaba-client.jar
+miglayout-4.0-swing.jar        BSD - http://www.migcalendar.com/miglayout/versions/4.0/license.txt
+quaqua-filechooser-only-8.0.jar        quaqua: v.8.0 (latest stable) by Randel S Hofer. LGPL and BSD Modified license: downloaded from http://www.randelshofer.ch/quaqua/ 
 regex.jar
 saaj.jar
+servlet-api-3.1.jar
+slf4j-api-1.7.7.jar
+slf4j-log4j12-1.7.7.jar
 vamsas-client.jar
+VAqua5-patch.jar       This is a patched version of VAqua v5 (latest stable) by Alan Snyder et al. GPLv3 with Classpath exception, also includes contributions from Quaqua: http://violetlib.org/vaqua/overview.html - see doc/patching-vaqua.txt for patch details, and http://issues.jalview.org/browse/JAL-2988 for details of the bug that the patch addresses.
+VARNAv3-93.jar GPL licenced software by K�vin Darty, Alain Denise and Yann Ponty - http://varna.lri.fr
 wsdl4j.jar
 xercesImpl.jar
 xml-apis.jar
-json_simple-1.1.jar : Apache 2.0 license : downloaded from https://code.google.com/p/json-simple/downloads/list (will move to 1.1.1 version when jalview is mavenised and osgi-ised)
-jfreesvg-2.1.jar : GPL v3 licensed library from the JFree suite: http://www.jfree.org/jfreesvg/
-
-quaqua: v.8.0 (latest stable) by Randel S Hofer. LGPL and BSD Modified license: downloaded from http://www.randelshofer.ch/quaqua/ 
-
-vaqua5-patch: This is a patched version of VAqua v5 (latest stable) by Alan Snyder et al. GPLv3 with Classpath exception, also includes contributions from Quaqua: http://violetlib.org/vaqua/overview.html - see doc/patching-vaqua.txt for patch details, and http://issues.jalview.org/browse/JAL-2988 for details of the bug that the patch addresses.
-
-lib/htsjdk-2.12.jar: built from maven master at https://github.com/samtools/htsjdk MIT License to Broad Institute
-
-lib/biojava-core-4.1.0.jar LGPLv2.1 - latest license at https://github.com/biojava/biojava/blob/master/LICENSE
-
-lib/biojava-ontology-4.1.0.jar LGPLv2.1 - latest license at https://github.com/biojava/biojava/blob/master/LICENSE
 
 
 Libraries for Test Suite
 
-utils/classgraph-4.1.6.jar: BSD License - allows recovery of classpath for programmatic construction of a Java command line to launch Jalview
-                      version 4.1.6 downloaded from https://mvnrepository.com/artifact/io.github.classgraph/classgraph/4.1.6
+utils/axis-ant.jar
+utils/ant-contrib-1.0b3.jar
+utils/hamcrest-core-1.3.jar
+utils/roxes-ant-tasks-1.2-2004-01-30.jar
+utils/proguard_5.3.3.jar
+utils/jhindexer.jar
+utils/junit-4.12.jar
+utils/jhall.jar
+utils/classgraph-4.1.6.jar     BSD License - allows recovery of classpath for programmatic construction of a Java command line to launch Jalview version 4.1.6 downloaded from https://mvnrepository.com/artifact/io.github.classgraph/classgraph/4.1.6
+utils/testnglibs/guava-base-r03.jar
+utils/testnglibs/guava-collections-r03.jar
+utils/testnglibs/bsh-2.0b4.jar
+utils/testnglibs/snakeyaml.jar
+utils/testnglibs/testng-sources.jar
+utils/testnglibs/testng.jar
+utils/testnglibs/junit-4.12.jar
+utils/testnglibs/jcommander.jar
+utils/wsdl4j.jar
 
 
 Additional dependencies
@@ -69,3 +96,31 @@ examples/javascript/jquery*.js : BSD license
 examples/javascript/jshashtable-2.1.js : Apache License
 examples/javascript/facebox-1.3.js : MTI License - http://www.opensource.org/licenses/mit-license.php
 
+
+New in j11lib:
+
+FastInfoset.jar        CDDL Version 1.1 - https://javaee.github.io/metro-fi/LICENSE
+getdown-core.jar       Getdown license - https://github.com/threerings/getdown/blob/master/LICENSE
+groovy-*2.5.7.jar      Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.html
+istack-commons-runtime.jar     CDDL Version 1.1 - https://glassfish.java.net/public/CDDL+GPL_1_1.html
+javax.activation-api-1.2.0.jar CDDL/GPLv2+CE - https://github.com/javaee/activation/blob/master/LICENSE.txt
+javax.annotation-api-1.3.2.jar CDDL + GPLv2 with classpath exception - https://github.com/javaee/javax.annotation/blob/master/LICENSE
+javax.jws-api-1.1.jar  CDDL + GPLv2 with classpath exception - https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html
+javax.servlet-api-4.0.1.jar    CDDL + GPLv2 with classpath exception - https://oss.oracle.com/licenses/CDDL+GPL-1.1
+javax.xml.rpc-api-1.1.2.jar    CDDL + GPLv2 with classpath exception - https://oss.oracle.com/licenses/CDDL+GPL-1.1
+javax.xml.soap-api.jar CDDL + GPLv2 with classpath exception - https://github.com/javaee/javax.xml.soap/blob/master/LICENSE
+jaxb-api-2.3.1.jar     CDDL 1.1 + GPL2 w/ CPE - https://oss.oracle.com/licenses/CDDL+GPL-1.1
+jaxb-runtime-2.3.2.jar Eclipse Distribution License - v 1.0 - http://www.eclipse.org/org/documents/edl-v10.php
+jaxws-api-2.3.1.jar    CDDL + GPLv2 with classpath exception - https://github.com/javaee/jax-ws-spec/blob/master/LICENSE.md
+Jmol-14.6.4_2016.10.26-no_netscape.jar GPL/LGPLv2 http://sourceforge.net/projects/jmol/files/
+jsr311-api-1.1.1.jar   CDDL License - http://www.opensource.org/licenses/cddl1.php
+mimepull-1.9.11.jar    Eclipse Distribution License - v 1.0 - http://www.eclipse.org/org/documents/edl-v10.php
+policy-2.7.6.jar       Eclipse Distribution License - v 1.0 - http://www.eclipse.org/org/documents/edl-v10.php
+slf4j-api-1.7.26.jar   MIT License - https://opensource.org/licenses/mit-license.php
+slf4j-log4j12-1.7.26.jar       MIT License - https://opensource.org/licenses/mit-license.php
+stax-ex-1.8.1.jar      Eclipse Distribution License - v 1.0 - http://www.eclipse.org/org/documents/edl-v10.php
+stax2-api-4.2.jar      The BSD License - http://www.opensource.org/licenses/bsd-license.php
+streambuffer-1.5.7.jar Eclipse Distribution License - v 1.0 - http://www.eclipse.org/org/documents/edl-v10.php
+txw2-2.3.2.jar Eclipse Distribution License - v 1.0 - http://www.eclipse.org/org/documents/edl-v10.php
+wsdl4j-1.6.3.jar       CPL - http://www.opensource.org/licenses/cpl1.0.txt
+
index 16c31b3..2332643 100644 (file)
@@ -123,7 +123,7 @@ ext {
     reportRsyncCommand = true
     break
 
-    case ~/^SCRATCH(|-\w*)$/:
+    case ~/^SCRATCH(|-[-\w]*)$/:
     getdown_channel_name = CHANNEL
     getdownDir = getdown_channel_name + "/" + JAVA_VERSION
     getdown_app_base = getdown_channel_base + "/" + getdownDir
@@ -153,8 +153,10 @@ ext {
   getdownLauncher = jalviewDir + '/' + getdown_launcher
   getdownFilesDir = jalviewDir + '/' + getdown_files_dir + '/' + JAVA_VERSION + '/'
   getdownFilesInstallDir = getdownFilesDir+"/"+getdown_install_dir
+  /* compile without modules -- using classpath libraries
   modules_compileClasspath = fileTree(dir: "$jalviewDir/$j11modDir", include: ["*.jar"])
   modules_runtimeClasspath = modules_compileClasspath
+  */
   gitHash = ""
   gitBranch = ""
 }
@@ -163,6 +165,7 @@ def JAVA_INTEGER_VERSION
 def additional_compiler_args = []
 // these are getdown.txt properties defined dependent on the JAVA_VERSION
 def getdown_alt_java_min_version
+def getdown_alt_java_max_version
 // this property is assigned below and expanded to multiple lines in the getdown task
 def getdown_alt_multi_java_location
 // this property is for the Java library used in eclipse
@@ -175,6 +178,7 @@ if (JAVA_VERSION.equals("1.8")) {
   compile_source_compatibility = 1.8
   compile_target_compatibility = 1.8
   getdown_alt_java_min_version = getdown_alt_java8_min_version
+  getdown_alt_java_max_version = getdown_alt_java8_max_version
   getdown_alt_multi_java_location = getdown_alt_java8_txt_multi_java_location
   eclipse_java_runtime_name = "JavaSE-1.8"
 } else if (JAVA_VERSION.equals("11")) {
@@ -184,12 +188,15 @@ if (JAVA_VERSION.equals("1.8")) {
   compile_source_compatibility = 11
   compile_target_compatibility = 11
   getdown_alt_java_min_version = getdown_alt_java11_min_version
+  getdown_alt_java_max_version = getdown_alt_java11_max_version
   getdown_alt_multi_java_location = getdown_alt_java11_txt_multi_java_location
   eclipse_java_runtime_name = "JavaSE-11"
+  /* compile without modules -- using classpath libraries
   additional_compiler_args += [
   '--module-path', ext.modules_compileClasspath.asPath,
   '--add-modules', j11modules
   ]
+  */
 } else if (JAVA_VERSION.equals("12") || JAVA_VERSION.equals("13")) {
   JAVA_INTEGER_VERSION = JAVA_VERSION
   libDir = j11libDir
@@ -197,12 +204,15 @@ if (JAVA_VERSION.equals("1.8")) {
   compile_source_compatibility = JAVA_VERSION
   compile_target_compatibility = JAVA_VERSION
   getdown_alt_java_min_version = getdown_alt_java11_min_version
+  getdown_alt_java_max_version = getdown_alt_java11_max_version
   getdown_alt_multi_java_location = getdown_alt_java11_txt_multi_java_location
   eclipse_java_runtime_name = "JavaSE-11"
+  /* compile without modules -- using classpath libraries
   additional_compiler_args += [
   '--module-path', ext.modules_compileClasspath.asPath,
   '--add-modules', j11modules
   ]
+  */
 } else {
   throw new GradleException("JAVA_VERSION=$JAVA_VERSION not currently supported by Jalview")
 }
@@ -590,10 +600,13 @@ task convertBuildingMD(type: Exec) {
     pandoc = System.getProperty("user.home")+"/buildtools/pandoc/bin/pandoc"
   }
 
-  if (pandoc != null && file(pandoc).exists()) {
-    commandLine pandoc, '-s', '-o', buildingHTML, '--metadata', 'pagetitle="Building Jalview from Source"', '--toc', '-H', css, buildingMD
-  } else {
-    commandLine "true"
+  doFirst {
+    if (pandoc != null && file(pandoc).exists()) {
+        commandLine pandoc, '-s', '-o', buildingHTML, '--metadata', 'pagetitle="Building Jalview from Source"', '--toc', '-H', css, buildingMD
+    } else {
+        println("Cannot find pandoc. Skipping convert building.md to HTML")
+        throw new StopExecutionException()
+    }
   }
 
   ignoreExitValue true
@@ -717,7 +730,7 @@ task compileLinkCheck(type: JavaCompile) {
   outputs.file("$jalviewDir/$utilsDir/BufferedLineReader.class")
 }
 
-def helplinkscheckeroutputfile = file("$jalviewDir/$utilsDir/HelpLinksChecker.out")
+def helplinkscheckertouchfile = file("$jalviewDir/$utilsDir/HelpLinksChecker.touch")
 task linkCheck(type: JavaExec) {
   dependsOn prepare, compileLinkCheck
   classpath = files("$jalviewDir/$utilsDir")
@@ -726,14 +739,20 @@ task linkCheck(type: JavaExec) {
   def help = "$classes/$helpDir"
   args = [ "$classes/$helpDir", "-nointernet" ]
 
-  doFirst {
-    helplinkscheckeroutputfile.createNewFile()
-    standardOutput new FileOutputStream(helplinkscheckeroutputfile, false)
+  doLast {
+    helplinkscheckertouchfile.createNewFile()
   }
 
-  outputs.file(helplinkscheckeroutputfile)
+  inputs.dir("$classes/$helpDir")
+  outputs.file(helplinkscheckertouchfile)
 }
 
+// import the pubhtmlhelp target
+ant.properties.basedir = "$jalviewDir"
+ant.properties.helpBuildDir = jalviewDirAbsolutePath+"/$classes/$helpDir"
+ant.importBuild "$utilsDir/publishHelp.xml"
+
+
 task cleanPackageDir(type: Delete) {
   delete fileTree("$jalviewDir/$packageDir").include("*.jar")
 }
@@ -833,14 +852,19 @@ task getdownWebsite() {
     copy {
       from buildProperties
       rename(buildPropertiesFile, getdown_build_properties)
-      into project.ext.getdownWebsiteDir
+      into project.ext.getdownAppDir
     }
-    getdownWebsiteResourceFilenames += getdown_build_properties
+    getdownWebsiteResourceFilenames += getdown_app_dir+"/"+getdown_build_properties
 
     // go through properties looking for getdown_txt_...
     def props = project.properties.sort { it.key }
-    props.put("getdown_txt_java_min_version", getdown_alt_java_min_version)
-    props.put("getdown_txt_multi_java_location", getdown_alt_multi_java_location)
+       if (getdown_alt_java_min_version.length() > 0) {
+               props.put("getdown_txt_java_min_version", getdown_alt_java_min_version)
+       }
+       if (getdown_alt_java_max_version.length() > 0) {
+               props.put("getdown_txt_java_max_version", getdown_alt_java_max_version)
+       }
+       props.put("getdown_txt_multi_java_location", getdown_alt_multi_java_location)
 
     props.put("getdown_txt_appbase", getdown_app_base)
     props.each{ prop, val ->
@@ -996,7 +1020,7 @@ task getdown() {
       def fromDir = getdownWebsiteDir + (getdownWebsiteDir.endsWith("/")?"":"/")
       def toDir = getdown_rsync_dest + "/" + getdownDir + (getdownDir.endsWith("/")?"":"/")
       println "LIKELY RSYNC COMMAND:"
-      println "rsync -avh --delete '$fromDir' '$toDir'"
+      println "mkdir -p '$toDir'\nrsync -avh --delete '$fromDir' '$toDir'"
       if (RUNRSYNC == "true") {
         exec {
           commandLine "mkdir", "-p", toDir
@@ -1130,3 +1154,70 @@ clean {
   delete install4jConf
 }
 
+task sourceDist (type: Tar) {
+  
+  def VERSION_UNDERSCORES = JALVIEW_VERSION.replaceAll("\\.", "_")
+  archiveFileName = project.name + "_" + VERSION_UNDERSCORES + ".tar.gz"
+  
+  compression Compression.GZIP
+  
+  from jalviewDir
+  into project.name
+   
+  exclude (".*")
+  exclude ("**/.*")
+  exclude ("*.class")
+  exclude ("**/*.class")
+  include (eclipse_extra_jdt_prefs_file)
+  include ("AUTHORS")
+  include ("CITATION")
+  include ("FEATURETODO")
+  include ("JAVA-11-README")
+  include ("FEATURETODO")
+  include ("LICENSE")
+  include ("README")
+  include ("RELEASE")
+  include ("THIRDPARTYLIBS")
+  include ("build.gradle")
+  include ("gradle.properties")
+  include ("$sourceDir/*.java")
+  include ("$sourceDir/**/*.java")
+  include ("$sourceDir/**/*.cdr")
+  include ("$j8libDir/**/*.jar")
+  include ("$j11libDir/**/*.jar")
+  include ("$resourceDir/**/*")
+  include ("$helpDir/**/*")
+  include ("$schemaDir/**/*")
+  include ("$utilsDir/**/*")
+  include ("$docDir/**/*")
+  include ("$examplesDir/**/*")
+  include ("getdown/**/*")
+  //include ("jalview-jalopy.xml")
+  //include ("JalviewApplet.jpx")
+  //include ("JalviewX.jpx")
+  //include ("nbbuild.xml")
+  //include ("nbproject/genfiles.properties")
+  //include ("nbproject/project.properties")
+  //include ("nbproject/project.xml")
+  
+  exclude ("appletlib")
+  exclude ("**/*locales")
+  exclude ("*locales/**")
+  exclude ("utils/InstallAnywhere")
+  exclude (libDir)
+  exclude (getdown_files_dir)
+  exclude (getdown_website_dir)
+
+  // exluding these as not using jars as modules yet
+  exclude ("$j11modDir/**/*.jar")
+
+}
+
+task helppages  {
+  dependsOn copyHelp
+  dependsOn pubhtmlhelp
+  
+  inputs.dir("$classes/$helpDir")
+  outputs.file("build/distribution/help/helpTOC.html")
+}
diff --git a/doc/NEW_JARS b/doc/NEW_JARS
new file mode 100644 (file)
index 0000000..d7b1c56
--- /dev/null
@@ -0,0 +1,52 @@
+## this command gets a list of jars in j11lib/ that are not present or different content in lib/.  The output is below.
+#for y in j11lib/*.jar; do x=${y##*/}; if [ \! -e ./lib/$x ] || ! diff ./lib/$x $y; then echo $y; fi; done
+#
+j11lib/FastInfoset.jar
+j11lib/getdown-core.jar
+j11lib/groovy-2.5.7.jar
+j11lib/groovy-ant-2.5.7.jar
+j11lib/groovy-bsf-2.5.7.jar
+j11lib/groovy-cli-commons-2.5.7.jar
+j11lib/groovy-cli-picocli-2.5.7.jar
+j11lib/groovy-console-2.5.7.jar
+j11lib/groovy-datetime-2.5.7.jar
+j11lib/groovy-dateutil-2.5.7.jar
+j11lib/groovy-docgenerator-2.5.7.jar
+j11lib/groovy-groovydoc-2.5.7.jar
+j11lib/groovy-groovysh-2.5.7.jar
+j11lib/groovy-jaxb-2.5.7.jar
+j11lib/groovy-jmx-2.5.7.jar
+j11lib/groovy-json-2.5.7.jar
+j11lib/groovy-json-direct-2.5.7.jar
+j11lib/groovy-jsr223-2.5.7.jar
+j11lib/groovy-macro-2.5.7.jar
+j11lib/groovy-nio-2.5.7.jar
+j11lib/groovy-servlet-2.5.7.jar
+j11lib/groovy-sql-2.5.7.jar
+j11lib/groovy-swing-2.5.7.jar
+j11lib/groovy-templates-2.5.7.jar
+j11lib/groovy-test-2.5.7.jar
+j11lib/groovy-test-junit5-2.5.7.jar
+j11lib/groovy-testng-2.5.7.jar
+j11lib/groovy-xml-2.5.7.jar
+j11lib/istack-commons-runtime.jar
+j11lib/javax.activation-MODULE.jar
+j11lib/javax.annotation-api-MODULE.jar
+j11lib/javax.jws-api-1.1.jar
+j11lib/javax.servlet-api-MODULE.jar
+j11lib/javax.xml.rpc-api-1.1.2.jar
+j11lib/javax.xml.soap-api.jar
+j11lib/jaxb-api-java9.jar
+j11lib/jaxb-runtime.jar
+j11lib/jaxws-api.jar
+j11lib/jersey-client-1.19.1.jar
+j11lib/jersey-core-1.19.1.jar
+j11lib/jersey-json-1.19.1.jar
+j11lib/jsr311-api-1.1.1.jar
+j11lib/mimepull.jar
+j11lib/policy.jar
+j11lib/stax-ex.jar
+j11lib/stax2-api-MODULE.jar
+j11lib/streambuffer.jar
+j11lib/txw2.jar
+j11lib/wsdl4j-MODULE.jar
index 9648b9c..cc3d7f2 100644 (file)
@@ -327,6 +327,14 @@ gradle test
 These normally take around 5 - 10 minutes to complete and outputs its full results into 
 the `tests/` folder.  A summary of results should appear in your console.
 
+You can run different defined groups of tests with
+
+```bash
+gradle test -PtestngGroups=Network
+```
+
+Available groups are Functional (default), Network, External.
+
 
 ### Installer packaging with *install4j*
 
@@ -490,4 +498,4 @@ in the `jalview` root folder.
 
 
 ---
-[Jalview Development Team](mailto:help@jalview.org)
\ No newline at end of file
+[Jalview Development Team](mailto:help@jalview.org)
diff --git a/doc/getdown_installation_structure.pdf b/doc/getdown_installation_structure.pdf
new file mode 100644 (file)
index 0000000..9fc0dc6
Binary files /dev/null and b/doc/getdown_installation_structure.pdf differ
index 7ee98a0..7849bc7 100644 (file)
Binary files a/getdown/lib/getdown-core.jar and b/getdown/lib/getdown-core.jar differ
index 42efe3c..7f99732 100644 (file)
Binary files a/getdown/lib/getdown-launcher.jar and b/getdown/lib/getdown-launcher.jar differ
index 16af8b3..a2f95e3 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>com.threerings.getdown</groupId>
     <artifactId>getdown</artifactId>
-    <version>1.8.3-1.0_JVL</version>
+    <version>1.8.3-1.1.4_JVL</version>
   </parent>
 
   <artifactId>getdown-ant</artifactId>
index d8264b4..4cd0507 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>com.threerings.getdown</groupId>
     <artifactId>getdown</artifactId>
-    <version>1.8.3-1.0_JVL</version>
+    <version>1.8.3-1.1.4_JVL</version>
   </parent>
 
   <artifactId>getdown-core</artifactId>
@@ -35,6 +35,8 @@
        separated by commas (app1.foo.com,app2.bar.com,app3.baz.com). -->
   <properties>
     <getdown.host.whitelist>jalview.org,*.jalview.org</getdown.host.whitelist>
+    <connect_timeout>8</connect_timeout>
+    <read_timeout>15</read_timeout>
   </properties>
 
   <build>
@@ -83,6 +85,8 @@
                     <filter token="build_time" value="${getdown.build.time}" />
                     <filter token="build_version" value="${project.version}" />
                     <filter token="host_whitelist" value="${getdown.host.whitelist}" />
+                    <filter token="connect_timeout" value="${connect_timeout}" />
+                    <filter token="read_timeout" value="${read_timeout}" />
                   </filterset>
                 </copy>
               </target>
index c3a3d79..2dddd6f 100644 (file)
@@ -23,8 +23,6 @@ import java.util.concurrent.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.zip.GZIPInputStream;
-import com.sun.management.OperatingSystemMXBean;
-import java.lang.management.ManagementFactory;
 
 import jalview.bin.MemorySetting;
 
@@ -46,6 +44,9 @@ public class Application
 {
     /** The name of our configuration file. */
     public static final String CONFIG_FILE = "getdown.txt";
+    
+    /** Dir where a backup config file might reside */ 
+    public static final String BACKUP_CONFIG_DIR = "install";
 
     /** The name of our target version file. */
     public static final String VERSION_FILE = "version.txt";
@@ -69,17 +70,18 @@ public class Application
          */
         public enum Step
         {
-            UPDATE_JAVA(10),
+            //UPDATE_JAVA(10),
+            UPDATE_JAVA(20),
             //VERIFY_METADATA(15, 65, 95),
             VERIFY_METADATA(15, 45, 90),
-            DOWNLOAD(50),
+            DOWNLOAD(60),
             PATCH(60),
             //VERIFY_RESOURCES(70, 97),
-            VERIFY_RESOURCES(30, 60),
+            VERIFY_RESOURCES(40, 90),
             //REDOWNLOAD_RESOURCES(90),
-            REDOWNLOAD_RESOURCES(70),
+            REDOWNLOAD_RESOURCES(80),
             //UNPACK(98),
-            UNPACK(90),
+            UNPACK(95),
             //LAUNCH(99);
             LAUNCH(100);
 
@@ -150,9 +152,12 @@ public class Application
         /** Whether progress text should be hidden or not. */
         public final boolean hideProgressText;
 
-        /** Whether the splash screen should retain focus. */
+        /** Whether the splash screen should update non-asynchronously before being shown. */
         public final boolean progressSync;
 
+        /** Whether the splash screen should update non-asynchronously after being shown. */
+        public final boolean progressSyncAfterShown;
+
         /** Whether the splash screen should retain focus. */
         public final boolean keepOnTop;
 
@@ -180,7 +185,8 @@ public class Application
                 ", pb=" + progressBar + ", srect=" + status + ", st=" + statusText +
                 ", shadow=" + textShadow + ", err=" + installError + ", nrect=" + patchNotes +
                 ", notes=" + patchNotesUrl + ", stepPercentages=" + stepPercentages +
-                ", hideProgressText=" + hideProgressText + ", keepOnTop=" + keepOnTop + ", progressSync=" + progressSync + ", minShow=" + minShowSeconds +
+                ", hideProgressText=" + hideProgressText + ", keepOnTop=" + keepOnTop + ", progressSync=" + progressSync +
+                ", progressSyncAfterShown=" + progressSyncAfterShown + ", minShow=" + minShowSeconds +
                 ", displayAppbase=" + displayAppbase + ", displayVersion=" + displayVersion + "]";
         }
 
@@ -189,8 +195,9 @@ public class Application
             this.name = config.getString("ui.name");
             this.progress = config.getRect("ui.progress", new Rectangle(5, 5, 300, 15));
             this.progressText = config.getColor("ui.progress_text", Color.BLACK);
-            this.hideProgressText =  config.getBoolean("ui.hide_progress_text");
-            this.progressSync =  config.getBoolean("ui.progress_sync");
+            this.hideProgressText = config.getBoolean("ui.hide_progress_text");
+            this.progressSync = config.getBoolean("ui.progress_sync_before_shown");
+            this.progressSyncAfterShown = config.getBoolean("ui.progress_sync_after_shown");
             this.keepOnTop =  config.getBoolean("ui.keep_on_top");
             this.displayAppbase =  config.getBoolean("ui.display_appbase");
             this.displayVersion =  config.getBoolean("ui.display_version");
@@ -276,15 +283,17 @@ public class Application
      *
      */
     public Application (EnvConfig envc) {
-        _envc = envc;
-        _config = getLocalPath(envc.appDir, CONFIG_FILE);
+       _envc = envc;
+       _config = getLocalPath(envc.appDir, CONFIG_FILE);
+       _backupConfig = getLocalPath(envc.appDir, BACKUP_CONFIG_DIR+File.separator+CONFIG_FILE);
+       log.warning("Backup config file now", "_backupConfig", _backupConfig, "exists", _backupConfig.exists(), "isReadable", _backupConfig.canRead());
     }
 
     /**
      * Returns the configured application directory.
      */
     public File getAppDir () {
-        return _envc.appDir;
+       return _envc.appDir;
     }
 
     /**
@@ -293,7 +302,7 @@ public class Application
      */
     public boolean useCodeCache ()
     {
-        return _useCodeCache;
+       return _useCodeCache;
     }
 
     /**
@@ -302,7 +311,7 @@ public class Application
      */
     public int getCodeCacheRetentionDays ()
     {
-        return _codeCacheRetentionDays;
+       return _codeCacheRetentionDays;
     }
 
     /**
@@ -310,7 +319,7 @@ public class Application
      * app files from its hosting server.
      */
     public int maxConcurrentDownloads () {
-        return _maxConcDownloads;
+       return _maxConcDownloads;
     }
 
     /**
@@ -318,11 +327,11 @@ public class Application
      */
     public Resource getConfigResource ()
     {
-        try {
-            return createResource(CONFIG_FILE, Resource.NORMAL);
-        } catch (Exception e) {
-            throw new RuntimeException("Invalid appbase '" + _vappbase + "'.", e);
-        }
+       try {
+               return createResource(CONFIG_FILE, Resource.NORMAL);
+       } catch (Exception e) {
+               throw new RuntimeException("Invalid appbase '" + _vappbase + "'.", e);
+       }
     }
 
     /**
@@ -330,7 +339,7 @@ public class Application
      */
     public List<Resource> getCodeResources ()
     {
-        return _codes;
+       return _codes;
     }
 
     /**
@@ -597,6 +606,15 @@ public class Application
         } catch (Exception e) {
             log.warning("Failure reading config file", "file", _config, e);
         }
+        if (config == null || config.getString("appbase") == null || config.getString("appbase").isEmpty()) {
+               try {
+                       Config backupConfig = Config.parseConfig(_backupConfig, opts);
+                       config = backupConfig;
+                       log.warning("Using backup config file", "appdir", getAppDir(), "backupConfig", _backupConfig.getAbsoluteFile());
+               } catch (Exception e) {
+                       log.warning("Failure reading backup config file", "file", _backupConfig, e);
+               }
+        }
         
         // see if there's an override config from locator file
         Config locatorConfig = createLocatorConfig(opts);
@@ -1919,8 +1937,6 @@ public class Application
         log.warning("Failure reading locator file",  "file", _locatorFile, e);
       }
       
-      log.info("Returning locatorConfig", locatorConfig);
-      
       return locatorConfig;
     }
     
@@ -1930,6 +1946,7 @@ public class Application
     
     protected final EnvConfig _envc;
     protected File _config;
+    protected File _backupConfig;
     protected Digest _digest;
 
     protected long _version = -1;
index 60a8ff3..86ea47b 100644 (file)
@@ -40,4 +40,26 @@ public class Build {
     public static List<String> hostWhitelist () {
         return Arrays.asList(StringUtil.parseStringArray("@host_whitelist@"));
     }
+    
+    /*
+     * <p>The default connect_timeout to use.  Overridden by system property of the same name at runtime
+     */
+    public static int defaultConnectTimeout () {
+       try {
+                       return Integer.valueOf("@connect_timeout@");
+               } catch (Exception e) {
+                       return 0;
+               }
+    }
+    
+    /*
+     * <p>The default read_timeout to use.  Overridden by system property of the same name at runtime
+     */
+    public static int defaultReadTimeout () {
+       try {
+                       return Integer.valueOf("@read_timeout@");
+               } catch (Exception e) {
+                       return 30;
+               }
+    }
 }
index 0d96ecb..8550461 100644 (file)
@@ -9,6 +9,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import com.threerings.getdown.util.VersionUtil;
+import com.threerings.getdown.data.Build;
 
 /**
  * This class encapsulates all system properties that are read and processed by Getdown. Don't
@@ -106,7 +107,7 @@ public class SysProps
       * to more quickly timeout its startup update check if the server with which it is
       * communicating is not available. Usage: {@code -Dconnect_timeout=N}. */
     public static int connectTimeout () {
-        return Integer.getInteger("connect_timeout", 0);
+        return Integer.getInteger("connect_timeout", Build.defaultConnectTimeout());
     }
 
     /** Specifies the read timeout (in seconds) to use when downloading all files from the server.
@@ -114,7 +115,7 @@ public class SysProps
       * update process wil fail. Setting the timeout to zero (or a negative value) will disable it.
       * Usage: {@code -Dread_timeout=N}. */
     public static int readTimeout () {
-        return Integer.getInteger("read_timeout", 30);
+        return Integer.getInteger("read_timeout", Build.defaultReadTimeout());
     }
 
     /** Returns the number of threads used to perform digesting and verifying operations in
index 90e5c83..4c6b982 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>com.threerings.getdown</groupId>
     <artifactId>getdown</artifactId>
-    <version>1.8.3-1.0_JVL</version>
+    <version>1.8.3-1.1.4_JVL</version>
   </parent>
 
   <artifactId>getdown-launcher</artifactId>
index ba238de..01bf370 100644 (file)
@@ -981,7 +981,7 @@ public abstract class Getdown extends Thread
             }
         });
         
-        if (! _addedStatusLayer) {
+        if (_status != null && ! _addedStatusLayer) {
                _layers.add(_status, Integer.valueOf(2));
                _addedStatusLayer = true;
                initInterface();
@@ -1124,7 +1124,7 @@ public abstract class Getdown extends Thread
       } catch (Exception e) {
         log.warning("Could't read config when invoking GUI action", "Exception", e.getMessage());
       }
-      if (_ifc != null && _ifc.progressSync) {
+      if (_ifc != null && (_shownContainer?_ifc.progressSyncAfterShown:_ifc.progressSync)) {
         try {
           EventQueue.invokeAndWait(r);
           //r.run();
@@ -1159,13 +1159,15 @@ public abstract class Getdown extends Thread
     protected boolean _launchInSilent;
     protected boolean _noUpdate;
     protected long _startup;
-    
     protected Set<Resource> _toInstallResources;
     protected boolean _readyToInstall;
 
     protected boolean _enableTracking = true;
     protected int _reportedProgress = 0;
 
+    protected boolean _shownContainer;
+
     /** Number of minutes to wait after startup before beginning any real heavy lifting. */
     protected int _delay;
 
index 4adc77c..7c54f80 100644 (file)
@@ -203,6 +203,7 @@ public class GetdownApp
           SwingUtil.centerWindow(_frame);
           _frame.setVisible(true);
         }
+        _shownContainer = true;
       }
 
       @Override
index 6a14aea..fd7c716 100755 (executable)
@@ -3,7 +3,7 @@
 if [ x$JVLVERSION != x ]; then
   export VERSION=$JVLVERSION
 else
-  export VERSION=1.8.3-1.0_JVL
+  export VERSION=1.8.3-1.1.4_JVL
 fi
 
 if [ x${VERSION%_JVL} = x$VERSION ]; then
@@ -14,7 +14,7 @@ echo "Setting VERSION to '$VERSION'"
 
 perl -p -i -e 's|(<version>)[^<]*JVL[^<]*(</version>)|${1}$ENV{VERSION}${2}|;' pom.xml */pom.xml
 
-mvn package -Dgetdown.host.whitelist="jalview.org,*.jalview.org"
+mvn package -Dgetdown.host.whitelist="jalview.org,*.jalview.org" -Dconnect_timeout=8 -Dread_timeout=15
 RET=$?
 if [ x$RET = x0 ]; then
   cp launcher/target/getdown-launcher-$VERSION.jar ../../../getdown/lib/getdown-launcher.jar && echo "Copied getdown-launcher.jar to getdown/lib"
index 3334828..24efba8 100644 (file)
@@ -10,7 +10,7 @@
   <groupId>com.threerings.getdown</groupId>
   <artifactId>getdown</artifactId>
   <packaging>pom</packaging>
-  <version>1.8.3-1.0_JVL</version>
+  <version>1.8.3-1.1.4_JVL</version>
 
   <name>getdown</name>
   <description>An application installer and updater.</description>
index 6f3092e..4fcb636 100644 (file)
@@ -21,10 +21,12 @@ j11libDir = j11lib
 resourceDir = resources
 helpParentDir = help
 helpDir = help
+helpOutputDir = build/distribution/help
 docDir = doc
 sourceDir = src
 schemaDir = schemas
 classesDir = classes
+examplesDir = examples
 clover = false
 use_clover = false
 cloverClassesDir = clover-classes
@@ -57,12 +59,14 @@ getdown_launch_jvl = channel_launch.jvl
 getdown_build_properties = build_properties
 getdown_txt_title = Jalview
 getdown_txt_allow_offline = true
+getdown_txt_max_concurrent_downloads = 10
 getdown_txt_jalview.jvmmempc = 90
 getdown_txt_multi_jvmarg = -Dgetdownappdir=%APPDIR%
 getdown_txt_strict_comments = true
 getdown_txt_title = Jalview
 getdown_txt_ui.name = Jalview
-getdown_txt_ui.progress_sync = true
+getdown_txt_ui.progress_sync_before_shown = true
+getdown_txt_ui.progress_sync_after_shown = false
 getdown_txt_ui.keep_on_top = true
 getdown_txt_ui.display_appbase = true
 getdown_txt_ui.display_version = true
@@ -82,7 +86,9 @@ getdown_txt_ui.status_text = 000066
 getdown_txt_ui.install_error = http://www.jalview.org/faq/getdownerror
 getdown_txt_ui.mac_dock_icon = resources/images/jalview_logos.ico
 getdown_alt_java8_min_version  = 01080000
+getdown_alt_java8_max_version  = 01089999
 getdown_alt_java11_min_version = 11000000
+getdown_alt_java11_max_version =
 getdown_alt_java11_txt_multi_java_location = [windows-amd64] /getdown/jre/windows-jre11.jar,[linux-amd64] /getdown/jre/linux-jre11.tgz,[mac os x] /getdown/jre/macos-jre11.tgz
 getdown_alt_java8_txt_multi_java_location = [windows-amd64] /getdown/jre/windows-jre1.8.tgz,[linux-amd64] /getdown/jre/linux-jre1.8.tgz,[mac os x] /getdown/jre/macos-jre1.8.tgz
 JRE_installs = /Users/bsoares/Java/installs
@@ -122,8 +128,8 @@ CHANNEL=LOCAL
 getdown_channel_base = http://www.jalview.org/getdown
 getdown_channel_name = SCRATCH-DEFAULT
 getdown_app_dir_release = release
-getdown_install_dir = install
 getdown_app_dir_alt = alt
+getdown_install_dir = install
 getdown_rsync_dest = /Volumes/jalview/docroot/getdown
 reportRsyncCommand =
 RUNRSYNC=false
index 1666cc6..0802bf1 100755 (executable)
    <mapID target="groovy.colours" url="html/features/groovy.html#groovyColours" />
    <mapID target="groovy.featurescounter" url="html/groovy/featuresCounter.html" />
    <mapID target="privacy" url="html/privacy.html" />
-   <mapID target="vamsas" url="html/vamsas/index.html"/>
    <mapID target="aminoAcids" url="html/misc/aminoAcids.html" />
    <mapID target="aaProperties" url="html/misc/aaproperties.html" />
    <mapID target="geneticCode" url="html/misc/geneticCode.html" />
    
    <mapID target="overview" url="html/features/overview.html" />
    <mapID target="overviewprefs" url="html/features/preferences.html#overview" />
+   
+   <mapID target="importvcf" url="html/features/importvcf.html" />
 </map>
index 77ddd88..179fb06 100755 (executable)
@@ -24,8 +24,9 @@
        <tocitem text="Jalview Documentation" target="home" expand="true">
                        <tocitem text="What's new" target="new" expand="true">
                                <tocitem text="Latest Release Notes" target="release"/>
-                               <tocitem text="Structure Chooser" target="pdbchooser"/>
-                               <tocitem text="Chimera Annotation Exchange" target="chimera.annotxfer"/>
+                               <tocitem text="VCF Import" target="importvcf"/>
+                               <tocitem text="Feature Filters and Attribute Colourschemes" target="features.featureschemes" />
+                               
                </tocitem>
                
                <tocitem text="Editing Alignments" target="edit" />
@@ -49,6 +50,7 @@
                <tocitem text="Select Columns by Annotation" target="selectcolbyannot" />
                
                <tocitem text="Nucleic Acid Support" target="nucleicAcids" expand="false">
+                 <tocitem text="Annotating from VCF" target="importvcf" /> 
                        <tocitem text="Viewing RNA structure" target="varna" />
                        <tocitem text="RNA Structure Consensus" target="calcs.alstrconsensus" />
                        <tocitem text="RNA Helices coloring" target="colours.rnahelices" />
                <tocitem text="Opening URLs from Jalview" target="urllinks" expand="true">
                    <tocitem text="Configuring URL Links" target="linksprefs" />
                </tocitem>
-               <tocitem text="VAMSAS Data Exchange" target="vamsas">
-                       <!-- what can Jalview share with other apps -->
-                       <!-- what other apps exist -->
-               </tocitem>
                <tocitem text="Window Menus" target="menus" expand="false">
                        <tocitem text="Desktop Window" target="desktopMenu" />
                        <tocitem text="Alignment Window" target="alMenu">
index fa273a5..ebdfcf3 100644 (file)
     </tr>
     <tr>
       <td>
-        <div align="center">-vdoc VAMSAS DOCUMENT FILE/URL</div>
-      <td>
-        <div align="left">
-          Import the given vamsas document into a new session.<br>
-          <em>New in 2.5</em>
-        </div>
-      </td>
-    </tr>
-    <tr>
-      <td>
-        <div align="center">-vsess VAMSAS SESSION URL</div>
-      <td>
-        <div align="left">
-          Join the given vamsas session<br>If a document was also
-          specified, this will be imported first and then committed as
-          new data from Jalview to the specified session (Experimental -
-          not yet enabled!).<em>New in 2.5</em>
-        </div>
-        </div>
-      </td>
-    </tr>
-    <tr>
-      <td>
         <div align="center">-fasta FILE</div>
       </td>
 
index 4d13dcd..0226175 100755 (executable)
 <body>
   <p>
     <strong>Sequence Features File</strong>
+  
   <p>
-  <p>The Sequence features file (which used to be known as the
-    "Groups file" prior to version 2.08) is a simple way of getting your
-    own sequence annotations into Jalview. It was introduced to allow
-    sequence features to be rendered in the Jalview applet, and so is
-    intentionally lightweight and minimal because the applet is often
-    used in situations where data file size must be kept to a minimum,
-    and no XML parser is available.</p>
+  
+  <p>The Sequence features File provides a simple way of getting
+    your own sequence features into Jalview. It also allows feature
+    display styles and filters to be saved and imported to another
+    alignment. Users familiar with the earliest versions of Jalview will
+    know that features files were originally termed 'groups' files, and
+    that the format was was designed as a space efficient format to
+    allow sequence features to be rendered in the Jalview applet.</p>
 
   <p>
     Features files are imported into Jalview in the following ways:<br>
+  
   <ul>
     <li>from the command line <pre>
 <strong> -features &lt;<em>Features filename</em>&gt;</strong>
     </li>
   </ul>
 
-  </p>
-
   <p>
     <strong>Sequence Features File Format</strong>
   </p>
   <p>
     A features file is a simple ASCII text file, where each line
     contains tab separated text fields. <strong>No comments are
-      allowed</strong>.
+      allowed</strong>. Its structure consists of three blocks:
   </p>
+  <ul>
+    <li><a href="#colourdefs">Feature Colour Specifications</a>
+      define how features of a particular type are rendered.</li>
+    <li><a href="#filterdefs">Feature Filters</a> provide a way of
+      excluding features of a particular type from display and analysis.
+      (new in Jalview 2.11)</li>
+    <li><a href="#featuredef">Sequence Feature definitions</a> -
+      tab separated fields that describe groups of positional and
+      non-positional features. Data can also be provided as <a href="#gff">GFF</a></li>
+  </ul>
+
   <p>
-    <strong>Feature Colours</strong>
+    <strong><a name="colourdefs">Feature Colours</a></strong>
   </p>
   <p>The first set of lines contain feature type definitions and their colours:
   <pre>
-<strong><em>Feature label</em>&#9;<em>Feature Colour</em>
+<strong><em>&lt;Feature Type&gt;</em>&#9;<em>&lt;Feature Style&gt;</em>
 <!-- &#9;<em>Feature links</em>  --></strong>
 </pre>
 
-  A feature type has a text label, and a colour specification. This can
-  be either:
-
-  <ul>
-    <li>A single colour specified as either a red,green,blue 24 bit
+  Each feature type definition assigns a style to features of the given type. &lt;Feature Style&gt; can be either a simple colour, or a more complex <a href="featureschemes.html">Graduated Colour Scheme</a> that shades features according to their description, score, or other attributes.
+<p>
+  <em>Assigning a colour for a &lt;Feature Type&gt;</em><br/>A single colour specified as either a red,green,blue 24 bit
       triplet in hexadecimal (eg. 00ff00) or as comma separated numbers
       (ranging from 0 to 255))<br>
-      (For help with colour values, see <a href="https://www.w3schools.com/colors/colors_converter.asp">https://www.w3schools.com/colors/colors_converter.asp</a>.)</li>
-
-    <li>A <a href="featureschemes.html">graduated colourscheme</a>
-      specified as a "|" separated list of fields: <pre>
-[label <em>or</em> score<em> or</em> attribute|attName|]&lt;mincolor&gt;|&lt;maxcolor&gt;|[absolute|]&lt;minvalue&gt;|&lt;maxvalue&gt;[|&lt;novalue&gt;][|&lt;thresholdtype&gt;|[&lt;threshold value&gt;]]
-</pre> The fields are as follows:
-
-      <ul>
-        <li><em>label</em><br> Indicates that the feature
-          description should be used to create a colour for features of
-          this type.<br> <em>Note: if no threshold value is
-            needed then only 'label' is required.<br> This
-            keyword was added in Jalview 2.6
-        </em></li>
-
-        <li><em>score</em><br> Indicates that the feature
-          score should be used to create a graduated colour for features of
-          this type, in conjunction with mincolor, maxcolor.<br><em>This keyword was added in Jalview 2.11.
-          It may be omitted (score is the default) if mincolor and maxcolor are specified.
-        </em></li>
-
-        <li><em>attribute|attName</em><br> Indicates that the value of feature
-          attribute 'attName' should be used to create a colour for features of
-          this type.
-          <br>For example, <em>attribute|clinical_significance</em> to colour by clinical_significance.
-          <br>To colour by range of a numeric attribute, include <em>mincolor</em> and <em>maxcolor</em>, or omit to colour by text (category).
-          <br>(Note: the value of the attribute used for colouring will also be shown in the tooltip as you mouse over features.)
-          <br>A sub-attribute should be written as, for example, CSQ:IMPACT.
-          <br><em>This keyword was added in Jalview 2.11</em></li>
-
-        <li><em>mincolor</em> and <em>maxcolor</em><br> Colour
-          triplets specified as hexadecimal or comma separated values
-          (may be left blank for a <em>label</em> style colourscheme,
-          but remember to specify the remaining fields)</li>
-
-        <li><em>absolute</em><br> An optional switch
-          indicating that the <em>minvalue</em> and <em>maxvalue</em>
-          parameters should be left as is, rather than rescaled
-          according to the range of scores for this feature type.</li>
-
-        <li><em>minvalue</em> and <em>maxvalue</em><br>
-          Minimum and maximum values defining the range of scores for
-          which the colour range will be defined over.<br>If minvalue is
-          greater than maxvalue then the linear mapping will have
-          negative gradient.</li>
-
-        <li><em>novalue</em> <br>
-          Specifies the colour to use if colouring by attribute, when the attribute is absent.
-          Valid options are <em>novaluemin, novaluemax, novaluenone</em>, to use mincolor, maxcolor, or no colour.
-          <br>If not specified this will default to novaluemin.</li>
-
-        <li><em>thresholdtype</em><br> Either
-          &quot;none&quot;, &quot;below&quot;, or &quot;above&quot;. <em>below</em>
-          and <em>above</em> require an additional <em>threshold
-            value</em> which is used to control the display of features with
-          a score either below or above the value.</li>
-      </ul>
-    </li>
+      (For help with colour values, see <a href="https://www.w3schools.com/colors/colors_converter.asp">https://www.w3schools.com/colors/colors_converter.asp</a>.)</p>
+      <p><em>Specifying a <a href="featureschemes.html">Graduated Colourscheme</a></em><br/>
+      Data dependent feature colourschemes are defined by a series of "|" separated fields: <pre>
+[label <em>or</em> score<em> or</em> attribute|&lt;attName&gt;|]&lt;mincolor&gt;|&lt;maxcolor&gt;|[absolute|]&lt;minvalue&gt;|&lt;maxvalue&gt;[|&lt;novalue&gt;][|&lt;thresholdtype&gt;|[&lt;threshold value&gt;]]
+</pre><br/>The fields are interpreted follows:
+
+  <ul>
+    <li><em>label</em><br> Indicates that the feature
+      description should be used to create a colour for features of this
+      type.<br> <em>Note: if no threshold value is needed then
+        only 'label' is required.<br> This keyword was added in
+        Jalview 2.6
+    </em></li>
+
+    <li><em>score</em><br> Indicates that the feature score
+      should be used to create a graduated colour for features of this
+      type, in conjunction with mincolor, maxcolor.<br>
+    <em>This keyword was added in Jalview 2.11. It may be omitted
+        (score is the default) if mincolor and maxcolor are specified. </em></li>
+
+    <li><em>attribute|&lt;attName&gt;</em><br> Indicates that
+      the value of feature attribute 'attName' should be used to create
+      a colour for features of this type. <br>For example, <em>attribute|clinical_significance</em>
+      to colour by "clinical_significance". <br>To colour by range
+      of a numeric attribute, include <em>mincolor</em> and <em>maxcolor</em>,
+      or omit to colour by text (category). <br>(Note: the value of
+      the attribute used for colouring will also be shown in the tooltip
+      as you mouse over features.) <br>A sub-attribute should be
+      written as, for example, CSQ:IMPACT. <br>
+    <em>This keyword was added in Jalview 2.11</em></li>
+
+    <li><em>mincolor</em> and <em>maxcolor</em><br> Colour
+      triplets specified as hexadecimal or comma separated values (may
+      be left blank for a <em>label</em> style colourscheme, but
+      remember to specify the remaining fields)</li>
+
+    <li><em>absolute</em><br> An optional switch indicating
+      that the <em>minvalue</em> and <em>maxvalue</em> parameters should
+      be left as is, rather than rescaled according to the range of
+      scores for this feature type.<br /> <em>This also enables
+        the 'Threshold is Min/Max' option for this type's feature
+        shading style dialog.</em></li>
+
+    <li><em>minvalue</em> and <em>maxvalue</em><br> Minimum
+      and maximum values defining the range of scores for which the
+      colour range will be defined over.<br>If minvalue is greater
+      than maxvalue then the linear mapping will have negative gradient.</li>
+
+    <li><em>novalue</em> <br> Specifies the colour to use if
+      colouring by attribute, when the attribute is absent. Valid
+      options are <em>novaluemin, novaluemax, novaluenone</em>, to use
+      mincolor, maxcolor, or no colour. <br>If not specified this
+      will default to novaluemin.</li>
+
+    <li><em>thresholdtype</em><br> Either &quot;none&quot;,
+      &quot;below&quot;, or &quot;above&quot;. <em>below</em> and <em>above</em>
+      require an additional <em>threshold value</em> which is used to
+      control the display of features with a score either below or above
+      the value.</li>
   </ul>
-  </p>
 
   <p>
-    <strong>Feature Filters</strong>
+    <strong><a name="filterdefs">Feature Filters</a></strong>
   </p>
   <p>This section is optional, and allows one or more filters to be defined for each feature type.
      <br>Only features that satisfy the filter conditions will be displayed.
   </p>
 
   <p>
-    <strong>Feature Instances</strong>
+    <strong><a name="featuredef">Feature Definitions</a></strong>
   </p>
 
-  <p>The remaining lines in the file are the sequence annotation
-    definitions, where the now defined features are attached to regions
-    on particular sequences. Each feature can optionally include some
-    descriptive text which is displayed in a tooltip when the mouse is
-    near the feature on that sequence (and may also be used to generate
-    a colour for the feature).</p>
+  <p>The remaining lines in the file are sequence feature data.
+    Features are either non-positional - attached to a whole sequence
+    (as specified by its ID), or positional, so attached to a specific
+    range on a sequence. In addition to a type, features can also
+    include descriptive text and a score, and depending on the format
+    used, many additional attributes.</p>
 
+  <em><a name="gff">Importing Generalised Feature Format (GFF) feature data</a></em>
   <p>
-    If your sequence annotation is already available in <a href="http://gmod.org/wiki/GFF2">GFF2</a> (http://gmod.org/wiki/GFF2) or
-    <a href="https://github.com/The-Sequence-Ontology/Specifications/blob/master/gff3.md">GFF3</a> 
-    (http://github.com/The-Sequence-Ontology/Specifications/blob/master/gff3.md) format, 
-    then you can leave it as is, after first adding a line containing only
-    'GFF' after any Jalview feature colour definitions (<em>this
-    mixed format capability was added in Jalview 2.6</em>). Alternately,
-    you can use Jalview's own sequence feature annotation format, which
-    additionally allows HTML and URLs to be directly attached to each
-    piece of annotation.
+    Jalview has its own tabular format (described below) for describing
+    sequence features, which allows HTML descriptions (including URLs)
+    to be defined for each feature. However, sequence feature
+    definitions can also be provided in <a
+      href="http://gmod.org/wiki/GFF2">GFF2</a>
+    (http://gmod.org/wiki/GFF2) or <a
+      href="https://github.com/The-Sequence-Ontology/Specifications/blob/master/gff3.md">GFF3</a>
+    (http://github.com/The-Sequence-Ontology/Specifications/blob/master/gff3.md)
+    format. To do this, a line containing only 'GFF' should precede any
+    GFF data (<em>this mixed format capability was added in Jalview
+      2.6</em>).
   </p>
 
   <p>
-    <strong>Jalview's sequence feature annotation format</strong>
+    <em>Jalview's sequence feature format</em>
   </p>
   <p>Each feature is specified as a tab-separated series of columns
     as defined below:
diff --git a/help/help/html/features/importvcf.html b/help/help/html/features/importvcf.html
new file mode 100755 (executable)
index 0000000..bbc9f78
--- /dev/null
@@ -0,0 +1,74 @@
+<html>
+<!--
+ * 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.
+ -->
+<head>
+<title>Importing Variants from VCF</title>
+</head>
+<body>
+  <p>
+    <strong>Importing Genomic Variants from VCF</strong>
+  </p>
+
+  <p>Jalview can annotate nucleotide sequences associated with
+    genomic loci with features representing variants imported from VCF
+    files. This new feature in Jalview 2.11, is currently tuned to work
+    best with tab indexed VCF files produced by the GATK Variant
+    Annotation Pipeline (with or without annotation provided by the
+    Ensembl Variant Effect Predictor), but other sources of VCF files
+    should also work.</p>
+  <p>
+    If your sequences have genomic loci, then a <strong>Taxon
+      name</strong> and <strong>chromosome location</strong> should be shown in
+    the Sequence Details report and the Sequence ID tooltip (providing
+    you have enabled it via the submenu in the <em><strong>View</strong></em>
+    menu). Jalview matches the assembly information provided in the VCF
+    file to the taxon name, using an internal lookup table. If a match
+    is found, Jalview employs the Ensembl API's lift-over services to
+    locate your sequences' loci in the VCF file assembly's reference
+    frame. If all goes well, after loading a VCF, Jalview will report
+    the number of variants added as sequence features via the alignment
+    window's status bar. These are added by default when loci are
+    retrieved from Ensembl.
+  </p>
+  <p>
+    <strong>Working with variants from organisms other than
+      H.sapiens.</strong>
+  </p>
+  <ol>
+    <li>Look in your VCF file to identify keywords in the
+      ##reference header that define what species and assembly name the
+      VCF was generated against.</li>
+    <li>Look at ensembl.org to identify the species' short name,
+      and the assembly's unique.</li>
+    <li>Add mappings to the <strong>VCF_SPECIES</strong> and <strong>VCF_ASSEMBLY</strong>
+      properties in your .jalview_properties file. For example:<pre>
+VCF_SPECIES=1000genomes=homo_sapiens,c_elegans=celegans
+VCF_ASSEMBLY=assembly19=GRCh37,hs37=GRCh37</pre><br /> <br />These allow
+      annotations to be mapped from both Human 1000genomes VCF files and
+      C.elegans files.
+    </li>
+  </ol>
+  <strong>Work in Progress!</strong>
+  <p>VCF support in Jalview is under active development. Please get
+    in touch via our mailing list if you have any questions, problems or
+    otherwise find it useful !</p>
+</body>
+</html>
index 94180a6..ef6cb4f 100755 (executable)
     <strong>Jalview Project Archives</strong>
   </p>
 
-  <p>These are java archives of an XML file containing alignments,
-    trees and Jalview display information. A data exchange standard is
-    currently being developed, so there is no stable schema yet, but
-    Jalview web services will soon make use of the same interchange
-    format.</p>
+  <p>These are Zip archives of an XML file containing alignments,
+    trees, Principal Component Analyses (since 2.11.0), 3D structures,
+    and display information for Jalview, VARNA, Jmol and UCSF Chimera.
+    XML documents conform to a schema, and changes to the format are
+    made to ensure future versions of Jalview will be able to read old
+    Jalview project files.</p>
   <p>
-    For those who want to know...<br> Jalview uses java classes
-    automatically created using <a href="http://www.castor.org">Castor</a>.
-    Jalview 2.08 uses descriptor classes which significantly increase
-    the speed of marshalling / unmarshalling java objects into XML.
-    Files created prior to Jalview 2.08 can still be read in, but they
-    will be saved in the new format.
+    <em>For those who want to know...</em><br> Jalview 2.11.0
+    onwards employ the JAX-B java to XML binding framework to read and
+    write Jalview project files. Earlier versions of Jalview employed <a
+      href="http://www.castor.org">Castor</a>. Jalview 2.08 used
+    descriptor classes which significantly increase the speed of
+    marshalling / unmarshalling java objects into XML. <br /> <br />
+    Files created prior to Jalview 2.08 can no longer be read by Jalview
+    2.11.0. If you need to import old project files, then please import
+    them to Jalview 2.10.5 (available from the Jalview version archive)
+    and save the project again to convert it to the new format.
   </p>
 </body>
 </html>
index 8c6b699..5fda2df 100755 (executable)
     overview that are hidden in the alignment.
   </p>
   <p>
-    <em>Gap Colour</em> - The default colour scheme for a new alignment
-    window. If the chosen option is &quot;User Defined&quot; then the
-    last User Defined Colour loaded or saved via the User Defined
-    Colours panel will be loaded.
-  </p>
-  <p>
     <a name="structure"><strong>&quot;Structure&quot;
         Preferences tab</strong></a><em> added in Jalview 2.8.2</em>
   </p>
     here, by entering the full path to the Chimera executable program.
     Double-click this field to open a file chooser dialog.
   <p>
+  <p>
+    <em>PDB Fields shown in Search and Structure Summaries</em> - ticks
+    in this table indicate fields shown by default when browsing results
+    of a free text search via the PDB sequence fetcher, or 3D structures
+    offered by the 3D Structure Chooser.<p>
+  <p>
     <a name="connections"><strong>&quot;Connections&quot;
         Preferences tab</strong></a>
   </p>
       statement</a> for more information.
   </p>
   <p>
+  <a name="backups"><strong>The &quot;Backups&quot; Preferences Tab</strong></a>
+  </p>
+  <p>Since Jalview 2.11.0, overwriting an existing file when saving
+    or exporting data will by default trigger a backup file to be
+    created. Several options are provided to control how backup files
+    are named, and how many old versions will be kept.</p>
+    <p>
+    <em>Schemes</em> - select from three default schemes <em>Single Backup</em>, <em>Keep All Versions</em>, and <em>Rolled Backup Files</em>, or choose <em>Custom</em> to enable a previously defined custom scheme.
+    </p><p>
+    <em>Custom</em> - Check this box to adjust the parameters of the currently selected scheme. Once <em>OK</em> is selected these parameters will be saved as the <em>Custom</em> scheme in your user preferences. To revert changes hit <em>Cancel</em>. 
+    </p>
+    <p><em>Scheme Examples</em> - shows how backup files will appear according to the currently selected scheme and parameters. 
+    </p>
+    <p><em>Deleting Old Backup Files</em> - these settings control how many backups are kept.</p>
+    <p><em>Backup filename strategy</em> - specify the naming convention for numbered backups and how they are ordered.</p> 
+  <p>
     <a name="links"><strong>The &quot;Links&quot; Preferences
         tab</strong></a>
   </p>
     loaded onto the alignment will automatically sort the alignment.
   </p>
   <p>&nbsp;</p>
+  <em>Web Services Preferences</em> - documentation for this tab is
+  given in the
+  <a href="../webServices/webServicesPrefs.html">Web Services
+    Preferences section</a>.
   <p>&nbsp;</p>
 </body>
 </html>
index 9437a60..e583398 100755 (executable)
     </center>
   </h2>
   <p>
-    Jalview sometimes runs out of memory. This is because of the way
-    that Java runs on a computer - what is actually run is a program
-    called a virtual machine (the JVM) which executes the java
-    instructions. The JVM has limits on the memory that can be allocated
-    to the java program - and you might need to increase them if you are
-    working with particularly large datasets.<br> If Jalview has
-    not explicitly told you that it has run out of memory, then a common
-    sign is that a function that normally works seems to have no effect
-    when working with a larger set of sequences (this might include open
-    dialog boxes for saving PNG files, or when interpreting the result
-    of a web service calculation).
+    When launched as an Application, Jalview automatically tries to
+    maximise the amount of memory allocated to it, but sometimes it may
+    run out of memory. This is because of the way that Java runs on a
+    computer - what is actually run is a program called a virtual
+    machine (the JVM) which executes the java instructions. The JVM has
+    limits on the memory that can be allocated to the java program - and
+    you might need to increase them if you are working with particularly
+    large datasets.<br> If Jalview has not explicitly told you that
+    it has run out of memory, then a common sign is that a function that
+    normally works seems to have no effect when working with a larger
+    set of sequences (this might include open dialog boxes for saving
+    PNG files, or when interpreting the result of a web service
+    calculation).
   </p>
   <p>
     <em>Jalview Memory Usage Monitor</em>: If you are concerned about
     window's background.
   </p>
   <p>
-    <em>Increasing the memory available to Jalview</em><br> The way
-    you increase the memory settings for the JVM depends on which
-    installation of Jalview you use:
-  </p>
-  <ul>
-    <li><em><font size="3">Web Start Version</font></em>
-      <p>
-        JavaWS sets the JVM parameters through special tags in the JNLP
-        file. You can obtain a JNLP file with modified memory settings
-        from our service with the following link (replace 2G with
-        desired memory in G or M):<br /> <a
-          href="http://www.jalview.org/services/launchApp?jvm-max-heap=2G">http://www.jalview.org/services/launchApp?jvm-max-heap=2G</a>
-      </p>
-      <p>
-        Alternatively, if you want to create your own JNLP file then
-        please download the latest JNLP file from <a
-          href="http://www.jalview.org/webstart/jalview.jnlp">http://www.jalview.org/webstart/jalview.jnlp</a>
-        and modify the max-heap-size parameter for the j2se tag in the
-        &lt;resources&gt; element. e.g.
-      <pre>
-&lt;j2se version="1.7+" initial-heap-size="500M" max-heap-size="1000M"/&gt;
-</pre> In both cases, you should save your new jnlp file somewhere and then
-      either point your web browser at the file's url, launch it from
-      your file browser, or from a terminal window run javaws (located
-      in your Java installation's bin directory) with the file location
-      as its argument. The file's url is something like :<br> <pre>
-file://&lt;full path to file&gt;
-</pre> If Jalview doesn't start up, see <a href="#memsetting">below</a>.
-      You'll have to edit the above settings in the JNLP file using a
-      text editor, save it, and try starting Jalview with it once more.
-      </p></li>
-    <li><em><font size="3">Install Anywhere version</font></em>
-      <p>You need to change the InstallAnywhere configuration
-        settings for the application. These are found in different
-        places depending upon which operating system you have :
-      <ul>
-        <li><em>Unix/Windows</em>
-          <p>Take a look inside the Jalview program installation
-            directory (this might be in C:\Program Files\Jalview on
-            windows). You should find a file called 'Jalview.lax' in it
-            - make a backup, and then add the following lines to the end
-            of the original file :
-          <pre>
-lax.nl.java.option.java.heap.size.max=1000m
-lax.nl.java.option.java.heap.size.initial=500m
-</pre> Case and (lack of) spaces are important here! Do not add any spaces
-          after the m in each line, and do not put any spaces before
-          'lax'.<br> Also there MUST be a carriage return after the
-          final line.
-          <p></p></li>
-        <li><em>Mac OSX</em>
-          <p>
-            The lines you need to change are in the <em>Info.plist</em>
-            file inside the <em>Jalview.app/Contents</em> directory
-            (which is where the installAnywhere installation was made) :
-
-          
-          <pre>
-&lt;key&ht;VMOptions&lt;/key&ht;
-&lt;array&gt;
-! &lt;string&gt;-Xms2M&lt;/string&gt;
-! &lt;string&gt;-Xmx64M&lt;/string&gt;
-&lt;/array&gt;
-</pre>Exchange the above two string tags for : <pre>
-&lt;string&gt;-Xms500M&lt;/string&gt;
-&lt;string&gt;-Xmx1000M&lt;/string&gt;
-</pre>
-          <p></p></li>
-      </ul>
-    <li><font size="3"><em>In all cases</em></font><br> Save
-      the file and try to start Jalview in the normal way. If it doesn't
-      start, see below...</li>
-  </ul>
-  <p>
-    <em>Please Note:</em> We do modify the default memory settings in
-    Jalview from time to time, so you may find different numbers to
-    those shown in the examples above.
-  </p>
-  <font size="3"><em>Jalview doesn't start... What do the
-      memory settings mean ?<a name="memsetting"></a>
-  </em></font>
-  <p>The 1000m value corresponds to the maximum number of megabytes
-    of space that java objects can occupy. The 500m is the initial heap
-    size that java will run in - increasing this can speed up memory
-    allocation if you know you will need 500 meg of memory to begin with
-    (ie it should speed up loading large alignments).</p>
-  <p>If, after setting the initial and maximum heap size to some
-    large value, you cannot actually start Jalview, then the max and
-    initial sizes are too big for your machine (there seems to be a
-    physical limit related to physical RAM - email the usual address to
-    enlighten us if you know better!). Our experiments found 1000m to be
-    the biggest setting that could be used on a 1GB machine. Just try
-    reducing the sizes until Jalview starts up properly!</p>
-  <p>
-    We increased the default memory in Jalview 2.10.5 to 1G. To launch
-    Jalview with the pre 2.10.5 default memory allocation, use the <a
-      href="http://www.jalview.org/webstart/jalview_256MB.jnlp">Jalview
-      256MB JNLP</a>.
-  </p>
-  <p>&nbsp;</p>
+    <em>Increasing the memory available to Jalview</em><br>
+    Since Jalview 2.11, the program automatically configures the JVM memory settings to set the maximum memory available to Jalview to be 90% of physical memory. 
+      <p>&nbsp;</p>
 </body>
 </html>
index d08f713..8862955 100755 (executable)
@@ -73,7 +73,7 @@
         parsed into sequence associated annotation which can then be
         used to sort the alignment via the Sort by&#8594;Score menu.
     </em> <br></li>
-    <li><strong>Translate as cDNA</strong><br> <em>This
+    <li><a name="transcdna"><strong>Translate as cDNA</strong></a><br> <em>This
         option is visible for nucleotide alignments. Selecting this
         option shows the DNA's calculated protein product in a new <a
         href="../features/splitView.html">split frame</a> window. Note
index 57ffa08..653eeda 100755 (executable)
           annotations</a>.
     </em></li>
     <li><strong>Load VCF File<br>
-    </strong><em>Load VCF annotations from a plain text or tab-indexed file.
-    <br>This option is offered for nucleotide alignments, and requires at least one
-    sequence to have known genomic coordinates.
-    <br>Genomic coordinates are attached to entries retrieved from Ensembl.
-    <br>Support for VCF was added in Jalview 2.11.
-    </em></li>
+    </strong><em><a href="../features/importvcf.html">Load VCF annotations</a> from a plain text, or indexed file (.csi,.tsi).
+    <br>Only available for nucleotide alignments, and requires at least one
+    sequence to have known genomic coordinates.</em></li>
     <li><strong>Close (Control W)</strong><br> <em>Close
         the alignment window. Make sure you have saved your alignment
         before you close - either as a Jalview project or by using the <strong>Save
index d716e33..49fbec3 100755 (executable)
         <!--         <li><strong>Enable Experimental Features</strong> <em>Enable or disable <a href="../whatsNew.html#experimental">features still under development</a> in Jalview's user interface. This setting is remembered in your preferences.</em> -->
 
       </ul></li>
-    <li><strong>Vamsas</strong> <em>For more details, read the
-        <a href="../vamsas/index.html">Jalview VAMSAS documentation</a>.<br />
-        When no session is active, the menu provides options for
-        initiating a new VAMSAS session:
-    </em>
-      <ul>
-        <li><strong>Connect to<br /></strong> <em>Connect to
-            one of the existing sessions available.</em></li>
-        <li><strong>New VAMSAS session<br /></strong> <em>Initiates
-            a new local VAMSAS session.</em></li>
-        <li><strong>Load VAMSAS session...<br /></strong> <em>Opens
-            a file browser allowing you to choose a VAMSAS document to
-            import into a new local session.</em></li>
-      </ul> <em>When Jalview is joined to a VAMSAS session, the menu
-        contains the following:</em>
-      <ul>
-        <li><strong>Session Update<br /></strong> <em>Sends
-            alignment data in the Jalview desktop to the VAMSAS session.</em></li>
-        <li><strong>Save VAMSAS Session...<br /></strong> <em>Saves
-            the current session to a VAMSAS document archive.</em></li>
-        <li><strong>Stop VAMSAS Session<br /></strong> <em>Disconnects
-            from the current session. You may be asked if you want to
-            save the current session's data if no other VAMSAS clients
-            are connected.</em></li>
-      </ul></li>
     <li><strong>Help </strong>
       <ul>
         <li><strong>About<br>
index 37ae169..9ad61b5 100644 (file)
@@ -40,9 +40,9 @@
       via the browser when downloading the application, or when the
       Jalview Desktop user interface is launched.<br> <br>
       <ul>
-        <li><i>The JNLP file at
-            www.jalview.org/webstart/jalview.jnlp is retrieved to
-            determine if you are running the latest version of Jalview.</i></li>
+        <li><i>The Jalview Getdown Launcher</i> (Since 2.11.0) examines release
+          channels every time Jalview launches to determine if a new
+          release is available.</li>
         <li><i>The questionnaire web service at
             www.jalview.org/cgi-bin/questionnaire.pl is checked and a
             unique cookie for the current questionnaire is stored in the
index 9b71968..996d060 100755 (executable)
@@ -58,7 +58,7 @@ li:before {
     <tr>
       <td width="60" align="center" nowrap>
           <strong><a name="Jalview.2.11.0">2.11.0</a><br />
-            <em>27/06/2019</em></strong>
+            <em>04/07/2019</em></strong>
       </td>
       <td align="left" valign="top">
         <ul>
@@ -101,18 +101,23 @@ li:before {
             implementation that allows updates) used for Sequence Feature collections</li>
           <li>
                                                        <li>
-                                                               <!-- JAL-2808,JAL-2069 -->Sequence features can be filtered and
-                                                               shaded according to any associated attributes (e.g. variant
-                                                               attributes from VCF file, or key-value pairs imported from
-                                                               column 9 of GFF file)
-                                                       </li>
-                                                       <li>
+                <!-- JAL-2744, JAL-2808,JAL-2069,JAL-2820 -->Sequence
+                features can be filtered and shaded according to any
+                associated attributes (e.g. variant attributes from VCF
+                file, or key-value pairs imported from column 9 of GFF
+                file)
+              </li>
+              <li>
+                <!-- JAL-2879 -->Feature Attributes and shading schemes
+                stored and restored from Jalview Projects
+              </li>
+              <li>
                                                                <!-- JAL-3334 -->Use full Sequence Ontology (via BioJava) to
                                                                recognise variant features
                                                        </li>
                                                        <li>
-                                                               <!-- JAL-2897 -->Show synonymous codon variants on peptide
-                                                               sequences
+                                                               <!-- JAL-2897,JAL-3330 -->Show synonymous codon variants on peptide
+                                                               sequences (also coloured red by default)
                                                        </li>
                                                        <li>
                                                                <!-- JAL-2792 -->Popup window to show full report for a selected sequence feature's
@@ -199,7 +204,7 @@ li:before {
                                                                annotation
                                                        </li>
                                                        <li>
-                                                               <!-- JAL-2814 -->Help button on Uniprot and PDB search panels
+                                                               <!-- JAL-2814,JAL-437 -->Help button on Uniprot and PDB search panels
                                                        </li>
                                                        <li>
                                                                <!-- JAL-2621 -->Cursor changes over draggable box in Overview
@@ -250,18 +255,36 @@ li:before {
                                                <!-- JAL-3196,JAL-3179.JAL-2671 -->Build system migrated from Ant to Gradle
                                        </li>
                                        <li><!-- JAL-1424 -->Enhanced checks for missing and duplicated keys in Message bundles</li>
-                                       <li>
-                                               <!-- JAL-3225 -->Eclipse project configuration managed with
-                                               gradle-eclipse
-                                       </li>
-          <li><!-- JAL-3174,JAL-2886,JAL-2729 -->
-          Atlassian Bamboo continuous integration for
-            unattended Test Suite execution</li>
+          <li>
+            <!-- JAL-3225 -->Eclipse project configuration managed with
+            gradle-eclipse
+          </li>
+          <li>
+            <!-- JAL-3174,JAL-2886,JAL-2729,JAL-1889 --> Atlassian
+            Bamboo continuous integration for unattended Test Suite
+            execution
+          </li>
           <li>
             <!-- JAL-2864 -->Memory test suite to detect leaks in common
-            operations</li>
-          <li><!-- JAL-2360,JAL-2416 -->More unit test coverage, and minor issues resolved.</li>
-          <li><!-- JAL-3248 -->Developer documentation migrated to markdown (with HTML rendering)</li>          
+            operations
+          </li>
+          <li>
+            <!-- JAL-2360,JAL-2416 -->More unit test coverage, and minor
+            issues resolved.
+          </li>
+          <li>
+            <!-- JAL-3248 -->Developer documentation migrated to
+            markdown (with HTML rendering)
+          </li>
+          <li>
+            <!-- JAL-3287 -->HelpLinksChecker runs on Windows
+          </li>
+          <li>
+            <!-- JAL-3289 -->New URLs for publishing development
+            versions of Jalview
+          </li>
+          <li>
+          <li>
         </ul>
       </td>
                        <td align="left" valign="top">
@@ -321,10 +344,6 @@ li:before {
                                                doesn't tell users the invalid URL
                                        </li>
                                        <li>
-                                               <!-- JAL-3178 -->Nonpositional features lose feature group on
-                                               export as Jalview features file
-                                       </li>
-                                       <li>
                                                <!-- JAL-2816 -->Tooltips displayed for features filtered by
                                                score from view
                                        </li>
@@ -334,8 +353,8 @@ li:before {
                                                red in original view
                                        </li>
           <li>
-            <!-- JAL-2898 -->stop_gained variants not shown correctly on
-            peptide sequence
+            <!-- JAL-2898,JAL-2207 -->stop_gained variants not shown correctly on
+            peptide sequence (computed variant shown as p.Res.null)
           </li>
                                        <li>
                                                <!-- JAL-2060 -->'Graduated colour' option not offered for
@@ -426,12 +445,15 @@ li:before {
                                                without normalisation
                                        </li>
                                        <li>
-                                               <!-- JAL-3021 -->Sequence Details report opens positioned to top
+                                               <!-- JAL-3021 -->Sequence Details report should open positioned at top
                                                of report
                                        </li>
                                        <li>
                                                <!-- JAL-914 -->Help page can be opened twice
                                        </li>
+                                 <li>
+                                 <!-- JAL-3333 -->Fuzzy text in web service status menu on OSX Mojave
+                                 </li>
                                </ul> <em>Editing</em>
                                <ul>
                                        <li>
@@ -459,8 +481,17 @@ li:before {
                                                <!-- JAL-2986 -->Sequence.findIndex returns wrong value when
                                                sequence's End is greater than its length
                                        </li>
-                               </ul> <em>New Known Defects</em>
+          <li><strong>Bugs fixed for Java 11 Support (not
+              yet on general release)</strong>
+            <ul>
+              <li>
+                <!-- JAL-3288 -->Menus work properly in split-screen
+              </li>
+            </ul></li>
+        </ul> <em>New Known Defects</em>
                                <ul>
+                               <li><!-- JAL-3340 -->Select columns containing feature by double clicking ignores bounds of an existing selected region
+                               </li>
                                        <li>
                                                <!-- JAL-3313 -->Codon consensus logo incorrectly scaled in gapped
                                                regions of protein alignment.
@@ -488,14 +519,23 @@ li:before {
                                                not shown as thresholded features in 2.11. To workaround please
                                                create a Score filter instead.
                                        </li>
-                                        <li><strong>Java 11 Specific defects</strong>
+                                       <li><!-- JAL-3184 -->Cancel on Feature Settings dialog doesn't reset group visibility</li> 
+                                       <li>
+                                       <!-- JAL-3338 -->F2 doesn't enable/disable keyboard mode in linked CDS/Protein view
+                                       </li>
+          <li>
+            <!-- JAL-797 -->Closing tree windows with CMD/CTRL-W for
+            alignments with multiple views can close views unexpectedly
+          </li>
+          <li><strong>Java 11 Specific defects</strong>
             <ul>
               <li>
-              <!-- JAL-3235 -->Jalview Properties file is not sorted alphabetically when saved</li>
-              
-            </ul></li>
-                                       
-                               </ul>
+                <!-- JAL-3235 -->Jalview Properties file is not sorted
+                alphabetically when saved
+              </li>
+            </ul>
+          </li>
+        </ul>
                        </td>
                </tr>
     <tr>
diff --git a/help/help/html/vamsas/index.html b/help/help/html/vamsas/index.html
deleted file mode 100644 (file)
index 72a336a..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-<html>
-<!--
- * 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.
- -->
-<head>
-<title>VAMSAS Interoperation</title>
-</head>
-<body>
-  <p>
-    <strong>VAMSAS Interoperation</strong>
-  </p>
-  <p>
-    Jalview can interact with other applications using &quot;the <strong>VAMSAS
-      Interoperation framework</strong>&quot; which is an experimental model for
-    interoperation between bioinformatics applications (<strong>V</strong>isualization
-    and <strong>A</strong>nalysis of <strong>Molecular</strong> <strong>S</strong>equences,
-    <strong>Alignements</strong> and <strong>S</strong>tructures).
-    Currently, the only other VAMSAS enabled application is <a
-      href="http://www.topali.org">TOPALi</a> - a user friendly
-    program for phylogenetics and evolutionary analysis.
-  <p>
-    VAMSAS enabled applications access a shared bioinformatics dataset
-    containing sequences, alignments, annotation and trees, which can be
-    represented by an XML document analogous to a <a
-      href="../features/jalarchive.html">Jalview Project
-      Archive</a>.
-  </p>
-  <br>
-  <strong>Connecting to a VAMSAS session</strong>
-  <br> The VAMSAS functionality in Jalview is accessed through the
-  Desktop's
-  <strong>Vamsas</strong> menu. The options available in this menu
-  depend on whether the application is currently interacting with a
-  VAMSAS dataset in a
-  <strong>VAMSAS session</strong>. When the application is not connected
-  to a session is active, the menu options are as follows:
-  <br>
-  <ul>
-    <li><em>Connect to an existing session</em><br> If
-      visible, this submenu contains a list of existing sessions that
-      the VAMSAS framework has discovered on your computer. <br>
-      Choose one to connect to it.</li>
-    <li><em>New VAMSAS Session</em><br> This option will
-      create a new session on your computer.</li>
-    <li><em>Load VAMSAS Session...</em><br> This option will
-      open a file browser window allowing you to select a VAMSAS session
-      archive from which a new session will be created.<br /> <em>New
-        in 2.5:</em>Sessions created from an imported document inherit the
-      file or URL for the document.</li>
-
-  </ul>
-  <br>
-  <strong>VAMSAS and Firewalls</strong>: VAMSAS uses sockets to
-  communicate between different programs. This means that after starting
-  a session, your firewall software may ask you whether to allow the
-  java executable access to the internet (port 53782). If you do not
-  allow this, messages will not be exchanged with other VAMSAS
-  applications.
-  </br>
-  <br> Once you have successfully connected to a VAMSAS session,
-  any data made available by other VAMSAS applications will be
-  automatically imported into Jalview. However, in order to share the
-  data in Jalview with other VAMSAS applications, you must manually
-  select the
-  <strong>Vamsas&#8594;&quot;Session Update&quot;</strong> entry that is
-  visible when a session is active. Selecting this option will update
-  the VAMSAS session document, with the data loaded into Jalview. Any
-  new alignments, trees and annotation will be written to the session,
-  in addition to any edits you have made to data originally stored in
-  the document.
-  <br>
-  <strong>Saving the current session</strong>
-  <br> You can save the current session as a VAMSAS Session archive
-  using the
-  <strong>Vamsas&#8594;&quot;Session Update&quot;</strong>. The file
-  contains a snapshot of the current VAMSAS session, including data from
-  any other applications connected to the session.
-  <strong>Leaving a VAMSAS session</strong>
-  <br> A session can be disconnected from at any time using the
-  <strong>Vamsas&#8594;&quot;Stop Session&quot;</strong> option.
-  Selecting this option will only disconnect Jalview from the session -
-  any other applications will remain connected to the session. If
-  Jalview is the only application connected to the session and you have
-  not yet saved the VAMSAS session then you will be prompted with an
-  optional 'Save VAMSAS session...' dialog box, allowing the session to
-  be saved and returned to at a later date.
-  <br>
-  <strong>VAMSAS Session Persistence</strong>
-  <br> VAMSAS sessions are persistent - this means that they exist
-  independently of any VAMSAS applications that are connected to them.
-  This means that if something goes wrong with a VAMSAS application and
-  it crashes or otherwise fails, the VAMSAS session it is connected to
-  will (hopefully) be unaffected. For instance, if Jalview is killed or
-  crashes whilst it is still connected to a session, that session can be
-  recovered in a new Jalview instance using the
-  <strong>Vamsas&#8594;&quot;Existing session&quot;</strong> sub menu.
-  </p>
-  <p>
-    <strong>A quick Demo</strong> <br> Jalview can talk to itself
-    through VAMSAS. Simply start two copies of the application, create a
-    new vamsas session in one, and connect to the new session in the
-    other. Then load your data into one of the applications, and use the
-    <strong>Vamsas&#8594;&quot;Session Update&quot;</strong> menu entry
-    to try to propagate the data to the other application. <br>
-  <table>
-    <tr>
-      <td>Data Sharing Capability</td>
-      <td>Jalview Version</td>
-    </tr>
-    <tr>
-      <td>Alignments, sequences and annotation, trees, database
-        references, cDNA/protein mappings.</td>
-      <td>2.4</td>
-    </tr>
-    <tr>
-      <td>Mouseover location across linked DNA, protein and
-        structure positions.</td>
-      <td>2.4</td>
-    </tr>
-    <tr>
-      <td>Jalview project settings (Multiple views, groups, tree
-        partitions, colouring, window positions)</td>
-      <td>2.5</td>
-    </tr>
-    <tr>
-      <td>Sequence region and column selections</td>
-      <td>2.5</td>
-    </tr>
-  </table>
-  <br />
-  <p>
-    Version 0.2 of the VAMSAS client library is used in <em>Jalview
-      2.5</em>. For further details about the VAMSAS framework, please check
-    the <a href="http://www.vamsas.ac.uk">VAMSAS website</a>. The VAMSAS
-    framework is implemented as a Java 1.4 Library and depends on a
-    number of other open source projects. Its source is released under
-    the LGPL license. &nbsp;
-  </p>
-</body>
-</html>
index 3538ff4..eb318f0 100755 (executable)
 </head>
 <body>
   <p>
-    <strong>Jalview 2.11 - major and minor new features</strong>
+    <strong>Jalview 2.11 - new installer and new capabilities</strong>
   </p>
   <p>Jalview 2.11 introduces support for loading VCF files, and new
     filters and shading models for sequence features. Under the hood,
     we've addressed many bugs, and also made some important changes in
     the way the Jalview desktop is installed and launched.</p>
   <ul>
-    <li><em>VCF Support</em>. Proteins and genomic contigs with
-      chromosomal location annotation (such as protein coding genes
-      retrieved from Ensembl) can be annotated with variants imported
-      from a local VCF file.</li>
-    <li><em>The Jalview Launcher and Update System</em><br />
+    <li><strong>The Jalview Launcher and Update System</strong>.
       Jalview's new installation model means you'll only need to
       download and install Jalview once. After installation, Jalview
       will automatically keep itself up to date. The launcher also sets
       Jalview's memory automatically, so you'll never again have to
-      manually configure Java's memory settings.<br />We are grateful to
-      Install4J who provided us with a free license for their
-      installation system, and Jalview's over the air update system is
-      via Getdown.</li>
+      manually configure Java's memory settings.<br />We are grateful
+      to ej Technologies for providing a free open source project
+      license for <a
+      href="https://www.ej-technologies.com/products/install4j/overview.html">install4j</a>,
+      and also to <a
+      href="https://en.wikipedia.org/wiki/Three_Rings_Design">Three
+        Rings Design</a> for Jalview's new over the air update system: <a
+      href="https://github.com/threerings/getdown">Getdown</a>.</li>
+    <li><strong>VCF Support</strong>. Proteins and genomic contigs with
+      chromosomal location annotation (such as protein coding genes
+      retrieved from Ensembl) can be annotated with variants <a
+      href="features/importvcf.html">imported from a local VCF file</a>.</li>
+    <li><strong>Feature filters and attribute colourschemes</strong>. A new
+      <a href="features/featureschemes.html">Feature Display
+        Settings</a> dialog allows filters and feature attribute based
+      colourschemes to be constructed, and a new <em>filters</em> column
+      added to the <a href="features/featuresettings.html">Feature
+        Settings</a> dialog. Jalview's sequence feature datamodel has also
+      been further optimised, and is now maintained as a separate
+      library <em>IntervalStoreJ</em> (available at https://github.com/bartongroup/IntervalStoreJ)</li>
+    <li><strong>Alternative tables for CDS translation</strong>. The <a
+      href="menus/alwcalculate.html">Translate as cDNA</a> option now
+      offers alternative amino acid coding schemes.</li>
+    <li><strong>PCA plots stored in Jalview Projects</strong>. The <a
+      href="calculations/pca.html">PCA viewer</a> user interface has
+      also been improved.</li>
+    <li><strong>Backup files</strong>. Jalview will automatically
+      create backups when overwriting existing files, and - unlike with
+      earlier versions, should Jalview crash during a save, the original
+      file will be unaffected. The <a
+      href="features/preferences.html#backups">Backups tab</a> in
+      Jalview's preferences dialog allows the number and format of
+      backup filenames to be configured.</li>
   </ul>
   <p>
     The full list of bugs fixed in this release can be found in the <a
-      href="releases.html#Jalview.2.11">2.11 Release Notes</a>.
+      href="releases.html#Jalview.2.11.0">2.11 Release Notes</a>.
   </p>
   <p>
-    <strong>Jalview and Java 11, 13, and onwards</strong>
+    <strong>Jalview and Java 11, and onwards</strong>
+  </p>
+  <p>The Jalview application comes bundled with its own independent
+    Java installation. Version 2.11.0 includes an AdoptOpenJDK Java 1.8
+    runtime which will be kept up to date. A Java 11 based installation
+    is available from the Jalview development pages.</p>
+  <p>
+    <em>Saying goodbye...</em><br>Long time Jalview users will notice
+    that this release no longer features the
+    <em>Vamsas</em> desktop menu, or a <em>Distributed
+      Annotation System (DAS)</em> tab on the feature settings dialog.
+    DAS is no longer supported by major bioinformatics databases, and we
+    decided that it was no longer feasible to maintain either JDAS or
+    the VAMSAS client library which rely on out-dated Java XML binding
+    technologies. 
+  </p>
+  <p>
+    <em>Next up...</em><br /> Keep an eye on the Jalview web site for
+    news about JalviewJS - the web based JavaScript implementation of
+    Jalview. Whilst Jalview 2.11 has been in development, we have also
+    been working with Prof. Bob Hanson (Jmol and JSmol) to enable
+    Jalview to run as both a Java application and a JavaScript app in a
+    web page. To find out more, open <em>http://www.jalview.org/jalview-js/</em>
+    in Chrome or Firefox.
   </p>
-  <p>Java 11 provides improved performance and better OS
-    integration, so we now recommend users select our Java 11 Jalview
-    distribution rather than the legacy Java 8 build.</p>
-  <em>Known Issues - update for 211 </em>
-  <ul>
-    <li>OSX: The 'Open File' dialog for Jalview's Groovy Console
-      appears with the title 'Save As', and attempting to select a file
-      to load yields a FileNotFound exception.</br>The workaround is to first
-      clear the 'Untitled' filename before selecting the file you wish
-      to load.
-    </li>
-    <li>OSX: Links don't open when clicked on or via the Sequence
-      or Alignment window popup menu.</li>
-    <li>OSX (Webstart): Jalview only displays old news feed items</li>
-  </ul>
 </body>
 </html>
index 7ee98a0..7849bc7 100644 (file)
Binary files a/j11lib/getdown-core.jar and b/j11lib/getdown-core.jar differ
diff --git a/j11lib/javax.activation-MODULE.jar b/j11lib/javax.activation-MODULE.jar
deleted file mode 100644 (file)
index b764265..0000000
Binary files a/j11lib/javax.activation-MODULE.jar and /dev/null differ
diff --git a/j11lib/javax.activation-api-1.2.0.jar b/j11lib/javax.activation-api-1.2.0.jar
new file mode 100644 (file)
index 0000000..986c365
Binary files /dev/null and b/j11lib/javax.activation-api-1.2.0.jar differ
similarity index 69%
rename from j11lib/javax.annotation-api-MODULE.jar
rename to j11lib/javax.annotation-api-1.3.2.jar
index a0f12ad..a8a470a 100644 (file)
Binary files a/j11lib/javax.annotation-api-MODULE.jar and b/j11lib/javax.annotation-api-1.3.2.jar differ
diff --git a/j11lib/javax.servlet-api-4.0.1.jar b/j11lib/javax.servlet-api-4.0.1.jar
new file mode 100644 (file)
index 0000000..844ec7f
Binary files /dev/null and b/j11lib/javax.servlet-api-4.0.1.jar differ
diff --git a/j11lib/javax.servlet-api-MODULE.jar b/j11lib/javax.servlet-api-MODULE.jar
deleted file mode 100644 (file)
index 9241563..0000000
Binary files a/j11lib/javax.servlet-api-MODULE.jar and /dev/null differ
similarity index 60%
rename from j11lib/jaxb-api-java9.jar
rename to j11lib/jaxb-api-2.3.1.jar
index 41de3c1..4565865 100644 (file)
Binary files a/j11lib/jaxb-api-java9.jar and b/j11lib/jaxb-api-2.3.1.jar differ
diff --git a/j11lib/jaxb-runtime-2.3.2.jar b/j11lib/jaxb-runtime-2.3.2.jar
new file mode 100644 (file)
index 0000000..62f8719
Binary files /dev/null and b/j11lib/jaxb-runtime-2.3.2.jar differ
diff --git a/j11lib/jaxb-runtime.jar b/j11lib/jaxb-runtime.jar
deleted file mode 100644 (file)
index 0b9ef67..0000000
Binary files a/j11lib/jaxb-runtime.jar and /dev/null differ
diff --git a/j11lib/jersey-client-1.19.1.jar b/j11lib/jersey-client-1.19.1.jar
deleted file mode 100644 (file)
index 455a7f2..0000000
Binary files a/j11lib/jersey-client-1.19.1.jar and /dev/null differ
similarity index 82%
rename from j8lib/jersey-client-1.19.jar
rename to j11lib/jersey-client-1.19.4.jar
index c9e0f56..0588ee2 100644 (file)
Binary files a/j8lib/jersey-client-1.19.jar and b/j11lib/jersey-client-1.19.4.jar differ
diff --git a/j11lib/jersey-core-1.19.1.jar b/j11lib/jersey-core-1.19.1.jar
deleted file mode 100644 (file)
index 8e5185d..0000000
Binary files a/j11lib/jersey-core-1.19.1.jar and /dev/null differ
similarity index 85%
rename from j8lib/jersey-core-1.19.jar
rename to j11lib/jersey-core-1.19.4.jar
index 92feb63..e800c60 100644 (file)
Binary files a/j8lib/jersey-core-1.19.jar and b/j11lib/jersey-core-1.19.4.jar differ
similarity index 85%
rename from j8lib/jersey-json-1.19.jar
rename to j11lib/jersey-json-1.19.4.jar
index b609411..c79271b 100644 (file)
Binary files a/j8lib/jersey-json-1.19.jar and b/j11lib/jersey-json-1.19.4.jar differ
diff --git a/j11lib/mimepull-1.9.11.jar b/j11lib/mimepull-1.9.11.jar
new file mode 100644 (file)
index 0000000..99a4aba
Binary files /dev/null and b/j11lib/mimepull-1.9.11.jar differ
diff --git a/j11lib/mimepull.jar b/j11lib/mimepull.jar
deleted file mode 100644 (file)
index 9007c56..0000000
Binary files a/j11lib/mimepull.jar and /dev/null differ
diff --git a/j11lib/policy-2.7.6.jar b/j11lib/policy-2.7.6.jar
new file mode 100644 (file)
index 0000000..56b0e31
Binary files /dev/null and b/j11lib/policy-2.7.6.jar differ
diff --git a/j11lib/policy.jar b/j11lib/policy.jar
deleted file mode 100644 (file)
index 8a2ef0f..0000000
Binary files a/j11lib/policy.jar and /dev/null differ
diff --git a/j11lib/slf4j-api-1.7.26.jar b/j11lib/slf4j-api-1.7.26.jar
new file mode 100644 (file)
index 0000000..d2f27ac
Binary files /dev/null and b/j11lib/slf4j-api-1.7.26.jar differ
diff --git a/j11lib/slf4j-api-1.7.7.jar b/j11lib/slf4j-api-1.7.7.jar
deleted file mode 100644 (file)
index b28e220..0000000
Binary files a/j11lib/slf4j-api-1.7.7.jar and /dev/null differ
diff --git a/j11lib/slf4j-log4j12-1.7.26.jar b/j11lib/slf4j-log4j12-1.7.26.jar
new file mode 100644 (file)
index 0000000..aed1195
Binary files /dev/null and b/j11lib/slf4j-log4j12-1.7.26.jar differ
diff --git a/j11lib/slf4j-log4j12-1.7.7.jar b/j11lib/slf4j-log4j12-1.7.7.jar
deleted file mode 100644 (file)
index 12c804e..0000000
Binary files a/j11lib/slf4j-log4j12-1.7.7.jar and /dev/null differ
diff --git a/j11lib/stax-ex-1.8.1.jar b/j11lib/stax-ex-1.8.1.jar
new file mode 100644 (file)
index 0000000..a200db5
Binary files /dev/null and b/j11lib/stax-ex-1.8.1.jar differ
diff --git a/j11lib/stax-ex.jar b/j11lib/stax-ex.jar
deleted file mode 100644 (file)
index 5e60637..0000000
Binary files a/j11lib/stax-ex.jar and /dev/null differ
diff --git a/j11lib/stax2-api-4.2.jar b/j11lib/stax2-api-4.2.jar
new file mode 100644 (file)
index 0000000..668dd42
Binary files /dev/null and b/j11lib/stax2-api-4.2.jar differ
diff --git a/j11lib/stax2-api-MODULE.jar b/j11lib/stax2-api-MODULE.jar
deleted file mode 100644 (file)
index eff6586..0000000
Binary files a/j11lib/stax2-api-MODULE.jar and /dev/null differ
diff --git a/j11lib/streambuffer-1.5.7.jar b/j11lib/streambuffer-1.5.7.jar
new file mode 100644 (file)
index 0000000..efc9a68
Binary files /dev/null and b/j11lib/streambuffer-1.5.7.jar differ
diff --git a/j11lib/streambuffer.jar b/j11lib/streambuffer.jar
deleted file mode 100644 (file)
index a8f9640..0000000
Binary files a/j11lib/streambuffer.jar and /dev/null differ
diff --git a/j11lib/txw2-2.3.2.jar b/j11lib/txw2-2.3.2.jar
new file mode 100644 (file)
index 0000000..0d5ac01
Binary files /dev/null and b/j11lib/txw2-2.3.2.jar differ
diff --git a/j11lib/txw2.jar b/j11lib/txw2.jar
deleted file mode 100644 (file)
index 75ed519..0000000
Binary files a/j11lib/txw2.jar and /dev/null differ
diff --git a/j11lib/wsdl4j-1.6.3.jar b/j11lib/wsdl4j-1.6.3.jar
new file mode 100644 (file)
index 0000000..b9c10b9
Binary files /dev/null and b/j11lib/wsdl4j-1.6.3.jar differ
diff --git a/j11lib/wsdl4j-MODULE.jar b/j11lib/wsdl4j-MODULE.jar
deleted file mode 100644 (file)
index 0f9e45c..0000000
Binary files a/j11lib/wsdl4j-MODULE.jar and /dev/null differ
index 7ee98a0..7849bc7 100644 (file)
Binary files a/j8lib/getdown-core.jar and b/j8lib/getdown-core.jar differ
diff --git a/j8lib/jersey-client-1.19.4.jar b/j8lib/jersey-client-1.19.4.jar
new file mode 100644 (file)
index 0000000..0588ee2
Binary files /dev/null and b/j8lib/jersey-client-1.19.4.jar differ
diff --git a/j8lib/jersey-core-1.19.4.jar b/j8lib/jersey-core-1.19.4.jar
new file mode 100644 (file)
index 0000000..e800c60
Binary files /dev/null and b/j8lib/jersey-core-1.19.4.jar differ
similarity index 54%
rename from j11lib/jersey-json-1.19.1.jar
rename to j8lib/jersey-json-1.19.4.jar
index 2cbf79e..c79271b 100644 (file)
Binary files a/j11lib/jersey-json-1.19.1.jar and b/j8lib/jersey-json-1.19.4.jar differ
diff --git a/resources/images/Jalview_Logo_small_with_border.png b/resources/images/Jalview_Logo_small_with_border.png
new file mode 100644 (file)
index 0000000..216121c
Binary files /dev/null and b/resources/images/Jalview_Logo_small_with_border.png differ
index 02e53ec..ca2a584 100755 (executable)
@@ -441,91 +441,6 @@ public class Jalview
       System.out.println("No files to open!");
       System.exit(1);
     }
-    String vamsasImport = aparser.getValue("vdoc");
-    String vamsasSession = aparser.getValue("vsess");
-    if (vamsasImport != null || vamsasSession != null)
-    {
-      if (desktop == null || headless)
-      {
-        System.out.println(
-                "Headless vamsas sessions not yet supported. Sorry.");
-        System.exit(1);
-      }
-      // if we have a file, start a new session and import it.
-      boolean inSession = false;
-      if (vamsasImport != null)
-      {
-        try
-        {
-          DataSourceType viprotocol = AppletFormatAdapter
-                  .checkProtocol(vamsasImport);
-          if (viprotocol == DataSourceType.FILE)
-          {
-            inSession = desktop.vamsasImport(new File(vamsasImport));
-          }
-          else if (viprotocol == DataSourceType.URL)
-          {
-            inSession = desktop.vamsasImport(new URL(vamsasImport));
-          }
-
-        } catch (Exception e)
-        {
-          System.err.println("Exeption when importing " + vamsasImport
-                  + " as a vamsas document.");
-          e.printStackTrace();
-        }
-        if (!inSession)
-        {
-          System.err.println("Failed to import " + vamsasImport
-                  + " as a vamsas document.");
-        }
-        else
-        {
-          System.out.println("Imported Successfully into new session "
-                  + desktop.getVamsasApplication().getCurrentSession());
-        }
-      }
-      if (vamsasSession != null)
-      {
-        if (vamsasImport != null)
-        {
-          // close the newly imported session and import the Jalview specific
-          // remnants into the new session later on.
-          desktop.vamsasStop_actionPerformed(null);
-        }
-        // now join the new session
-        try
-        {
-          if (desktop.joinVamsasSession(vamsasSession))
-          {
-            System.out.println(
-                    "Successfully joined vamsas session " + vamsasSession);
-          }
-          else
-          {
-            System.err.println("WARNING: Failed to join vamsas session "
-                    + vamsasSession);
-          }
-        } catch (Exception e)
-        {
-          System.err.println(
-                  "ERROR: Failed to join vamsas session " + vamsasSession);
-          e.printStackTrace();
-        }
-        if (vamsasImport != null)
-        {
-          // the Jalview specific remnants can now be imported into the new
-          // session at the user's leisure.
-          Cache.log.info(
-                  "Skipping Push for import of data into existing vamsas session."); // TODO:
-          // enable
-          // this
-          // when
-          // debugged
-          // desktop.getVamsasApplication().push_update();
-        }
-      }
-    }
     long progress = -1;
     // Finally, deal with the remaining input data.
     if (file != null)
@@ -761,7 +676,7 @@ public class Jalview
     // And the user
     // ////////////////////
 
-    if (!headless && file == null && vamsasImport == null
+    if (!headless && file == null
             && jalview.bin.Cache.getDefault("SHOW_STARTUP_FILE", true))
     {
       file = jalview.bin.Cache.getDefault("STARTUP_FILE",
@@ -867,10 +782,6 @@ public class Jalview
                     // passed in correctly)"
                     + "-jabaws URL\tSpecify URL for Jabaws services (e.g. for a local installation).\n"
                     + "-fetchfrom nickname\tQuery nickname for features for the alignments and display them.\n"
-                    // +
-                    // "-vdoc vamsas-document\tImport vamsas document into new
-                    // session or join existing session with same URN\n"
-                    // + "-vses vamsas-session\tJoin session with given URN\n"
                     + "-groovy FILE\tExecute groovy script in FILE, after all other arguments have been processed (if FILE is the text 'STDIN' then the file will be read from STDIN)\n"
                     + "\n~Read documentation in Application or visit http://www.jalview.org for description of Features and Annotations file~\n\n");
   }
index 673bcc0..9ad6596 100644 (file)
@@ -111,6 +111,13 @@ public class CrossRefAction implements Runnable
       FeatureSettingsModelI featureColourScheme = new SequenceFetcher()
               .getFeatureColourScheme(source);
 
+      if (dna && AlignmentUtils.looksLikeEnsembl(alignment))
+      {
+        // override default featureColourScheme so products have Ensembl variant colours
+        featureColourScheme = new SequenceFetcher()
+                .getFeatureColourScheme(DBRefSource.ENSEMBL);
+      }
+
       AlignmentI xrefsAlignment = makeCrossReferencesAlignment(dataset,
               xrefs);
       if (!dna)
index cf91b9c..1ec6939 100644 (file)
@@ -77,9 +77,7 @@ import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
-import java.io.BufferedInputStream;
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.net.URL;
@@ -119,8 +117,6 @@ import javax.swing.event.HyperlinkEvent;
 import javax.swing.event.HyperlinkEvent.EventType;
 import javax.swing.event.InternalFrameAdapter;
 import javax.swing.event.InternalFrameEvent;
-import javax.swing.event.MenuEvent;
-import javax.swing.event.MenuListener;
 
 import org.stackoverflowusers.file.WindowsShortcut;
 
@@ -346,7 +342,6 @@ public class Desktop extends jalview.jbgui.GDesktop
      * constructor.
      */
     instance = this;
-    doVamsasClientCheck();
 
     doConfigureStructurePrefs();
     setTitle("Jalview " + jalview.bin.Cache.getProperty("VERSION"));
@@ -675,46 +670,6 @@ public class Desktop extends jalview.jbgui.GDesktop
     return null;
   }
 
-  private void doVamsasClientCheck()
-  {
-    if (jalview.bin.Cache.vamsasJarsPresent())
-    {
-      setupVamsasDisconnectedGui();
-      VamsasMenu.setVisible(true);
-      final Desktop us = this;
-      VamsasMenu.addMenuListener(new MenuListener()
-      {
-        // this listener remembers when the menu was first selected, and
-        // doesn't rebuild the session list until it has been cleared and
-        // reselected again.
-        boolean refresh = true;
-
-        @Override
-        public void menuCanceled(MenuEvent e)
-        {
-          refresh = true;
-        }
-
-        @Override
-        public void menuDeselected(MenuEvent e)
-        {
-          refresh = true;
-        }
-
-        @Override
-        public void menuSelected(MenuEvent e)
-        {
-          if (refresh)
-          {
-            us.buildVamsasStMenu();
-            refresh = false;
-          }
-        }
-      });
-      vamsasStart.setVisible(true);
-    }
-  }
-
   void showPasteMenu(int x, int y)
   {
     JPopupMenu popup = new JPopupMenu();
@@ -1449,10 +1404,6 @@ public class Desktop extends jalview.jbgui.GDesktop
     }
     Jalview.setCurrentAlignFrame(null);
     System.out.println("ALL CLOSED");
-    if (v_client != null)
-    {
-      // TODO clear binding to vamsas document objects on close_all
-    }
 
     /*
      * reset state of singleton objects as appropriate (clear down session state
@@ -2042,364 +1993,6 @@ public class Desktop extends jalview.jbgui.GDesktop
 
   }
 
-  jalview.gui.VamsasApplication v_client = null;
-
-  @Override
-  public void vamsasImport_actionPerformed(ActionEvent e)
-  {
-    if (v_client == null)
-    {
-      // Load and try to start a session.
-      JalviewFileChooser chooser = new JalviewFileChooser(
-              jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
-
-      chooser.setFileView(new JalviewFileView());
-      chooser.setDialogTitle(
-              MessageManager.getString("label.open_saved_vamsas_session"));
-      chooser.setToolTipText(MessageManager.getString(
-              "label.select_vamsas_session_opened_as_new_vamsas_session"));
-
-      int value = chooser.showOpenDialog(this);
-
-      if (value == JalviewFileChooser.APPROVE_OPTION)
-      {
-        String fle = chooser.getSelectedFile().toString();
-        if (!vamsasImport(chooser.getSelectedFile()))
-        {
-          JvOptionPane.showInternalMessageDialog(Desktop.desktop,
-                  MessageManager.formatMessage(
-                          "label.couldnt_import_as_vamsas_session",
-                          new Object[]
-                          { fle }),
-                  MessageManager
-                          .getString("label.vamsas_document_import_failed"),
-                  JvOptionPane.ERROR_MESSAGE);
-        }
-      }
-    }
-    else
-    {
-      jalview.bin.Cache.log.error(
-              "Implementation error - load session from a running session is not supported.");
-    }
-  }
-
-  /**
-   * import file into a new vamsas session (uses jalview.gui.VamsasApplication)
-   * 
-   * @param file
-   * @return true if import was a success and a session was started.
-   */
-  public boolean vamsasImport(URL url)
-  {
-    // TODO: create progress bar
-    if (v_client != null)
-    {
-
-      jalview.bin.Cache.log.error(
-              "Implementation error - load session from a running session is not supported.");
-      return false;
-    }
-
-    try
-    {
-      // copy the URL content to a temporary local file
-      // TODO: be a bit cleverer here with nio (?!)
-      File file = File.createTempFile("vdocfromurl", ".vdj");
-      FileOutputStream fos = new FileOutputStream(file);
-      BufferedInputStream bis = new BufferedInputStream(url.openStream());
-      byte[] buffer = new byte[2048];
-      int ln;
-      while ((ln = bis.read(buffer)) > -1)
-      {
-        fos.write(buffer, 0, ln);
-      }
-      bis.close();
-      fos.close();
-      v_client = new jalview.gui.VamsasApplication(this, file,
-              url.toExternalForm());
-    } catch (Exception ex)
-    {
-      jalview.bin.Cache.log.error(
-              "Failed to create new vamsas session from contents of URL "
-                      + url,
-              ex);
-      return false;
-    }
-    setupVamsasConnectedGui();
-    v_client.initial_update(); // TODO: thread ?
-    return v_client.inSession();
-  }
-
-  /**
-   * import file into a new vamsas session (uses jalview.gui.VamsasApplication)
-   * 
-   * @param file
-   * @return true if import was a success and a session was started.
-   */
-  public boolean vamsasImport(File file)
-  {
-    if (v_client != null)
-    {
-
-      jalview.bin.Cache.log.error(
-              "Implementation error - load session from a running session is not supported.");
-      return false;
-    }
-
-    setProgressBar(MessageManager.formatMessage(
-            "status.importing_vamsas_session_from", new Object[]
-            { file.getName() }), file.hashCode());
-    try
-    {
-      v_client = new jalview.gui.VamsasApplication(this, file, null);
-    } catch (Exception ex)
-    {
-      setProgressBar(MessageManager.formatMessage(
-              "status.importing_vamsas_session_from", new Object[]
-              { file.getName() }), file.hashCode());
-      jalview.bin.Cache.log.error(
-              "New vamsas session from existing session file failed:", ex);
-      return false;
-    }
-    setupVamsasConnectedGui();
-    v_client.initial_update(); // TODO: thread ?
-    setProgressBar(MessageManager.formatMessage(
-            "status.importing_vamsas_session_from", new Object[]
-            { file.getName() }), file.hashCode());
-    return v_client.inSession();
-  }
-
-  public boolean joinVamsasSession(String mysesid)
-  {
-    if (v_client != null)
-    {
-      throw new Error(MessageManager
-              .getString("error.try_join_vamsas_session_another"));
-    }
-    if (mysesid == null)
-    {
-      throw new Error(
-              MessageManager.getString("error.invalid_vamsas_session_id"));
-    }
-    v_client = new VamsasApplication(this, mysesid);
-    setupVamsasConnectedGui();
-    v_client.initial_update();
-    return (v_client.inSession());
-  }
-
-  @Override
-  public void vamsasStart_actionPerformed(ActionEvent e)
-  {
-    if (v_client == null)
-    {
-      // Start a session.
-      // we just start a default session for moment.
-      /*
-       * JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache.
-       * getProperty("LAST_DIRECTORY"));
-       * 
-       * chooser.setFileView(new JalviewFileView());
-       * chooser.setDialogTitle("Load Vamsas file");
-       * chooser.setToolTipText("Import");
-       * 
-       * int value = chooser.showOpenDialog(this);
-       * 
-       * if (value == JalviewFileChooser.APPROVE_OPTION) { v_client = new
-       * jalview.gui.VamsasApplication(this, chooser.getSelectedFile());
-       */
-      v_client = new VamsasApplication(this);
-      setupVamsasConnectedGui();
-      v_client.initial_update(); // TODO: thread ?
-    }
-    else
-    {
-      // store current data in session.
-      v_client.push_update(); // TODO: thread
-    }
-  }
-
-  protected void setupVamsasConnectedGui()
-  {
-    vamsasStart.setText(MessageManager.getString("label.session_update"));
-    vamsasSave.setVisible(true);
-    vamsasStop.setVisible(true);
-    vamsasImport.setVisible(false); // Document import to existing session is
-    // not possible for vamsas-client-1.0.
-  }
-
-  protected void setupVamsasDisconnectedGui()
-  {
-    vamsasSave.setVisible(false);
-    vamsasStop.setVisible(false);
-    vamsasImport.setVisible(true);
-    vamsasStart
-            .setText(MessageManager.getString("label.new_vamsas_session"));
-  }
-
-  @Override
-  public void vamsasStop_actionPerformed(ActionEvent e)
-  {
-    if (v_client != null)
-    {
-      v_client.end_session();
-      v_client = null;
-      setupVamsasDisconnectedGui();
-    }
-  }
-
-  protected void buildVamsasStMenu()
-  {
-    if (v_client == null)
-    {
-      String[] sess = null;
-      try
-      {
-        sess = VamsasApplication.getSessionList();
-      } catch (Exception e)
-      {
-        jalview.bin.Cache.log.warn("Problem getting current sessions list.",
-                e);
-        sess = null;
-      }
-      if (sess != null)
-      {
-        jalview.bin.Cache.log.debug(
-                "Got current sessions list: " + sess.length + " entries.");
-        VamsasStMenu.removeAll();
-        for (int i = 0; i < sess.length; i++)
-        {
-          JMenuItem sessit = new JMenuItem();
-          sessit.setText(sess[i]);
-          sessit.setToolTipText(MessageManager
-                  .formatMessage("label.connect_to_session", new Object[]
-                  { sess[i] }));
-          final Desktop dsktp = this;
-          final String mysesid = sess[i];
-          sessit.addActionListener(new ActionListener()
-          {
-
-            @Override
-            public void actionPerformed(ActionEvent e)
-            {
-              if (dsktp.v_client == null)
-              {
-                Thread rthr = new Thread(new Runnable()
-                {
-
-                  @Override
-                  public void run()
-                  {
-                    dsktp.v_client = new VamsasApplication(dsktp, mysesid);
-                    dsktp.setupVamsasConnectedGui();
-                    dsktp.v_client.initial_update();
-                  }
-
-                });
-                rthr.start();
-              }
-            };
-          });
-          VamsasStMenu.add(sessit);
-        }
-        // don't show an empty menu.
-        VamsasStMenu.setVisible(sess.length > 0);
-
-      }
-      else
-      {
-        jalview.bin.Cache.log.debug("No current vamsas sessions.");
-        VamsasStMenu.removeAll();
-        VamsasStMenu.setVisible(false);
-      }
-    }
-    else
-    {
-      // Not interested in the content. Just hide ourselves.
-      VamsasStMenu.setVisible(false);
-    }
-  }
-
-  @Override
-  public void vamsasSave_actionPerformed(ActionEvent e)
-  {
-    if (v_client != null)
-    {
-      // TODO: VAMSAS DOCUMENT EXTENSION is VDJ
-      JalviewFileChooser chooser = new JalviewFileChooser("vdj",
-              "Vamsas Document");
-
-      chooser.setFileView(new JalviewFileView());
-      chooser.setDialogTitle(MessageManager
-              .getString("label.save_vamsas_document_archive"));
-
-      int value = chooser.showSaveDialog(this);
-
-      if (value == JalviewFileChooser.APPROVE_OPTION)
-      {
-        java.io.File choice = chooser.getSelectedFile();
-        JPanel progpanel = addProgressPanel(MessageManager
-                .formatMessage("label.saving_vamsas_doc", new Object[]
-                { choice.getName() }));
-        Cache.setProperty("LAST_DIRECTORY", choice.getParent());
-        String warnmsg = null;
-        String warnttl = null;
-        try
-        {
-          v_client.vclient.storeDocument(choice);
-        } catch (Error ex)
-        {
-          warnttl = "Serious Problem saving Vamsas Document";
-          warnmsg = ex.toString();
-          jalview.bin.Cache.log
-                  .error("Error Whilst saving document to " + choice, ex);
-
-        } catch (Exception ex)
-        {
-          warnttl = "Problem saving Vamsas Document.";
-          warnmsg = ex.toString();
-          jalview.bin.Cache.log.warn(
-                  "Exception Whilst saving document to " + choice, ex);
-
-        }
-        removeProgressPanel(progpanel);
-        if (warnmsg != null)
-        {
-          JvOptionPane.showInternalMessageDialog(Desktop.desktop,
-
-                  warnmsg, warnttl, JvOptionPane.ERROR_MESSAGE);
-        }
-      }
-    }
-  }
-
-  JPanel vamUpdate = null;
-
-  /**
-   * hide vamsas user gui bits when a vamsas document event is being handled.
-   * 
-   * @param b
-   *          true to hide gui, false to reveal gui
-   */
-  public void setVamsasUpdate(boolean b)
-  {
-    Cache.log.debug("Setting gui for Vamsas update "
-            + (b ? "in progress" : "finished"));
-
-    if (vamUpdate != null)
-    {
-      this.removeProgressPanel(vamUpdate);
-    }
-    if (b)
-    {
-      vamUpdate = this.addProgressPanel(
-              MessageManager.getString("label.updating_vamsas_session"));
-    }
-    vamsasStart.setVisible(!b);
-    vamsasStop.setVisible(!b);
-    vamsasSave.setVisible(!b);
-  }
-
   public JInternalFrame[] getAllFrames()
   {
     return desktop.getAllFrames();
@@ -2902,7 +2495,8 @@ public class Desktop extends jalview.jbgui.GDesktop
 
   public VamsasApplication getVamsasApplication()
   {
-    return v_client;
+    // TODO: JAL-3311 remove remaining code from Jalview relating to VAMSAS
+    return null;
 
   }
 
index c094b1c..0848a4d 100644 (file)
@@ -688,7 +688,8 @@ public class VamsasApplication implements SelectionSource, VamsasSource
 
   public void disableGui(boolean b)
   {
-    Desktop.instance.setVamsasUpdate(b);
+    // JAL-3311 TODO: remove this class!
+    // Desktop.instance.setVamsasUpdate(b);
   }
 
   Hashtable _backup_vobj2jv;
index 2fc08e1..8158718 100644 (file)
@@ -26,12 +26,13 @@ import jalview.ws.WSClientI;
 
 import java.awt.BorderLayout;
 import java.awt.Color;
-import java.awt.Font;
+import java.awt.Dimension;
 import java.awt.Graphics;
 import java.awt.Graphics2D;
 import java.awt.GridLayout;
 import java.awt.Image;
 import java.awt.MediaTracker;
+import java.awt.RenderingHints;
 import java.awt.event.ActionEvent;
 import java.awt.image.BufferedImage;
 import java.util.Vector;
@@ -39,7 +40,6 @@ import java.util.Vector;
 import javax.swing.JComponent;
 import javax.swing.JEditorPane;
 import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.JTabbedPane;
@@ -82,7 +82,7 @@ public class WebserviceInfo extends GWebserviceInfo
 
   Image image;
 
-  int angle = 0;
+  float angle = 0f;
 
   String title = "";
 
@@ -329,7 +329,7 @@ public class WebserviceInfo extends GWebserviceInfo
     setInfoText(info);
 
     java.net.URL url = getClass()
-            .getResource("/images/Jalview_Logo_small.png");
+            .getResource("/images/Jalview_Logo_small_with_border.png");
     image = java.awt.Toolkit.getDefaultToolkit().createImage(url);
 
     MediaTracker mt = new MediaTracker(this);
@@ -343,7 +343,10 @@ public class WebserviceInfo extends GWebserviceInfo
     }
 
     AnimatedPanel ap = new AnimatedPanel();
-    titlePanel.add(ap, BorderLayout.CENTER);
+    ap.setPreferredSize(new Dimension(60, 60));
+    titlePanel.add(ap, BorderLayout.WEST);
+    titlePanel.add(titleText, BorderLayout.CENTER);
+    setStatus(currentStatus);
 
     Thread thread = new Thread(ap);
     thread.start();
@@ -351,7 +354,8 @@ public class WebserviceInfo extends GWebserviceInfo
     frame.addInternalFrameListener(
             new javax.swing.event.InternalFrameAdapter()
             {
-              public void internalFrameClosed(
+              @Override
+                       public void internalFrameClosed(
                       javax.swing.event.InternalFrameEvent evt)
               {
                 // System.out.println("Shutting down webservice client");
@@ -375,6 +379,36 @@ public class WebserviceInfo extends GWebserviceInfo
   public void setStatus(int status)
   {
     currentStatus = status;
+
+    String message = null;
+    switch (currentStatus)
+    {
+    case STATE_QUEUING:
+      message = MessageManager.getString("label.state_queueing");
+      break;
+
+    case STATE_RUNNING:
+      message = MessageManager.getString("label.state_running");
+      break;
+
+    case STATE_STOPPED_OK:
+      message = MessageManager.getString("label.state_completed");
+      break;
+
+    case STATE_CANCELLED_OK:
+      message = MessageManager.getString("label.state_job_cancelled");
+      break;
+
+    case STATE_STOPPED_ERROR:
+      message = MessageManager.getString("label.state_job_error");
+      break;
+
+    case STATE_STOPPED_SERVERERROR:
+      message = MessageManager.getString("label.server_error_try_later");
+      break;
+    }
+    titleText.setText(title + (message == null ? "" : " - " + message));
+    titleText.repaint();
   }
 
   /**
@@ -676,7 +710,8 @@ public class WebserviceInfo extends GWebserviceInfo
    * @param e
    *          DOCUMENT ME!
    */
-  protected void cancel_actionPerformed(ActionEvent e)
+  @Override
+protected void cancel_actionPerformed(ActionEvent e)
   {
     if (!serviceIsCancellable)
     {
@@ -707,7 +742,8 @@ public class WebserviceInfo extends GWebserviceInfo
   {
     javax.swing.SwingUtilities.invokeLater(new Runnable()
     {
-      public void run()
+      @Override
+       public void run()
       {
         JvOptionPane.showInternalMessageDialog(Desktop.desktop, message,
                 title, JvOptionPane.WARNING_MESSAGE);
@@ -756,24 +792,38 @@ public class WebserviceInfo extends GWebserviceInfo
 
     BufferedImage offscreen;
 
+    @Override
     public void run()
     {
       startTime = System.currentTimeMillis();
 
+      float invSpeed = 15f;
+      float factor = 1f;
       while (currentStatus < STATE_STOPPED_OK)
       {
+        if (currentStatus == STATE_QUEUING)
+        {
+          invSpeed = 25f;
+          factor = 1f;
+        }
+        else if (currentStatus == STATE_RUNNING)
+        {
+          invSpeed = 10f;
+          factor = (float) (0.5 + 1.5
+                  * (0.5 - (0.5 * Math.sin(3.14159 / 180 * (angle + 45)))));
+        }
         try
         {
           Thread.sleep(50);
 
-          int units = (int) ((System.currentTimeMillis() - startTime)
-                  / 10f);
-          angle += units;
+          float delta = (System.currentTimeMillis() - startTime) / invSpeed;
+          angle += delta * factor;
           angle %= 360;
           startTime = System.currentTimeMillis();
 
           if (currentStatus >= STATE_STOPPED_OK)
           {
+            park();
             angle = 0;
           }
 
@@ -786,86 +836,67 @@ public class WebserviceInfo extends GWebserviceInfo
       cancel.setEnabled(false);
     }
 
+    public void park()
+    {
+      startTime = System.currentTimeMillis();
+
+      while (angle < 360)
+      {
+        float invSpeed = 5f;
+        float factor = 1f;
+        try
+        {
+          Thread.sleep(25);
+
+          float delta = (System.currentTimeMillis() - startTime) / invSpeed;
+          angle += delta * factor;
+          startTime = System.currentTimeMillis();
+
+          if (angle >= 360)
+          {
+            angle = 360;
+          }
+
+          repaint();
+        } catch (Exception ex)
+        {
+        }
+      }
+
+    }
+
     void drawPanel()
     {
       if (offscreen == null || offscreen.getWidth(this) != getWidth()
               || offscreen.getHeight(this) != getHeight())
       {
         offscreen = new BufferedImage(getWidth(), getHeight(),
-                BufferedImage.TYPE_INT_ARGB);
+                BufferedImage.TYPE_INT_RGB);
       }
 
       Graphics2D g = (Graphics2D) offscreen.getGraphics();
 
+      g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
+              RenderingHints.VALUE_ANTIALIAS_ON);
+      g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
+              RenderingHints.VALUE_INTERPOLATION_BICUBIC);
+      g.setRenderingHint(RenderingHints.KEY_RENDERING,
+              RenderingHints.VALUE_RENDER_QUALITY);
+
       g.setColor(Color.white);
       g.fillRect(0, 0, getWidth(), getHeight());
 
-      g.setFont(new Font("Arial", Font.BOLD, 12));
-      g.setColor(Color.black);
-
-      switch (currentStatus)
-      {
-      case STATE_QUEUING:
-        g.drawString(
-                title.concat(" - ").concat(
-                        MessageManager.getString("label.state_queueing")),
-                60, 30);
-
-        break;
-
-      case STATE_RUNNING:
-        g.drawString(
-                title.concat(" - ").concat(
-                        MessageManager.getString("label.state_running")),
-                60, 30);
-
-        break;
-
-      case STATE_STOPPED_OK:
-        g.drawString(
-                title.concat(" - ").concat(
-                        MessageManager.getString("label.state_completed")),
-                60, 30);
-
-        break;
-
-      case STATE_CANCELLED_OK:
-        g.drawString(
-                title.concat(" - ")
-                        .concat(MessageManager
-                                .getString("label.state_job_cancelled")),
-                60, 30);
-
-        break;
-
-      case STATE_STOPPED_ERROR:
-        g.drawString(
-                title.concat(" - ").concat(
-                        MessageManager.getString("label.state_job_error")),
-                60, 30);
-
-        break;
-
-      case STATE_STOPPED_SERVERERROR:
-        g.drawString(
-                title.concat(" - ")
-                        .concat(MessageManager
-                                .getString("label.server_error_try_later")),
-                60, 30);
-
-        break;
-      }
-
       if (image != null)
       {
         int x = image.getWidth(this) / 2, y = image.getHeight(this) / 2;
-        g.rotate(Math.toRadians(angle), 10 + x, 10 + y);
-        g.drawImage(image, 10, 10, this);
-        g.rotate(-Math.toRadians(angle), 10 + x, 10 + y);
+        g.rotate(3.14159 / 180 * (angle), x, y);
+        g.drawImage(image, 0, 0, this);
+        g.rotate(-3.14159 / 180 * (angle), x, y);
       }
     }
 
-    public void paintComponent(Graphics g1)
+    @Override
+       public void paintComponent(Graphics g1)
     {
       drawPanel();
 
@@ -880,7 +911,8 @@ public class WebserviceInfo extends GWebserviceInfo
     renderAsHtml = b;
   }
 
-  public void hyperlinkUpdate(HyperlinkEvent e)
+  @Override
+public void hyperlinkUpdate(HyperlinkEvent e)
   {
     Desktop.hyperlinkUpdate(e);
   }
index f30fa9b..0ef3f46 100755 (executable)
@@ -51,10 +51,6 @@ public class GDesktop extends JFrame
 
   JMenu HelpMenu = new JMenu();
 
-  protected JMenu VamsasMenu = new JMenu();
-
-  protected JMenu VamsasStMenu = new JMenu();
-
   JMenuItem inputLocalFileMenuItem = new JMenuItem();
 
   JMenuItem inputURLMenuItem = new JMenuItem();
@@ -81,16 +77,8 @@ public class GDesktop extends JFrame
 
   JMenu inputMenu = new JMenu();
 
-  protected JMenuItem vamsasStart = new JMenuItem();
-
-  protected JMenuItem vamsasImport = new JMenuItem();
-
-  protected JMenuItem vamsasSave = new JMenuItem();
-
   JMenuItem inputSequence = new JMenuItem();
 
-  protected JMenuItem vamsasStop = new JMenuItem();
-
   JMenuItem closeAll = new JMenuItem();
 
   JMenuItem raiseRelated = new JMenuItem();
@@ -129,7 +117,6 @@ public class GDesktop extends JFrame
     {
       FileMenu.setMnemonic('F');
       inputLocalFileMenuItem.setMnemonic('L');
-      VamsasMenu.setMnemonic('V');
       inputURLMenuItem.setMnemonic('U');
       inputTextboxMenuItem.setMnemonic('C');
       quit.setMnemonic('Q');
@@ -150,12 +137,6 @@ public class GDesktop extends JFrame
 
     FileMenu.setText(MessageManager.getString("action.file"));
     HelpMenu.setText(MessageManager.getString("action.help"));
-    VamsasMenu.setText("Vamsas");
-    VamsasMenu.setToolTipText(MessageManager
-            .getString("label.share_data_vamsas_applications"));
-    VamsasStMenu.setText(MessageManager.getString("label.connect_to"));
-    VamsasStMenu.setToolTipText(
-            MessageManager.getString("label.join_existing_vamsas_session"));
     inputLocalFileMenuItem
             .setText(MessageManager.getString("label.load_tree_from_file"));
     inputLocalFileMenuItem.setAccelerator(
@@ -268,39 +249,6 @@ public class GDesktop extends JFrame
       }
     });
     inputMenu.setText(MessageManager.getString("label.input_alignment"));
-    vamsasStart
-            .setText(MessageManager.getString("label.new_vamsas_session"));
-    vamsasStart.setVisible(false);
-    vamsasStart.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        vamsasStart_actionPerformed(e);
-      }
-    });
-    vamsasImport.setText(
-            MessageManager.getString("action.load_vamsas_session"));
-    vamsasImport.setVisible(false);
-    vamsasImport.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        vamsasImport_actionPerformed(e);
-      }
-    });
-    vamsasSave.setText(
-            MessageManager.getString("action.save_vamsas_session"));
-    vamsasSave.setVisible(false);
-    vamsasSave.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        vamsasSave_actionPerformed(e);
-      }
-    });
     inputSequence
             .setText(MessageManager.getString("action.fetch_sequences"));
     inputSequence.addActionListener(new ActionListener()
@@ -311,17 +259,6 @@ public class GDesktop extends JFrame
         inputSequence_actionPerformed(e);
       }
     });
-    vamsasStop
-            .setText(MessageManager.getString("label.stop_vamsas_session"));
-    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()
     {
@@ -428,8 +365,6 @@ public class GDesktop extends JFrame
     
     desktopMenubar.add(FileMenu);
     desktopMenubar.add(toolsMenu);
-    VamsasMenu.setVisible(false);
-    desktopMenubar.add(VamsasMenu);
     desktopMenubar.add(HelpMenu);
     desktopMenubar.add(windowMenu);
     FileMenu.add(inputMenu);
@@ -442,12 +377,6 @@ public class GDesktop extends JFrame
     FileMenu.add(quit);
     HelpMenu.add(aboutMenuItem);
     HelpMenu.add(documentationMenuItem);
-    VamsasMenu.add(VamsasStMenu);
-    VamsasStMenu.setVisible(false);
-    VamsasMenu.add(vamsasStart);
-    VamsasMenu.add(vamsasImport);
-    VamsasMenu.add(vamsasSave);
-    VamsasMenu.add(vamsasStop);
     if (!Platform.isAMac() || specversion < 11)
     {
       toolsMenu.add(preferences);
index 60bf1b7..9f98ffa 100755 (executable)
@@ -629,6 +629,8 @@ public class GPreferences extends JPanel
                     GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL,
                     new Insets(0, 2, 5, 5), 70, 1));
 
+    versioncheck.setVisible(false);
+
     // Add padding so the panel doesn't look ridiculous
     JPanel spacePanel = new JPanel();
     connectTab.add(spacePanel,
index ba84411..cddbb3b 100755 (executable)
@@ -25,6 +25,7 @@ import jalview.util.MessageManager;
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Dimension;
+import java.awt.Font;
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
 import java.awt.GridLayout;
@@ -61,6 +62,8 @@ public class GWebserviceInfo extends JPanel
 
   protected JPanel buttonPanel = new JPanel();
 
+  public JLabel titleText = new JLabel();
+
   public JButton cancel = new JButton();
 
   public JButton showResultsNewFrame = new JButton();
@@ -95,7 +98,7 @@ public class GWebserviceInfo extends JPanel
    */
   private void jbInit() throws Exception
   {
-    infoText.setFont(new java.awt.Font("Verdana", 0, 10));
+    infoText.setFont(new Font("Verdana", 0, 10));
     infoText.setBorder(null);
     infoText.setEditable(false);
     infoText.setText("");
@@ -106,13 +109,17 @@ public class GWebserviceInfo extends JPanel
     titlePanel.setBackground(Color.white);
     titlePanel.setPreferredSize(new Dimension(0, 60));
     titlePanel.setLayout(borderLayout3);
+    titleText.setFont(new Font("Arial", Font.BOLD, 12));
+    titleText.setBorder(null);
+    titleText.setText("");
     jScrollPane1.setBorder(null);
     jScrollPane1.setPreferredSize(new Dimension(400, 70));
-    cancel.setFont(new java.awt.Font("Verdana", 0, 11));
+    cancel.setFont(new Font("Verdana", 0, 11));
     cancel.setText(MessageManager.getString("action.cancel"));
     cancel.addActionListener(new java.awt.event.ActionListener()
     {
-      public void actionPerformed(ActionEvent e)
+      @Override
+       public void actionPerformed(ActionEvent e)
       {
         cancel_actionPerformed(e);
       }
diff --git a/utils/getdown/jalview_logo_background_fade-640x480.xcf b/utils/getdown/jalview_logo_background_fade-640x480.xcf
new file mode 100644 (file)
index 0000000..a194fee
Binary files /dev/null and b/utils/getdown/jalview_logo_background_fade-640x480.xcf differ
index 20d972a..39f9cfd 100644 (file)
Binary files a/utils/getdown/jalview_logo_background_getdown-640x480.png and b/utils/getdown/jalview_logo_background_getdown-640x480.png differ
index f2a6ce5..d331daf 100644 (file)
Binary files a/utils/getdown/jalview_logo_background_getdown_error-640x480.png and b/utils/getdown/jalview_logo_background_getdown_error-640x480.png differ
index 8f88dd0..21e77cf 100644 (file)
Binary files a/utils/getdown/jalview_logo_background_getdown_instant-640x480.png and b/utils/getdown/jalview_logo_background_getdown_instant-640x480.png differ
diff --git a/utils/getdown/jalview_logo_background_getdown_instant-640x480.xcf b/utils/getdown/jalview_logo_background_getdown_instant-640x480.xcf
deleted file mode 100644 (file)
index 3e6cc24..0000000
Binary files a/utils/getdown/jalview_logo_background_getdown_instant-640x480.xcf and /dev/null differ
diff --git a/utils/publishHelp.xml b/utils/publishHelp.xml
new file mode 100644 (file)
index 0000000..17ef9e2
--- /dev/null
@@ -0,0 +1,64 @@
+<project name="Publish Help Webpages for Jalview" default="pubhtmlhelp">
+
+<target name="pubhtmlhelp">
+  <property name="appletHelpDir" value="../build/distribution/help"/>
+        <!-- finally, publish the help files -->
+        <javac srcdir="." destdir="." includes="help2Website.java"/>
+        <java fork="true" dir="${helpBuildDir}" classpath="." classname="help2Website"/>
+        <delete dir="${appletHelpDir}"/>
+        <copy preservelastmodified="true" overwrite="true" 
+           todir="${appletHelpDir}">
+          <fileset dir="${helpBuildDir}">
+            <include name="*htm*"/>
+            <include name="icons/**.*"/>
+            <include name="html/**/*.*"/>
+            <exclude name="**/CVS"/>
+            <exclude name="CVS"/>
+          </fileset>
+        </copy>
+        <replace dir="${appletHelpDir}">
+        <include name="**/*.htm*"/>
+        <replacetoken><![CDATA[</body>]]></replacetoken>
+        <replacevalue><![CDATA[
+<script type="text/javascript">
+    var gaJsHost = (("https:" == document.location.protocol) ?
+        "https://ssl." : "http://www.");
+    document.write(unescape("%3Cscript src=\'" + gaJsHost +
+        "google-analytics.com/ga.js\' type=\'text/javascript\'%3E%3C/script%3E"));
+</script>
+<script type="text/javascript">
+try{
+    var pageTracker = _gat._getTracker("'UA-9060947-1'");
+    pageTracker._trackPageview();
+} catch(err) {}
+</script>
+</body>
+]]></replacevalue>
+</replace>
+<echo file="${appletHelpDir}/help.html">
+<![CDATA[<html><head>
+<title>Jalview Documentation</title>
+</head>
+<frameset cols="300,*">
+<frame src="helpTOC.html" name=tocframe scrolling=yes >
+<frame src="html/index.html" name=bodyframe >
+<noframes><body>
+This page requires a browser that supports frames.
+<script type="text/javascript">
+    var gaJsHost = (("https:" == document.location.protocol) ?
+        "https://ssl." : "http://www.");
+    document.write(unescape("%3Cscript src=\'" + gaJsHost +
+        "google-analytics.com/ga.js\' type=\'text/javascript\'%3E%3C/script%3E"));
+</script>
+<script type="text/javascript">
+try{
+    var pageTracker = _gat._getTracker("'UA-9060947-1'");
+    pageTracker._trackPageview();
+} catch(err) {}
+</script></body>
+<noframes></frameset>
+</html>
+]]></echo>
+
+  </target>
+</project>