Fixed graph layouts in Derivation Browser.


git-svn-id: https://joshua.svn.sf.net/svnroot/joshua/trunk@915 0ae5e6b2-d358-4f09-a895-f82f13dd62a4
diff --git a/src/joshua/ui/tree_visualizer/DerivationBrowser.java b/src/joshua/ui/tree_visualizer/DerivationBrowser.java
index 91e77ec..67cf024 100644
--- a/src/joshua/ui/tree_visualizer/DerivationBrowser.java
+++ b/src/joshua/ui/tree_visualizer/DerivationBrowser.java
@@ -11,6 +11,8 @@
 import java.awt.*;
 import java.awt.event.*;
 
+import edu.uci.ics.jung.algorithms.layout.StaticLayout;
+
 public class DerivationBrowser {
 
 	private static JFrame chooserFrame;
@@ -163,6 +165,8 @@
 		private JLabel source;
 		private JLabel derivation;
 
+		private DerivationViewer dv;
+
 		public ActiveFrame()
 		{
 			super("Joshua Derivation Tree");
@@ -177,6 +181,7 @@
 			layoutControl();
 
 			viewPanel = new JPanel(new BorderLayout());
+			dv = null;
 
 			getContentPane().add(viewPanel, BorderLayout.CENTER);
 			getContentPane().add(controlPanel, BorderLayout.SOUTH);
@@ -258,7 +263,12 @@
 			derivation.setText(tgtDer.toString());
 			String tgt = tgtDer.complete();
 			DerivationTree tree = new DerivationTree(tgt.split(DerivationTree.DELIMITER)[1], src);
-			DerivationViewer dv = new DerivationViewer(tree);
+			if (dv == null)
+				dv = new DerivationViewer(tree);
+			else {
+				dv.setGraphLayout(new StaticLayout(tree, new DerivationTreeTransformer(tree)));
+				tree.addCorrespondences();
+			}
 			viewPanel.add(dv, BorderLayout.CENTER);
 			dv.revalidate();
 			repaint();