X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FHiddenColumns.java;h=89fb1ab21b2246e1dd61aaf3fec356e731ef2672;hb=55895fe0142a04bd24d3166314a48b3282314a34;hp=45dcab28105a29f0f4222a144a95c8ccb22c309c;hpb=405e8b16ccb9b1297e1158ace036f0b1634dac67;p=jalview.git diff --git a/src/jalview/datamodel/HiddenColumns.java b/src/jalview/datamodel/HiddenColumns.java index 45dcab2..89fb1ab 100644 --- a/src/jalview/datamodel/HiddenColumns.java +++ b/src/jalview/datamodel/HiddenColumns.java @@ -135,9 +135,9 @@ public class HiddenColumns // all overlapping regions and we need contained regions if (region[0] >= start && region[1] <= end) { - hiddenColumns.add( - new int[] - { region[0] - offset, region[1] - offset }); + hiddenColumns + .add(new int[] + { region[0] - offset, region[1] - offset }); numColumns += region[1] - region[0] + 1; } } @@ -169,7 +169,8 @@ public class HiddenColumns if (!hiddenColumns.isEmpty()) { // set up cursor reset values - HiddenCursorPosition cursorPos = cursor.findRegionForColumn(start, false); + HiddenCursorPosition cursorPos = cursor.findRegionForColumn(start, + false); regionindex = cursorPos.getRegionIndex(); if (regionindex > 0) @@ -252,7 +253,7 @@ public class HiddenColumns int oldstart = region[0]; region[0] = Math.min(region[0], start); numColumns += oldstart - region[0]; // new columns are between old and - // adjusted starts + // adjusted starts added = true; } else if (start <= region[1] + 1) @@ -469,6 +470,10 @@ public class HiddenColumns } } + /** + * Answers true if obj is an instance of HiddenColumns, and holds the same + * array of start-end column ranges as this, else answers false + */ @Override public boolean equals(Object obj) { @@ -524,8 +529,7 @@ public class HiddenColumns if (!hiddenColumns.isEmpty()) { - result += cursor.findRegionForColumn(column, true) - .getHiddenSoFar(); + result += cursor.findRegionForColumn(column, true).getHiddenSoFar(); } return result; @@ -558,11 +562,11 @@ public class HiddenColumns .findRegionForColumn(hiddenColumn, false); int index = cursorPos.getRegionIndex(); int hiddenBeforeCol = cursorPos.getHiddenSoFar(); - + // just subtract hidden cols count - this works fine if column is // visible result = hiddenColumn - hiddenBeforeCol; - + // now check in case column is hidden - it will be in the returned // hidden region if (index < hiddenColumns.size()) @@ -740,7 +744,6 @@ public class HiddenColumns } } - /** * Returns a hashCode built from hidden column ranges */ @@ -794,7 +797,7 @@ public class HiddenColumns for (int firstSet = tohide .nextSetBit(start), lastSet = start; firstSet >= start && lastSet <= end; firstSet = tohide - .nextSetBit(lastSet)) + .nextSetBit(lastSet)) { lastSet = tohide.nextClearBit(firstSet); if (lastSet <= end) @@ -844,7 +847,7 @@ public class HiddenColumns try { LOCK.writeLock().lock(); - + if (!hiddenColumns.isEmpty()) { HiddenCursorPosition pos = cursor.findRegionForColumn(start, false); @@ -1008,7 +1011,7 @@ public class HiddenColumns try { LOCK.readLock().lock(); - return new HiddenColsIterator(hiddenColumns); + return new RangeIterator(hiddenColumns); } finally { LOCK.readLock().unlock(); @@ -1029,7 +1032,7 @@ public class HiddenColumns try { LOCK.readLock().lock(); - return new HiddenColsIterator(start, end, hiddenColumns); + return new RangeIterator(start, end, hiddenColumns); } finally { LOCK.readLock().unlock(); @@ -1045,7 +1048,7 @@ public class HiddenColumns * @param end * position to end at (inclusive, visible column position) */ - public Iterator getBoundedStartIterator(int start, int end) + public Iterator getStartRegionIterator(int start, int end) { try { @@ -1062,8 +1065,7 @@ public class HiddenColumns HiddenCursorPosition pos = cursor .findRegionForColumn(absoluteStart - 1, false); - return new BoundedStartRegionIterator(pos, start, end, - hiddenColumns); + return new StartRegionIterator(pos, start, end, hiddenColumns); } finally { LOCK.readLock().unlock(); @@ -1084,7 +1086,8 @@ public class HiddenColumns try { LOCK.readLock().lock(); - return new VisibleColsIterator(start, end, hiddenColumns); + return new RangeElementsIterator( + new VisibleContigsIterator(start, end + 1, hiddenColumns)); } finally { LOCK.readLock().unlock(); @@ -1103,8 +1106,7 @@ public class HiddenColumns * if true, start and end are visible column positions, not absolute * positions* */ - public VisibleContigsIterator getVisContigsIterator(int start, - int end, + public VisibleContigsIterator getVisContigsIterator(int start, int end, boolean useVisibleCoords) { int adjstart = start;