showqual, showcons never used
[jalview.git] / src / jalview / gui / PopupMenu.java
index 69e83f5..e11830c 100755 (executable)
@@ -82,6 +82,7 @@ public class PopupMenu extends JPopupMenu
   JMenuItem enterPDB = new JMenuItem();\r
   JMenuItem discoverPDB = new JMenuItem();\r
   JMenu outputMenu = new JMenu();\r
+  JMenuItem sequenceFeature = new JMenuItem();\r
 \r
   /**\r
      * Creates a new PopupMenu object.\r
@@ -504,12 +505,22 @@ public class PopupMenu extends JPopupMenu
       }\r
     });\r
     outputMenu.setText("Output to Textbox...");\r
+    sequenceFeature.setText("Create Sequence Feature");\r
+    sequenceFeature.addActionListener(new ActionListener()\r
+    {\r
+      public void actionPerformed(ActionEvent e)\r
+      {\r
+        sequenceFeature_actionPerformed(e);\r
+      }\r
+    });\r
     add(groupMenu);\r
 \r
     add(sequenceMenu);\r
     groupMenu.add(editMenu);\r
     groupMenu.add(outputMenu);\r
     groupMenu.addSeparator();\r
+    groupMenu.add(sequenceFeature);\r
+    groupMenu.addSeparator();\r
     groupMenu.add(groupName);\r
     groupMenu.add(unGroupMenuItem);\r
         groupMenu.add(colourMenu);\r
@@ -688,7 +699,7 @@ public class PopupMenu extends JPopupMenu
         if (ap.overviewPanel != null)\r
           ap.overviewPanel.updateOverviewImage();\r
 \r
-        ap.seqPanel.repaint();\r
+        PaintRefresher.Refresh(this, ap.av.getSequenceSetId());\r
     }\r
 \r
     /**\r
@@ -842,6 +853,7 @@ public class PopupMenu extends JPopupMenu
 \r
          sg.cs = udc;\r
        }\r
+       refresh();\r
      }\r
     /**\r
      * DOCUMENT ME!\r
@@ -1126,25 +1138,31 @@ public class PopupMenu extends JPopupMenu
       SequenceGroup sg = ap.av.getSelectionGroup();\r
       if(sg==null || sg.getSize(false)<1)\r
       {\r
-        ap.av.hideSequence(sequence);\r
+        ap.av.hideSequence(new SequenceI[]{sequence});\r
         return;\r
       }\r
 \r
+      int gsize = sg.getSize(false);\r
+      SequenceI [] hseqs;\r
+\r
+      hseqs = new SequenceI[ representGroup ? gsize-1 : gsize ];\r
+\r
         int index = 0;\r
-        while(index < sg.getSize(false))\r
+        for(int i=0; i<gsize; i++)\r
         {\r
-          if(representGroup && sg.getSequenceAt(index)!=sequence)\r
+          if(representGroup && sg.getSequenceAt(i)!=sequence)\r
           {\r
-            sequence.addHiddenSequence(sg.getSequenceAt(index));\r
-            ap.av.hideSequence(sg.getSequenceAt(index));\r
+            sequence.addHiddenSequence(sg.getSequenceAt(i));\r
+            hseqs[index++] = sg.getSequenceAt(i);\r
           }\r
           else if(!representGroup)\r
           {\r
-            ap.av.hideSequence(sg.getSequenceAt(index));\r
+            hseqs[index++] = sg.getSequenceAt(i);\r
           }\r
-          index ++;\r
         }\r
 \r
+        ap.av.hideSequence(hseqs);\r
+\r
         ap.av.setSelectionGroup(null);\r
     }\r
 \r
@@ -1210,7 +1228,7 @@ public class PopupMenu extends JPopupMenu
         }\r
         while (end < sg.getEndRes());\r
       }\r
-      ap.repaint();\r
+      PaintRefresher.Refresh(this, ap.av.getSequenceSetId());\r
     }\r
   }\r
 \r
@@ -1303,4 +1321,31 @@ public class PopupMenu extends JPopupMenu
     new jalview.io.DBRefFetcher(\r
              ap.av.getAlignment(), ap.alignFrame).fetchDBRefs(false);\r
   }\r
+\r
+  public void sequenceFeature_actionPerformed(ActionEvent e)\r
+  {\r
+    SequenceGroup sg = ap.av.getSelectionGroup();\r
+    if(sg==null)\r
+      return;\r
+\r
+    int gSize= sg.getSize(false);\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).getDatasetSequence();\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,"Jalview");\r
+    }\r
+\r
+    if (ap.seqPanel.seqCanvas.getFeatureRenderer()\r
+        .createNewFeatures(seqs, features))\r
+    {\r
+      ap.alignFrame.showSeqFeatures.setSelected(true);\r
+      ap.av.setShowSequenceFeatures(true);\r
+      ap.highlightSearchResults(null);\r
+    }\r
+  }\r
 }\r