/** * Adds a FunctionPanel. * * @param name a descriptive name * @param panel the FunctionPanel * @return the added panel */ @Override public FunctionPanel addPanel(String name, FunctionPanel panel) { super.addPanel(name, panel); // autoload data functions, if any, for this track type Class<?> trackType = null; try { trackType = Class.forName(panel.getDescription()); } catch (ClassNotFoundException ex) { } // load from Strings read from tracker.prefs (deprecated Dec 2014) for (String xml : Tracker.dataFunctionControlStrings) { XMLControl control = new XMLControlElement(xml); // determine what track type the control is for Class<?> controlTrackType = null; try { controlTrackType = Class.forName(control.getString("description")); // $NON-NLS-1$); } catch (Exception ex) { } if (controlTrackType == trackType) { control.loadObject(panel); } } // load from XMLControls autoloaded from XML files in search paths for (String path : Tracker.dataFunctionControls.keySet()) { ArrayList<XMLControl> controls = Tracker.dataFunctionControls.get(path); for (XMLControl control : controls) { // determine what track type the control is for Class<?> controlTrackType = null; try { controlTrackType = Class.forName(control.getString("description")); // $NON-NLS-1$); } catch (Exception ex) { } if (controlTrackType == trackType) { // copy the control for modification if any functions are autoload_off XMLControl copyControl = new XMLControlElement(control); eliminateExcludedFunctions(copyControl, path); // change duplicate function names without requiring user confirmation FunctionEditor editor = panel.getFunctionEditor(); boolean confirmChanges = editor.getConfirmChanges(); editor.setConfirmChanges(false); copyControl.loadObject(panel); editor.setConfirmChanges(confirmChanges); } } } return panel; }