package jalview.gui; import jalview.jbgui.GGroupEditor; import jalview.datamodel.*; import jalview.schemes.*; import java.awt.event.*; import java.util.*; import javax.swing.*; public class GroupEditor extends GGroupEditor { AlignViewport av; AlignmentPanel ap; Vector groups; Vector unassignedVector; Vector assignedVector=new Vector(); boolean updating=false; int selectedGroupIndex = 0; Hashtable sequenceHash = new Hashtable(); public GroupEditor(AlignViewport av, AlignmentPanel ap) { this.av = av; this.ap = ap; groups = av.getAlignment().getGroups(); updateUnassigned(); for (int i=0; i < ColourProperties.getColourSchemeNames().size(); i++) colourCombo.addItem(ColourProperties.getColourSchemeNames().elementAt(i)); if(groups.size()>0) { showGroup(); updateGroupcombo(); } assignedList.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { remove_actionPerformed(null); } } }); unassignedList.addMouseListener( new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { add_actionPerformed(null); } } }); } void updateGui() { unassignedList.setListData(unassignedVector); assignedList.setListData(assignedVector); updateGroupcombo(); ap.RefreshPanels(); } void updateGroupcombo() { updating=true; if(groupsCombo.getItemCount()>0) groupsCombo.removeAllItems(); for (int i = 0; i < groups.size(); i++) { SequenceGroup sg = (SequenceGroup)groups.elementAt(i); groupsCombo.addItem( sg.getName() + " (" + sg.getSize() + " sequences)"); } groupsCombo.setSelectedIndex(selectedGroupIndex); updating=false; } void updateUnassigned() { unassignedVector=new Vector(); AlignmentI align = av.getAlignment(); for (int i = 0; i < align.getHeight();i++) { sequenceHash.put( align.getSequenceAt(i).getDisplayId(), align.getSequenceAt(i) ); boolean assigned = false; for(int j=0; j