< prev index next >

modules/base/src/main/java/javafx/collections/transformation/SortedList.java

Print this page
rev 9769 : 8139848: SortedList should provide a way to map source index to view index


 207                 this.perm[otherIdx] = otherIdx;
 208                 this.perm[idx] = idx;
 209                 perm[rperm[idx]] = otherIdx;
 210                 perm[rperm[otherIdx]] = idx;
 211                 int tp = rperm[idx];
 212                 rperm[idx] = rperm[otherIdx];
 213                 rperm[otherIdx] = tp;
 214                 changed = true;
 215             }
 216             if (changed) {
 217                 fireChange(new SimplePermutationChange<>(0, size, perm, this));
 218             }
 219         }
 220     }
 221 
 222     @Override
 223     public int getSourceIndex(int index) {
 224         return sorted[index].index;
 225     }
 226 





 227     private void updatePermutationIndexes(Change<? extends E> change) {
 228         for (int i = 0; i < size; ++i) {
 229             int p = change.getPermutation(sorted[i].index);
 230             sorted[i].index = p;
 231             perm[p] = i;
 232         }
 233     }
 234 
 235     private void updateUnsorted(Change<? extends E> c) {
 236         while (c.next()) {
 237             if (c.wasPermutated()) {
 238                 Element[] sortedTmp = new Element[sorted.length];
 239                 for (int i = 0; i < size; ++i) {
 240                     if (i >= c.getFrom() && i < c.getTo()) {
 241                         int p = c.getPermutation(i);
 242                         sortedTmp[p] = sorted[i];
 243                         sortedTmp[p].index = p;
 244                         perm[i] = i;
 245                     } else {
 246                         sortedTmp[i] = sorted[i];




 207                 this.perm[otherIdx] = otherIdx;
 208                 this.perm[idx] = idx;
 209                 perm[rperm[idx]] = otherIdx;
 210                 perm[rperm[otherIdx]] = idx;
 211                 int tp = rperm[idx];
 212                 rperm[idx] = rperm[otherIdx];
 213                 rperm[otherIdx] = tp;
 214                 changed = true;
 215             }
 216             if (changed) {
 217                 fireChange(new SimplePermutationChange<>(0, size, perm, this));
 218             }
 219         }
 220     }
 221 
 222     @Override
 223     public int getSourceIndex(int index) {
 224         return sorted[index].index;
 225     }
 226 
 227     @Override
 228     public int getViewIndex(int index) {
 229         return perm[index];
 230     }
 231 
 232     private void updatePermutationIndexes(Change<? extends E> change) {
 233         for (int i = 0; i < size; ++i) {
 234             int p = change.getPermutation(sorted[i].index);
 235             sorted[i].index = p;
 236             perm[p] = i;
 237         }
 238     }
 239 
 240     private void updateUnsorted(Change<? extends E> c) {
 241         while (c.next()) {
 242             if (c.wasPermutated()) {
 243                 Element[] sortedTmp = new Element[sorted.length];
 244                 for (int i = 0; i < size; ++i) {
 245                     if (i >= c.getFrom() && i < c.getTo()) {
 246                         int p = c.getPermutation(i);
 247                         sortedTmp[p] = sorted[i];
 248                         sortedTmp[p].index = p;
 249                         perm[i] = i;
 250                     } else {
 251                         sortedTmp[i] = sorted[i];


< prev index next >