import jalview.viewmodel.annotationfilter.AnnotationFilterParameter.SearchableAnnotationField;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Enumeration;
+import java.util.Collections;
- import java.util.Enumeration;
import java.util.List;
import java.util.Vector;
*/
public class ColumnSelection
{
-- Vector selected = new Vector();
++ Vector<Integer> selected = new Vector<Integer>();
// Vector of int [] {startCol, endCol}
Vector<int[]> hiddenColumns;
}
/**
-- * removes col from selection
++ * Removes value 'col' from the selection (not the col'th item)
*
* @param col
* index of column to be removed
if (selected.contains(colInt))
{
++ // if this ever changes to List.remove(), ensure Integer not int argument
++ // as List.remove(int i) removes the i'th item which is wrong
selected.removeElement(colInt);
}
}
*/
public int columnAt(int i)
{
-- return ((Integer) selected.elementAt(i)).intValue();
++ return selected.elementAt(i).intValue();
}
/**
if (temp >= start)
{
++ // if this ever changes to List.set(), swap parameter order!!
selected.setElementAt(new Integer(temp - change), i);
}
}
if (temp >= start)
{
++ // if this ever changes to List.set(), swap parameter order!!
selected.setElementAt(new Integer(temp - change), i);
}
}
{
if (shiftrecord != null)
{
- List<int[]> shifts = shiftrecord.getShifts();
- Vector shifts = shiftrecord.shifts;
++ final List<int[]> shifts = shiftrecord.getShifts();
if (shifts != null && shifts.size() > 0)
{
int shifted = 0;
* @param intervals
* @return
*/
- private boolean pruneIntervalVector(List<int[]> shifts, Vector intervals)
- private boolean pruneIntervalVector(Vector deletions, Vector intervals)
++ private boolean pruneIntervalVector(final List<int[]> shifts,
++ Vector<int[]> intervals)
{
boolean pruned = false;
- int i = 0, j = intervals.size() - 1, s = 0, t = deletions.size() - 1;
- int hr[] = (int[]) intervals.elementAt(i);
- int sr[] = (int[]) deletions.elementAt(s);
+ int i = 0, j = intervals.size() - 1, s = 0, t = shifts.size() - 1;
- int hr[] = (int[]) intervals.elementAt(i);
++ int hr[] = intervals.elementAt(i);
+ int sr[] = shifts.get(s);
while (i <= j && s <= t)
{
boolean trailinghn = hr[1] >= sr[0];
{
if (i < j)
{
-- hr = (int[]) intervals.elementAt(++i);
++ hr = intervals.elementAt(++i);
}
else
{
j--;
if (i <= j)
{
-- hr = (int[]) intervals.elementAt(i);
++ hr = intervals.elementAt(i);
}
continue;
}
// operations.
}
- private boolean pruneColumnList(List<int[]> shifts, Vector list)
- private boolean pruneColumnList(Vector deletion, Vector list)
++ private boolean pruneColumnList(final List<int[]> shifts,
++ Vector<Integer> list)
{
- int s = 0, t = deletion.size();
- int[] sr = (int[]) list.elementAt(s++);
+ int s = 0, t = shifts.size();
+ int[] sr = shifts.get(s++);
boolean pruned = false;
int i = 0, j = list.size();
while (i < j && s <= t)
{
-- int c = ((Integer) list.elementAt(i++)).intValue();
++ int c = list.elementAt(i++).intValue();
if (sr[0] <= c)
{
if (sr[1] + sr[0] >= c)
{
if (deletions != null)
{
- List<int[]> shifts = deletions.getShifts();
- Vector shifts = deletions.shifts;
++ final List<int[]> shifts = deletions.getShifts();
if (shifts != null && shifts.size() > 0)
{
// delete any intervals intersecting.
{
if (hiddenColumns == null)
{
-- hiddenColumns = new Vector();
++ hiddenColumns = new Vector<int[]>();
}
boolean added = false;
{
if (copy.selected != null)
{
-- selected = new Vector();
++ selected = new Vector<Integer>();
for (int i = 0, j = copy.selected.size(); i < j; i++)
{
selected.addElement(copy.selected.elementAt(i));
}
if (copy.hiddenColumns != null)
{
-- hiddenColumns = new Vector(copy.hiddenColumns.size());
++ hiddenColumns = new Vector<int[]>(copy.hiddenColumns.size());
for (int i = 0, j = copy.hiddenColumns.size(); i < j; i++)
{
int[] rh, cp;
{
if (hiddenColumns != null && hiddenColumns.size() > 0)
{
-- Vector visiblecontigs = new Vector();
++ List<int[]> visiblecontigs = new ArrayList<int[]>();
List<int[]> regions = getHiddenColumns();
int vstart = start;
}
if (hideStart > vstart)
{
-- visiblecontigs.addElement(new int[]
++ visiblecontigs.add(new int[]
{ vstart, hideStart - 1 });
}
vstart = hideEnd + 1;
if (vstart < end)
{
-- visiblecontigs.addElement(new int[]
++ visiblecontigs.add(new int[]
{ vstart, end - 1 });
}
int[] vcontigs = new int[visiblecontigs.size() * 2];
for (int i = 0, j = visiblecontigs.size(); i < j; i++)
{
-- int[] vc = (int[]) visiblecontigs.elementAt(i);
-- visiblecontigs.setElementAt(null, i);
++ int[] vc = visiblecontigs.get(i);
++ visiblecontigs.set(i, null);
vcontigs[i * 2] = vc[0];
vcontigs[i * 2 + 1] = vc[1];
}
-- visiblecontigs.removeAllElements();
++ visiblecontigs.clear();
return vcontigs;
}
else
if (hiddenColumns != null && hiddenColumns.size() > 0)
{
// then mangle the alignmentAnnotation annotation array
-- Vector annels = new Vector();
++ Vector<Annotation []> annels = new Vector<Annotation []>();
Annotation[] els = null;
List<int[]> regions = getHiddenColumns();
int blockStart = start, blockEnd = end;
{
return;
}
-- Enumeration e = annels.elements();
++
alignmentAnnotation.annotations = new Annotation[w];
w = 0;
-- while (e.hasMoreElements())
++
++ for (Annotation [] chnk : annels)
{
-- Annotation[] chnk = (Annotation[]) e.nextElement();
System.arraycopy(chnk, 0, alignmentAnnotation.annotations, w,
chnk.length);
w += chnk.length;
{
if (colsel != null && colsel.size() > 0)
{
-- Enumeration e = colsel.getSelected().elements();
-- while (e.hasMoreElements())
++ for (Integer col : colsel.getSelected())
{
-- Object eo = e.nextElement();
-- if (hiddenColumns != null && isVisible(((Integer) eo).intValue()))
++ if (hiddenColumns != null && isVisible(col.intValue()))
{
-- if (!selected.contains(eo))
++ if (!selected.contains(col))
{
-- selected.addElement(eo);
++ selected.addElement(col);
}
}
}
*/
public void setElementsFrom(ColumnSelection colsel)
{
-- selected = new Vector();
++ selected = new Vector<Integer>();
if (colsel.selected != null && colsel.selected.size() > 0)
{
if (hiddenColumns != null && hiddenColumns.size() > 0)
{
// only select visible columns in this columns selection
-- selected = new Vector();
addElementsFrom(colsel);
}
else
{
// add everything regardless
-- Enumeration en = colsel.selected.elements();
-- while (en.hasMoreElements())
++ for (Integer col : colsel.getSelected())
{
-- selected.addElement(en.nextElement());
++ addElement(col);
}
}
}