Use paintAlignment
[jalview.git] / src / jalview / gui / PopupMenu.java
index f1a38f5..09e2c01 100755 (executable)
@@ -160,7 +160,32 @@ public class PopupMenu
           {\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
@@ -708,10 +733,7 @@ public class PopupMenu
    */\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
@@ -1028,7 +1050,7 @@ public class PopupMenu
       }\r
 \r
       sequence.setName(dialog.getName().replace(' ', '_'));\r
-      ap.repaint();\r
+      ap.paintAlignment(false);\r
     }\r
 \r
     sequence.setDescription(dialog.getDescription());\r
@@ -1169,48 +1191,11 @@ public class PopupMenu
   {\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