diff options
| author | sam-anthony <samanthony6@protonmail.com> | 2022-03-27 21:31:39 -0230 |
|---|---|---|
| committer | sam-anthony <samanthony6@protonmail.com> | 2022-03-27 21:31:39 -0230 |
| commit | cc0d171c5cd1057693960b7f63aee29e7f70ee8e (patch) | |
| tree | de520f33eb639da17f19bbd15110aa56d501c2b6 /ui.go | |
| parent | 5bb9043aea41498c886aabdc7f1a32e40011dc4a (diff) | |
| download | volute-cc0d171c5cd1057693960b7f63aee29e7f70ee8e.zip | |
variable number of datapoints
Diffstat (limited to 'ui.go')
| -rw-r--r-- | ui.go | 70 |
1 files changed, 70 insertions, 0 deletions
@@ -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 +} |