X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAlignFrame.java;h=74f12ef7f846b7a8cd58f24e0614ac096e9c67e0;hb=14ff1fd59357c8967a6f6d673e48ff0516bce5d6;hp=1518bb051fd8e4663fd2aac67be7bb493f5c24da;hpb=12b928f827972f429471a5bf7a832fa634259a16;p=jalview.git diff --git a/src/jalview/appletgui/AlignFrame.java b/src/jalview/appletgui/AlignFrame.java index 1518bb0..74f12ef 100755 --- a/src/jalview/appletgui/AlignFrame.java +++ b/src/jalview/appletgui/AlignFrame.java @@ -651,6 +651,10 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, { delete_actionPerformed(); } + else if (source == grpsFromSelection) + { + makeGrpsFromSelection_actionPerformed(); + } else if (source == deleteGroups) { deleteGroups_actionPerformed(); @@ -1595,7 +1599,36 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, this.setVisible(false); } } - + protected void makeGrpsFromSelection_actionPerformed() + { + if (viewport.getSelectionGroup() != null) + { + SequenceGroup[] gps = jalview.analysis.Grouping.makeGroupsFrom( + viewport.getSequenceSelection(), viewport.getAlignmentView( + true).getSequenceStrings(viewport.getGapCharacter()), + viewport.alignment.getGroups()); + viewport.alignment.deleteAllGroups(); + viewport.sequenceColours = null; + viewport.setSelectionGroup(null); + // set view properties for each group + for (int g = 0; g < gps.length; g++) + { + // gps[g].setShowunconserved(viewport.getShowUnconserved()); + gps[g].setIncludeAllConsSymbols(viewport.isIncludeAllConsensusSymbols()); + viewport.alignment.addGroup(gps[g]); + Color col = new Color((int) (Math.random() * 255), (int) (Math + .random() * 255), (int) (Math.random() * 255)); + col = col.brighter(); + for (Enumeration sq = gps[g].getSequences(null).elements(); sq + .hasMoreElements(); viewport.setSequenceColour( + (SequenceI) sq.nextElement(), col)) + ; + } + PaintRefresher.Refresh(this, viewport.getSequenceSetId()); + // alignPanel.updateAnnotation(); + alignPanel.paintAlignment(true); + } + } protected void deleteGroups_actionPerformed() { viewport.alignment.deleteAllGroups(); @@ -2567,6 +2600,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, MenuItem deleteGroups = new MenuItem(); + MenuItem grpsFromSelection= new MenuItem(); + MenuItem delete = new MenuItem(); MenuItem copy = new MenuItem(); @@ -2745,6 +2780,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, nucleotideColour.addActionListener(this); deleteGroups.setLabel("Undefine Groups"); deleteGroups.addActionListener(this); + grpsFromSelection.setLabel("Make Groups for selection"); + grpsFromSelection.addActionListener(this); copy.setLabel("Copy"); copy.addActionListener(this); cut.setLabel("Cut"); @@ -2934,7 +2971,9 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, selectMenu.add(deselectAllSequenceMenuItem); selectMenu.add(invertSequenceMenuItem); selectMenu.add(invertColSel); + selectMenu.add(grpsFromSelection); selectMenu.add(deleteGroups); + } MenuItem featureSettings = new MenuItem();