diff --git a/core/resources/l10n/messages.properties b/core/resources/l10n/messages.properties
index df4f1f662..d1db4362c 100644
--- a/core/resources/l10n/messages.properties
+++ b/core/resources/l10n/messages.properties
@@ -1362,6 +1362,7 @@ TCMotorSelPan.lbl.motorNameColumn.ttip = Select which motor property to display
TCMotorSelPan.btn.commonName = Use common name
TCMotorSelPan.btn.designation = Use manufacturer's designation
TCMotorSelPan.lbl.nrOfMotors = Number of motors:
+TCMotorSelPan.lbl.nrOfMotors.None = None
TCMotorSelPan.lbl.ttip.nrOfMotors = Number of motors currently visible in the motor selection table
TCMotorSelPan.checkbox.limitlength = Limit motor length to mount length
TCMotorSelPan.checkbox.limitdiameter = Limit motor diameter to mount diameter
@@ -1375,8 +1376,7 @@ TCMotorSelPan.MotorMountDimensions = Motor mount dimensions:
TCMotorSelPan.lbl.Search = Search:
TCMotorSelPan.lbl.Selectthrustcurve = Select thrust curve:
TCMotorSelPan.lbl.Ejectionchargedelay = Ejection charge delay:
-TCMotorSelPan.equalsIgnoreCase.None = None
-TCMotorSelPan.lbl.NumberofsecondsorNone = (Number of seconds or \"None\")
+TCMotorSelPan.lbl.Numberofseconds = (or type in desired delay in seconds)
TCMotorSelPan.lbl.Designation = Designation:
TCMotorSelPan.lbl.CommonName = Common name:
TCMotorSelPan.lbl.Totalimpulse = Total impulse:
@@ -1393,7 +1393,8 @@ TCMotorSelPan.lbl.Datapoints = Data points:
TCMotorSelPan.lbl.Digest = Digest:
TCMotorSelPan.title.Thrustcurve = Thrust curve:
TCMotorSelPan.title.Thrust = Thrust
-TCMotorSelPan.delayBox.None = Plugged (None)
+TCMotorSelPan.delayBox.Plugged = Plugged
+TCMotorSelPan.delayBox.PluggedNone = None
TCMotorSelPan.noDescription = No description available.
TCMotorSelPan.btn.checkAll = Select All
TCMotorSelPan.btn.checkNone = Clear All
diff --git a/core/resources/l10n/messages_ar.properties b/core/resources/l10n/messages_ar.properties
index 96b73076c..27ee1230d 100644
--- a/core/resources/l10n/messages_ar.properties
+++ b/core/resources/l10n/messages_ar.properties
@@ -1335,8 +1335,7 @@ TCMotorSelPan.MotorMountDimensions = :أبعاد حامل المحرك
TCMotorSelPan.lbl.Search = :بحث
TCMotorSelPan.lbl.Selectthrustcurve = :حدد منحنى الدفع
TCMotorSelPan.lbl.Ejectionchargedelay = :تأخير شحنة الإطلاق
-TCMotorSelPan.equalsIgnoreCase.None = لا شئ
-TCMotorSelPan.lbl.NumberofsecondsorNone = (\"لا شئ\" عدد الثواني أو)
+TCMotorSelPan.lbl.Numberofseconds = (\"لا شئ\" عدد الثواني أو)
TCMotorSelPan.lbl.Designation = :تسمية الشركة المصنعة
TCMotorSelPan.lbl.Totalimpulse = :الدفع الكلي
TCMotorSelPan.lbl.Avgthrust = :متوسط الدفع
@@ -1351,7 +1350,7 @@ TCMotorSelPan.lbl.Datapoints = :نقاط البيانات
TCMotorSelPan.lbl.Digest = :الإستيعاب
TCMotorSelPan.title.Thrustcurve = :منحنى الدفع
TCMotorSelPan.title.Thrust = الدفع
-TCMotorSelPan.delayBox.None = لا شئ
+TCMotorSelPan.delayBox.Plugged = لا شئ
TCMotorSelPan.noDescription = .لا يوجد وصف متاح
TCMotorSelPan.btn.checkAll = تحديد الكل
TCMotorSelPan.btn.checkNone = مسح الكل
diff --git a/core/resources/l10n/messages_cs.properties b/core/resources/l10n/messages_cs.properties
index 234e98879..c1691d6ad 100644
--- a/core/resources/l10n/messages_cs.properties
+++ b/core/resources/l10n/messages_cs.properties
@@ -940,8 +940,7 @@ TCMotorSelPan.lbl.Motormountdia = Prumer uchycen
TCMotorSelPan.lbl.Search = Hledej:
TCMotorSelPan.lbl.Selectthrustcurve = Vyber vkonovou krivku:
TCMotorSelPan.lbl.Ejectionchargedelay = Oddelovac zpo\u017Eden:
-TCMotorSelPan.equalsIgnoreCase.None = Nic
-TCMotorSelPan.lbl.NumberofsecondsorNone = (Pocet sekund nebo \"Nic\")
+TCMotorSelPan.lbl.Numberofseconds = (Pocet sekund nebo \"Nic\")
TCMotorSelPan.lbl.Designation = Pojmenovn:
TCMotorSelPan.lbl.Totalimpulse = Celkov impulse:
TCMotorSelPan.lbl.Avgthrust = Prumern tah:
@@ -953,7 +952,7 @@ TCMotorSelPan.lbl.Datapoints = Datov
TCMotorSelPan.lbl.Digest = Vber:
TCMotorSelPan.title.Thrustcurve = Vkonov krivka:
TCMotorSelPan.title.Thrust = Tah
-TCMotorSelPan.delayBox.None = Nic
+TCMotorSelPan.delayBox.Plugged = Nic
! PlotDialog
diff --git a/core/resources/l10n/messages_de.properties b/core/resources/l10n/messages_de.properties
index 4429bbe82..4fa2bf85f 100644
--- a/core/resources/l10n/messages_de.properties
+++ b/core/resources/l10n/messages_de.properties
@@ -998,8 +998,7 @@ TCMotorSelPan.lbl.Motormountdia = Durchmesser der Motorhalterung
TCMotorSelPan.lbl.Search = Suchen:
TCMotorSelPan.lbl.Selectthrustcurve = Schubkurve auswhlen:
TCMotorSelPan.lbl.Ejectionchargedelay = Verzgerung der Ausstoladung:
-TCMotorSelPan.equalsIgnoreCase.None = keine
-TCMotorSelPan.lbl.NumberofsecondsorNone = (Anzahl der Sekunden oder \keine\)
+TCMotorSelPan.lbl.Numberofseconds = (Anzahl der Sekunden oder \keine\)
TCMotorSelPan.lbl.Designation = Bezeichnung:
TCMotorSelPan.lbl.Totalimpulse = Gesamtimpuls:
TCMotorSelPan.lbl.Avgthrust = Durchschn. Schub:
@@ -1011,7 +1010,7 @@ TCMotorSelPan.lbl.Datapoints = Datenpunkte:
TCMotorSelPan.lbl.Digest = bersicht:
TCMotorSelPan.title.Thrustcurve = Schubkurve:
TCMotorSelPan.title.Thrust = Schub:
-TCMotorSelPan.delayBox.None = keine
+TCMotorSelPan.delayBox.Plugged = keine
! PlotDialog
diff --git a/core/resources/l10n/messages_es.properties b/core/resources/l10n/messages_es.properties
index fef931de6..24f7a35d1 100644
--- a/core/resources/l10n/messages_es.properties
+++ b/core/resources/l10n/messages_es.properties
@@ -1125,8 +1125,7 @@ TCMotorSelPan.checkbox.hideSimilar = Borrar las curvas similares
TCMotorSelPan.checkbox.hideUsed = Ocultar los motores que ya est\u00e1n instalados
TCMotorSelPan.checkbox.limitdiameter = Limitar el di\u00e1metro de motor al di\u00e1metro del porta motor
TCMotorSelPan.checkbox.limitlength = Limitar la longitud del motor a la longitud del porta motor
-TCMotorSelPan.delayBox.None = Ninguno
-TCMotorSelPan.equalsIgnoreCase.None = Ninguno
+TCMotorSelPan.delayBox.Plugged = Ninguno
TCMotorSelPan.lbl.Avgthrust = Empuje medio:
TCMotorSelPan.lbl.Burntime = Tiempo de quemado:
TCMotorSelPan.lbl.Datapoints = Muestras de la curva:
@@ -1136,7 +1135,7 @@ TCMotorSelPan.lbl.Emptymass = Masa carcasa:
TCMotorSelPan.lbl.Launchmass = Masa total:
TCMotorSelPan.lbl.Maxthrust = Empuje m\u00e1ximo:
TCMotorSelPan.lbl.Motormountdia = Di\u00e1metro del porta motor:
-TCMotorSelPan.lbl.NumberofsecondsorNone = (segundos)
+TCMotorSelPan.lbl.Numberofseconds = (segundos)
TCMotorSelPan.lbl.Search = Buscar:
TCMotorSelPan.lbl.Selectthrustcurve = Seleccione curva de empuje:
TCMotorSelPan.lbl.Selrocketmotor = Seleccione el motor del cohete:
diff --git a/core/resources/l10n/messages_fr.properties b/core/resources/l10n/messages_fr.properties
index 8229ba211..14323d7ce 100644
--- a/core/resources/l10n/messages_fr.properties
+++ b/core/resources/l10n/messages_fr.properties
@@ -1119,8 +1119,7 @@ TCMotorSelPan.checkbox.hideSimilar = Cacher les courbes de pouss\u00E9es si
TCMotorSelPan.checkbox.hideUsed = Ne pas afficher les moteurs d\u00E9j\u00E0 utilis\u00E9s
TCMotorSelPan.checkbox.limitdiameter = Afficher uniquement les moteurs dont le diametre est \u00E9gale au porte moteur
TCMotorSelPan.checkbox.limitlength = Limiter la longueur du moteur \u00E0 celle du porte moteur
-TCMotorSelPan.delayBox.None = Aucun
-TCMotorSelPan.equalsIgnoreCase.None = Aucun
+TCMotorSelPan.delayBox.Plugged = Aucun
TCMotorSelPan.lbl.Avgthrust = Pouss\u00E9e moyenne:
TCMotorSelPan.lbl.Burntime = Temps de combustion:
TCMotorSelPan.lbl.Datapoints = Points de donn\u00E9es:
@@ -1130,7 +1129,7 @@ TCMotorSelPan.lbl.Emptymass = Masse \u00E0 vide:
TCMotorSelPan.lbl.Launchmass = Masse au lancement:
TCMotorSelPan.lbl.Maxthrust = Pouss\u00E9e Max.:
TCMotorSelPan.lbl.Motormountdia = Diam\u00E8tre du tube porte moteur:
-TCMotorSelPan.lbl.NumberofsecondsorNone = (Nombre de secondes ou "Aucun")
+TCMotorSelPan.lbl.Numberofseconds = (Nombre de secondes ou "Aucun")
TCMotorSelPan.lbl.Search = Rechercher:
TCMotorSelPan.lbl.Selectthrustcurve = Choisir la courbe de pouss\u00E9e:
TCMotorSelPan.lbl.Selrocketmotor = Choisir le moteur fus\u00E9e:
diff --git a/core/resources/l10n/messages_it.properties b/core/resources/l10n/messages_it.properties
index 2a89f0235..daaf33ac9 100644
--- a/core/resources/l10n/messages_it.properties
+++ b/core/resources/l10n/messages_it.properties
@@ -999,8 +999,7 @@ TCMotorSelPan.lbl.Motormountdia = Diametro dell'alloggio del motore:
TCMotorSelPan.lbl.Search = Cerca:
TCMotorSelPan.lbl.Selectthrustcurve = Seleziona la curva di spinta:
TCMotorSelPan.lbl.Ejectionchargedelay = Ritardo della carica di espulsione:
-TCMotorSelPan.equalsIgnoreCase.None = Nessun
-TCMotorSelPan.lbl.NumberofsecondsorNone = (Numero di secondi o \"Nessuno\")
+TCMotorSelPan.lbl.Numberofseconds = (Numero di secondi o \"Nessuno\")
TCMotorSelPan.lbl.Designation = Classe:
TCMotorSelPan.lbl.Totalimpulse = Impulso totale:
TCMotorSelPan.lbl.Avgthrust = Spinta media:
@@ -1012,7 +1011,7 @@ TCMotorSelPan.lbl.Datapoints = Punti:
TCMotorSelPan.lbl.Digest = Riassunto:
TCMotorSelPan.title.Thrustcurve = Curva di spinta:
TCMotorSelPan.title.Thrust = Spinta
-TCMotorSelPan.delayBox.None = Nessuno
+TCMotorSelPan.delayBox.Plugged = Nessuno
! PlotDialog
diff --git a/core/resources/l10n/messages_ja.properties b/core/resources/l10n/messages_ja.properties
index cbd557d13..f78c9ad6d 100644
--- a/core/resources/l10n/messages_ja.properties
+++ b/core/resources/l10n/messages_ja.properties
@@ -1029,8 +1029,7 @@ TCMotorSelPan.lbl.Motormountdia = \u30E2\u30FC\u30BF\u30FC\u30DE\u30A6\u30F3\u3
TCMotorSelPan.lbl.Search = \u691C\u7D22\uFF1A
TCMotorSelPan.lbl.Selectthrustcurve = \u63A8\u529B\u5C65\u6B74\uFF1A
TCMotorSelPan.lbl.Ejectionchargedelay = Ejection charge delay:
-TCMotorSelPan.equalsIgnoreCase.None = None
-TCMotorSelPan.lbl.NumberofsecondsorNone = (Number of seconds or \"None\")
+TCMotorSelPan.lbl.Numberofseconds = (Number of seconds or \"None\")
TCMotorSelPan.lbl.Designation = \u8A18\u53F7
TCMotorSelPan.lbl.Totalimpulse = \u30C8\u30FC\u30BF\u30EB\u30A4\u30F3\u30D1\u30EB\u30B9\uFF1A
TCMotorSelPan.lbl.Avgthrust = \u5E73\u5747\u63A8\u529B\uFF1A
@@ -1042,7 +1041,7 @@ TCMotorSelPan.lbl.Datapoints = \u30C7\u30FC\u30BF\u70B9\uFF1A
TCMotorSelPan.lbl.Digest = \u30C0\u30A4\u30B8\u30A7\u30B9\u30C8\uFF1A
TCMotorSelPan.title.Thrustcurve = \u63A8\u529B\u5C65\u6B74\uFF1A
TCMotorSelPan.title.Thrust = \u63A8\u529B
-TCMotorSelPan.delayBox.None = Plugged (None)
+TCMotorSelPan.delayBox.Plugged = Plugged (None)
TCMotorSelPan.noDescription = No description available.
diff --git a/core/resources/l10n/messages_nl.properties b/core/resources/l10n/messages_nl.properties
index 916df1a5d..3e7f804bd 100644
--- a/core/resources/l10n/messages_nl.properties
+++ b/core/resources/l10n/messages_nl.properties
@@ -1260,8 +1260,7 @@ TCMotorSelPan.MotorMountDimensions = Motorbevestiging afmetingen:
TCMotorSelPan.lbl.Search = Zoek:
TCMotorSelPan.lbl.Selectthrustcurve = Selecteer stuwkrachtcurve:
TCMotorSelPan.lbl.Ejectionchargedelay = Vertraging schietlading:
-TCMotorSelPan.equalsIgnoreCase.None = Geen
-TCMotorSelPan.lbl.NumberofsecondsorNone = (Aantal seconden of \"Geen\")
+TCMotorSelPan.lbl.Numberofseconds = (Aantal seconden of \"Geen\")
TCMotorSelPan.lbl.Designation = Benaming
TCMotorSelPan.lbl.Totalimpulse = Totale impuls:
TCMotorSelPan.lbl.Avgthrust = Gemiddelde stuwkracht:
@@ -1276,7 +1275,7 @@ TCMotorSelPan.lbl.Datapoints = Datapunten:
TCMotorSelPan.lbl.Digest = Verteer:
TCMotorSelPan.title.Thrustcurve = Stuwkrachtcurve:
TCMotorSelPan.title.Thrust = Stuwkracht
-TCMotorSelPan.delayBox.None = Geen
+TCMotorSelPan.delayBox.Plugged = Geen
TCMotorSelPan.noDescription = Geen beschrijving beschikbaar.
TCMotorSelPan.btn.checkAll = Selecteer Alles
TCMotorSelPan.btn.checkNone = Alles wissen
diff --git a/core/resources/l10n/messages_pl.properties b/core/resources/l10n/messages_pl.properties
index 3cbcf4637..8721c7b44 100644
--- a/core/resources/l10n/messages_pl.properties
+++ b/core/resources/l10n/messages_pl.properties
@@ -943,8 +943,7 @@ ComponentInfo.EngineBlock = Blokada silnika unieruchamia silnik wewn\u01
TCMotorSelPan.lbl.Search = Szukaj:
TCMotorSelPan.lbl.Selectthrustcurve = Wybierz krzyw\u0105 si\u0142y ci\u0105gu:
TCMotorSelPan.lbl.Ejectionchargedelay = Op\u017Anienie odpalenia \u0142adunku odrzucaj\u0105cego:
- TCMotorSelPan.equalsIgnoreCase.None = \u017Badne
- TCMotorSelPan.lbl.NumberofsecondsorNone = (liczba sekund lub \"Brak\")
+ TCMotorSelPan.lbl.Numberofseconds = (liczba sekund lub \"Brak\")
TCMotorSelPan.lbl.Designation = Oznaczenie:
TCMotorSelPan.lbl.Totalimpulse = Ca\u0142kowity impuls:
TCMotorSelPan.lbl.Avgthrust = \u015Arednia si\u0142a ci\u0105gu:
@@ -956,7 +955,7 @@ ComponentInfo.EngineBlock = Blokada silnika unieruchamia silnik wewn\u01
TCMotorSelPan.lbl.Digest = Podsumowanie:
TCMotorSelPan.title.Thrustcurve = Krzywa si\u0142y ci\u0105gu:
TCMotorSelPan.title.Thrust = Ci\u0105g
- TCMotorSelPan.delayBox.None = \u017Badne
+ TCMotorSelPan.delayBox.Plugged = \u017Badne
! PlotDialog
diff --git a/core/resources/l10n/messages_pt.properties b/core/resources/l10n/messages_pt.properties
index 49a283c54..6167fda78 100644
--- a/core/resources/l10n/messages_pt.properties
+++ b/core/resources/l10n/messages_pt.properties
@@ -1083,8 +1083,7 @@ TCMotorSelPan.SHOW_DESCRIPTIONS.desc1 = Mostrar todos os motores
TCMotorSelPan.SHOW_DESCRIPTIONS.desc2 = Mostrar motores com um di\u00e2metro menor do que a montagem do motor
TCMotorSelPan.SHOW_DESCRIPTIONS.desc3 = Mostrar motores com um di\u00e2metro igual ao da montagem do motor
TCMotorSelPan.checkbox.hideSimilar = Esconder as curvas de impulso muito semelhantes
-TCMotorSelPan.delayBox.None = Nenhum
-TCMotorSelPan.equalsIgnoreCase.None = Nenhum
+TCMotorSelPan.delayBox.Plugged = Nenhum
TCMotorSelPan.lbl.Avgthrust = Empuxo m\u00e9dio:
TCMotorSelPan.lbl.Burntime = Tempo de queima:
TCMotorSelPan.lbl.Datapoints = Pontos de dados:
@@ -1094,7 +1093,7 @@ TCMotorSelPan.lbl.Emptymass = Massa em vazio:
TCMotorSelPan.lbl.Launchmass = Massa do lan\u00e7amento:
TCMotorSelPan.lbl.Maxthrust = Empuxo m\u00e1ximo:
TCMotorSelPan.lbl.Motormountdia = Di\u00e2metro da montagem do motor:
-TCMotorSelPan.lbl.NumberofsecondsorNone = (N\u00famero de segundos ou "Nenhum")
+TCMotorSelPan.lbl.Numberofseconds = (N\u00famero de segundos ou "Nenhum")
TCMotorSelPan.lbl.Search = Pesquisar:
TCMotorSelPan.lbl.Selectthrustcurve = Selecione curva de empuxo:
TCMotorSelPan.lbl.Selrocketmotor = Selecione motor do foguete:
diff --git a/core/resources/l10n/messages_ru.properties b/core/resources/l10n/messages_ru.properties
index b5f3bc151..dec6ad153 100644
--- a/core/resources/l10n/messages_ru.properties
+++ b/core/resources/l10n/messages_ru.properties
@@ -1307,8 +1307,7 @@ TCMotorSelPan.MotorMountDimensions = \u0420\u0430\u0437\u043C\u0435\u0440\u044B
TCMotorSelPan.lbl.Search = \u041F\u043E\u0438\u0441\u043A:
TCMotorSelPan.lbl.Selectthrustcurve = \u0412\u044B\u0431\u043E\u0440 \u043F\u0440\u043E\u0444\u0438\u043B\u044F \u0442\u044F\u0433\u0438:
TCMotorSelPan.lbl.Ejectionchargedelay = \u0417\u0430\u0434\u0435\u0440\u0436\u043A\u0430 \u0432\u044B\u0431\u0440\u043E\u0441\u0430 \u0437\u0430\u0440\u044F\u0434\u0430:
-TCMotorSelPan.equalsIgnoreCase.None = \u041D\u0435\u0442
-TCMotorSelPan.lbl.NumberofsecondsorNone = (\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u0435\u043A\u0443\u043D\u0434 \u0438\u043B\u0438 "\u041D\u0435\u0442")
+TCMotorSelPan.lbl.Numberofseconds = (\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u0435\u043A\u0443\u043D\u0434 \u0438\u043B\u0438 "\u041D\u0435\u0442")
TCMotorSelPan.lbl.Designation = \u041E\u0431\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435:
TCMotorSelPan.lbl.Totalimpulse = \u041E\u0431\u0449\u0438\u0439 \u0438\u043C\u043F\u0443\u043B\u044C\u0441:
TCMotorSelPan.lbl.Avgthrust = \u0421\u0440\u0435\u0434\u043D\u044F\u044F \u0442\u044F\u0433\u0430:
@@ -1323,7 +1322,7 @@ TCMotorSelPan.lbl.Datapoints = \u0422\u043E\u0447\u043A\u0438 \u0434\u0430\u043D
TCMotorSelPan.lbl.Digest = \u0420\u0435\u0437\u044E\u043C\u0435:
TCMotorSelPan.title.Thrustcurve = \u041F\u0440\u043E\u0444\u0438\u043B\u044C \u0442\u044F\u0433\u0438:
TCMotorSelPan.title.Thrust = \u0422\u044F\u0433\u0430
-TCMotorSelPan.delayBox.None = \u041D\u0435\u0442
+TCMotorSelPan.delayBox.Plugged = \u041D\u0435\u0442
TCMotorSelPan.noDescription = \u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442.
TCMotorSelPan.btn.checkAll = \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435
TCMotorSelPan.btn.checkNone = \u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0432\u044B\u0431\u043E\u0440
diff --git a/core/resources/l10n/messages_uk_UA.properties b/core/resources/l10n/messages_uk_UA.properties
index 90ed7630a..c41bad1c4 100644
--- a/core/resources/l10n/messages_uk_UA.properties
+++ b/core/resources/l10n/messages_uk_UA.properties
@@ -1102,8 +1102,7 @@ TCMotorSelPan.MotorMountDimensions = Motor mount dimensions:
TCMotorSelPan.lbl.Search = Search:
TCMotorSelPan.lbl.Selectthrustcurve = Select thrust curve:
TCMotorSelPan.lbl.Ejectionchargedelay = Ejection charge delay:
-TCMotorSelPan.equalsIgnoreCase.None = None
-TCMotorSelPan.lbl.NumberofsecondsorNone = (Number of seconds or \"None\")
+TCMotorSelPan.lbl.Numberofseconds = (Number of seconds or \"None\")
TCMotorSelPan.lbl.Designation = Designation:
TCMotorSelPan.lbl.Totalimpulse = Total impulse:
TCMotorSelPan.lbl.Avgthrust = Avg. thrust:
@@ -1115,7 +1114,7 @@ TCMotorSelPan.lbl.Datapoints = Data points:
TCMotorSelPan.lbl.Digest = Digest:
TCMotorSelPan.title.Thrustcurve = Thrust curve:
TCMotorSelPan.title.Thrust = Thrust
-TCMotorSelPan.delayBox.None = Plugged (None)
+TCMotorSelPan.delayBox.Plugged = Plugged (None)
TCMotorSelPan.noDescription = No description available.
TCMotorSelPan.btn.checkAll = Select All
TCMotorSelPan.btn.checkNone = Clear All
diff --git a/core/resources/l10n/messages_zh_CN.properties b/core/resources/l10n/messages_zh_CN.properties
index 149708f5d..4c5e35a0a 100644
--- a/core/resources/l10n/messages_zh_CN.properties
+++ b/core/resources/l10n/messages_zh_CN.properties
@@ -1188,8 +1188,7 @@ TCMotorSelPan.checkbox.hideSimilar = \u9690\u85CF\u76F8\u4F3C\u7684\u63A8\u
TCMotorSelPan.checkbox.hideUsed = \u9690\u85CF\u5DF2\u4F7F\u7528\u7684\u53D1\u52A8\u673A
TCMotorSelPan.checkbox.limitdiameter = \u76F4\u5F84\u4E0D\u8D85\u8FC7\u5F53\u524D\u53D1\u52A8\u673A\u5EA7\u76F4\u5F84
TCMotorSelPan.checkbox.limitlength = \u957F\u5EA6\u4E0D\u8D85\u8FC7\u5F53\u524D\u53D1\u52A8\u673A\u5EA7\u957F\u5EA6
-TCMotorSelPan.delayBox.None = \u65E0
-TCMotorSelPan.equalsIgnoreCase.None = \u65E0
+TCMotorSelPan.delayBox.Plugged = \u65E0
TCMotorSelPan.lbl.Avgthrust = \u5E73\u5747\u63A8\u529B:
TCMotorSelPan.lbl.Burntime = \u71C3\u70E7\u65F6\u95F4:
TCMotorSelPan.lbl.Datapoints = \u6570\u636E\u70B9:
@@ -1198,7 +1197,7 @@ TCMotorSelPan.lbl.Ejectionchargedelay = \u5F39\u5C04\u5EF6\u65F6:
TCMotorSelPan.lbl.Emptymass = \u71C3\u5C3D\u8D28\u91CF:
TCMotorSelPan.lbl.Launchmass = \u53D1\u5C04\u8D28\u91CF:
TCMotorSelPan.lbl.Maxthrust = \u6700\u5927\u63A8\u529B:
-TCMotorSelPan.lbl.NumberofsecondsorNone = (\u79D2\u6570\u6216"\u65E0")
+TCMotorSelPan.lbl.Numberofseconds = (\u79D2\u6570\u6216"\u65E0")
TCMotorSelPan.lbl.Search = \u641C\u7D22:
TCMotorSelPan.lbl.Selectthrustcurve = \u9009\u62E9\u63A8\u529B\u66F2\u7EBF:
TCMotorSelPan.lbl.Selrocketmotor = \u9009\u62E9\u706B\u7BAD\u53D1\u52A8\u673A:
diff --git a/swing/src/net/sf/openrocket/gui/dialogs/motor/thrustcurve/ThrustCurveMotorSelectionPanel.java b/swing/src/net/sf/openrocket/gui/dialogs/motor/thrustcurve/ThrustCurveMotorSelectionPanel.java
index 1e2fd81cc..eebbbe927 100644
--- a/swing/src/net/sf/openrocket/gui/dialogs/motor/thrustcurve/ThrustCurveMotorSelectionPanel.java
+++ b/swing/src/net/sf/openrocket/gui/dialogs/motor/thrustcurve/ThrustCurveMotorSelectionPanel.java
@@ -99,6 +99,7 @@ public class ThrustCurveMotorSelectionPanel extends JPanel implements MotorSelec
private final JLabel curveSelectionLabel;
private final JComboBox curveSelectionBox;
private final DefaultComboBoxModel curveSelectionModel;
+ private final JLabel ejectionChargeDelayLabel;
private final JComboBox delayBox;
private final JLabel nrOfMotorsLabel;
@@ -172,17 +173,22 @@ public class ThrustCurveMotorSelectionPanel extends JPanel implements MotorSelec
// Ejection charge delay:
{
- panel.add(new JLabel(trans.get("TCMotorSelPan.lbl.Ejectionchargedelay")));
+ ejectionChargeDelayLabel = new JLabel(trans.get("TCMotorSelPan.lbl.Ejectionchargedelay"));
+ panel.add(ejectionChargeDelayLabel);
delayBox = new JComboBox();
delayBox.setEditable(true);
delayBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
-
String sel = (String) delayBox.getSelectedItem();
- //// None
- if (sel.equalsIgnoreCase(trans.get("TCMotorSelPan.equalsIgnoreCase.None"))) {
+ if (sel == null) {
+ log.debug("Selected charge delay is null");
+ return;
+ }
+ //// Plugged (or None)
+ if (sel.equalsIgnoreCase(trans.get("TCMotorSelPan.delayBox.Plugged")) ||
+ sel.equalsIgnoreCase(trans.get("TCMotorSelPan.delayBox.PluggedNone"))) {
selectedDelay = Motor.PLUGGED_DELAY;
} else {
try {
@@ -194,8 +200,8 @@ public class ThrustCurveMotorSelectionPanel extends JPanel implements MotorSelec
}
});
panel.add(delayBox, "growx,wrap");
- //// (Number of seconds or \"None\")
- panel.add(new StyledLabel(trans.get("TCMotorSelPan.lbl.NumberofsecondsorNone"), -3), "skip, wrap");
+ //// (or type in desired delay in seconds)
+ panel.add(new StyledLabel(trans.get("TCMotorSelPan.lbl.Numberofseconds"), -3), "skip, wrap");
setDelays(false);
}
@@ -507,11 +513,16 @@ public class ThrustCurveMotorSelectionPanel extends JPanel implements MotorSelec
curveSelectionModel.removeAllElements();
curveSelectionBox.setEnabled(false);
curveSelectionLabel.setEnabled(false);
+ ejectionChargeDelayLabel.setEnabled(false);
+ delayBox.setEnabled(false);
motorInformationPanel.clearData();
table.clearSelection();
return;
}
+ ejectionChargeDelayLabel.setEnabled(true);
+ delayBox.setEnabled(true);
+
// Check which thrust curves to display
List motors = getFilteredCurves();
final int index = motors.indexOf(selectedMotor);
@@ -562,7 +573,7 @@ public class ThrustCurveMotorSelectionPanel extends JPanel implements MotorSelec
private void updateNrOfMotors() {
if (table != null && nrOfMotorsLabel != null) {
int rowCount = table.getRowCount();
- String motorCount = "None";
+ String motorCount = trans.get("TCMotorSelPan.lbl.nrOfMotors.None");
if (rowCount > 0) {
motorCount = String.valueOf(rowCount);
}
@@ -574,7 +585,6 @@ public class ThrustCurveMotorSelectionPanel extends JPanel implements MotorSelec
private void scrollSelectionVisible() {
if (selectedMotorSet != null) {
int index = table.convertRowIndexToView(model.getIndex(selectedMotorSet));
- //System.out.println("index=" + index);
table.getSelectionModel().setSelectionInterval(index, index);
Rectangle rect = table.getCellRect(index, 0, true);
rect = new Rectangle(rect.x, rect.y - 100, rect.width, rect.height + 200);
@@ -663,47 +673,45 @@ public class ThrustCurveMotorSelectionPanel extends JPanel implements MotorSelec
*/
private void setDelays(boolean reset) {
if (selectedMotor == null) {
-
- //// None
- delayBox.setModel(new DefaultComboBoxModel(new String[] { trans.get("TCMotorSelPan.delayBox.None") }));
- delayBox.setSelectedIndex(0);
-
+ //// Display nothing
+ delayBox.setModel(new DefaultComboBoxModel<>(new String[] {}));
} else {
-
List delays = selectedMotorSet.getDelays();
- String[] delayStrings = new String[delays.size()];
+ boolean containsPlugged = delays.contains(Motor.PLUGGED_DELAY);
+ int size = delays.size() + (containsPlugged ? 0 : 1);
+ String[] delayStrings = new String[size];
double currentDelay = selectedDelay; // Store current setting locally
for (int i = 0; i < delays.size(); i++) {
- //// None
- delayStrings[i] = ThrustCurveMotor.getDelayString(delays.get(i), trans.get("TCMotorSelPan.delayBox.None"));
+ //// Plugged
+ delayStrings[i] = ThrustCurveMotor.getDelayString(delays.get(i), trans.get("TCMotorSelPan.delayBox.Plugged"));
+ }
+ // We always want the plugged option in the combobox, even if the motor doesn't have it
+ if (!containsPlugged) {
+ delayStrings[delayStrings.length - 1] = trans.get("TCMotorSelPan.delayBox.Plugged");
}
delayBox.setModel(new DefaultComboBoxModel(delayStrings));
if (reset) {
-
// Find and set the closest value
double closest = Double.NaN;
- for (int i = 0; i < delays.size(); i++) {
+ for (Double delay : delays) {
// if-condition to always become true for NaN
- if (!(Math.abs(delays.get(i) - currentDelay) > Math.abs(closest - currentDelay))) {
- closest = delays.get(i);
+ if (!(Math.abs(delay - currentDelay) > Math.abs(closest - currentDelay))) {
+ closest = delay;
}
}
if (!Double.isNaN(closest)) {
selectedDelay = closest;
- //// None
- delayBox.setSelectedItem(ThrustCurveMotor.getDelayString(closest, trans.get("TCMotorSelPan.delayBox.None")));
+ delayBox.setSelectedItem(ThrustCurveMotor.getDelayString(closest, trans.get("TCMotorSelPan.delayBox.Plugged")));
} else {
- delayBox.setSelectedItem("None");
+ //// Plugged
+ delayBox.setSelectedItem(trans.get("TCMotorSelPan.delayBox.Plugged"));
}
} else {
-
selectedDelay = currentDelay;
- //// None
- delayBox.setSelectedItem(ThrustCurveMotor.getDelayString(currentDelay, trans.get("TCMotorSelPan.delayBox.None")));
-
+ delayBox.setSelectedItem(ThrustCurveMotor.getDelayString(currentDelay, trans.get("TCMotorSelPan.delayBox.Plugged")));
}
}