X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAPopupMenu.java;h=ede493e88f44ee51e47c3392d95f02879218457c;hb=4f1f764c09427cd63c3e355fa729da86735a8194;hp=fde6bb8c91be72c8caacf5a4fdedefd7d05728ef;hpb=7bc226b58110fa26d9dbd3f0c78095d06909ffc3;p=jalview.git diff --git a/src/jalview/appletgui/APopupMenu.java b/src/jalview/appletgui/APopupMenu.java index fde6bb8..ede493e 100755 --- a/src/jalview/appletgui/APopupMenu.java +++ b/src/jalview/appletgui/APopupMenu.java @@ -68,6 +68,7 @@ public class APopupMenu MenuItem hideSeqs = new MenuItem(); MenuItem repGroup = new MenuItem(); MenuItem sequenceName = new MenuItem("Edit Name/Description"); + MenuItem sequenceFeature = new MenuItem("Create Sequence Feature"); Sequence seq; MenuItem revealAll = new MenuItem(); @@ -302,8 +303,9 @@ public class APopupMenu getGroup().getDescription(), " Group Name", "Group Description", - ap, - "Edit Group Name / Description"); + ap.alignFrame, + "Edit Group Name / Description", + 500,100); if (dialog.accept) { @@ -398,6 +400,35 @@ public class APopupMenu } } + else if(source == sequenceFeature) + { + SequenceGroup sg = ap.av.getSelectionGroup(); + if (sg == null) + { + return; + } + + int gSize = sg.getSize(); + SequenceI[] seqs = new SequenceI[gSize]; + SequenceFeature[] features = new SequenceFeature[gSize]; + + for (int i = 0; i < gSize; i++) + { + seqs[i] = sg.getSequenceAt(i); + int start = sg.getSequenceAt(i).findPosition(sg.getStartRes()); + int end = sg.findEndRes(sg.getSequenceAt(i)); + features[i] = new SequenceFeature(null, null, null, start, end, + "Jalview"); + } + + if (ap.seqPanel.seqCanvas.getFeatureRenderer() + .createNewFeatures(seqs, features, ap)) + { + ap.alignFrame.sequenceFeatures.setState(true); + ap.av.showSequenceFeatures(true); + ap.highlightSearchResults(null); + } + } else { outputText(evt); @@ -429,14 +460,15 @@ public class APopupMenu seq.getDescription(), " Sequence Name", "Sequence Description", - ap, - "Edit Sequence Name / Description"); + ap.alignFrame, + "Edit Sequence Name / Description", + 500,100); if (dialog.accept) { seq.setName(dialog.getName()); seq.setDescription(dialog.getDescription()); - ap.repaint(); + ap.paintAlignment(false); } } @@ -455,6 +487,7 @@ public class APopupMenu { groupMenu.setLabel("Group"); groupMenu.setLabel("Selection"); + sequenceFeature.addActionListener(this); editGroupName.addActionListener(this); unGroupMenuItem.setLabel("Remove Group"); @@ -488,7 +521,9 @@ public class APopupMenu groupMenu.add(editGroupName); groupMenu.add(editMenu); groupMenu.add(outputmenu); + groupMenu.add(sequenceFeature); groupMenu.add(menu1); + colourMenu.add(noColourmenuItem); colourMenu.add(clustalColour); colourMenu.add(BLOSUM62Colour); @@ -561,11 +596,7 @@ public class APopupMenu void refresh() { - ap.seqPanel.seqCanvas.repaint(); - if (ap.overviewPanel != null) - { - ap.overviewPanel.updateOverviewImage(); - } + ap.paintAlignment(true); } protected void clustalColour_actionPerformed() @@ -739,7 +770,7 @@ public class APopupMenu SequenceGroup sg = ap.av.getSelectionGroup(); ap.av.alignment.deleteGroup(sg); ap.av.setSelectionGroup(null); - ap.repaint(); + ap.paintAlignment(true); } public void showColourText_itemStateChanged()