import jalview.commands.*;\r
import jalview.datamodel.*;\r
import jalview.schemes.*;\r
+import jalview.io.AppletFormatAdapter;\r
\r
public class APopupMenu\r
extends java.awt.PopupMenu implements ActionListener, ItemListener\r
MenuItem hideSeqs = new MenuItem();\r
MenuItem repGroup = new MenuItem();\r
MenuItem sequenceName = new MenuItem("Edit Name/Description");\r
+ MenuItem sequenceFeature = new MenuItem("Create Sequence Feature");\r
\r
Sequence seq;\r
MenuItem revealAll = new MenuItem();\r
getGroup().getDescription(),\r
" Group Name",\r
"Group Description",\r
- ap,\r
- "Edit Group Name / Description");\r
+ ap.alignFrame,\r
+ "Edit Group Name / Description",\r
+ 500,100);\r
\r
if (dialog.accept)\r
{\r
\r
}\r
}\r
+ else if(source == sequenceFeature)\r
+ {\r
+ SequenceGroup sg = ap.av.getSelectionGroup();\r
+ if (sg == null)\r
+ {\r
+ return;\r
+ }\r
+\r
+ int gSize = sg.getSize();\r
+ SequenceI[] seqs = new SequenceI[gSize];\r
+ SequenceFeature[] features = new SequenceFeature[gSize];\r
+\r
+ for (int i = 0; i < gSize; i++)\r
+ {\r
+ seqs[i] = sg.getSequenceAt(i);\r
+ int start = sg.getSequenceAt(i).findPosition(sg.getStartRes());\r
+ int end = sg.findEndRes(sg.getSequenceAt(i));\r
+ features[i] = new SequenceFeature(null, null, null, start, end,\r
+ "Jalview");\r
+ }\r
+\r
+ if (ap.seqPanel.seqCanvas.getFeatureRenderer()\r
+ .createNewFeatures(seqs, features, ap))\r
+ {\r
+ ap.alignFrame.sequenceFeatures.setState(true);\r
+ ap.av.showSequenceFeatures(true);\r
+ ap.highlightSearchResults(null);\r
+ }\r
+ }\r
else\r
{\r
outputText(evt);\r
seq.getDescription(),\r
" Sequence Name",\r
"Sequence Description",\r
- ap,\r
- "Edit Sequence Name / Description");\r
+ ap.alignFrame,\r
+ "Edit Sequence Name / Description",\r
+ 500,100);\r
\r
if (dialog.accept)\r
{\r
seq.setName(dialog.getName());\r
seq.setDescription(dialog.getDescription());\r
- ap.repaint();\r
+ ap.paintAlignment(false);\r
}\r
}\r
\r
void addPDB()\r
{\r
- CutAndPasteTransfer cap = new CutAndPasteTransfer(true, ap.alignFrame);\r
- cap.setText("Paste your PDB file here.");\r
- cap.setPDBImport(seq);\r
- Frame frame = new Frame();\r
- frame.add(cap);\r
- jalview.bin.JalviewLite.addFrame(frame, "Paste PDB file ", 400, 300);\r
+ if(seq.getPDBId()!=null)\r
+ {\r
+ PDBEntry entry = (PDBEntry)seq.getPDBId().firstElement();\r
+\r
+ if ( ap.av.applet.jmolAvailable )\r
+ new jalview.appletgui.AppletJmol(entry,\r
+ new Sequence[]\r
+ {seq},\r
+ ap,\r
+ AppletFormatAdapter.URL);\r
+ else\r
+\r
+ new MCview.AppletPDBViewer(entry,\r
+ new Sequence[]\r
+ {seq},\r
+ ap,\r
+ AppletFormatAdapter.URL);\r
+\r
+ }\r
+ else\r
+ {\r
+ CutAndPasteTransfer cap = new CutAndPasteTransfer(true, ap.alignFrame);\r
+ cap.setText("Paste your PDB file here.");\r
+ cap.setPDBImport(seq);\r
+ Frame frame = new Frame();\r
+ frame.add(cap);\r
+ jalview.bin.JalviewLite.addFrame(frame, "Paste PDB file ", 400, 300);\r
+ }\r
}\r
\r
private void jbInit()\r
{\r
groupMenu.setLabel("Group");\r
groupMenu.setLabel("Selection");\r
+ sequenceFeature.addActionListener(this);\r
\r
editGroupName.addActionListener(this);\r
unGroupMenuItem.setLabel("Remove Group");\r
groupMenu.add(editGroupName);\r
groupMenu.add(editMenu);\r
groupMenu.add(outputmenu);\r
+ groupMenu.add(sequenceFeature);\r
groupMenu.add(menu1);\r
+\r
colourMenu.add(noColourmenuItem);\r
colourMenu.add(clustalColour);\r
colourMenu.add(BLOSUM62Colour);\r
\r
void refresh()\r
{\r
- ap.seqPanel.seqCanvas.repaint();\r
- if (ap.overviewPanel != null)\r
- {\r
- ap.overviewPanel.updateOverviewImage();\r
- }\r
+ ap.paintAlignment(true);\r
}\r
\r
protected void clustalColour_actionPerformed()\r
SequenceGroup sg = ap.av.getSelectionGroup();\r
ap.av.alignment.deleteGroup(sg);\r
ap.av.setSelectionGroup(null);\r
- ap.repaint();\r
+ ap.paintAlignment(true);\r
}\r
\r
public void showColourText_itemStateChanged()\r