Changes between Initial Version and Version 1 of Ticket #17906, comment 10


Ignore:
Timestamp:
2019-09-29T21:13:19+02:00 (6 years ago)
Author:
Don-vip

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #17906, comment 10

    initial v1  
    2424        selectionModel.insertIndexInterval(start, length, true);
    2525}}}
     26then
     27{{{
     28#!java
     29    /**
     30     * Insert length indices beginning before/after index. If the value
     31     * at index is itself selected and the selection mode is not
     32     * SINGLE_SELECTION, set all of the newly inserted items as selected.
     33     * Otherwise leave them unselected. This method is typically
     34     * called to sync the selection model with a corresponding change
     35     * in the data model.
     36     */
     37    public void insertIndexInterval(int index, int length, boolean before)
     38    {
     39        /* The first new index will appear at insMinIndex and the last
     40         * one will appear at insMaxIndex
     41         */
     42        int insMinIndex = (before) ? index : index + 1;
     43        int insMaxIndex = (insMinIndex + length) - 1;
     44
     45        /* Right shift the entire bitset by length, beginning with
     46         * index-1 if before is true, index+1 if it's false (i.e. with
     47         * insMinIndex).
     48         */
     49        for(int i = maxIndex; i >= insMinIndex; i--) {
     50            setState(i + length, value.get(i)); // <- selection changes here
     51        }
     52}}}