JAL-1774 bugfix for misleading message after trying to delete solid column
[jalview.git] / src / jalview / gui / AlignFrame.java
index 500dfdb..e40e936 100644 (file)
@@ -368,6 +368,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       setGUINucleotide(viewport.getAlignment().isNucleotide());
     }
 
+    this.alignPanel.av
+            .setShowAutocalculatedAbove(isShowAutoCalculatedAbove());
+
     setMenusFromViewport(viewport);
     buildSortByAnnotationScoresMenu();
     buildTreeMenu();
@@ -1306,19 +1309,16 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     int startPos = aligmentStartEnd[0];
     int endPos = aligmentStartEnd[1];
 
-    int[] lowestRange = new int[2];
-    int[] higestRange = new int[2];
+    int[] lowestRange = new int[] { -1, -1 };
+    int[] higestRange = new int[] { -1, -1 };
 
     for (int[] hiddenCol : hiddenCols)
     {
-      // System.out.println("comparing : " + hiddenCol[0] + "-" + hiddenCol[1]);
       lowestRange = (hiddenCol[0] <= startPos) ? hiddenCol : lowestRange;
       higestRange = (hiddenCol[1] >= endPos) ? hiddenCol : higestRange;
     }
-    // System.out.println("min : " + lowestRange[0] + "-" + lowestRange[1]);
-    // System.out.println("max : " + higestRange[0] + "-" + higestRange[1]);
 
-    if (lowestRange[0] == 0 && lowestRange[1] == 0)
+    if (lowestRange[0] == -1 && lowestRange[1] == -1)
     {
       startPos = aligmentStartEnd[0];
     }
@@ -1327,27 +1327,27 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       startPos = lowestRange[1] + 1;
     }
 
-    if (higestRange[0] == 0 && higestRange[1] == 0)
+    if (higestRange[0] == -1 && higestRange[1] == -1)
     {
       endPos = aligmentStartEnd[1];
     }
     else
     {
-      endPos = higestRange[0];
+      endPos = higestRange[0] - 1;
     }
 
-    // System.out.println("Export range : " + minPos + " - " + maxPos);
+    // System.out.println("Export range : " + startPos + " - " + endPos);
     return new int[] { startPos, endPos };
   }
 
   public static void main(String[] args)
   {
     ArrayList<int[]> hiddenCols = new ArrayList<int[]>();
-    hiddenCols.add(new int[] { 0, 4 });
+    hiddenCols.add(new int[] { 0, 0 });
     hiddenCols.add(new int[] { 6, 9 });
     hiddenCols.add(new int[] { 11, 12 });
     hiddenCols.add(new int[] { 33, 33 });
-    hiddenCols.add(new int[] { 45, 50 });
+    hiddenCols.add(new int[] { 50, 50 });
 
     int[] x = getStartEnd(new int[] { 0, 50 }, hiddenCols);
     // System.out.println("Export range : " + x[0] + " - " + x[1]);
@@ -2370,7 +2370,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     /*
      * If the cut affects all sequences, warn, remove highlighted columns
      */
-    if (sg.getSize() == viewport.getAlignment().getHeight())
+
+    boolean isEntireAlignWidth = (((sg.getEndRes() - sg.getStartRes()) + 1) == viewport
+            .getAlignment().getWidth()) ? true : false;
+    if (sg.getSize() == viewport.getAlignment().getHeight()
+            && isEntireAlignWidth)
     {
       int confirm = JOptionPane.showConfirmDialog(this,
               MessageManager.getString("warn.delete_all"), // $NON-NLS-1$
@@ -2397,6 +2401,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     viewport.setSelectionGroup(null);
     viewport.sendSelection();
     viewport.getAlignment().deleteGroup(sg);
+    viewport.getColumnSelection().clear();
 
     viewport.firePropertyChange("alignment", null, viewport.getAlignment()
             .getSequences());
@@ -2411,6 +2416,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     }
   }
 
+
   /**
    * DOCUMENT ME!
    *