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];
|