378 |
378 |
return orderedValues;
|
379 |
379 |
}
|
380 |
380 |
|
381 |
|
|
382 |
|
/**
|
383 |
|
* Gets a map where the values of the dataset are orderer by X item value and flatten despite of the series.
|
384 |
|
* @param dataset
|
385 |
|
* @return
|
386 |
|
*/
|
387 |
|
// FIXME: not used?
|
388 |
|
public TreeMap<Object, ArrayList<Integer>> getItemsAndSeriesOrderedByXValues(XYDataset dataset) {
|
389 |
|
HashMap<Object, ArrayList<Integer>> allFlattenValues = new HashMap<Object, ArrayList<Integer>>();
|
390 |
|
for(int i = 0; i < dataset.getSeriesCount(); i++) {
|
391 |
|
for(int j = 0; j < dataset.getItemCount(i); j++) {
|
392 |
|
ArrayList<Integer> itemData = new ArrayList<Integer>(2);
|
393 |
|
itemData.add(i); // series
|
394 |
|
itemData.add(j); // item
|
395 |
|
|
396 |
|
// FIXME: tests, navigation clavier sur toutes les courbes en même temps d'une Progression (tri sur la valeur X du dataset, toute séries confondues)
|
397 |
|
// allFlattenValues.put((int) dataset.getXValue(i, j), itemData);
|
398 |
|
|
399 |
|
|
400 |
|
// Test CAXYDataset
|
401 |
|
|
402 |
|
// FIXME: tests, navigation clavier par ordre alphabétique d'une AFC (toute séries confondues)
|
403 |
|
String label = ((CAXYDataset)dataset).getLabel(i, j);
|
404 |
|
allFlattenValues.put(label, itemData);
|
405 |
|
|
406 |
|
// FIXME: tests, navigation clavier par coord X d'une AFC (toute séries confondues)
|
407 |
|
//allFlattenValues.put(dataset.getX(i, j), itemData);
|
408 |
|
|
409 |
|
}
|
410 |
|
}
|
411 |
|
|
412 |
|
|
413 |
|
// FIXME: tests, navigation clavier sur toutes les courbes en même temps d'une Progression
|
414 |
|
// TreeMap<Object, ArrayList<Integer>> orderedValues = new TreeMap<Object, ArrayList<Integer>>(allFlattenValues);
|
415 |
|
|
416 |
|
// FIXME: tests, navigation clavier par ordre alphabétique d'une AFC
|
417 |
|
TreeMap<Object, ArrayList<Integer>> orderedValues = new TreeMap<Object, ArrayList<Integer>>(Collator.getInstance());
|
418 |
|
orderedValues.putAll(allFlattenValues);
|
419 |
|
|
420 |
|
|
421 |
|
// FIXME : comparator tests
|
422 |
|
// TreeMap<String, Integer> treemap = new TreeMap<String, Integer>(new Comparator<String>() {
|
423 |
|
// public int compare(String o1, String o2) {
|
424 |
|
// return o1.toLowerCase().compareTo(o2.toLowerCase());
|
425 |
|
// }
|
426 |
|
// });
|
427 |
|
|
428 |
|
|
429 |
|
// FIXME: DEbug
|
430 |
|
// Set cles = orderedValues.keySet();
|
431 |
|
// System.err.println("MultipleItemsSelector.getItemsAndSeriesOrderedByXValues() size: " + orderedValues.size());
|
432 |
|
// Iterator<Integer> it = cles.iterator();
|
433 |
|
// while(it.hasNext()) {
|
434 |
|
// Object key = it.next();
|
435 |
|
// ArrayList<Integer> value = orderedValues.get(key);
|
436 |
|
// System.out.println("MultipleItemsSelector.getItemsAndSeriesOrdererByXValues(): item position = " + key + " series = " + value.get(0) + " item = " + value.get(1));
|
437 |
|
// }
|
438 |
|
|
439 |
|
return orderedValues;
|
440 |
|
}
|
441 |
|
|
442 |
|
|
443 |
|
|
444 |
|
|
445 |
|
/**
|
446 |
|
* Gets a map where the values of the dataset are orderer by label and flatten but grouped by series.
|
447 |
|
* @param dataset
|
448 |
|
* @return
|
449 |
|
*/
|
450 |
|
// FIXME: tests
|
451 |
|
// public TreeMap<Object, ArrayList<Integer>> getItemsAndSeriesOrderedByLabels(CAXYDataset dataset) {
|
452 |
|
// return this.getItemsAndSeriesOrderedByLabels(dataset, false, false);
|
453 |
|
// }
|
454 |
|
//
|
455 |
|
/**
|
456 |
|
* Gets a map where the values of the dataset are orderer by label and flatten but grouped by series.
|
457 |
|
* @param dataset
|
458 |
|
* @return
|
459 |
|
*/
|
460 |
|
// FIXME: tests, became useless ? (since we can give labels order with getItemsAndSeriesOrderedByLabels(CAXYDataset dataset, String[] rowLabels, String[] colLabels)) )
|
461 |
|
// public TreeMap<Object, ArrayList<Integer>> getItemsAndSeriesOrderedByLabels(CAXYDataset dataset, boolean rowsReverse, boolean colsReverse) {
|
462 |
|
//
|
463 |
|
// Comparator rowsComparator;
|
464 |
|
// Comparator colsComparator;
|
465 |
|
//
|
466 |
|
// if(rowsReverse) {
|
467 |
|
// rowsComparator = Collections.reverseOrder(Collator.getInstance());
|
468 |
|
// }
|
469 |
|
// else {
|
470 |
|
// rowsComparator = Collator.getInstance();
|
471 |
|
// }
|
472 |
|
//
|
473 |
|
// if(colsReverse) {
|
474 |
|
// colsComparator = Collections.reverseOrder(Collator.getInstance());
|
475 |
|
// }
|
476 |
|
// else {
|
477 |
|
// colsComparator = Collator.getInstance();
|
478 |
|
// }
|
479 |
|
//
|
480 |
|
//
|
481 |
|
// TreeMap<Object, ArrayList<Integer>> allFlattenRowsValues = new TreeMap<Object, ArrayList<Integer>>(rowsComparator);
|
482 |
|
// TreeMap<Object, ArrayList<Integer>> allFlattenColsValues = new TreeMap<Object, ArrayList<Integer>>(colsComparator);
|
483 |
|
//
|
484 |
|
// // sort the rows by label
|
485 |
|
// for(int i = 0; i < dataset.getItemCount(0); i++) {
|
486 |
|
// ArrayList<Integer> itemData = new ArrayList<Integer>(2);
|
487 |
|
// itemData.add(0); // series
|
488 |
|
// itemData.add(i); // item
|
489 |
|
// allFlattenRowsValues.put(((CAXYDataset)dataset).getLabel(0, i), itemData);
|
490 |
|
//
|
491 |
|
// // FIXME: tests, navigation clavier par coord X d'une AFC (toute séries confondues)
|
492 |
|
// //allFlattenRowsValues.put(dataset.getX(0, j), itemData);
|
493 |
|
// }
|
494 |
|
//
|
495 |
|
//
|
496 |
|
// // sort the cols by label
|
497 |
|
// for(int i = 0; i < dataset.getItemCount(1); i++) {
|
498 |
|
// ArrayList<Integer> itemData = new ArrayList<Integer>(2);
|
499 |
|
// itemData.add(1); // series
|
500 |
|
// itemData.add(i); // item
|
501 |
|
// allFlattenColsValues.put(((CAXYDataset)dataset).getLabel(1, i), itemData);
|
502 |
|
//
|
503 |
|
// // FIXME: tests, navigation clavier par coord X d'une AFC (toute séries confondues)
|
504 |
|
// //allFlattenColsValues.put(dataset.getX(1, j), itemData);
|
505 |
|
// }
|
506 |
|
//
|
507 |
|
//
|
508 |
|
//
|
509 |
|
// // FIXME: tests, navigation clavier par ordre alphabétique d'une AFC
|
510 |
|
// TreeMap<Object, ArrayList<Integer>> orderedValues = new TreeMap<Object, ArrayList<Integer>>();
|
511 |
|
//// if(revertedOrder) {
|
512 |
|
//// orderedValues = new TreeMap(Collections.reverseOrder());
|
513 |
|
//// }
|
514 |
|
//
|
515 |
|
//
|
516 |
|
// // put the rows order
|
517 |
|
// int i = 0;
|
518 |
|
// Set keys = allFlattenRowsValues.keySet();
|
519 |
|
// Iterator<Integer> it = keys.iterator();
|
520 |
|
// while(it.hasNext()) {
|
521 |
|
// Object key = it.next();
|
522 |
|
// orderedValues.put(i, allFlattenRowsValues.get(key));
|
523 |
|
// i++;
|
524 |
|
// }
|
525 |
|
// // put the cols order
|
526 |
|
// keys = allFlattenColsValues.keySet();
|
527 |
|
// it = keys.iterator();
|
528 |
|
// while(it.hasNext()) {
|
529 |
|
// Object key = it.next();
|
530 |
|
// orderedValues.put(i, allFlattenColsValues.get(key));
|
531 |
|
// i++;
|
532 |
|
// }
|
533 |
|
//
|
534 |
|
//
|
535 |
|
//
|
536 |
|
// //orderedValues.putAll(allFlattenRowsValues);
|
537 |
|
//
|
538 |
|
//
|
539 |
|
// // FIXME : comparator tests
|
540 |
|
//// TreeMap<String, Integer> treemap = new TreeMap<String, Integer>(new Comparator<String>() {
|
541 |
|
//// public int compare(String o1, String o2) {
|
542 |
|
//// return o1.toLowerCase().compareTo(o2.toLowerCase());
|
543 |
|
//// }
|
544 |
|
//// });
|
545 |
|
//
|
546 |
|
//
|
547 |
|
// // FIXME: DEbug
|
548 |
|
//// keys = orderedValues.keySet();
|
549 |
|
//// System.err.println("MultipleItemsSelector.getItemsAndSeriesOrderedByXValues() size: " + orderedValues.size());
|
550 |
|
//// it = keys.iterator();
|
551 |
|
//// while(it.hasNext()) {
|
552 |
|
//// Object key = it.next();
|
553 |
|
//// ArrayList<Integer> value = orderedValues.get(key);
|
554 |
|
//// System.out.println("MultipleItemsSelector.getItemsAndSeriesOrdererByXValues(): item position = " + key + " series = " + value.get(0) + " item = " + value.get(1));
|
555 |
|
//// }
|
556 |
|
//
|
557 |
|
// return orderedValues;
|
558 |
|
// }
|
559 |
|
|
560 |
381 |
@Override
|
561 |
382 |
public Class getResultDataClass() {
|
562 |
383 |
return CA.class;
|