+ * hack to highlight a range of positions at once on any structure views
+ *
+ * @param sequenceRef
+ * @param is
+ * - series of int start-end ranges as positions on sequenceRef
+ * @param i
+ * @param object
+ */
+ public void highlightPositionsOn(SequenceI sequenceRef, int[][] is,
+ Object source)
+ {
+ boolean hasSequenceListeners = handlingVamsasMo
+ || !seqmappings.isEmpty();
+ SearchResultsI results = null;
+ ArrayList<Integer> listOfPositions = new ArrayList<Integer>();
+ for (int[] s_e : is)
+ {
+ for (int p = s_e[0]; p <= s_e[1]; listOfPositions.add(p++))
+ ;
+ }
+ int seqpos[] = new int[listOfPositions.size()];
+ int i = 0;
+ for (Integer p : listOfPositions)
+ {
+ seqpos[i++] = p;
+ }
+
+ for (i = 0; i < listeners.size(); i++)
+ {
+ Object listener = listeners.elementAt(i);
+ if (listener == source)
+ {
+ // TODO listener (e.g. SeqPanel) is never == source (AlignViewport)
+ // Temporary fudge with SequenceListener.getVamsasSource()
+ continue;
+ }
+ if (listener instanceof StructureListener)
+ {
+ highlightStructure((StructureListener) listener, sequenceRef,
+ seqpos);
+ }
+
+ }
+ }
+
+ /**