this.type = type;
this.pwtype = pwtype;
- buildAssociatedViewMenu();
-
- 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)
}
+ 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.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()
{