X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAPopupMenu.java;h=b281fcd17730b36bfb7d1167c43218b48b790dbf;hb=449db06a788539e8ea7463ff4b56f012280994d0;hp=a103073895c00f6a88aedbec6eeec04a872f140d;hpb=890bd0eac47a4b0f55bd062a359c16a43c3780a0;p=jalview.git diff --git a/src/jalview/appletgui/APopupMenu.java b/src/jalview/appletgui/APopupMenu.java index a103073..b281fcd 100755 --- a/src/jalview/appletgui/APopupMenu.java +++ b/src/jalview/appletgui/APopupMenu.java @@ -28,6 +28,7 @@ import jalview.analysis.*; import jalview.commands.*; import jalview.datamodel.*; import jalview.schemes.*; +import jalview.io.AppletFormatAdapter; public class APopupMenu extends java.awt.PopupMenu implements ActionListener, ItemListener @@ -68,6 +69,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 +304,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 +401,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,8 +461,9 @@ 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) { @@ -442,12 +475,34 @@ public class APopupMenu void addPDB() { - CutAndPasteTransfer cap = new CutAndPasteTransfer(true, ap.alignFrame); - cap.setText("Paste your PDB file here."); - cap.setPDBImport(seq); - Frame frame = new Frame(); - frame.add(cap); - jalview.bin.JalviewLite.addFrame(frame, "Paste PDB file ", 400, 300); + if(seq.getPDBId()!=null) + { + PDBEntry entry = (PDBEntry)seq.getPDBId().firstElement(); + + if ( ap.av.applet.jmolAvailable ) + new jalview.appletgui.AppletJmol(entry, + new Sequence[] + {seq}, + ap, + AppletFormatAdapter.URL); + else + + new MCview.AppletPDBViewer(entry, + new Sequence[] + {seq}, + ap, + AppletFormatAdapter.URL); + + } + else + { + CutAndPasteTransfer cap = new CutAndPasteTransfer(true, ap.alignFrame); + cap.setText("Paste your PDB file here."); + cap.setPDBImport(seq); + Frame frame = new Frame(); + frame.add(cap); + jalview.bin.JalviewLite.addFrame(frame, "Paste PDB file ", 400, 300); + } } private void jbInit() @@ -455,6 +510,7 @@ public class APopupMenu { groupMenu.setLabel("Group"); groupMenu.setLabel("Selection"); + sequenceFeature.addActionListener(this); editGroupName.addActionListener(this); unGroupMenuItem.setLabel("Remove Group"); @@ -488,7 +544,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);