summaryrefslogtreecommitdiff
path: root/ShedCalc/ParamView.swift
diff options
context:
space:
mode:
Diffstat (limited to 'ShedCalc/ParamView.swift')
-rw-r--r--ShedCalc/ParamView.swift117
1 files changed, 100 insertions, 17 deletions
diff --git a/ShedCalc/ParamView.swift b/ShedCalc/ParamView.swift
index 1f02856..690a1e8 100644
--- a/ShedCalc/ParamView.swift
+++ b/ShedCalc/ParamView.swift
@@ -23,7 +23,7 @@ struct ParamView: View {
TextField("Width", value: Binding(
get: { paramModel.width },
set: { newValue in
- if !newValue.isNaN && !newValue.isInfinite && newValue > 0.5 {
+ if !newValue.isNaN && !newValue.isInfinite && newValue > 0.5 && newValue < 10.0 {
paramModel.width = newValue
}
}
@@ -34,7 +34,7 @@ struct ParamView: View {
TextField("Length", value: Binding(
get: { paramModel.length },
set: { newValue in
- if !newValue.isNaN && !newValue.isInfinite && newValue > 0.5 {
+ if !newValue.isNaN && !newValue.isInfinite && newValue > 0.5 && newValue < 10.0 {
paramModel.length = newValue
}
}
@@ -45,7 +45,7 @@ struct ParamView: View {
TextField("Height", value: Binding(
get: { paramModel.height },
set: { newValue in
- if !newValue.isNaN && !newValue.isInfinite && newValue > 0.5 {
+ if !newValue.isNaN && !newValue.isInfinite && newValue > 0.5 && newValue < 3.0 {
paramModel.height = newValue
}
}
@@ -56,7 +56,7 @@ struct ParamView: View {
TextField("Spacing", value: Binding(
get: { paramModel.beamSpace },
set: { newValue in
- if !newValue.isNaN && !newValue.isInfinite && newValue > 0.15 {
+ if !newValue.isNaN && !newValue.isInfinite && newValue > 0.15 && newValue < 10.0 {
paramModel.beamSpace = newValue
}
}
@@ -76,18 +76,18 @@ struct ParamView: View {
}
HStack {
Text("OSB per sheet price")
- TextField("per sheet", value: Binding(
+ TextField("", value: Binding(
get: { paramModel.OSBSheetPrice },
set: { newValue in
- if !newValue.isNaN && !newValue.isInfinite && newValue > 0.15 {
- paramModel.beamSpace = newValue
+ if !newValue.isNaN && !newValue.isInfinite && newValue > 0.1 {
+ paramModel.OSBSheetPrice = newValue
}
}
), format: .number)
}
HStack {
Text("Beam price per meter")
- TextField("per meter", value: Binding(
+ TextField("", value: Binding(
get: { paramModel.timberBeamPrice },
set: { newValue in
if !newValue.isNaN && !newValue.isInfinite && newValue > 0.0 {
@@ -97,10 +97,10 @@ struct ParamView: View {
), format: .number)
Text("Piece size")
- TextField("per meter", value: Binding(
+ TextField("", value: Binding(
get: { paramModel.timberLengthSize },
set: { newValue in
- if !newValue.isNaN && !newValue.isInfinite && newValue > 0.0 {
+ if !newValue.isNaN && !newValue.isInfinite && newValue > 0.0 && newValue < 10.0 {
paramModel.timberLengthSize = newValue
}
}
@@ -108,24 +108,107 @@ struct ParamView: View {
}
HStack {
Text("Felt price")
- TextField("per meter", value: $paramModel.feltPrice, format: .number)
+ TextField("per meter", value: Binding(
+ get: { paramModel.feltPrice },
+ set: { newValue in
+ if !newValue.isNaN && !newValue.isInfinite && newValue > 0.0 {
+ paramModel.feltPrice = newValue
+ }
+ }
+ ), format: .number)
Text("Felt width")
- TextField("per meter", value: $paramModel.feltWidth, format: .number)
+ TextField("per meter", value: Binding(
+ get: { paramModel.feltWidth },
+ set: { newValue in
+ if !newValue.isNaN && !newValue.isInfinite && newValue > 0.0 && newValue < 10.0 {
+ paramModel.feltWidth = newValue
+ }
+ }
+ ), format: .number)
Text("Felt length")
- TextField("per meter", value: $paramModel.feltLength, format: .number)
+ TextField("per meter", value: Binding(
+ get: { paramModel.feltLength },
+ set: { newValue in
+ if !newValue.isNaN && !newValue.isInfinite && newValue > 0.0 && newValue < 100.1{
+ paramModel.feltLength = newValue
+ }
+ }
+ ), format: .number)
}
HStack {
Text("Cladding dimensions and price")
}
HStack {
Text("Cladding price per meter")
- TextField("", value: $paramModel.claddingPrice, format: .number)
+ TextField("", value: Binding(
+ get: { paramModel.claddingPrice },
+ set: { newValue in
+ if !newValue.isNaN && !newValue.isInfinite && newValue > 0.0 {
+ paramModel.claddingPrice = newValue
+ }
+ }
+ ), format: .number)
Text("Length")
- TextField("", value: $paramModel.claddingLength, format: .number)
+ TextField("", value: Binding(
+ get: { paramModel.claddingLength },
+ set: { newValue in
+ if !newValue.isNaN && !newValue.isInfinite && newValue > 0.0 && newValue < 10.0 {
+ paramModel.claddingLength = newValue
+ }
+ }
+ ), format: .number)
Text("Width")
- TextField("", value: $paramModel.claddingWidth, format: .number)
+ TextField("", value: Binding(
+ get: { paramModel.claddingWidth },
+ set: { newValue in
+ if !newValue.isNaN && !newValue.isInfinite && newValue > 0.0 && newValue < 10.0
+ && (newValue > paramModel.claddingOverlap) {
+ paramModel.claddingWidth = newValue
+ }
+ }
+ ), format: .number)
Text("Overlap")
- TextField("", value: $paramModel.claddingOverlap, format: .number)
+ TextField("", value: Binding(
+ get: { paramModel.claddingOverlap },
+ set: { newValue in
+ //overlap can't be bigger then width of cladding
+ if !newValue.isNaN && !newValue.isInfinite && (newValue > 0.0 && newValue < 10.0) && (newValue < paramModel.claddingWidth) {
+ paramModel.claddingOverlap = newValue
+ }
+ }
+ ), format: .number)
+ }
+ HStack {
+ Text("Weather wrap")
+ }
+ HStack {
+ Text("Wrap price")
+ TextField("per meter", value: Binding(
+ get: { paramModel.wrapPrice },
+ set: { newValue in
+ if !newValue.isNaN && !newValue.isInfinite && newValue > 0.0 {
+ paramModel.wrapPrice = newValue
+ }
+ }
+ ), format: .number)
+ Text("Wrap width")
+ TextField("per meter", value: Binding(
+ get: { paramModel.wrapWidth },
+ set: { newValue in
+ if !newValue.isNaN && !newValue.isInfinite && newValue > 0.0 && newValue < 10.0 {
+ paramModel.wrapWidth = newValue
+ }
+ }
+ ), format: .number)
+ Text("Wrap length")
+ TextField("per meter", value: Binding(
+ get: { paramModel.wrapLength },
+ set: { newValue in
+ if !newValue.isNaN && !newValue.isInfinite && newValue > 0.0 && newValue < 100.1 {
+ paramModel.wrapLength = newValue
+ }
+ }
+ ), format: .number)
}
}
}