{\r
public void actionPerformed(ActionEvent e)\r
{\r
- new PDBViewer(pdb, sequence, ap.seqPanel.seqCanvas);\r
+\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
+\r
+ SequenceI [] seqs2 = new SequenceI[seqs.size()];\r
+ seqs.toArray(seqs2);\r
+\r
+ new AppJMol(pdb, seqs2, ap);\r
}\r
});\r
sequenceMenu.add(menuItem);\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
}\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
\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