git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'releases/Release_2_11_1_4_debianpatches' into task/JAL-3521_Slimmed_dow...
[jalview.git]
/
src
/
jalview
/
analysis
/
Grouping.java
diff --git
a/src/jalview/analysis/Grouping.java
b/src/jalview/analysis/Grouping.java
index
ddf483b
..
88d3525
100644
(file)
--- a/
src/jalview/analysis/Grouping.java
+++ b/
src/jalview/analysis/Grouping.java
@@
-21,11
+21,11
@@
package jalview.analysis;
import jalview.datamodel.ColumnSelection;
package jalview.analysis;
import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.HiddenColumns;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
import java.util.ArrayList;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@
-92,8
+92,8
@@
public class Grouping
i = 0;
for (String key : gps.keySet())
{
i = 0;
for (String key : gps.keySet())
{
- SequenceGroup group = new SequenceGroup(gps.get(key), "Subseq: "
- + key, null, true, true, false, 0, width - 1);
+ SequenceGroup group = new SequenceGroup(gps.get(key),
+ "Subseq: " + key, null, true, true, false, 0, width - 1);
groups[i++] = group;
}
groups[i++] = group;
}
@@
-110,10
+110,12
@@
public class Grouping
* @param sequences
* @param columnSelection
* @param list
* @param sequences
* @param columnSelection
* @param list
+ * @param hiddenColumns
* @return
*/
public static SequenceGroup[] makeGroupsFromCols(SequenceI[] sequences,
* @return
*/
public static SequenceGroup[] makeGroupsFromCols(SequenceI[] sequences,
- ColumnSelection cs, List<SequenceGroup> list)
+ ColumnSelection cs, List<SequenceGroup> list,
+ HiddenColumns hiddenColumns)
{
// TODO: determine how to get/recover input data for group generation
Map<String, List<SequenceI>> gps = new HashMap<String, List<SequenceI>>();
{
// TODO: determine how to get/recover input data for group generation
Map<String, List<SequenceI>> gps = new HashMap<String, List<SequenceI>>();
@@
-128,19
+130,27
@@
public class Grouping
}
}
}
}
}
}
+
+ /*
+ * get selected columns (in the order they were selected);
+ * note this could include right-to-left ranges
+ */
int[] spos = new int[cs.getSelected().size()];
int width = -1;
int i = 0;
for (Integer pos : cs.getSelected())
{
int[] spos = new int[cs.getSelected().size()];
int width = -1;
int i = 0;
for (Integer pos : cs.getSelected())
{
- spos[i++] = pos.intValue();
+ if (hiddenColumns == null || hiddenColumns.isVisible(pos.intValue()))
+ {
+ spos[i++] = pos.intValue();
+ }
}
}
-
- /*
- * ensure column selection is in ascending order
- */
- Arrays.sort(spos);
-
+ if (i < spos.length)
+ {
+ // mark end of visible column position
+ spos[i] = -1;
+ }
+ // actual number of visible columns
for (i = 0; i < sequences.length; i++)
{
int slen = sequences[i].getLength();
for (i = 0; i < sequences.length; i++)
{
int slen = sequences[i].getLength();
@@
-157,6
+167,10
@@
public class Grouping
}
for (int p : spos)
{
}
for (int p : spos)
{
+ if (p < 0)
+ {
+ break;
+ }
if (p >= slen)
{
schar.append("~");
if (p >= slen)
{
schar.append("~");
@@
-179,8
+193,8
@@
public class Grouping
i = 0;
for (String key : gps.keySet())
{
i = 0;
for (String key : gps.keySet())
{
- SequenceGroup group = new SequenceGroup(gps.get(key), "Subseq: "
- + key, null, true, true, false, 0, width - 1);
+ SequenceGroup group = new SequenceGroup(gps.get(key),
+ "Subseq: " + key, null, true, true, false, 0, width - 1);
groups[i++] = group;
}
groups[i++] = group;
}