X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FColumnSelection.java;h=63a5700efb39182eaeab2e37140a5caa55a7a0e5;hb=bd248212fee44557d973432f42666780530db8ed;hp=afa2e07103b168f6a73756ecb62f44240c1aebdd;hpb=4bc692b7e0ccca12c362bcb6ee9b4c88f431bd22;p=jalview.git
diff --git a/src/jalview/datamodel/ColumnSelection.java b/src/jalview/datamodel/ColumnSelection.java
index afa2e07..63a5700 100644
--- a/src/jalview/datamodel/ColumnSelection.java
+++ b/src/jalview/datamodel/ColumnSelection.java
@@ -1,20 +1,19 @@
/*
- * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1)
- * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)
+ * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
+ * This file is part of Jalview.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with Jalview. If not, see .
*/
package jalview.datamodel;
@@ -509,8 +508,8 @@ public class ColumnSelection
}
/**
- * Use this method to find out where a visible column is in the alignment when
- * hidden columns exist
+ * Use this method to find out where a column will appear in the visible alignment when
+ * hidden columns exist. If the column is not visible, then the left-most visible column will always be returned.
*
* @param hiddenColumn
* int
@@ -522,21 +521,21 @@ public class ColumnSelection
if (hiddenColumns != null)
{
int index = 0;
- int gaps = 0;
+ int[] region;
do
{
- int[] region = (int[]) hiddenColumns.elementAt(index);
+ region = (int[]) hiddenColumns.elementAt(index++);
if (hiddenColumn > region[1])
{
result -= region[1] + 1 - region[0];
}
- index++;
- } while (index < hiddenColumns.size());
-
- result -= gaps;
+ } while ((hiddenColumn > region[1]) && (index < hiddenColumns.size()));
+ if (hiddenColumn>region[0] && hiddenColumn 0)
{
- if (hiddenColumns!=null && hiddenColumns.size()>0)
+ if (hiddenColumns != null && hiddenColumns.size() > 0)
{
// only select visible columns in this columns selection
selected = new Vector();
addElementsFrom(colsel);
- } else {
- // be quick
- selected = new Vector(colsel.selected);
}
- }
- else
- {
- selected = new Vector();
+ else
+ {
+ // add everything regardless
+ Enumeration en = colsel.selected.elements();
+ while (en.hasMoreElements())
+ {
+ selected.addElement(en.nextElement());
+ }
+ }
}
}
}