X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FVisibleColsIterator.java;fp=src%2Fjalview%2Fdatamodel%2FVisibleColsIterator.java;h=0000000000000000000000000000000000000000;hb=948bd3bcbacc509da0cefaae3eedd97300a6ccce;hp=9de468de062b6d818b4fbe43b4e48e06925f077c;hpb=3699e0fd64de573799a6cd2fd78da5dfc670d98e;p=jalview.git diff --git a/src/jalview/datamodel/VisibleColsIterator.java b/src/jalview/datamodel/VisibleColsIterator.java deleted file mode 100644 index 9de468d..0000000 --- a/src/jalview/datamodel/VisibleColsIterator.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) - * Copyright (C) $$Year-Rel$$ The Jalview Authors - * - * This file is part of Jalview. - * - * 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. - * - * 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 . - * The Jalview Authors are detailed in the 'AUTHORS' file. - */ -package jalview.datamodel; - -import java.util.Iterator; -import java.util.List; -import java.util.NoSuchElementException; - -/** - * An iterator which iterates over all visible columns in an alignment - * - * @author kmourao - * - */ -public class VisibleColsIterator implements Iterator -{ - private int last; - - private int current; - - private int next; - - private List hidden; - - private int lasthiddenregion; - - public VisibleColsIterator(int firstcol, int lastcol, - HiddenColumns hiddenCols) - { - last = lastcol; - current = firstcol; - next = firstcol; - hidden = hiddenCols.getHiddenColumnsCopy(); - lasthiddenregion = -1; - - if (hidden != null) - { - int i = 0; - for (i = 0; i < hidden.size(); ++i) - { - if (current >= hidden.get(i)[0] && current <= hidden.get(i)[1]) - { - // current is hidden, move to right - current = hidden.get(i)[1] + 1; - next = current; - } - if (current < hidden.get(i)[0]) - { - break; - } - } - lasthiddenregion = i - 1; - - for (i = hidden.size() - 1; i >= 0; --i) - { - if (last >= hidden.get(i)[0] && last <= hidden.get(i)[1]) - { - // last is hidden, move to left - last = hidden.get(i)[0] - 1; - } - if (last > hidden.get(i)[1]) - { - break; - } - } - } - } - - @Override - public boolean hasNext() - { - return next <= last; - } - - @Override - public Integer next() - { - if (next > last) - { - throw new NoSuchElementException(); - } - current = next; - if ((hidden != null) && (lasthiddenregion + 1 < hidden.size())) - { - // still some more hidden regions - if (next + 1 < hidden.get(lasthiddenregion + 1)[0]) - { - // next+1 is still before the next hidden region - next++; - } - else if ((next + 1 >= hidden.get(lasthiddenregion + 1)[0]) - && (next + 1 <= hidden.get(lasthiddenregion + 1)[1])) - { - // next + 1 is in the next hidden region - next = hidden.get(lasthiddenregion + 1)[1] + 1; - lasthiddenregion++; - } - } - else - { - // finished with hidden regions, just increment normally - next++; - } - return current; - } - - @Override - public void remove() - { - throw new UnsupportedOperationException(); - } -}