X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FTreePanel.java;h=f4543ed83ef71d56e17e0e82bbc4c3d7a7f8b8e1;hb=0a1d49ccc421184b23bcb45cee901f5313913aa1;hp=c22a8e715c81871533924a0b570262d2f4e2f00b;hpb=c770c52fe1c84d6b41ba1f5af352245f6b1c937c;p=jalview.git diff --git a/src/jalview/gui/TreePanel.java b/src/jalview/gui/TreePanel.java index c22a8e7..f4543ed 100755 --- a/src/jalview/gui/TreePanel.java +++ b/src/jalview/gui/TreePanel.java @@ -36,6 +36,7 @@ import java.io.*; import java.util.*; +import javax.swing.*; import javax.imageio.*; import java.beans.PropertyChangeEvent; @@ -91,7 +92,7 @@ public class TreePanel extends GTreePanel super(); initTreePanel(ap, type, pwtype, newtree, null); } - + public TreePanel(AlignmentPanel av, String type, String pwtype, @@ -116,9 +117,13 @@ public class TreePanel extends GTreePanel this.type = type; this.pwtype = pwtype; - treeCanvas = new TreeCanvas(ap, scrollPane); + treeCanvas = new TreeCanvas(this, ap, scrollPane); scrollPane.setViewportView(treeCanvas); + PaintRefresher.Register(this, ap.av.getSequenceSetId()); + + buildAssociatedViewMenu(); + av.addPropertyChangeListener(new java.beans.PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) @@ -145,6 +150,68 @@ public class TreePanel extends GTreePanel } + public void viewMenu_menuSelected() + { + buildAssociatedViewMenu(); + } + + + void buildAssociatedViewMenu() + { + AlignmentPanel [] aps = PaintRefresher.getAssociatedPanels(av.getSequenceSetId()); + if(aps.length==1 && treeCanvas.ap==aps[0]) + { + associateLeavesMenu.setVisible(false); + return; + } + + associateLeavesMenu.setVisible(true); + + if( (viewMenu.getItem(viewMenu.getItemCount()-2) instanceof JMenuItem)) + { + viewMenu.insertSeparator(viewMenu.getItemCount()-1); + } + + associateLeavesMenu.removeAll(); + + + JRadioButtonMenuItem item; + ButtonGroup buttonGroup = new ButtonGroup(); + int i, iSize = aps.length; + final TreePanel thisTreePanel = this; + for(i=0; i