package aliview.sequences; public interface SequenceSelectionModel extends Cloneable { public abstract boolean isSelected(int n); public abstract void clearAll(); public abstract void selectAll(); public abstract int getFirstSelectedPosition(); public abstract int getLastSelectedPosition(int i); public abstract boolean hasSelection(); public abstract void setSelectionAt(int i); public abstract void clearSelectionAt(int i); public abstract int[] getSelectedPositions(int startIndex, int endIndex); public abstract int countSelectedPositions(int startIndex, int endIndex); public abstract void setSelection(int startIndex, int endIndex, boolean clearFirst); public abstract void clearSelection(int startIndex, int endIndex, boolean clearFirst); /* * * TODO these two methods could be one and instead tabe care of selection movement * */ public abstract void insertNewPosAt(int n); public abstract void removePosition(int index); public abstract void rightPad(int length); public abstract void leftPad(int length); public abstract int countPositionsUntilSelectedCount(int posInSeq); public abstract boolean isAllSelected(); public abstract void invertSelection(int length); }