String fileName = null;
- private int treeCount = 0;
/**
* Creates a new AlignFrame object.
expandViews.setEnabled(true);
gatherViews.setEnabled(true);
- tabbedPane.addTab(ap.av.viewName==null?"Original":ap.av.viewName, ap);
+ tabbedPane.addTab(ap.av.viewName, ap);
ap.setVisible(false);
}
gatherViews.setEnabled(true);
tabbedPane.setVisible(true);
AlignmentPanel first = (AlignmentPanel) alignPanels.firstElement();
- tabbedPane.addTab(first.av.viewName==null?"Original":first.av.viewName,first);
+ tabbedPane.addTab(first.av.viewName,first);
this.getContentPane().add(tabbedPane, BorderLayout.CENTER);
}
{
int index = tabbedPane.getSelectedIndex();
- tabbedPane.removeTabAt(index);
alignPanels.removeElement(alignPanel);
PaintRefresher.RemoveComponent(alignPanel.seqPanel.seqCanvas);
PaintRefresher.RemoveComponent(alignPanel.idPanel.idCanvas);
PaintRefresher.RemoveComponent(alignPanel);
alignPanel = null;
viewport = null;
+
+ tabbedPane.removeTabAt(index);
tabbedPane.validate();
if(index==tabbedPane.getTabCount())
originalSource.hasHiddenColumns = viewport.colSel.getHiddenColumns() != null;
updateEditMenuBar();
- originalSource.firePropertyChange("alignment", null,null);
+ originalSource.firePropertyChange("alignment", null,viewport.getAlignment().getSequences());
}
/**
originalSource.hasHiddenColumns = viewport.colSel.getHiddenColumns()!=null;
updateEditMenuBar();
- originalSource.firePropertyChange("alignment", null, null);
+ originalSource.firePropertyChange("alignment", null, viewport.getAlignment().getSequences());
}
AlignViewport getOriginatingSource(CommandI command)
new Jalview2XML().copyAlignPanel(alignPanel, true);
if (viewport.viewName == null)
- viewport.viewName = "View 1";
+ viewport.viewName = "Original";
newap.av.historyList = viewport.historyList;
newap.av.redoList = viewport.redoList;
- newap.av.viewName = "View " +
- (Desktop.getViewCount(viewport.getSequenceSetId()) + 1);
+
+ int index = Desktop.getViewCount(viewport.getSequenceSetId());
+ String newViewName = "View " +index;
+
+ Vector comps = (Vector)PaintRefresher.components.get(viewport.getSequenceSetId());
+ Vector existingNames = new Vector();
+ for(int i=0; i<comps.size(); i++)
+ {
+ if(comps.elementAt(i) instanceof AlignmentPanel)
+ {
+ AlignmentPanel ap = (AlignmentPanel)comps.elementAt(i);
+ if(!existingNames.contains(ap.av.viewName))
+ existingNames.addElement(ap.av.viewName);
+ }
+ }
+
+ while(existingNames.contains(newViewName))
+ {
+ newViewName = "View "+ (++index);
+ }
+
+ newap.av.viewName = newViewName;
addAlignmentPanel(newap, false);
tp = new TreePanel(alignPanel, type, pwType);
}
- addTreeMenuItem(tp, title);
+ title = title + " from " + this.title;
+ if(viewport.viewName!=null)
+ title+= " ("+viewport.viewName+")";
- Desktop.addInternalFrame(tp, title + " from " + this.title, 600, 500);
+ Desktop.addInternalFrame(tp, title, 600, 500);
}
/**
* @param treePanel Displayed tree window.
* @param title SortBy menu item title.
*/
- void addTreeMenuItem(final TreePanel treePanel, String title)
+ public void buildTreeMenu()
{
- final JMenuItem item = new JMenuItem(title);
+ sortByTreeMenu.removeAll();
- treeCount++;
-
- if (treeCount == 1)
+ Vector comps = (Vector)PaintRefresher.components.get(viewport.getSequenceSetId());
+ Vector treePanels = new Vector();
+ int i, iSize = comps.size();
+ for(i=0; i<iSize; i++)
{
- sort.add(sortByTreeMenu);
- }
-
- sortByTreeMenu.add(item);
- item.addActionListener(new java.awt.event.ActionListener()
- {
- public void actionPerformed(ActionEvent e)
+ if(comps.elementAt(i) instanceof TreePanel)
{
- SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
- AlignmentSorter.sortByTree(viewport.getAlignment(),
- treePanel.getTree());
+ treePanels.add(comps.elementAt(i));
+ }
+ }
- addHistoryItem(new OrderCommand("Tree Sort",
- oldOrder,
- viewport.alignment));
+ iSize = treePanels.size();
+ if(iSize<1)
+ {
+ sortByTreeMenu.setVisible(false);
+ return;
+ }
- alignPanel.repaint();
- }
- });
+ sortByTreeMenu.setVisible(true);
- treePanel.addInternalFrameListener(new javax.swing.event.
- InternalFrameAdapter()
+ for(i=0; i<treePanels.size(); i++)
{
- public void internalFrameClosed(
- javax.swing.event.InternalFrameEvent evt)
+ TreePanel tp = (TreePanel)treePanels.elementAt(i);
+ final JMenuItem item = new JMenuItem(tp.getTitle());
+ final NJTree tree = ((TreePanel)treePanels.elementAt(i)).getTree();
+ item.addActionListener(new java.awt.event.ActionListener()
{
- treeCount--;
- sortByTreeMenu.remove(item);
-
- if (treeCount == 0)
+ public void actionPerformed(ActionEvent e)
{
- sort.remove(sortByTreeMenu);
+ SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
+ AlignmentSorter.sortByTree(viewport.getAlignment(), tree);
+
+ addHistoryItem(new OrderCommand("Tree Sort",
+ oldOrder,
+ viewport.alignment));
+
+ alignPanel.repaint();
}
- }
- ;
- });
+ });
+
+ sortByTreeMenu.add(item);
+ }
}
/**
Desktop.addInternalFrame(tp, title, w, h);
- addTreeMenuItem(tp, title);
}
}
catch (Exception ex)