JMenuItem sequenceFeature = new JMenuItem();\r
JMenuItem textColour = new JMenuItem();\r
JMenu jMenu1 = new JMenu();\r
+ JMenu structureMenu = new JMenu();\r
+ JMenu viewStructureMenu = new JMenu();\r
+ // JMenu colStructureMenu = new JMenu();\r
+ JMenuItem editSequence = new JMenuItem();\r
+ // JMenuItem annotationMenuItem = new JMenuItem();\r
\r
/**\r
* Creates a new PopupMenu object.\r
final PDBEntry pdb = (PDBEntry) e.nextElement();\r
\r
menuItem = new JMenuItem();\r
- menuItem.setText("View PDB entry: " + pdb.getId());\r
+ menuItem.setText(pdb.getId());\r
menuItem.addActionListener(new java.awt.event.ActionListener()\r
{\r
public void actionPerformed(ActionEvent e)\r
{\r
- new PDBViewer(pdb, sequence, ap.seqPanel.seqCanvas);\r
+ Vector seqs = new Vector();\r
+ for (int i = 0; i < ap.av.alignment.getHeight(); i++)\r
+ {\r
+ Vector pdbs = ap.av.alignment.getSequenceAt(i).getDatasetSequence().getPDBId();\r
+ if(pdbs==null)\r
+ continue;\r
+\r
+ for(int p=0; p<pdbs.size(); p++)\r
+ {\r
+ PDBEntry p1 = (PDBEntry)pdbs.elementAt(p);\r
+ if(p1.getId().equals(pdb.getId()))\r
+ {\r
+ if (!seqs.contains(ap.av.alignment.getSequenceAt(i)))\r
+ seqs.addElement(ap.av.alignment.getSequenceAt(i));\r
+\r
+ continue;\r
+ }\r
+ }\r
+ }\r
+\r
+ SequenceI [] seqs2 = new SequenceI[seqs.size()];\r
+ seqs.toArray(seqs2);\r
+\r
+ new AppJMol(pdb, seqs2, ap);\r
+ }\r
+ });\r
+ viewStructureMenu.add(menuItem);\r
+\r
+ /* menuItem = new JMenuItem();\r
+ menuItem.setText(pdb.getId());\r
+ menuItem.addActionListener(new java.awt.event.ActionListener()\r
+ {\r
+ public void actionPerformed(ActionEvent e)\r
+ {\r
+ colourByStructure(pdb.getId());\r
}\r
});\r
- sequenceMenu.add(menuItem);\r
+ colStructureMenu.add(menuItem);*/\r
}\r
}\r
+ else\r
+ {\r
+ structureMenu.remove(viewStructureMenu);\r
+ // structureMenu.remove(colStructureMenu);\r
+ }\r
\r
menuItem = new JMenuItem("Hide Sequences");\r
menuItem.addActionListener(new java.awt.event.ActionListener()\r
if (seq == null)\r
{\r
sequenceMenu.setVisible(false);\r
- pdbMenu.setVisible(false);\r
+ structureMenu.setVisible(false);\r
}\r
\r
if (links != null && links.size() > 0)\r
}\r
});\r
jMenu1.setText("Group");\r
+ structureMenu.setText("Structure");\r
+ viewStructureMenu.setText("View Structure");\r
+ // colStructureMenu.setText("Colour By Structure");\r
+ editSequence.setText("Edit Sequence...");\r
+ editSequence.addActionListener(new ActionListener()\r
+ {\r
+ public void actionPerformed(ActionEvent actionEvent)\r
+ {\r
+ editSequence_actionPerformed(actionEvent);\r
+ }\r
+ });\r
+ /* annotationMenuItem.setText("By Annotation");\r
+ annotationMenuItem.addActionListener(new ActionListener()\r
+ {\r
+ public void actionPerformed(ActionEvent actionEvent)\r
+ {\r
+ annotationMenuItem_actionPerformed(actionEvent);\r
+ }\r
+ });*/\r
+\r
add(groupMenu);\r
\r
add(sequenceMenu);\r
+ this.add(structureMenu);\r
groupMenu.add(editMenu);\r
groupMenu.add(outputMenu);\r
groupMenu.add(sequenceFeature);\r
groupMenu.add(jMenu1);\r
sequenceMenu.add(sequenceName);\r
- sequenceMenu.add(pdbMenu);\r
colourMenu.add(textColour);\r
colourMenu.add(noColourmenuItem);\r
colourMenu.add(clustalColour);\r
colourMenu.addSeparator();\r
colourMenu.add(abovePIDColour);\r
colourMenu.add(conservationMenuItem);\r
+ //colourMenu.add(annotationMenuItem);\r
editMenu.add(copy);\r
editMenu.add(cut);\r
+ editMenu.add(editSequence);\r
editMenu.add(upperCase);\r
editMenu.add(lowerCase);\r
editMenu.add(toggle);\r
jMenu1.add(showText);\r
jMenu1.add(showColourText);\r
jMenu1.add(outline);\r
+ structureMenu.add(pdbMenu);\r
+ structureMenu.add(viewStructureMenu);\r
+ // structureMenu.add(colStructureMenu);\r
noColourmenuItem.setText("None");\r
noColourmenuItem.addActionListener(new java.awt.event.ActionListener()\r
{\r
*/\r
void refresh()\r
{\r
- if (ap.overviewPanel != null)\r
- {\r
- ap.overviewPanel.updateOverviewImage();\r
- }\r
+ ap.paintAlignment(true);\r
\r
PaintRefresher.Refresh(this, ap.av.getSequenceSetId());\r
}\r
refresh();\r
}\r
\r
+ public void annotationMenuItem_actionPerformed(ActionEvent actionEvent)\r
+ {\r
+ SequenceGroup sg = getGroup();\r
+ if (sg == null)\r
+ {\r
+ return;\r
+ }\r
+\r
+ AnnotationColourGradient acg = new AnnotationColourGradient(\r
+ sequence.getAnnotation()[0], null, AnnotationColourGradient.NO_THRESHOLD);\r
+\r
+ acg.predefinedColours = true;\r
+ sg.cs = acg;\r
+\r
+ refresh();\r
+ }\r
+\r
/**\r
* DOCUMENT ME!\r
*\r
}\r
\r
sequence.setName(dialog.getName().replace(' ', '_'));\r
- ap.repaint();\r
+ ap.paintAlignment(false);\r
}\r
\r
sequence.setDescription(dialog.getDescription());\r
{\r
Object source = e.getSource();\r
SequenceGroup sg = ap.av.getSelectionGroup();\r
- Vector regions = new Vector();\r
+\r
if (sg != null)\r
{\r
- int start = sg.getStartRes();\r
- int end = sg.getEndRes() + 1;\r
-\r
- do\r
- {\r
- if (ap.av.hasHiddenColumns)\r
- {\r
- if (start == 0)\r
- {\r
- start = ap.av.colSel.adjustForHiddenColumns(start);\r
- }\r
-\r
- end = ap.av.colSel.getHiddenBoundaryRight(start);\r
- if (start == end)\r
- {\r
- end = sg.getEndRes() + 1;\r
- }\r
- if (end > sg.getEndRes())\r
- {\r
- end = sg.getEndRes() + 1;\r
- }\r
- }\r
-\r
- regions.addElement(new int[]\r
- {start, end});\r
-\r
- if (ap.av.hasHiddenColumns)\r
- {\r
- start = ap.av.colSel.adjustForHiddenColumns(end);\r
- start = ap.av.colSel.getHiddenBoundaryLeft(start) + 1;\r
- }\r
- }\r
- while (end < sg.getEndRes());\r
-\r
- int[][] startEnd = new int[regions.size()][2];\r
- for (int i = 0; i < regions.size(); i++)\r
- {\r
- startEnd[i] = (int[]) regions.elementAt(i);\r
- }\r
+ int[][] startEnd = ap.av.getVisibleRegionBoundaries(\r
+ sg.getStartRes(), sg.getEndRes() + 1);\r
\r
String description;\r
int caseChange;\r
\r
public void discoverPDB_actionPerformed()\r
{\r
- new jalview.io.DBRefFetcher(\r
- ap.av.getAlignment(), ap.alignFrame).fetchDBRefs(false);\r
+ SequenceI[] sequences =\r
+ ap.av.selectionGroup == null ?\r
+ new Sequence[]{sequence}\r
+ : ap.av.selectionGroup.getSequencesInOrder(ap.av.alignment);\r
+\r
+ new jalview.io.DBRefFetcher(sequences,\r
+ ap.alignFrame).fetchDBRefs(false);\r
}\r
\r
public void sequenceFeature_actionPerformed()\r
}\r
\r
if (ap.seqPanel.seqCanvas.getFeatureRenderer()\r
- .createNewFeatures(seqs, features))\r
+ .amendFeatures(seqs, features, true, ap))\r
{\r
ap.alignFrame.showSeqFeatures.setSelected(true);\r
ap.av.setShowSequenceFeatures(true);\r
new TextColourChooser().chooseColour(ap, sg);\r
}\r
}\r
+\r
+ public void colourByStructure(String pdbid)\r
+ {\r
+ Annotation [] anots = jalview.structure.StructureSelectionManager.getStructureSelectionManager()\r
+ .colourSequenceFromStructure(sequence, pdbid);\r
+\r
+ AlignmentAnnotation an = new AlignmentAnnotation(\r
+ "Structure", "Coloured by "+pdbid, anots);\r
+\r
+ ap.av.alignment.addAnnotation(an);\r
+ an.createSequenceMapping(sequence, 0, true);\r
+ //an.adjustForAlignment();\r
+ ap.av.alignment.setAnnotationIndex(an,0);\r
+\r
+ ap.adjustAnnotationHeight();\r
+\r
+ sequence.addAlignmentAnnotation(an);\r
+\r
+ }\r
+\r
+ public void editSequence_actionPerformed(ActionEvent actionEvent)\r
+ {\r
+ SequenceGroup sg = ap.av.getSelectionGroup();\r
+\r
+ if(sg!=null)\r
+ {\r
+ if (sequence == null)\r
+ sequence = (Sequence) sg.getSequenceAt(0);\r
+\r
+ EditNameDialog dialog = new EditNameDialog(\r
+ sequence.getSequenceAsString(\r
+ sg.getStartRes(),\r
+ sg.getEndRes() + 1),\r
+ null,\r
+ "Edit Sequence ",\r
+ null,\r
+ "Edit Sequence");\r
+\r
+ if (dialog.accept)\r
+ {\r
+ EditCommand editCommand = new EditCommand(\r
+ "Edit Sequences", EditCommand.REPLACE,\r
+ dialog.getName(),\r
+ sg.getSequencesAsArray(ap.av.hiddenRepSequences),\r
+ sg.getStartRes(), sg.getEndRes() + 1, ap.av.alignment\r
+ );\r
+\r
+ ap.alignFrame.addHistoryItem(editCommand);\r
+\r
+ ap.av.firePropertyChange("alignment", null,\r
+ ap.av.getAlignment().getSequences());\r
+ }\r
+ }\r
+ }\r
+\r
+\r
}\r