[med-svn] [Git][med-team/figtree][upstream] New upstream version 1.4.4

Fabian Klötzl gitlab at salsa.debian.org
Mon Nov 26 11:52:27 GMT 2018


Fabian Klötzl pushed to branch upstream at Debian Med / figtree


Commits:
1819d7fa by Fabian Klötzl at 2018-11-26T10:59:24Z
New upstream version 1.4.4
- - - - -


14 changed files:

- .gitignore
- build.xml
- + doc/large_trees.md
- + doc/shot1.png
- + doc/shot2.png
- + doc/shot3.png
- + doc/shot4.png
- + doc/shot5.png
- − lib/libquaqua64.dylib
- release/Linux/scripts/figtree
- release/common/README.txt
- src/figtree/application/FigTreeApplication.java
- src/figtree/treeviewer/TreePane.java
- src/figtree/treeviewer/painters/LabelPainter.java


Changes:

=====================================
.gitignore
=====================================
@@ -7,3 +7,4 @@ out/*
 FigTree*
 tests/*
 examples/*
+.DS_Store


=====================================
build.xml
=====================================
@@ -102,8 +102,8 @@
 
     </target>
 
-    <property name="version" value="1.4.3" />
-    <property name="version_number" value="1.4.3" />
+    <property name="version" value="1.4.4" />
+    <property name="version_number" value="1.4.4" />
     <property name="release_dir" value="release" />
     <property name="name" value="FigTree" />
 
@@ -126,29 +126,25 @@
         <!-- Create the release directory -->
         <mkdir dir="${Windows_package_dir}" />
 
-        <property name="launch4j.dir" location="./launch4j" />
-
+        <property name="launch4j.dir" location="${packaging_tools}/windows/launch4j" />
         <taskdef name="launch4j" classname="net.sf.launch4j.ant.Launch4jTask"
-                 classpath="${launch4j.dir}/launch4j.jar :${launch4j.dir}/lib/xstream.jar" />
+                 classpath="${launch4j.dir}/launch4j.jar :${launch4j.dir}/lib/xstream.jar"/>
 
         <copy file="${dist}/figtree.jar" todir="${Windows_package_dir}/lib"/>
-        <!--
         <copy todir="${Windows_package_dir}/lib">
             <fileset dir="${Windows_dir}/lib"/>
         </copy>
-        -->
+
         <copy todir="${Windows_package_dir}">
             <fileset dir="${common_dir}/"/>
         </copy>
 
         <launch4j configFile="${Windows_dir}/FigTree_launch4j.xml"
-                  jar="${dist}/figtree.jar"
                   outfile="${Windows_package_dir}/${name} v${version}.exe"
                   fileVersion="${version_number}.0"
                   txtFileVersion="${version}"
                   productVersion="${version_number}.0"
-                  txtProductVersion="${version}"
-                />
+                  txtProductVersion="${version}"/>
 
         <zip destfile="${release_dir}/${name} v${version}.zip">
             <zipfileset dir="${Windows_package_dir}" prefix="${name} v${version}"/>
@@ -157,7 +153,7 @@
         <echo message="Windows version release is finished." />
     </target>
 
-    <target name="linux_unix_Release"
+    <target name="linux_unix_Release" depends="dist"
             description="release Linux/Unix version of FigTree">
         <delete dir="${Linux_package_dir}" />
         <!-- Create the release directory -->
@@ -185,7 +181,9 @@
         <echo message="Linux/Unix version release is finished." />
     </target>
 
-    <target name="mac_release"
+    <property name="AppleSigner" value="Developer ID Application: Andrew Rambaut (9E4WXAQ6SE)" />
+
+    <target name="mac_release" depends="dist"
             description="release Mac version of FigTree">
         <delete dir="${Mac_package_dir}" />
         <!-- Create the release directory -->
@@ -200,7 +198,7 @@
             <fileset dir="${Mac_dir}/QuickLook Plugin"/>
         </copy>
 
-        <taskdef name="jarbundler" classname="net.sourceforge.jarbundler.JarBundler"/>
+        <taskdef name="jarbundler" classname="com.ultramixer.jarbundler.JarBundler"/>
 
         <!-- create a jar bundle for the mac -->
         <jarbundler dir="${Mac_package_dir}"
@@ -210,11 +208,12 @@
                     stubfile="${packaging_tools}/mac/universalJavaApplicationStub"
 					useJavaXKey="true"
                     jvmversion="1.6+"
-                    vmoptions="-Xmx1024M"
+                    vmoptions="-Xmx4096M"
+                    highresolutioncapable="true"
                     arguments=""
                     version="${version}"
                     build="1"
-                    copyright="${name} v${version}, Copyright 2006-2015, Andrew Rambaut"
+                    copyright="${name} v${version}, Copyright 2006-2018, Andrew Rambaut"
                     bundleid="figtree" >
             <javaproperty name="apple.laf.useScreenMenuBar" value="true"/>
             <jarfileset dir="${dist}">
@@ -232,17 +231,21 @@
                           role="Editor"/>
         </jarbundler>
 
-        <!-- remove code signing -->
-        <!--
-        <exec executable="/usr/bin/codesign">
+        <!-- code signing -->
+        <exec executable="codesign">
+            <arg value="--deep"/>
             <arg value="-s"/>
-            <arg value="-"/>
-            <arg value="- -force"/> remove space from between minus signs
-            <arg value="${Mac_dir}/${name} v${version}/${name} v${version}.app"/>
+            <arg value="${AppleSigner}"/>
+            <arg value="-v"/>
+            <arg value="${Mac_package_dir}/${name} v${version}.app"/>
+        </exec>
+
+        <!-- checking code signing -->
+        <exec executable="spctl">
+            <arg value="--assess"/>
+            <arg value="--verbose=4"/>
+            <arg value="${Mac_package_dir}/${name} v${version}.app"/>
         </exec>
-		-->
-		
-        <echo message="Building disk image." />
 
         <!-- create disk image -->
         <exec executable="/usr/bin/hdiutil">
@@ -257,6 +260,13 @@
             <arg value="${release_dir}/${name} v${version}.dmg"/>
         </exec>
 
+        <exec executable="codesign">
+            <arg value="-s"/>
+            <arg value="${AppleSigner}"/>
+            <arg value="-v"/>
+            <arg value="${release_dir}/${name} v${version}.dmg"/>
+        </exec>
+
         <echo message="Mac version release is finished." />
     </target>
 


=====================================
doc/large_trees.md
=====================================
@@ -0,0 +1,15 @@
+
+If you open a large tree (in this case 1610 tips) you will see a complete mess:
+![shot1](https://github.com/rambaut/figtree/blob/master/doc/shot1.png)
+
+This is because the default tip label font size is too large. This means that the labels overlap but also take up most of the horizontal screen space, crushing the tree to the left. To fix this, you can shrink the font size (the minimum at the moment is 2pt):
+![shot2](https://github.com/rambaut/figtree/blob/master/doc/shot2.png)
+
+So now zoom the tree in the vertical axis only using the 'Expand' slider until the labels aren't overlapping any more. Essentially this creates a very long tree (that you can scroll up and down).
+![shot3](https://github.com/rambaut/figtree/blob/master/doc/shot3.png)
+
+Now export as a PDF and you get a PDF of the same aspect ratio:
+![shot5](https://github.com/rambaut/figtree/blob/master/doc/shot5.png)
+
+You can zoom in or create a multi-page print out (or a long poster on a continuous roll printer):
+![shot4](https://github.com/rambaut/figtree/blob/master/doc/shot4.png)


=====================================
doc/shot1.png
=====================================
Binary files /dev/null and b/doc/shot1.png differ


=====================================
doc/shot2.png
=====================================
Binary files /dev/null and b/doc/shot2.png differ


=====================================
doc/shot3.png
=====================================
Binary files /dev/null and b/doc/shot3.png differ


=====================================
doc/shot4.png
=====================================
Binary files /dev/null and b/doc/shot4.png differ


=====================================
doc/shot5.png
=====================================
Binary files /dev/null and b/doc/shot5.png differ


=====================================
lib/libquaqua64.dylib deleted
=====================================
Binary files a/lib/libquaqua64.dylib and /dev/null differ


=====================================
release/Linux/scripts/figtree
=====================================
@@ -1,4 +1,4 @@
 #!/bin/sh
 
-java -Xms64m -Xmx512m -jar lib/figtree.jar $*
+java -Xms64m -Xmx512m -jar lib/figtree.jar "$@"
 


=====================================
release/common/README.txt
=====================================
@@ -1,4 +1,4 @@
-                  FigTree v1.4.3 2006-2016
+                  FigTree v1.4.4 2006-2018
                         Andrew Rambaut
 
               Institute of Evolutionary Biology
@@ -7,7 +7,7 @@
 
 
 UNIX/Linux/Mac OS X (command-line) version README
-Last updated: a.rambaut at ed.ac.uk - 4th October 2016
+Last updated: a.rambaut at ed.ac.uk - 25th November 2018
 
 Contents:
 1) INTRODUCTION
@@ -27,6 +27,12 @@ FigTree is designed as a graphical viewer of phylogenetic trees and as a program
 ___________________________________________________________________________
 2) VERSION HISTORY
 
+v1.4.4 Released 25th November 2018
+
+Bugs fixed:
+	Issue 119: Various issues launching FigTree in Java 9
+    Issue 125: Cannot select nodes on HiDPI screens with scaling (thanks to Serafim Nenarokov for the fix)
+
 v1.4.3 Released 4th October 2016
 
 New features:


=====================================
src/figtree/application/FigTreeApplication.java
=====================================
@@ -30,37 +30,27 @@
 
 package figtree.application;
 
-import com.itextpdf.text.Document;
 import com.itextpdf.text.DocumentException;
-import com.itextpdf.text.pdf.PdfContentByte;
-import com.itextpdf.text.pdf.PdfTemplate;
-import com.itextpdf.text.pdf.PdfWriter;
-import figtree.application.preferences.*;
+import figtree.application.preferences.AppearancePreferencesSection;
+import figtree.application.preferences.FontsPreferencesSection;
 import figtree.treeviewer.ExtendedTreeViewer;
-import jam.framework.*;
 import jam.controlpalettes.BasicControlPalette;
 import jam.controlpalettes.ControlPalette;
+import jam.framework.*;
 import jam.mac.Utils;
+import jebl.evolution.io.ImportException;
+import jebl.evolution.io.NewickImporter;
+import jebl.evolution.trees.Tree;
 
+import javax.swing.*;
 import java.awt.*;
-import java.awt.image.BufferedImage;
 import java.io.*;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.net.URL;
 import java.util.*;
 import java.util.List;
 
-import jebl.evolution.io.ImportException;
-import jebl.evolution.io.NewickImporter;
-import jebl.evolution.trees.Tree;
-
-import javax.imageio.ImageIO;
-import javax.swing.*;
-
-import ch.randelshofer.quaqua.QuaquaManager;
-import org.apache.batik.dom.GenericDOMImplementation;
-import org.apache.batik.svggen.SVGGraphics2D;
-import org.w3c.dom.DOMImplementation;
-
 /**
  * Application class for FigTree including main() method for invoking it.
  * Uses JAM Application classes to create a MultiDoc Application.
@@ -76,8 +66,8 @@ import org.w3c.dom.DOMImplementation;
  */
 public class FigTreeApplication extends MultiDocApplication {
 
-    public static final String VERSION = "1.4.3";
-    public static final String DATES = "2006-2016";
+    public static final String VERSION = "1.4.4";
+    public static final String DATES = "2006-2018";
 
     public static FigTreeApplication application;
 
@@ -221,6 +211,12 @@ public class FigTreeApplication extends MultiDocApplication {
         centreLine("http://tree.bio.ed.ac.uk/", 60);
         centreLine("Uses the Java Evolutionary Biology 2 Library (JEBL2)", 60);
         centreLine("http://jebl2.googlecode.com/", 60);
+        centreLine("Uses the iText PDF Library", 60);
+        centreLine("http://itextpdf.com/", 60);
+        centreLine("Uses the Apache Batik Library", 60);
+        centreLine("http://xmlgraphics.apache.org/batik/", 60);
+        centreLine("Uses the JDOM XML Library", 60);
+        centreLine("http://www.jdom.org/", 60);
         centreLine("Thanks to Alexei Drummond, Joseph Heled, Philippe Lemey, ", 60);
         centreLine("Tulio de Oliveira, Oliver Pybus, Beth Shapiro & Marc Suchard", 60);
         System.out.println();
@@ -232,7 +228,7 @@ public class FigTreeApplication extends MultiDocApplication {
         System.out.println();
         System.out.println("  Example: figtree test.tree");
         System.out.println("  Example: figtree -graphic PDF test.tree test.pdf");
-        System.out.println("  Example: figtree -graphic GIF -width 320 -height 320 test.tree test.gif");
+        System.out.println("  Example: figtree -graphic PNG -width 320 -height 320 test.tree test.png");
         System.out.println();
     }
 
@@ -326,6 +322,7 @@ public class FigTreeApplication extends MultiDocApplication {
                 javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
                     public void run() {
                         try {
+
                             // Only override the UI's necessary for ColorChooser and
                             // FileChooser:
                             Set includes = new HashSet();
@@ -337,23 +334,20 @@ public class FigTreeApplication extends MultiDocApplication {
                             includes.add("SplitPane");
                             includes.add("TitledBorder");
 
-                            try {
-                                QuaquaManager.setIncludedUIs(includes);
-                            } catch (java.lang.NoClassDefFoundError ncdfe) {
-                                // this is to protect against the figtree.jar being
-                                // run on Mac OS without Quaqua on the classpath
-                            }
+                            Class<?> qm = Class.forName("ch.randelshofer.quaqua.QuaquaManager");
+                            Method method = qm.getMethod("setIncludedUIs", Set.class);
+                            method.invoke(null, includes);
 
                             UIManager.setLookAndFeel(
                                     "ch.randelshofer.quaqua.QuaquaLookAndFeel"
                             );
 
                             lafLoaded = true;
-                        } catch (Exception e) {
+                        } catch (Exception ignored) {
                         }
                     }
                 });
-            } catch (Exception e) {
+            } catch (Exception ignored) {
             }
 
             UIManager.put("SystemFont", new Font("Lucida Grande", Font.PLAIN, 13));
@@ -403,9 +397,9 @@ public class FigTreeApplication extends MultiDocApplication {
                 "Institute of Evolutionary Biology, University of Edinburgh.<br>" +
                 "<a href=\"http://tree.bio.ed.ac.uk/\">http://tree.bio.ed.ac.uk/</a><br><br>" +
                 "Source code available from:<br>" +
-                "<a href=\"https://figtree.googlecode.com/\">http://figtree.googlecode.com/</a><br><br>" +
+                "<a href=\"https://github.com/rambaut/figtree\">http://github.com/rambaut/figtree/</a><br><br>" +
                 "Uses the Java Evolutionary Biology 2 Library (JEBL2)<br>" +
-                "<a href=\"https://jebl2.googlecode.com/\">http://jebl2.googlecode.com/</a><br><br>" +
+                "<a href=\"https://github.com/rambaut/jebl2/\">http://github.com/rambaut/jebl2/</a><br><br>" +
                 "Thanks to Alexei Drummond, Joseph Heled, Philippe Lemey, <br>Tulio de Oliveira, Oliver Pybus, Beth Shapiro & Marc Suchard</center>" +
                 "</div></html>";
 


=====================================
src/figtree/treeviewer/TreePane.java
=====================================
@@ -1170,7 +1170,7 @@ public class TreePane extends JComponent implements PainterListener, Printable {
         for (Node node : tree.getExternalNodes()) {
             Shape taxonLabelBound = tipLabelBounds.get(node);
 
-            if (taxonLabelBound != null && g2.hit(rect, taxonLabelBound, false)) {
+            if (taxonLabelBound != null && taxonLabelBound.intersects(rect.x, rect.y, rect.height, rect.width)) {
                 return node;
             }
         }
@@ -1179,11 +1179,11 @@ public class TreePane extends JComponent implements PainterListener, Printable {
 
         for (Node node : tree.getNodes()) {
             Shape branchPath = transform.createTransformedShape(treeLayoutCache.getBranchPath(node));
-            if (branchPath != null && g2.hit(rect, branchPath, true)) {
+            if (branchPath != null && branchPath.intersects(rect.x, rect.y, rect.height, rect.width)) {
                 return node;
             }
             Shape collapsedShape = transform.createTransformedShape(treeLayoutCache.getCollapsedShape(node));
-            if (collapsedShape != null && g2.hit(rect, collapsedShape, false)) {
+            if (collapsedShape != null && collapsedShape.intersects(rect.x, rect.y, rect.height, rect.width)) {
                 return node;
             }
         }
@@ -1196,18 +1196,18 @@ public class TreePane extends JComponent implements PainterListener, Printable {
         Set<Node> nodes = new HashSet<Node>();
         for (Node node : tree.getExternalNodes()) {
             Shape taxonLabelBound = tipLabelBounds.get(node);
-            if (taxonLabelBound != null && g2.hit(rect, taxonLabelBound, false)) {
+            if (taxonLabelBound != null && taxonLabelBound.intersects(rect.x, rect.y, rect.height, rect.width)) {
                 nodes.add(node);
             }
         }
 
         for (Node node : tree.getNodes()) {
             Shape branchPath = transform.createTransformedShape(treeLayoutCache.getBranchPath(node));
-            if (branchPath != null && g2.hit(rect, branchPath, true)) {
+            if (branchPath != null && branchPath.intersects(rect.x, rect.y, rect.height, rect.width)) {
                 nodes.add(node);
             }
             Shape collapsedShape = transform.createTransformedShape(treeLayoutCache.getCollapsedShape(node));
-            if (collapsedShape != null && g2.hit(rect, collapsedShape, false)) {
+            if (collapsedShape != null && collapsedShape.intersects(rect.x, rect.y, rect.height, rect.width)) {
                 nodes.add(node);
             }
         }
@@ -2449,4 +2449,4 @@ public class TreePane extends JComponent implements PainterListener, Printable {
 
     private Map<Node, Shape> calloutPaths = new HashMap<Node, Shape>();
 
-}
\ No newline at end of file
+}


=====================================
src/figtree/treeviewer/painters/LabelPainter.java
=====================================
@@ -20,14 +20,8 @@
 
 package figtree.treeviewer.painters;
 
-import com.sun.tools.corba.se.idl.InterfaceEntry;
-import jebl.evolution.trees.Tree;
-import jebl.util.Attributable;
-
 import java.awt.*;
 import java.text.NumberFormat;
-import java.util.Collection;
-import java.util.Set;
 
 import figtree.treeviewer.decorators.Decorator;
 



View it on GitLab: https://salsa.debian.org/med-team/figtree/commit/1819d7fa6f5aa74cb98c5ffa9be49505747a8f43

-- 
View it on GitLab: https://salsa.debian.org/med-team/figtree/commit/1819d7fa6f5aa74cb98c5ffa9be49505747a8f43
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20181126/fc0f0a97/attachment-0001.html>


More information about the debian-med-commit mailing list