}\r
}\r
\r
+ /**\r
+ *\r
+ * used when the alignment associated to a tree has changed.\r
+ *\r
+ * @param alignment Vector\r
+ */\r
+ public void UpdatePlaceHolders(Vector alignment) {\r
+ Vector leaves = new Vector();\r
+ findLeaves(top, leaves);\r
+ int sz = leaves.size();\r
+ int i=0;\r
+ while (i<sz) {\r
+ SequenceNode leaf = (SequenceNode) leaves.elementAt(i++);\r
+ if (alignment.contains(leaf.element()))\r
+ leaf.setPlaceholder(false);\r
+ else\r
+ leaf.setPlaceholder(true);\r
+ }\r
+ }\r
+\r
public NJTree(SequenceI[] sequence,int start, int end) {\r
this(sequence,"NJ","BL",start,end);\r
}\r
import jalview.jbgui.*;
import jalview.schemes.*;
import jalview.ws.*;
-
+import java.beans.PropertyChangeEvent;
public class AlignFrame extends GAlignFrame
{
viewport.alignment.deleteSequence(i);
}
}
+ viewport.firePropertyChange("alignment", null, viewport.getAlignment().getSequences());
+ updateEditMenuBar();
- updateEditMenuBar();
-
- viewport.updateConsensus();
- viewport.updateConservation();
- alignPanel.repaint();
- }
+ viewport.updateConsensus();
+ viewport.updateConservation();
+ alignPanel.repaint();
+ }
public void moveSelectedSequences(boolean up)
{
protected void delete_actionPerformed(ActionEvent e)
{
+ boolean seqsdeleted=false;
addHistoryItem(new HistoryItem("Delete Sequences", viewport.alignment, HistoryItem.HIDE));
if (viewport.getSelectionGroup() == null)
int index = viewport.getAlignment().findIndex(seq);
seq.deleteChars(sg.getStartRes(),sg.getEndRes()+1);
- if(seq.getSequence().length()<1)
- viewport.getAlignment().deleteSequence(seq);
- else
- viewport.getAlignment().getSequences().setElementAt(seq, index);
+ if(seq.getSequence().length()<1) {
+ seqsdeleted=true;
+ viewport.getAlignment().deleteSequence(seq);
+ } else {
+ viewport.getAlignment().getSequences().setElementAt(seq, index);
+ }
}
viewport.setSelectionGroup(null);
viewport.alignment.deleteGroup(sg);
+ if (seqsdeleted)
+ viewport.firePropertyChange("alignment", null, viewport.getAlignment().getSequences());
viewport.resetSeqLimits( alignPanel.seqPanel.seqCanvas.getHeight());
if(viewport.getAlignment().getHeight()<1)
try
}catch(Exception ex){}
viewport.updateConservation();
viewport.updateConsensus();
- alignPanel.repaint();
-
- }
+ alignPanel.repaint();
+ }
protected void deleteGroups_actionPerformed(ActionEvent e)
sort.remove(sortByTreeMenu);
};
});
+ viewport.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent evt)
+ {
+ if (evt.getPropertyName().equals("alignment")) {
+ treePanel.getTree().UpdatePlaceHolders( (Vector) evt.getNewValue());
+ treePanel.repaint();
+ }
+ }
+ }
+ );
}
\r
public void setScaleRightWrapped(boolean b)\r
{ scaleRightWrapped = b; }\r
+ // JBPNote Prolly only need this in the applet version.\r
+ private java.beans.PropertyChangeSupport changeSupport = new java.beans.PropertyChangeSupport(this);\r
+ public void addPropertyChangeListener(java.beans.PropertyChangeListener listener) {\r
+ changeSupport.addPropertyChangeListener(listener);\r
+ }\r
\r
-\r
+ public void removePropertyChangeListener(java.beans.PropertyChangeListener listener) {\r
+ changeSupport.removePropertyChangeListener(listener);\r
+ }\r
+ public void firePropertyChange(String prop, Object oldvalue, Object newvalue) {\r
+ changeSupport.firePropertyChange(prop, oldvalue, newvalue);\r
+ }\r
}\r