From cc0d171c5cd1057693960b7f63aee29e7f70ee8e Mon Sep 17 00:00:00 2001 From: sam-anthony Date: Sun, 27 Mar 2022 21:31:39 -0230 Subject: variable number of datapoints --- ui.go | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) (limited to 'ui.go') diff --git a/ui.go b/ui.go index ec49184..b12ff07 100644 --- a/ui.go +++ b/ui.go @@ -1,6 +1,7 @@ package main import ( + "fmt" g "github.com/AllenDang/giu" "strconv" ) @@ -183,3 +184,72 @@ func massFlowRateRow() *g.TableRowWidget { } return g.TableRow(widgets...) } + +func duplicateDeleteRow() *g.TableRowWidget { + widgets := []g.Widget{g.Label(""), g.Label("")} + for i := 0; i < numPoints; i++ { + i := i + widgets = append(widgets, g.Row( + g.Button("Duplicate").OnClick(func() { + numPoints++ + engineSpeed = insert( + engineSpeed, + engineSpeed[i], + i, + ) + volumetricEfficiency = insert( + volumetricEfficiency, + volumetricEfficiency[i], + i, + ) + intakeAirTemperature = insert( + intakeAirTemperature, + intakeAirTemperature[i], + i, + ) + manifoldPressure = insert( + manifoldPressure, + manifoldPressure[i], + i, + ) + pressureRatio = insert( + pressureRatio, + pressureRatio[i], + i, + ) + engineMassFlowRate = insert( + engineMassFlowRate, + engineMassFlowRate[i], + i, + ) + }), + g.Button("Delete").OnClick(func() { + if numPoints < 2 { + return + } + numPoints-- + engineSpeed = remove(engineSpeed, i) + volumetricEfficiency = remove(volumetricEfficiency, i) + intakeAirTemperature = remove(intakeAirTemperature, i) + manifoldPressure = remove(manifoldPressure, i) + pressureRatio = remove(pressureRatio, i) + engineMassFlowRate = remove(engineMassFlowRate, i) + }), + )) + } + return g.TableRow(widgets...) +} + +func columns() []*g.TableColumnWidget { + widgets := []*g.TableColumnWidget{ + g.TableColumn("Parameter"), + g.TableColumn("Unit"), + } + for i := 0; i < numPoints; i++ { + widgets = append( + widgets, + g.TableColumn(fmt.Sprintf("Point %d", i+1)), + ) + } + return widgets +} -- cgit v1.2.3