/* * Update a function. */ private void updatePlot( Function oldFunc, String newExpr[], Color3f newColor, String[] bounds, float[] stepSize) throws IllegalExpressionException { // Try evaluating the function. Function newFunc = createNewFunction(newExpr, newColor, bounds, stepSize); newFunc.setView(oldFunc.getView()); funcList.set(funcList.indexOf(oldFunc), newFunc); updateReferences(newFunc); FunctionLabel label = map.get(oldFunc); label.setMother(newFunc); map.remove(oldFunc); map.put(newFunc, label); setSelected(newFunc); plotter.removePlot(oldFunc); spawnNewPlotterThread(newFunc); }
public void setSelected(Function f) { try { ACTIVE_FUNCTION = f; if (f != selectedFunction) { // Deselection. if (selectedFunction != null && selectedFunction == templateFunc) { for (int i = 0; i < input.length; i++) { input[i].setBackground(NORMAL_COLOR); } } else if (selectedFunction != null) { FunctionLabel label = map.get(selectedFunction); if (label != null) label.setSelected(false); } selectedFunction = f; // Selection of input fields. if (selectedFunction != null && selectedFunction == templateFunc) { for (int i = 0; i < input.length; i++) { input[i].setBackground(SELECTED_COLOR); } updateReferences(selectedFunction); } } // Needed for picking. The caret might not be active, if (selectedFunction != null && selectedFunction != templateFunc) { FunctionLabel selectedLabel = map.get(selectedFunction); updateReferences(selectedFunction); selectedLabel.setSelected(true); } } catch (IllegalExpressionException e) { } }