MCPcopy Create free account
hub / github.com/OpenSourcePhysics/osp / addTabs

Method addTabs

src/org/opensourcephysics/tools/DataTool.java:450–497  ·  view source on GitHub ↗

Adds tabs loaded with data from an xml control. @param control the xml control @param whenDone

(XMLControl control, Consumer<ArrayList<DataToolTab>> whenDone)

Source from the content-addressed store, hash-verified

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).

Callers 5

DataToolMethod · 0.95
openMethod · 0.95
loadDatasetMethod · 0.95
sendMethod · 0.95
pasteActionMethod · 0.95

Calls 12

addTabMethod · 0.95
refreshGUIMethod · 0.95
loadObjectMethod · 0.95
createTabMethod · 0.95
loadTabsFromXMLAsyncMethod · 0.95
getObjectClassMethod · 0.65
setValueMethod · 0.65
loadObjectMethod · 0.65
acceptMethod · 0.65
getObjectClassNameMethod · 0.65
getChildControlMethod · 0.65
addMethod · 0.45

Tested by

no test coverage detected