public static final String PLACEHOLDER = " * ";
NJTree tree;
JScrollPane scrollPane;
+ TreePanel tp;
AlignViewport av;
AlignmentPanel ap;
Font font;
* @param scroller DOCUMENT ME!
* @param label DOCUMENT ME!
*/
- public TreeCanvas(AlignmentPanel ap, JScrollPane scroller)
+ public TreeCanvas(TreePanel tp,
+ AlignmentPanel ap,
+ JScrollPane scroller)
{
+ this.tp = tp;
this.av = ap.av;
this.ap = ap;
font = av.getFont();
scrollPane = scroller;
addMouseListener(this);
addMouseMotionListener(this);
- PaintRefresher.Register(this, ap.av.getSequenceSetId());
+ PaintRefresher.Register(tp, ap.av.getSequenceSetId());
ToolTipManager.sharedInstance().registerComponent(this);
}
}
}
- PaintRefresher.Refresh(this, av.getSequenceSetId());
+ PaintRefresher.Refresh(tp, av.getSequenceSetId());
repaint();
}
}
if (ob instanceof SequenceI)
{
treeSelectionChanged( (Sequence) ob);
- PaintRefresher.Refresh(this, ap.av.getSequenceSetId());
+ PaintRefresher.Refresh(tp, ap.av.getSequenceSetId());
repaint();
return;
}
colourGroups();
}
- PaintRefresher.Refresh(this, ap.av.getSequenceSetId());
+ PaintRefresher.Refresh(tp, ap.av.getSequenceSetId());
repaint();
}
this.type = type;
this.pwtype = pwtype;
- buildAssociatedViewMenu();
-
- treeCanvas = new TreeCanvas(ap, scrollPane);
+ treeCanvas = new TreeCanvas(this, ap, scrollPane);
scrollPane.setViewportView(treeCanvas);
+ buildAssociatedViewMenu();
+
av.addPropertyChangeListener(new java.beans.PropertyChangeListener()
{
public void propertyChange(PropertyChangeEvent evt)
}
+ public void viewMenu_menuSelected()
+ {
+ buildAssociatedViewMenu();
+ }
+
+
void buildAssociatedViewMenu()
{
AlignmentPanel [] aps = PaintRefresher.getAssociatedPanels(av.getSequenceSetId());
- if(aps.length<2)
+ if(aps.length==1 && treeCanvas.ap==aps[0])
{
associateLeavesMenu.setVisible(false);
return;
}
- associateLeavesMenu.addSeparator();
+
+ 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<iSize; i++)
{
final AlignmentPanel ap = aps[i];
- item = new JRadioButtonMenuItem(ap.av.viewName, ap.av==av );
+ item = new JRadioButtonMenuItem(ap.av.viewName, ap==treeCanvas.ap );
buttonGroup.add(item);
item.addActionListener(new ActionListener()
{
treeCanvas.applyToAllViews = false;
treeCanvas.ap = ap;
treeCanvas.av = ap.av;
- PaintRefresher.RemoveComponent(treeCanvas);
- PaintRefresher.Register(treeCanvas, ap.av.getSequenceSetId());
+ PaintRefresher.RemoveComponent(thisTreePanel);
+ PaintRefresher.Register(thisTreePanel, ap.av.getSequenceSetId());
}
});
associateLeavesMenu.add(item);
}
- final JRadioButtonMenuItem itemf = new JRadioButtonMenuItem("All Views");
+ final JRadioButtonMenuItem itemf =
+ new JRadioButtonMenuItem("All Views", treeCanvas.applyToAllViews);
buttonGroup.add(itemf);
itemf.addActionListener(new ActionListener()
{