Adds tabs loaded with data from an xml control. @param control the xml control @param whenDone
(XMLControl control, Consumer<ArrayList<DataToolTab>> whenDone)
| 448 | * @param whenDone |
| 449 | */ |
| 450 | public void addTabs(XMLControl control, Consumer<ArrayList<DataToolTab>> whenDone) { |
| 451 | // * @return a list of newly added tabs, or null if failed |
| 452 | // BH 2020.02.13 changed from returning tabs to void |
| 453 | // if control is for DataToolTab class, load tab from control |
| 454 | if (DataToolTab.class == control.getObjectClass()) { |
| 455 | // store this DataTool in the control so DataToolTab loader can use it for |
| 456 | // instantiation |
| 457 | control.setValue("datatool", this); //$NON-NLS-1$ |
| 458 | |
| 459 | isLoading = true; |
| 460 | DataToolTab tab = (DataToolTab) control.loadObject(null); |
| 461 | addTab(tab); |
| 462 | tab.refreshGUI(); |
| 463 | isLoading = false; |
| 464 | ArrayList<DataToolTab> tabs = new ArrayList<DataToolTab>(); |
| 465 | tabs.add(tab); |
| 466 | if (whenDone != null) |
| 467 | whenDone.accept(tabs); |
| 468 | return; |
| 469 | } |
| 470 | // if control is for FourierToolTab, load the source data into a tab |
| 471 | if (control.getObjectClassName().endsWith("FourierToolTab")) { //$NON-NLS-1$ |
| 472 | XMLControl child = control.getChildControl("source_data"); //$NON-NLS-1$ |
| 473 | Data source = (Data) child.loadObject(null); |
| 474 | DataToolTab tab = createTab(source); |
| 475 | addTab(tab); |
| 476 | tab.refreshGUI(); |
| 477 | ArrayList<DataToolTab> tabs = new ArrayList<DataToolTab>(); |
| 478 | tabs.add(tab); |
| 479 | if (whenDone != null) |
| 480 | whenDone.accept(tabs); |
| 481 | return; |
| 482 | } |
| 483 | // otherwise load data from control into tabs |
| 484 | loadTabsFromXMLAsync(control, new Consumer<ArrayList<DataToolTab>>() { |
| 485 | |
| 486 | @Override |
| 487 | public void accept(ArrayList<DataToolTab> tabs) { |
| 488 | for (DataToolTab tab : tabs) { |
| 489 | addTab(tab); |
| 490 | tab.refreshGUI(); |
| 491 | } |
| 492 | if (whenDone != null) |
| 493 | whenDone.accept(tabs); |
| 494 | } |
| 495 | |
| 496 | }); |
| 497 | } |
| 498 | |
| 499 | /** |
| 500 | * Creates a tab for each Data object returned by DataTool.getDataList(source). |
no test coverage detected