JAL-2034 moved ‘isDefinedGroup’ flag to a test method on AlignViewportI so controller...
[jalview.git] / src / jalview / gui / SeqPanel.java
index 9006262..348c21c 100644 (file)
@@ -836,7 +836,8 @@ public class SeqPanel extends JPanel implements MouseListener,
    * set if av.getSelectionGroup() refers to a group that is defined on the
    * alignment view, rather than a transient selection
    */
-  private boolean editingDefinedGroup = false;  // TODO: refactor to avcontroller or viewModel
+  // private boolean editingDefinedGroup = false; // TODO: refactor to
+  // avcontroller or viewModel
 
   /**
    * Set status message in alignment panel
@@ -857,7 +858,8 @@ public class SeqPanel extends JPanel implements MouseListener,
      * Sequence number (if known), and sequence name.
      */
     String seqno = seq == -1 ? "" : " " + (seq + 1);
-    text.append("Sequence" + seqno + " ID: " + sequence.getName());
+    text.append("Sequence").append(seqno).append(" ID: ")
+            .append(sequence.getName());
 
     String residue = null;
     /*
@@ -1582,12 +1584,10 @@ public class SeqPanel extends JPanel implements MouseListener,
               && (res < stretchGroup.getEndRes()))
       {
         av.setSelectionGroup(stretchGroup);
-        editingDefinedGroup = true;
       }
       else
       {
         stretchGroup = null;
-        editingDefinedGroup = false;
       }
     }
     else if (!stretchGroup.getSequences(null).contains(sequence)
@@ -1606,7 +1606,6 @@ public class SeqPanel extends JPanel implements MouseListener,
                   && (allGroups[i].getEndRes() >= res))
           {
             stretchGroup = allGroups[i];
-            editingDefinedGroup = true;
             break;
           }
         }
@@ -1656,7 +1655,6 @@ public class SeqPanel extends JPanel implements MouseListener,
       sg.setEndRes(res);
       sg.addSequence(sequence, false);
       av.setSelectionGroup(sg);
-      editingDefinedGroup = false;
       stretchGroup = sg;
 
       if (av.getConservationSelected())
@@ -1702,7 +1700,7 @@ public class SeqPanel extends JPanel implements MouseListener,
     // always do this - annotation has own state
     // but defer colourscheme update until hidden sequences are passed in
     boolean vischange = stretchGroup.recalcConservation(true);
-    needOverviewUpdate |= vischange && editingDefinedGroup;
+    needOverviewUpdate |= vischange && av.isSelectionDefinedGroup();
     if (stretchGroup.cs != null)
     {
       stretchGroup.cs.alignmentChanged(stretchGroup,
@@ -1722,7 +1720,6 @@ public class SeqPanel extends JPanel implements MouseListener,
     PaintRefresher.Refresh(this, av.getSequenceSetId());
     ap.paintAlignment(needOverviewUpdate);
     needOverviewUpdate =false;
-    editingDefinedGroup = false;
     changeEndRes = false;
     changeStartRes = false;
     stretchGroup = null;
@@ -1776,7 +1773,7 @@ public class SeqPanel extends JPanel implements MouseListener,
       if (res > (stretchGroup.getStartRes() - 1))
       {
         stretchGroup.setEndRes(res);
-        needOverviewUpdate |= editingDefinedGroup;
+        needOverviewUpdate |= av.isSelectionDefinedGroup();
       }
     }
     else if (changeStartRes)
@@ -1784,7 +1781,7 @@ public class SeqPanel extends JPanel implements MouseListener,
       if (res < (stretchGroup.getEndRes() + 1))
       {
         stretchGroup.setStartRes(res);
-        needOverviewUpdate |= editingDefinedGroup;
+        needOverviewUpdate |= av.isSelectionDefinedGroup();
       }
     }
 
@@ -1818,7 +1815,7 @@ public class SeqPanel extends JPanel implements MouseListener,
       if (stretchGroup.getSequences(null).contains(nextSeq))
       {
         stretchGroup.deleteSequence(seq, false);
-        needOverviewUpdate |= editingDefinedGroup;
+        needOverviewUpdate |= av.isSelectionDefinedGroup();
       }
       else
       {
@@ -1828,7 +1825,7 @@ public class SeqPanel extends JPanel implements MouseListener,
         }
 
         stretchGroup.addSequence(nextSeq, false);
-        needOverviewUpdate |= editingDefinedGroup;
+        needOverviewUpdate |= av.isSelectionDefinedGroup();
       }
     }
 
@@ -1970,10 +1967,12 @@ public class SeqPanel extends JPanel implements MouseListener,
 
     // do we want to thread this ? (contention with seqsel and colsel locks, I
     // suspect)
-    // rules are: colsel is copied if there is a real intersection between
-    // sequence selection
+    /*
+     * only copy colsel if there is a real intersection between
+     * sequence selection and this panel's alignment
+     */
     boolean repaint = false;
-    boolean copycolsel = true;
+    boolean copycolsel = false;
 
     SequenceGroup sgroup = null;
     if (seqsel != null && seqsel.getSize() > 0)
@@ -1987,11 +1986,9 @@ public class SeqPanel extends JPanel implements MouseListener,
       }
       sgroup = seqsel.intersect(av.getAlignment(),
               (av.hasHiddenRows()) ? av.getHiddenRepSequences() : null);
-      if ((sgroup == null || sgroup.getSize() == 0)
-              || (colsel == null || colsel.isEmpty()))
+      if ((sgroup != null && sgroup.getSize() > 0))
       {
-        // don't copy columns if the region didn't intersect.
-        copycolsel = false;
+        copycolsel = true;
       }
     }
     if (sgroup != null && sgroup.getSize() > 0)