aboutsummaryrefslogtreecommitdiffstats
path: root/ui.go
diff options
context:
space:
mode:
authorsam-anthony <samanthony6@protonmail.com>2022-03-27 21:31:39 -0230
committersam-anthony <samanthony6@protonmail.com>2022-03-27 21:31:39 -0230
commitcc0d171c5cd1057693960b7f63aee29e7f70ee8e (patch)
treede520f33eb639da17f19bbd15110aa56d501c2b6 /ui.go
parent5bb9043aea41498c886aabdc7f1a32e40011dc4a (diff)
downloadvolute-cc0d171c5cd1057693960b7f63aee29e7f70ee8e.zip
variable number of datapoints
Diffstat (limited to 'ui.go')
-rw-r--r--ui.go70
1 files changed, 70 insertions, 0 deletions
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
+}