X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAPopupMenu.java;h=803f323d480811fd8f53bea6cf75af3e5de1b38e;hb=83f6c6309e9705037a0853a26da74821c9d4fd12;hp=a103073895c00f6a88aedbec6eeec04a872f140d;hpb=890bd0eac47a4b0f55bd062a359c16a43c3780a0;p=jalview.git diff --git a/src/jalview/appletgui/APopupMenu.java b/src/jalview/appletgui/APopupMenu.java index a103073..803f323 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,8 @@ 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"); + MenuItem editSequence = new MenuItem("Edit Sequence"); Sequence seq; MenuItem revealAll = new MenuItem(); @@ -302,12 +305,12 @@ public class APopupMenu getGroup().getDescription(), " Group Name", "Group Description", - ap, - "Edit Group Name / Description"); + ap.alignFrame, + "Edit Group Name / Description", + 500,100, true); if (dialog.accept) { - getGroup().setName(dialog.getName().replace(' ', '_')); getGroup().setDescription(dialog.getDescription()); } @@ -321,6 +324,42 @@ public class APopupMenu { ap.alignFrame.cut_actionPerformed(); } + else if(source == editSequence) + { + SequenceGroup sg = ap.av.getSelectionGroup(); + + if(sg!=null) + { + if (seq == null) + seq = (Sequence) sg.getSequenceAt(0); + + EditNameDialog dialog = new EditNameDialog(seq.getSequenceAsString( + sg.getStartRes(), + sg.getEndRes() + 1), + null, + "Edit Sequence ", + null, + + ap.alignFrame, + "Edit Sequence", + 500, 100, true); + + if (dialog.accept) + { + EditCommand editCommand = new EditCommand( + "Edit Sequences", EditCommand.REPLACE, + dialog.getName().replace(' ', ap.av.getGapCharacter()), + sg.getSequencesAsArray(ap.av.hiddenRepSequences), + sg.getStartRes(), sg.getEndRes()+1, ap.av.alignment + ); + + ap.alignFrame.addHistoryItem(editCommand); + + ap.av.firePropertyChange("alignment", null, + ap.av.getAlignment().getSequences()); + } + } + } else if (source == toUpper || source == toLower || source == toggleCase) { SequenceGroup sg = ap.av.getSelectionGroup(); @@ -398,6 +437,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() + .amendFeatures(seqs, features, true, ap)) + { + ap.alignFrame.sequenceFeatures.setState(true); + ap.av.showSequenceFeatures(true); + ap.highlightSearchResults(null); + } + } else { outputText(evt); @@ -429,8 +497,9 @@ public class APopupMenu seq.getDescription(), " Sequence Name", "Sequence Description", - ap, - "Edit Sequence Name / Description"); + ap.alignFrame, + "Edit Sequence Name / Description", + 500,100, true); if (dialog.accept) { @@ -442,12 +511,33 @@ 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}, + null, + ap, + AppletFormatAdapter.URL); + else + new MCview.AppletPDBViewer(entry, + new Sequence[]{seq}, + null, + 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 +545,7 @@ public class APopupMenu { groupMenu.setLabel("Group"); groupMenu.setLabel("Selection"); + sequenceFeature.addActionListener(this); editGroupName.addActionListener(this); unGroupMenuItem.setLabel("Remove Group"); @@ -488,7 +579,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); @@ -539,6 +632,10 @@ public class APopupMenu copy.addActionListener(this); editMenu.add(cut); cut.addActionListener(this); + + editMenu.add(editSequence); + editSequence.addActionListener(this); + editMenu.add(toUpper); toUpper.addActionListener(this); editMenu.add(toLower);