Skip to content
Commits on Source (3)
......@@ -7,3 +7,4 @@ out/*
FigTree*
tests/*
examples/*
.DS_Store
......@@ -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>
......
figtree (1.4.3+dfsg-7) UNRELEASED; urgency=medium
figtree (1.4.4+dfsg-1) UNRELEASED; urgency=medium
[ Fabian Klötzl ]
* use JDK 8 (fix by Graham Inggs)
......
From: Fabian Klötzl <kloetzl@evolbio.mpg.de>
Date: Fri, 22 Dec 2017 11:54:16 +0100
Subject: GIF is deprecated
---
src/figtree/application/FigTreeApplication.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/figtree/application/FigTreeApplication.java b/src/figtree/application/FigTreeApplication.java
index f6d64df..204bf88 100755
--- a/src/figtree/application/FigTreeApplication.java
+++ b/src/figtree/application/FigTreeApplication.java
@@ -231,7 +231,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();
}
......@@ -41,4 +41,4 @@ Description: Do not build targets figtree-pdf.jar and figtree.war
-
</target>
<property name="version" value="1.4.3" />
<property name="version" value="1.4.4" />
From: Fabian Klötzl <fabian@kloetzl.info>
Date: Fri, 14 Jul 2017 11:59:41 +0200
Description: fix handling of paths with spaces in wrapper
---
release/Linux/scripts/figtree | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/release/Linux/scripts/figtree b/release/Linux/scripts/figtree
index f1ec842..6dd9b68 100755
--- a/release/Linux/scripts/figtree
+++ b/release/Linux/scripts/figtree
@@ -1,4 +1,4 @@
#!/bin/sh
-java -Xms64m -Xmx512m -jar lib/figtree.jar $*
+java -Xms64m -Xmx512m -jar /usr/share/java/figtree.jar "$@"
......@@ -4,7 +4,7 @@ Description: jebl in Debian has different API, modify code to match it.
Last-Updated: 2015-08-12
--- a/src/figtree/application/FigTreeFrame.java
+++ b/src/figtree/application/FigTreeFrame.java
@@ -932,7 +932,7 @@
@@ -938,7 +938,7 @@
FileWriter writer = new FileWriter(file);
FigTreeNexusExporter exporter = new FigTreeNexusExporter(writer, true);
......
Author: Andreas Tille <tille@debian.org>
Date: Mon, 07 Feb 2011 12:02:43 +0100
Description: Quaqua (http://www.randelshofer.ch/quaqua/)
is a Java class which provides OSX look and feel but only
works on Mac. So this is simply not used on Linux and I
simply deleted all lines containing the string [qQ]aqua
which seems to lead to a usable application.
--- a/src/figtree/application/FigTreeApplication.java
+++ b/src/figtree/application/FigTreeApplication.java
@@ -56,7 +56,6 @@
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;
@@ -321,40 +320,6 @@
System.setProperty("apple.awt.showGrowBox","true");
System.setProperty("apple.awt.graphics.UseQuartz","true");
- try {
- // set the Quaqua Look and Feel in the UIManager
- javax.swing.SwingUtilities.invokeAndWait(new Runnable() {
- public void run() {
- try {
- // Only override the UI's necessary for ColorChooser and
- // FileChooser:
- Set includes = new HashSet();
- includes.add("ColorChooser");
- includes.add("FileChooser");
- includes.add("Component");
- includes.add("Browser");
- includes.add("Tree");
- 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
- }
-
- UIManager.setLookAndFeel(
- "ch.randelshofer.quaqua.QuaquaLookAndFeel"
- );
-
- lafLoaded = true;
- } catch (Exception e) {
- }
- }
- });
- } catch (Exception e) {
- }
UIManager.put("SystemFont", new Font("Lucida Grande", Font.PLAIN, 13));
UIManager.put("SmallSystemFont", new Font("Lucida Grande", Font.PLAIN, 11));
@@ -450,4 +415,4 @@
}
}
-}
\ No newline at end of file
+}
--- a/src/figtree/treeviewer/TreeViewerController.java
+++ b/src/figtree/treeviewer/TreeViewerController.java
@@ -112,13 +112,10 @@
rectangularTreeToggle.setFocusable(false);
polarTreeToggle.setFocusable(false);
radialTreeToggle.setFocusable(false);
- rectangularTreeToggle.putClientProperty("Quaqua.Button.style", "toggleWest");
rectangularTreeToggle.putClientProperty("JButton.buttonType", "segmentedTextured");
rectangularTreeToggle.putClientProperty("JButton.segmentPosition", "first");
- polarTreeToggle.putClientProperty("Quaqua.Button.style", "toggleCenter");
polarTreeToggle.putClientProperty("JButton.buttonType", "segmentedTextured");
polarTreeToggle.putClientProperty("JButton.segmentPosition", "middle");
- radialTreeToggle.putClientProperty("Quaqua.Button.style", "toggleEast");
radialTreeToggle.putClientProperty("JButton.buttonType", "segmentedTextured");
radialTreeToggle.putClientProperty("JButton.segmentPosition", "last");
ButtonGroup buttonGroup = new ButtonGroup();
--- a/src/figtree/application/FigTreeFrame.java
+++ b/src/figtree/application/FigTreeFrame.java
@@ -226,7 +226,6 @@
// treeViewer.showStatistics();
// }
// });
-// settingsToolButton.putClientProperty("Quaqua.Button.style", "toolBarRollover");
// toolBar.addComponent(settingsToolButton);
// settingsToolButton.setEnabled(false);
@@ -237,19 +236,16 @@
toggle1.setFocusable(false);
toggle1.putClientProperty("JButton.buttonType", "segmentedTextured");
toggle1.putClientProperty("JButton.segmentPosition", "first");
- toggle1.putClientProperty( "Quaqua.Button.style", "toggleWest");
final JToggleButton toggle2 = new JToggleButton("Clade");
toggle2.setFocusable(false);
toggle2.putClientProperty("JButton.buttonType", "segmentedTextured");
toggle2.putClientProperty("JButton.segmentPosition", "middle");
- toggle2.putClientProperty( "Quaqua.Button.style", "toggleCenter");
final JToggleButton toggle3 = new JToggleButton("Taxa");
toggle3.setFocusable(false);
toggle3.putClientProperty("JButton.buttonType", "segmentedTextured");
toggle3.putClientProperty("JButton.segmentPosition", "last");
- toggle3.putClientProperty( "Quaqua.Button.style", "toggleEast");
ButtonGroup buttonGroup = new ButtonGroup();
buttonGroup.add(toggle1);
@@ -303,7 +299,6 @@
prevTreeToolButton.setFocusable(false);
prevTreeToolButton.putClientProperty("JButton.buttonType", "segmentedTextured");
prevTreeToolButton.putClientProperty("JButton.segmentPosition", "first");
- prevTreeToolButton.putClientProperty( "Quaqua.Button.style", "toggleWest");
final ToolbarAction nextTreeToolbarAction =
new ToolbarAction(null, "Next Tree...", nextIcon) {
@@ -323,7 +318,6 @@
nextTreeToolButton.setFocusable(false);
nextTreeToolButton.putClientProperty("JButton.buttonType", "segmentedTextured");
nextTreeToolButton.putClientProperty("JButton.segmentPosition", "last");
- nextTreeToolButton.putClientProperty( "Quaqua.Button.style", "toggleEast");
nextTreeToolbarAction.setEnabled(treeViewer.getCurrentTreeIndex() < treeViewer.getTreeCount() - 1);
prevTreeToolbarAction.setEnabled(treeViewer.getCurrentTreeIndex() > 0);
--- a/src/figtree/treeviewer/ControllerOptionsPanel.java
+++ b/src/figtree/treeviewer/ControllerOptionsPanel.java
@@ -51,7 +51,6 @@
}
public static void setComponentLook(JComponent comp) {
- comp.putClientProperty("Quaqua.Component.visualMargin", new Insets(0,0,0,0));
Font font = UIManager.getFont("SmallSystemFont");
if (font != null) {
comp.setFont(font);
Author: James Page <james.page@ubuntu.com>
Date: Wed, 01 Aug 2012 14:58:30 +0100
Bugs-Debian: http://bugs.debian.org/683532
Description: Fix up Painter symbol resolution issue in TreeView class.
--- a/src/figtree/treeviewer/TreePane.java
+++ b/src/figtree/treeviewer/TreePane.java
@@ -28,6 +28,7 @@
import figtree.treeviewer.decorators.*;
import figtree.treeviewer.painters.*;
import figtree.treeviewer.treelayouts.*;
+import figtree.treeviewer.painters.Painter;
import javax.swing.*;
import java.awt.*;
@@ -2449,4 +2450,4 @@
private Map<Node, Shape> calloutPaths = new HashMap<Node, Shape>();
-}
\ No newline at end of file
+}
#build_figtree_gui_only.patch
#ignore_quaqua.patch
remove_webui.patch
#fix_classpath_in_build_xml.patch
java7-compat.patch
build_figtree_gui_only.patch
ignore_quaqua.patch
fix_classpath_in_build_xml.patch
fix_itext_api_change.patch
fix_jebl.patch
fix_handling_of_paths_with_spaces_in_wrapper.patch
0009-add-batik-all.jar.patch
GIF-is-depricated.patch
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)
#!/bin/sh
java -Xms64m -Xmx512m -jar lib/figtree.jar $*
java -Xms64m -Xmx512m -jar lib/figtree.jar "$@"
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@ed.ac.uk - 4th October 2016
Last updated: a.rambaut@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:
......
......@@ -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>";
......