Re-order component config general tabs
This commit is contained in:
parent
a8945c7bb0
commit
e6ee6573f6
@ -817,8 +817,6 @@ ringcompcfg.InnerRadius = InnerRadius
|
||||
ringcompcfg.AutomaticInner.ttip = Matches inner diameter to the outer diameter of the child inner tube.
|
||||
ringcompcfg.Thickness = Thickness
|
||||
ringcompcfg.Length = Length
|
||||
ringcompcfg.Positionrelativeto = Position relative to:
|
||||
ringcompcfg.plus = plus
|
||||
ringcompcfg.PositionValue = PositionValue
|
||||
ringcompcfg.Radialdistance = Radial distance:
|
||||
ringcompcfg.Distancefrom = Distance from the rocket centerline
|
||||
@ -936,14 +934,6 @@ RocketCompCfg.lbl.Mass = Mass:
|
||||
RocketCompCfg.lbl.Componentmass = Component mass:
|
||||
RocketCompCfg.lbl.overriddento = (overridden to
|
||||
RocketCompCfg.lbl.overriddenby = (overridden by
|
||||
RocketCompCfg.lbl.Componentmaterial = Component material:
|
||||
RocketCompCfg.lbl.Componentfinish = Component finish:
|
||||
RocketCompCfg.lbl.ttip.componentmaterialaffects = The component material affects the weight of the component.
|
||||
RocketCompCfg.combo.ttip.componentmaterialaffects = The component material affects the weight of the component.
|
||||
RocketCompCfg.lbl.longA1 = <html>The component finish affects the aerodynamic drag of the component.<br>
|
||||
RocketCompCfg.lbl.longA2 = The value indicated is the average roughness height of the surface.
|
||||
RocketCompCfg.but.Setforall = Set for all
|
||||
RocketCompCfg.but.ttip.Setforall = Set this finish for all components of the rocket.
|
||||
RocketCompCfg.checkbox.Overridemass = Override mass:
|
||||
RocketCompCfg.checkbox.Overridemass.ttip = Overrides the mass of the component calculated by the component's volume and density.
|
||||
RocketCompCfg.checkbox.Overridecenterofgrav = Override center of gravity CG:
|
||||
@ -976,7 +966,6 @@ RocketCompCfg.checkbox.Endcapped = End capped
|
||||
RocketCompCfg.checkbox.Endcapped.ttip = Caps (closes) the end of the shoulder.
|
||||
RocketCompCfg.title.Aftshoulder = Aft shoulder
|
||||
RocketCompCfg.border.Foreshoulder = Fore shoulder
|
||||
!RocketCompCfg.lbl.Length = Length:
|
||||
RocketCompCfg.lbl.InstanceCount = Instance Count:
|
||||
RocketCompCfg.lbl.InstanceSeparation = Instance Separation:
|
||||
RocketCompCfg.tab.Outside = Outside
|
||||
@ -991,6 +980,22 @@ RocketCompCfg.CancelOperation.title = Cancel operation
|
||||
RocketCompCfg.CancelOperation.checkbox.dontAskAgain = Don't ask me again
|
||||
RocketCompCfg.btn.ComponentInfo.ttip = Show/hide informative text about this component.
|
||||
|
||||
! MaterialPanel
|
||||
MaterialPanel.lbl.ComponentMaterial = Component material:
|
||||
MaterialPanel.lbl.ComponentFinish = Component finish:
|
||||
MaterialPanel.title.Material = Material
|
||||
MaterialPanel.lbl.ttip.ComponentMaterialAffects = The component material affects the weight of the component.
|
||||
MaterialPanel.combo.ttip.ComponentMaterialAffects = The component material affects the weight of the component.
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA1 = <html>The component finish affects the aerodynamic drag of the component.<br>
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA2 = The value indicated is the average roughness height of the surface.
|
||||
MaterialPanel.but.SetForAll = Set for all
|
||||
MaterialPanel.but.SetForAll.ttip = Set this finish for all components of the rocket.
|
||||
|
||||
! PlacementPanel
|
||||
PlacementPanel.title.Placement = Placement
|
||||
PlacementPanel.lbl.PosRelativeTo = Position relative to:
|
||||
PlacementPanel.lbl.plus = plus
|
||||
|
||||
! ComponentInfo
|
||||
ComponentInfo.Rocket = This is your rocket. Nothing more to say about it. Have fun designing and building it! :)
|
||||
ComponentInfo.AxialStage = A <b>stage</b> is a <b>section</b> of the model rocket that contains <b>motors</b> which ignite successively and <b>separate</b> after motor burnout.<br>Each stage must safely descend after separation. The main stage, often called the <b>'Sustainer'</b>, usually descends with a <b>recovery device</b>.
|
||||
@ -1048,14 +1053,30 @@ StageConfig.parallel.angle = Angle:
|
||||
StageConfig.parallel.count = Number of Copies:
|
||||
StageConfig.parallel.plus = plus
|
||||
|
||||
! FinSetConfig
|
||||
FinSetCfg.lbl.FinRotation = Fin rotation:
|
||||
FinSetCfg.lbl.FinRotation.ttip = The angle of the first fin in the fin set.
|
||||
|
||||
! TrapezoidFinSetConfig
|
||||
TrapezoidFinSetCfg.lbl.Nbroffins = Number of fins:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Nbroffins = The number of fins in the fin set.
|
||||
TrapezoidFinSetCfg.lbl.Fincant = Fin cant:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Fincant =The angle that the fins are canted with respect to the rocket body.
|
||||
TrapezoidFinSetCfg.lbl.Rootchord = Root chord:
|
||||
TrapezoidFinSetCfg.lbl.Tipchord = Tip chord:
|
||||
TrapezoidFinSetCfg.lbl.Height = Height:
|
||||
TrapezoidFinSetCfg.lbl.Sweeplength = Sweep length:
|
||||
TrapezoidFinSetCfg.lbl.Sweepangle = Sweep angle:
|
||||
TrapezoidFinSetCfg.lbl.FincrossSection = Fin cross section:
|
||||
TrapezoidFinSetCfg.lbl.Thickness = Thickness:
|
||||
TrapezoidFinSetCfg.tab.General = General
|
||||
TrapezoidFinSetCfg.tab.Generalproperties = General properties
|
||||
|
||||
!EllipticalFinSetConfig
|
||||
EllipticalFinSetCfg.Nbroffins = Number of fins:
|
||||
EllipticalFinSetCfg.Rotation = Rotation:
|
||||
EllipticalFinSetCfg.Fincant = Fin cant:
|
||||
EllipticalFinSetCfg.Rootchord = Root chord:
|
||||
EllipticalFinSetCfg.Height = Height:
|
||||
EllipticalFinSetCfg.Positionrelativeto = Position relative to:
|
||||
EllipticalFinSetCfg.plus = plus
|
||||
EllipticalFinSetCfg.FincrossSection = Fin cross section:
|
||||
EllipticalFinSetCfg.Thickness = Thickness:
|
||||
EllipticalFinSetCfg.General = General
|
||||
@ -1068,14 +1089,10 @@ FreeformFinSetCfg.tab.ttip.General = General properties
|
||||
FreeformFinSetCfg.tab.Shape = Shape
|
||||
FreeformFinSetCfg.tab.ttip.Finshape = Fin shape
|
||||
FreeformFinSetCfg.lbl.Numberoffins = Number of fins:
|
||||
FreeformFinSetCfg.lbl.Finrotation = Fin rotation:
|
||||
FreeformFinSetCfg.lbl.Fincant = Fin cant:
|
||||
FreeformFinSetCfg.lbl.ttip.Fincant = The angle that the fins are canted with respect to the rocket body.
|
||||
FreeformFinSetCfg.lbl.Posrelativeto = Position relative to:
|
||||
FreeformFinSetCfg.lbl.plus = plus
|
||||
FreeformFinSetCfg.lbl.FincrossSection = Fin cross section:
|
||||
FreeformFinSetCfg.lbl.Thickness = Thickness:
|
||||
! doubleClick1 + 2 form the message "Double-click to edit", split approximately at the middle
|
||||
FreeformFinSetConfig.lbl.doubleClick1 = Double-click
|
||||
FreeformFinSetConfig.lbl.doubleClick2 = to edit
|
||||
FreeformFinSetConfig.lbl.clickDrag = Click+drag: Add and move points
|
||||
@ -1120,8 +1137,6 @@ LaunchLugCfg.lbl.Outerdiam = Outer diameter:
|
||||
LaunchLugCfg.lbl.Innerdiam = Inner diameter:
|
||||
LaunchLugCfg.lbl.Thickness = Thickness:
|
||||
LaunchLugCfg.lbl.Angle = Rotation:
|
||||
LaunchLugCfg.lbl.Posrelativeto = Position relative to:
|
||||
LaunchLugCfg.lbl.plus = plus
|
||||
LaunchLugCfg.tab.General = General
|
||||
LaunchLugCfg.tab.Generalprop = General properties
|
||||
|
||||
@ -1133,8 +1148,6 @@ RailBtnCfg.lbl.BaseHeight = Base Height:
|
||||
RailBtnCfg.lbl.FlangeHeight = Flange Height:
|
||||
RailBtnCfg.lbl.ScrewHeight = Screw Height:
|
||||
RailBtnCfg.lbl.Angle = Rotation:
|
||||
RailBtnCfg.lbl.PosRelativeTo = Position relative to:
|
||||
RailBtnCfg.lbl.Plus = plus
|
||||
RailBtnCfg.tab.General = General
|
||||
RailBtnCfg.tab.GeneralProp = General properties
|
||||
|
||||
@ -1143,8 +1156,6 @@ MassComponentCfg.lbl.Mass = Mass:
|
||||
MassComponentCfg.lbl.Density = Approximate density:
|
||||
MassComponentCfg.lbl.Length = Length:
|
||||
MassComponentCfg.lbl.Diameter = Diameter:
|
||||
MassComponentCfg.lbl.PosRelativeto = Position relative to:
|
||||
MassComponentCfg.lbl.plus = plus
|
||||
MassComponentCfg.tab.General = General
|
||||
MassComponentCfg.tab.ttip.General = General properties
|
||||
MassComponentCfg.tab.Radialpos = Radial position
|
||||
@ -1195,7 +1206,6 @@ NoseConeCfg.checkbox.Flip.ttip = Flips the nose cone direction to a tail cone.
|
||||
Parachute.Parachute = Parachute
|
||||
ParachuteCfg.lbl.Canopy = Canopy
|
||||
ParachuteCfg.lbl.Shroudlines = Shroud lines
|
||||
ParachuteCfg.lbl.Placement = Placement
|
||||
ParachuteCfg.lbl.Deployment = Deployment
|
||||
ParachuteCfg.lbl.CanopyShape = Canopy shape:
|
||||
ParachuteCfg.lbl.Diameter = Diameter:
|
||||
@ -1209,8 +1219,6 @@ ParachuteCfg.lbl.longB3 = A typical value for parachutes is 0.8.
|
||||
ParachuteCfg.lbl.Numberoflines = Number of lines:
|
||||
ParachuteCfg.lbl.Linelength = Line length:
|
||||
ParachuteCfg.lbl.Material = Material:
|
||||
ParachuteCfg.lbl.Posrelativeto = Position relative to:
|
||||
ParachuteCfg.lbl.plus = plus
|
||||
ParachuteCfg.checkbox.AutomaticPacked = Automatic
|
||||
ParachuteCfg.checkbox.AutomaticPacked.ttip = Matches the packed diameter to the inside diameter of the parent component.
|
||||
ParachuteCfg.lbl.Packedlength = Packed length:
|
||||
@ -1232,7 +1240,6 @@ ParachuteCfg.lbl.plusdelay = plus
|
||||
! ShockCordConfig
|
||||
ShockCordCfg.lbl.Shockcordlength = Shock cord length:
|
||||
ShockCordCfg.lbl.Shockcordmaterial = Shock cord material:
|
||||
ShockCordCfg.lbl.Posrelativeto = Position relative to:
|
||||
ShockCordCfg.lbl.plus = plus
|
||||
ShockCordCfg.lbl.Packedlength = Packed length:
|
||||
ShockCordCfg.lbl.Packeddiam = Packed diameter:
|
||||
@ -1253,8 +1260,6 @@ SleeveCfg.tab.General = General
|
||||
SleeveCfg.tab.Generalproperties = General properties
|
||||
|
||||
! StreamerConfig
|
||||
StreamerCfg.lbl.Attributes = Attributes
|
||||
StreamerCfg.lbl.Placement = Placement
|
||||
StreamerCfg.lbl.Deployment = Deployment
|
||||
StreamerCfg.lbl.Striplength = Strip length:
|
||||
StreamerCfg.lbl.Stripwidth = Strip width:
|
||||
@ -1268,8 +1273,6 @@ StreamerCfg.lbl.longB2 = A larger drag coefficient yields a slowed descent rate.
|
||||
StreamerCfg.lbl.AutomaticCd = Automatic
|
||||
StreamerCfg.lbl.AutomaticCd.ttip = Calculate the streamer drag coefficient (C<sub>D</sub>) using its dimensions.
|
||||
StreamerCfg.lbl.longC1 = The drag coefficient is relative to the area of the streamer.
|
||||
StreamerCfg.lbl.Posrelativeto = Position relative to:
|
||||
StreamerCfg.lbl.plus = plus
|
||||
StreamerCfg.lbl.Packedlength = Packed length:
|
||||
StreamerCfg.lbl.Packeddiam = Packed diameter:
|
||||
StreamerCfg.lbl.Deploysat = Deploys at:
|
||||
@ -1312,25 +1315,6 @@ TransitionCfg.tab.Generalproperties = General properties
|
||||
TransitionCfg.tab.Shoulder = Shoulder
|
||||
TransitionCfg.tab.Shoulderproperties = Shoulder properties
|
||||
|
||||
! TrapezoidFinSetConfig
|
||||
TrapezoidFinSetCfg.lbl.Nbroffins = Number of fins:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Nbroffins = The number of fins in the fin set.
|
||||
TrapezoidFinSetCfg.lbl.Finrotation = Fin rotation:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Finrotation = The angle of the first fin in the fin set.
|
||||
TrapezoidFinSetCfg.lbl.Fincant = Fin cant:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Fincant =The angle that the fins are canted with respect to the rocket body.
|
||||
TrapezoidFinSetCfg.lbl.Rootchord = Root chord:
|
||||
TrapezoidFinSetCfg.lbl.Tipchord = Tip chord:
|
||||
TrapezoidFinSetCfg.lbl.Height = Height:
|
||||
TrapezoidFinSetCfg.lbl.Sweeplength = Sweep length:
|
||||
TrapezoidFinSetCfg.lbl.Sweepangle = Sweep angle:
|
||||
TrapezoidFinSetCfg.lbl.FincrossSection = Fin cross section:
|
||||
TrapezoidFinSetCfg.lbl.Thickness = Thickness:
|
||||
TrapezoidFinSetCfg.lbl.Posrelativeto = Position relative to:
|
||||
TrapezoidFinSetCfg.lbl.plus = plus
|
||||
TrapezoidFinSetCfg.tab.General = General
|
||||
TrapezoidFinSetCfg.tab.Generalproperties = General properties
|
||||
|
||||
! Save RKT Warning Dialog
|
||||
SaveRktWarningDialog.txt1=Exporting to RockSim file format does not support all features of OpenRocket.
|
||||
SaveRktWarningDialog.donotshow=Do not show this dialog again
|
||||
@ -1640,7 +1624,6 @@ TubeCoupler.TubeCoupler = Tube Coupler
|
||||
!InnerTube
|
||||
InnerTube.InnerTube = Inner Tube
|
||||
InnerTubeCfg.lbl.Attributes = Attributes
|
||||
InnerTubeCfg.lbl.Placement = Placement
|
||||
InnerTubeCfg.lbl.Material = Material:
|
||||
! TrapezoidFinSet
|
||||
TrapezoidFinSet.TrapezoidFinSet = Trapezoidal Fin Set
|
||||
|
@ -921,14 +921,14 @@ RocketCompCfg.lbl.Mass = :الكتلة
|
||||
RocketCompCfg.lbl.Componentmass = :كتلة المكون
|
||||
RocketCompCfg.lbl.overriddento = (تم تجاوزها إلى
|
||||
RocketCompCfg.lbl.overriddenby = (تجاوزها بواسطة
|
||||
RocketCompCfg.lbl.Componentmaterial = :مادة المكون
|
||||
RocketCompCfg.lbl.Componentfinish = :نهاية المكون
|
||||
RocketCompCfg.lbl.ttip.componentmaterialaffects = .تؤثر المادة المكونة على وزن المكون
|
||||
RocketCompCfg.combo.ttip.componentmaterialaffects = .تؤثر مادة المكون على وزنه
|
||||
RocketCompCfg.lbl.longA1 = <html>.يؤثر إنهاء المكون على السحب الديناميكي الهوائي للمكون<br>
|
||||
RocketCompCfg.lbl.longA2 = .القيمة المشار إليها هي متوسط إرتفاع خشونة السطح
|
||||
RocketCompCfg.but.Setforall = تعيين للجميع
|
||||
RocketCompCfg.but.ttip.Setforall = .إضبط هذه النهاية لجميع مكونات الصاروخ
|
||||
MaterialPanel.lbl.ComponentMaterial = :مادة المكون
|
||||
MaterialPanel.lbl.ComponentFinish = :نهاية المكون
|
||||
MaterialPanel.lbl.ttip.ComponentMaterialAffects = .تؤثر المادة المكونة على وزن المكون
|
||||
MaterialPanel.combo.ttip.ComponentMaterialAffects = .تؤثر مادة المكون على وزنه
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA1 = <html>.يؤثر إنهاء المكون على السحب الديناميكي الهوائي للمكون<br>
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA2 = .القيمة المشار إليها هي متوسط إرتفاع خشونة السطح
|
||||
MaterialPanel.but.SetForAll = تعيين للجميع
|
||||
MaterialPanel.but.SetForAll.ttip = .إضبط هذه النهاية لجميع مكونات الصاروخ
|
||||
RocketCompCfg.checkbox.Overridemass = :تجاوز الكتلة
|
||||
RocketCompCfg.checkbox.Overridemass.ttip = .يتجاوز كتلة المكون المحسوبة من خلال حجم المكون وكثافته
|
||||
RocketCompCfg.checkbox.Overridecenterofgrav = :تجاوز مركز الجاذبية
|
||||
@ -1025,7 +1025,7 @@ FreeformFinSetCfg.tab.ttip.General = الخصائص العامة
|
||||
FreeformFinSetCfg.tab.Shape = الشكل
|
||||
FreeformFinSetCfg.tab.ttip.Finshape = شكل الزعنفة
|
||||
FreeformFinSetCfg.lbl.Numberoffins = :عدد الزعانف
|
||||
FreeformFinSetCfg.lbl.Finrotation = :إلتفاف الزعنفة
|
||||
FinSetCfg.lbl.FinRotation = :إلتفاف الزعنفة
|
||||
FreeformFinSetCfg.lbl.Fincant = :ميلان الزعنفة
|
||||
FreeformFinSetCfg.lbl.ttip.Fincant = .الزاوية التي تكون فيها الزعانف مائلة بالنسبة لجسم الصاروخ
|
||||
FreeformFinSetCfg.lbl.Posrelativeto = :الموقع بالنسبة إلى
|
||||
@ -1077,7 +1077,6 @@ LaunchLugCfg.lbl.Outerdiam = :القطر الخارجي
|
||||
LaunchLugCfg.lbl.Innerdiam = :القطر الداخلي
|
||||
LaunchLugCfg.lbl.Thickness = السماكة
|
||||
LaunchLugCfg.lbl.Angle = :الإلتفاف
|
||||
LaunchLugCfg.lbl.Posrelativeto = :الموضع بالنسبة إلى
|
||||
LaunchLugCfg.lbl.plus = زائد
|
||||
LaunchLugCfg.tab.General = عام
|
||||
LaunchLugCfg.tab.Generalprop = الخصائص العامة
|
||||
@ -1150,7 +1149,6 @@ NoseConeCfg.tab.ttip.Shoulder = خصائص الأكتاف
|
||||
Parachute.Parachute = المظلة
|
||||
ParachuteCfg.lbl.Canopy = القماش
|
||||
ParachuteCfg.lbl.Shroudlines = خطوط التعليق عبارة عن حبال رفيعة تربط المظلة بالناهضات
|
||||
ParachuteCfg.lbl.Placement = تحديد مستوى
|
||||
ParachuteCfg.lbl.Deployment = النشر
|
||||
ParachuteCfg.lbl.CanopyShape = :شكل القماش
|
||||
ParachuteCfg.lbl.Diameter = :القطر
|
||||
@ -1207,8 +1205,7 @@ SleeveCfg.tab.Length = :الطول
|
||||
SleeveCfg.tab.General = عام
|
||||
SleeveCfg.tab.Generalproperties = خصائص عامة
|
||||
! StreamerConfig
|
||||
StreamerCfg.lbl.Attributes = صفات
|
||||
StreamerCfg.lbl.Placement = تحديد مستوى
|
||||
PlacementPanel.lbl.Placement = تحديد مستوى
|
||||
StreamerCfg.lbl.Deployment = النشر
|
||||
StreamerCfg.lbl.Striplength = :طول الشريط
|
||||
StreamerCfg.lbl.Stripwidth = :عرض الشريط
|
||||
@ -1270,7 +1267,7 @@ TransitionCfg.tab.Shoulderproperties = خصائص الأكتاف
|
||||
TrapezoidFinSetCfg.lbl.Nbroffins = :عدد الزعانف
|
||||
TrapezoidFinSetCfg.lbl.ttip.Nbroffins = .عدد الزعانف في مجموعة الزعانف
|
||||
TrapezoidFinSetCfg.lbl.Finrotation = :إلتفاف الزعنفة
|
||||
TrapezoidFinSetCfg.lbl.ttip.Finrotation = .زاوية الزعنفة الأولى في مجموعة الزعانف
|
||||
FinSetCfg.lbl.FinRotation.ttip = .زاوية الزعنفة الأولى في مجموعة الزعانف
|
||||
TrapezoidFinSetCfg.lbl.Fincant = ميل الزعنفة
|
||||
TrapezoidFinSetCfg.lbl.ttip.Fincant = .الزاوية التي تكون فيها الزعانف مائلة بالنسبة لجسم الصاروخ
|
||||
TrapezoidFinSetCfg.lbl.Rootchord = :وتر جذر الزعنفة
|
||||
@ -1280,8 +1277,8 @@ TrapezoidFinSetCfg.lbl.Sweeplength = :طول الوتر الأمامي للزع
|
||||
TrapezoidFinSetCfg.lbl.Sweepangle = :زاوية الوتر الأمامي للزعنفة
|
||||
TrapezoidFinSetCfg.lbl.FincrossSection = :المقطع العرضي للزعنفة
|
||||
TrapezoidFinSetCfg.lbl.Thickness = :السماكة
|
||||
TrapezoidFinSetCfg.lbl.Posrelativeto = :الموضع بالنسبة إلى
|
||||
TrapezoidFinSetCfg.lbl.plus = زائد
|
||||
PlacementPanel.lbl.PosRelativeTo = :الموضع بالنسبة إلى
|
||||
PlacementPanel.lbl.plus = زائد
|
||||
TrapezoidFinSetCfg.tab.General = عام
|
||||
TrapezoidFinSetCfg.tab.Generalproperties = خصائص عامة
|
||||
|
||||
|
@ -631,14 +631,14 @@ RocketCompCfg.lbl.Mass = Hmotnost:
|
||||
RocketCompCfg.lbl.Componentmass = Hmotnost komponenty:
|
||||
RocketCompCfg.lbl.overriddento = (prepsáno na
|
||||
RocketCompCfg.lbl.overriddenby = (prepsáno
|
||||
RocketCompCfg.lbl.Componentmaterial = Materiál komponentu:
|
||||
RocketCompCfg.lbl.Componentfinish = Povrchová úprava komponenty:
|
||||
RocketCompCfg.lbl.ttip.componentmaterialaffects = Materiál komponenty ovlivnuje váhu komponety.
|
||||
RocketCompCfg.combo.ttip.componentmaterialaffects = Materiál komponenty ovlivnuje váhu komponety.
|
||||
RocketCompCfg.lbl.longA1 = <html> Povrchová úprava komponenty ovlivnuje aerodynamiku komponenty.<br>
|
||||
RocketCompCfg.lbl.longA2 = Hodnota odpovídá prumerné hrubosti povrchu.
|
||||
RocketCompCfg.but.Setforall = Nastav pro v\u0161echny
|
||||
RocketCompCfg.but.ttip.Setforall = Nastav povrchovou úpravu pro v\u0161echny komponenty rakety.
|
||||
MaterialPanel.lbl.ComponentMaterial = Materiál komponentu:
|
||||
MaterialPanel.lbl.ComponentFinish = Povrchová úprava komponenty:
|
||||
MaterialPanel.lbl.ttip.ComponentMaterialAffects = Materiál komponenty ovlivnuje váhu komponety.
|
||||
MaterialPanel.combo.ttip.ComponentMaterialAffects = Materiál komponenty ovlivnuje váhu komponety.
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA1 = <html> Povrchová úprava komponenty ovlivnuje aerodynamiku komponenty.<br>
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA2 = Hodnota odpovídá prumerné hrubosti povrchu.
|
||||
MaterialPanel.but.SetForAll = Nastav pro v\u0161echny
|
||||
MaterialPanel.but.SetForAll.ttip = Nastav povrchovou úpravu pro v\u0161echny komponenty rakety.
|
||||
RocketCompCfg.checkbox.Overridemass = Zmen hmotnost:
|
||||
RocketCompCfg.checkbox.Overridecenterofgrav = Zmen te\u017Ei\u0161te:
|
||||
RocketCompCfg.checkbox.OverrideSubcomponents = P\u0159eps\u00E1n\u00ED pro v\u0161echny d\u00EDl\u010D\u00ED sou\u010D\u00E1sti
|
||||
@ -707,7 +707,7 @@ FreeformFinSetCfg.tab.ttip.General = Obecn
|
||||
FreeformFinSetCfg.tab.Shape = Tvar
|
||||
FreeformFinSetCfg.tab.ttip.Finshape = Tvar stabilizátoru
|
||||
FreeformFinSetCfg.lbl.Numberoffins = Pocet stabilizátoru:
|
||||
FreeformFinSetCfg.lbl.Finrotation = Rotace stabilizátoru:
|
||||
FinSetCfg.lbl.FinRotation = Rotace stabilizátoru:
|
||||
FreeformFinSetCfg.lbl.Fincant = Natocení stabilizátoru:
|
||||
FreeformFinSetCfg.lbl.ttip.Fincant = Úhly stabilizátoru jsou nakloneny vzhledem k telu rakety.
|
||||
FreeformFinSetCfg.lbl.Posrelativeto = Pozice vzhledem k:
|
||||
@ -747,7 +747,6 @@ LaunchLugCfg.lbl.Outerdiam = Vnej\u0161
|
||||
LaunchLugCfg.lbl.Innerdiam = Vnitrní prumer:
|
||||
LaunchLugCfg.lbl.Thickness = Tlou\u0161tka:
|
||||
LaunchLugCfg.lbl.Radialpos = Vzdálenost od stredu:
|
||||
LaunchLugCfg.lbl.Posrelativeto = Pozice vzhledem k:
|
||||
LaunchLugCfg.lbl.plus = plus
|
||||
LaunchLugCfg.tab.General = Obecné
|
||||
LaunchLugCfg.tab.Generalprop = Obecné vlastnosti
|
||||
@ -899,7 +898,7 @@ TransitionCfg.tab.Shoulderproperties = Parametry pripojen
|
||||
TrapezoidFinSetCfg.lbl.Nbroffins = Pocet stabilizátoru:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Nbroffins = Pocet krídélek tvorící stabilizátor.
|
||||
TrapezoidFinSetCfg.lbl.Finrotation = Rotace stabilizátoru:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Finrotation = Úhel prvního kridélka v stabilizátoru.
|
||||
FinSetCfg.lbl.FinRotation.ttip = Úhel prvního kridélka v stabilizátoru.
|
||||
TrapezoidFinSetCfg.lbl.Fincant = Natocení stabilizátoru:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Fincant = Úhly stabilizátoru jsou nakloneny vzhledem k telu rakety.
|
||||
TrapezoidFinSetCfg.lbl.Rootchord = Koren krídla:
|
||||
@ -909,8 +908,8 @@ TrapezoidFinSetCfg.lbl.Sweeplength = D
|
||||
TrapezoidFinSetCfg.lbl.Sweepangle = Úhel skosení:
|
||||
TrapezoidFinSetCfg.lbl.FincrossSection = Hrany stabilizátoru:
|
||||
TrapezoidFinSetCfg.lbl.Thickness = Tlou\u0161tka:
|
||||
TrapezoidFinSetCfg.lbl.Posrelativeto = Pozice vzhledem k:
|
||||
TrapezoidFinSetCfg.lbl.plus = plus
|
||||
PlacementPanel.lbl.PosRelativeTo = Pozice vzhledem k:
|
||||
PlacementPanel.lbl.plus = plus
|
||||
TrapezoidFinSetCfg.tab.General = Obecné
|
||||
TrapezoidFinSetCfg.tab.Generalproperties = Obecné vlastnosti
|
||||
|
||||
|
@ -687,14 +687,14 @@ RocketCompCfg.lbl.Mass = Masse:
|
||||
RocketCompCfg.lbl.Componentmass = Masse der Komponente:
|
||||
RocketCompCfg.lbl.overriddento = (überschrieben auf
|
||||
RocketCompCfg.lbl.overriddenby = (überschrieben durch
|
||||
RocketCompCfg.lbl.Componentmaterial = Material:
|
||||
RocketCompCfg.lbl.Componentfinish = Oberfläche:
|
||||
RocketCompCfg.lbl.ttip.componentmaterialaffects = Das Material beeinflusst die Masse der Komponente.
|
||||
RocketCompCfg.combo.ttip.componentmaterialaffects = Das Material beeinflusst die Masse der Komponente.
|
||||
RocketCompCfg.lbl.longA1 = <html>Die Oberfläche beeinflusst den aerodynamischen Widerstand der Komponente.<br>
|
||||
RocketCompCfg.lbl.longA2 = Der angegebene Wert ist die durchschnittliche Rautiefe der Oberfläche.
|
||||
RocketCompCfg.but.Setforall = Für alle setzen
|
||||
RocketCompCfg.but.ttip.Setforall = Diese Oberflächen für alle Komponenten der Rakete setzen.
|
||||
MaterialPanel.lbl.ComponentMaterial = Material:
|
||||
MaterialPanel.lbl.ComponentFinish = Oberfläche:
|
||||
MaterialPanel.lbl.ttip.ComponentMaterialAffects = Das Material beeinflusst die Masse der Komponente.
|
||||
MaterialPanel.combo.ttip.ComponentMaterialAffects = Das Material beeinflusst die Masse der Komponente.
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA1 = <html>Die Oberfläche beeinflusst den aerodynamischen Widerstand der Komponente.<br>
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA2 = Der angegebene Wert ist die durchschnittliche Rautiefe der Oberfläche.
|
||||
MaterialPanel.but.SetForAll = Für alle setzen
|
||||
MaterialPanel.but.SetForAll.ttip = Diese Oberflächen für alle Komponenten der Rakete setzen.
|
||||
RocketCompCfg.lbl.Overridemassorcenter = Überschreiben von Masse oder Schwerpunkts von
|
||||
RocketCompCfg.checkbox.Overridemass = Masse überschreiben:
|
||||
RocketCompCfg.checkbox.Overridecenterofgrav = Schwerpunkt überschreiben:
|
||||
@ -764,7 +764,7 @@ FreeformFinSetCfg.tab.ttip.General = Allgemeine Eigenschaften
|
||||
FreeformFinSetCfg.tab.Shape = Form
|
||||
FreeformFinSetCfg.tab.ttip.Finshape = Leitwerksform
|
||||
FreeformFinSetCfg.lbl.Numberoffins = Anzahl der Leitwerke
|
||||
FreeformFinSetCfg.lbl.Finrotation = Rotation:
|
||||
FinSetCfg.lbl.FinRotation = Rotation:
|
||||
FreeformFinSetCfg.lbl.Fincant = Neigung:
|
||||
FreeformFinSetCfg.lbl.ttip.Fincant = Der Winkel, in dem die Leitwerke zum Körperrohr geneigt sind.
|
||||
FreeformFinSetCfg.lbl.Posrelativeto = Position relativ zu:
|
||||
@ -804,7 +804,6 @@ LaunchLugCfg.lbl.Outerdiam = Au
|
||||
LaunchLugCfg.lbl.Innerdiam = Innendurchmesser:
|
||||
LaunchLugCfg.lbl.Thickness = Wandstärke:
|
||||
LaunchLugCfg.lbl.Radialpos = Radiale Position:
|
||||
LaunchLugCfg.lbl.Posrelativeto = Position relativ zu:
|
||||
LaunchLugCfg.lbl.plus = plus
|
||||
LaunchLugCfg.tab.General = Allgemein
|
||||
LaunchLugCfg.tab.Generalprop = Allgemeine Eigenschaften
|
||||
@ -957,7 +956,7 @@ TransitionCfg.tab.Shoulderproperties = Schultereigenschaften
|
||||
TrapezoidFinSetCfg.lbl.Nbroffins = Anzahl der Leitwerke
|
||||
TrapezoidFinSetCfg.lbl.ttip.Nbroffins = Anzahl der Leitwerke in diesem Satz
|
||||
TrapezoidFinSetCfg.lbl.Finrotation = Rotation der Leitwerke
|
||||
TrapezoidFinSetCfg.lbl.ttip.Finrotation = Winkel des ersten Leitwerks in diesem Satz
|
||||
FinSetCfg.lbl.FinRotation.ttip = Winkel des ersten Leitwerks in diesem Satz
|
||||
TrapezoidFinSetCfg.lbl.Fincant = Neigung:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Fincant = Der Winkel, in dem die Leitwerke zum Körperrohr geneigt sind.
|
||||
TrapezoidFinSetCfg.lbl.Rootchord = Blatttiefe:
|
||||
@ -967,8 +966,8 @@ TrapezoidFinSetCfg.lbl.Sweeplength = Blattbreite:
|
||||
TrapezoidFinSetCfg.lbl.Sweepangle = Pfeilungswinkel
|
||||
TrapezoidFinSetCfg.lbl.FincrossSection = Leitwerksquerschnitt
|
||||
TrapezoidFinSetCfg.lbl.Thickness = Wandstärke:
|
||||
TrapezoidFinSetCfg.lbl.Posrelativeto = Position relativ zu:
|
||||
TrapezoidFinSetCfg.lbl.plus = plus
|
||||
PlacementPanel.lbl.PosRelativeTo = Position relativ zu:
|
||||
PlacementPanel.lbl.plus = plus
|
||||
TrapezoidFinSetCfg.tab.General = Allgemein
|
||||
TrapezoidFinSetCfg.tab.Generalproperties = Allgemeine Eigenschaften
|
||||
|
||||
|
@ -359,7 +359,7 @@ FreeformFinSet.FreeformFinSet = Aletas de forma libre
|
||||
|
||||
FreeformFinSetCfg.lbl.Fincant = Inclinaci\u00f3n de las aletas:
|
||||
FreeformFinSetCfg.lbl.FincrossSection = Borde de la aleta:
|
||||
FreeformFinSetCfg.lbl.Finrotation = Rotaci\u00f3n de las aletas:
|
||||
FinSetCfg.lbl.FinRotation = Rotaci\u00f3n de las aletas:
|
||||
FreeformFinSetCfg.lbl.Numberoffins = N\u00famero de aletas:
|
||||
FreeformFinSetCfg.lbl.Posrelativeto = Posici\u00f3n relativa a:
|
||||
FreeformFinSetCfg.lbl.Thickness = Espesor:
|
||||
@ -493,7 +493,6 @@ LaunchLugCfg.lbl.Innerdiam = Di\u00e1metro interior:
|
||||
! LaunchLugConfig
|
||||
LaunchLugCfg.lbl.Length = Longitud:
|
||||
LaunchLugCfg.lbl.Outerdiam = Di\u00e1metro exterior:
|
||||
LaunchLugCfg.lbl.Posrelativeto = Posici\u00f3n relativa a:
|
||||
LaunchLugCfg.lbl.Radialpos = Posici\u00f3n radial:
|
||||
LaunchLugCfg.lbl.Thickness = Espesor:
|
||||
LaunchLugCfg.lbl.plus = Localizaci\u00f3n:
|
||||
@ -828,21 +827,21 @@ RocketCfg.lbl.Revisionhistory = Hist\u00f3rico de la revisi\u00f3n:
|
||||
|
||||
RocketCompCfg.border.Foreshoulder = Delantera del acople
|
||||
RocketCompCfg.but.Saveasdefstyle = Guardar como estilo por defecto
|
||||
RocketCompCfg.but.Setforall = Aplicar a todos
|
||||
RocketCompCfg.but.ttip.Setforall = Aplicar este acabado a todos los componentes del cohete.
|
||||
MaterialPanel.but.SetForAll = Aplicar a todos
|
||||
MaterialPanel.but.SetForAll.ttip = Aplicar este acabado a todos los componentes del cohete.
|
||||
RocketCompCfg.checkbox.Endcapped = Extremo tapado
|
||||
RocketCompCfg.checkbox.Overridecenterofgrav = Especificar el CG:
|
||||
RocketCompCfg.checkbox.Overridemass = Especificar la masa:
|
||||
RocketCompCfg.checkbox.OverrideSubcomponents = Incluir de todos los subcomponentes
|
||||
RocketCompCfg.checkbox.Usedefaultcolor = Usar color por defecto
|
||||
RocketCompCfg.combo.ttip.componentmaterialaffects = El peso del componente depender\u00e1 del material seleccionado.
|
||||
MaterialPanel.combo.ttip.ComponentMaterialAffects = El peso del componente depender\u00e1 del material seleccionado.
|
||||
RocketCompCfg.lbl.Choosecolor = Elija color
|
||||
RocketCompCfg.lbl.Commentsonthe = Comentarios sobre
|
||||
RocketCompCfg.lbl.Complinestyle = Estilo de l\u00ednea del componente:
|
||||
RocketCompCfg.lbl.Componentcolor = Color del componente:
|
||||
RocketCompCfg.lbl.Componentfinish = Acabado:
|
||||
MaterialPanel.lbl.ComponentFinish = Acabado:
|
||||
RocketCompCfg.lbl.Componentmass = Masa del componente:
|
||||
RocketCompCfg.lbl.Componentmaterial = Material del componente:
|
||||
MaterialPanel.lbl.ComponentMaterial = Material del componente:
|
||||
! RocketComponentConfig
|
||||
RocketCompCfg.lbl.Componentname = Nombre del componente:
|
||||
RocketCompCfg.lbl.Diameter = Di\u00e1metro:
|
||||
@ -850,13 +849,13 @@ RocketCompCfg.lbl.Figurestyle = Estilo de dibujo:
|
||||
RocketCompCfg.lbl.Length = Longitud:
|
||||
RocketCompCfg.lbl.Mass = Masa:
|
||||
RocketCompCfg.lbl.Thickness = Espesor:
|
||||
RocketCompCfg.lbl.longA1 = <html>El Coeficiente de rozamiento depender\u00e1 del acabado del componente.<br>
|
||||
RocketCompCfg.lbl.longA2 = El valor indicado es el promedio de la rugosidad en altura de la superficie.
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA1 = <html>El Coeficiente de rozamiento depender\u00e1 del acabado del componente.<br>
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA2 = El valor indicado es el promedio de la rugosidad en altura de la superficie.
|
||||
RocketCompCfg.lbl.longB1 = <html>En la masa especificada no se incluye la de los motores.<br>
|
||||
RocketCompCfg.lbl.longB2 = El CG se mide desde el extremo frontal del componente
|
||||
RocketCompCfg.lbl.overriddenby = (Elegido por
|
||||
RocketCompCfg.lbl.overriddento = (Elegido para
|
||||
RocketCompCfg.lbl.ttip.componentmaterialaffects = El material seleccionado para el componente afectar\u00e1 a la masa total del modelo.
|
||||
MaterialPanel.lbl.ttip.ComponentMaterialAffects = El material seleccionado para el componente afectar\u00e1 a la masa total del modelo.
|
||||
RocketCompCfg.tab.Appearance = Apariencia
|
||||
RocketCompCfg.tab.Comment = Comentarios
|
||||
RocketCompCfg.tab.Figstyleopt = Opciones de estilo de la figura
|
||||
@ -1211,15 +1210,15 @@ TrapezoidFinSetCfg.lbl.Finrotation = Rotaci\u00f3n de las aletas:
|
||||
TrapezoidFinSetCfg.lbl.Height = Altura:
|
||||
! TrapezoidFinSetConfig
|
||||
TrapezoidFinSetCfg.lbl.Nbroffins = N\u00famero de aletas:
|
||||
TrapezoidFinSetCfg.lbl.Posrelativeto = Posici\u00f3n relativa a:
|
||||
PlacementPanel.lbl.PosRelativeTo = Posici\u00f3n relativa a:
|
||||
TrapezoidFinSetCfg.lbl.Rootchord = Longitud de la l\u00ednea base:
|
||||
TrapezoidFinSetCfg.lbl.Sweepangle = \u00c1ngulo del borde de ataque:
|
||||
TrapezoidFinSetCfg.lbl.Sweeplength = Desplazamiento borde superior:
|
||||
TrapezoidFinSetCfg.lbl.Thickness = Espesor:
|
||||
TrapezoidFinSetCfg.lbl.Tipchord = Longitud del borde superior:
|
||||
TrapezoidFinSetCfg.lbl.plus = Localizaci\u00f3n:
|
||||
PlacementPanel.lbl.plus = Localizaci\u00f3n:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Fincant = El \u00e1ngulo de inclinaci\u00f3n de las aletas respecto al eje central del fuselaje.
|
||||
TrapezoidFinSetCfg.lbl.ttip.Finrotation = Posici\u00f3n de las aletas alrededor del fuselaje.
|
||||
FinSetCfg.lbl.FinRotation.ttip = Posici\u00f3n de las aletas alrededor del fuselaje.
|
||||
TrapezoidFinSetCfg.lbl.ttip.Nbroffins = N\u00famero de aletas en la base de aletas.
|
||||
TrapezoidFinSetCfg.tab.General = General
|
||||
TrapezoidFinSetCfg.tab.Generalproperties = Propiedades generales
|
||||
|
@ -350,7 +350,7 @@ FreeformFinSet.FreeformFinSet = Ailerons personnalis\u00E9s
|
||||
|
||||
FreeformFinSetCfg.lbl.Fincant = Inclinaison de l'aileron:
|
||||
FreeformFinSetCfg.lbl.FincrossSection = Coupe de l'aileron:
|
||||
FreeformFinSetCfg.lbl.Finrotation = Rotation des ailerons:
|
||||
FinSetCfg.lbl.FinRotation = Rotation des ailerons:
|
||||
FreeformFinSetCfg.lbl.Numberoffins = Nombre d'ailerons:
|
||||
FreeformFinSetCfg.lbl.Posrelativeto = Position par rapport \u00E0:
|
||||
FreeformFinSetCfg.lbl.Thickness = Epaisseur:
|
||||
@ -486,7 +486,6 @@ LaunchLugCfg.lbl.Innerdiam = Diam\u00E8tre interne:
|
||||
! LaunchLugConfig
|
||||
LaunchLugCfg.lbl.Length = Longueur:
|
||||
LaunchLugCfg.lbl.Outerdiam = Diam\u00E8tre externe:
|
||||
LaunchLugCfg.lbl.Posrelativeto = Position relative \u00E0:
|
||||
LaunchLugCfg.lbl.Radialpos = Position circulaire:
|
||||
LaunchLugCfg.lbl.Thickness = Epaisseur:
|
||||
LaunchLugCfg.lbl.plus = plus
|
||||
@ -819,22 +818,22 @@ RocketCfg.lbl.Revisionhistory = Historique des modifications:
|
||||
|
||||
RocketCompCfg.border.Foreshoulder = Epaulement avant
|
||||
RocketCompCfg.but.Saveasdefstyle = Sauver le mod\u00E8le par d\u00E9faut
|
||||
RocketCompCfg.but.Setforall = Appliquer \u00E0 tous
|
||||
RocketCompCfg.but.ttip.Setforall = R\u00E9gler la finition pour tous les composants de la fus\u00E9e.
|
||||
MaterialPanel.but.SetForAll = Appliquer \u00E0 tous
|
||||
MaterialPanel.but.SetForAll.ttip = R\u00E9gler la finition pour tous les composants de la fus\u00E9e.
|
||||
RocketCompCfg.checkbox.Endcapped = Arri\u00E8re clos
|
||||
RocketCompCfg.checkbox.Overridecenterofgrav = Forcer le centre de gravit\u00E9:
|
||||
RocketCompCfg.checkbox.Overridecoeffofdrag = Modifier le coefficient de trainee:
|
||||
RocketCompCfg.checkbox.Overridemass = Forcer la masse:
|
||||
RocketCompCfg.checkbox.OverrideSubcomponents = Forcer pour tous les sous composants
|
||||
RocketCompCfg.checkbox.Usedefaultcolor = Utiliser la couleur par d\u00E9faut
|
||||
RocketCompCfg.combo.ttip.componentmaterialaffects = Les mat\u00E9riaux utilis\u00E9s pour la pi\u00E8ce affectent le poids de la pi\u00E8ce.
|
||||
MaterialPanel.combo.ttip.ComponentMaterialAffects = Les mat\u00E9riaux utilis\u00E9s pour la pi\u00E8ce affectent le poids de la pi\u00E8ce.
|
||||
RocketCompCfg.lbl.Choosecolor = Choisir la couleur
|
||||
RocketCompCfg.lbl.Commentsonthe = Commentaires \u00E0 propos du
|
||||
RocketCompCfg.lbl.Complinestyle = Style de lignes pour les pi\u00E8ces:
|
||||
RocketCompCfg.lbl.Componentcolor = Couleur de la pi\u00E8ce:
|
||||
RocketCompCfg.lbl.Componentfinish = Finition de la pi\u00E8ce:
|
||||
MaterialPanel.lbl.ComponentFinish = Finition de la pi\u00E8ce:
|
||||
RocketCompCfg.lbl.Componentmass = Masse de la pi\u00E8ce:
|
||||
RocketCompCfg.lbl.Componentmaterial = Mat\u00E9riaux composant la pi\u00E8ce:
|
||||
MaterialPanel.lbl.ComponentMaterial = Mat\u00E9riaux composant la pi\u00E8ce:
|
||||
! RocketComponentConfig
|
||||
RocketCompCfg.lbl.Componentname = Nom de la pi\u00E8ce:
|
||||
RocketCompCfg.lbl.Diameter = Diam\u00E8tre:
|
||||
@ -842,13 +841,13 @@ RocketCompCfg.lbl.Figurestyle = Mod\u00E8le de forme:
|
||||
RocketCompCfg.lbl.Length = Longueur:
|
||||
RocketCompCfg.lbl.Mass = Masse:
|
||||
RocketCompCfg.lbl.Thickness = Epaisseur:
|
||||
RocketCompCfg.lbl.longA1 = <html>La finition de la pi\u00E8ce affecte l'a\u00E9rodynamisme de la pi\u00E8ce.<br>
|
||||
RocketCompCfg.lbl.longA2 = La valeur indiqu\u00E9e est la hauteur moyenne de la rugosit\u00E9 de la surface.
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA1 = <html>La finition de la pi\u00E8ce affecte l'a\u00E9rodynamisme de la pi\u00E8ce.<br>
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA2 = La valeur indiqu\u00E9e est la hauteur moyenne de la rugosit\u00E9 de la surface.
|
||||
RocketCompCfg.lbl.longB1 = <html>Le for\u00E7age de la masse n'inclus pas le ou les moteurs.<br>
|
||||
RocketCompCfg.lbl.longB2 = Le centre de gravit\u00E9 est mesur\u00E9 \u00E0 partir de l'extr\u00E9mit\u00E9 avant de la fus\u00E9e
|
||||
RocketCompCfg.lbl.overriddenby = (forc\u00E9 par
|
||||
RocketCompCfg.lbl.overriddento = (forc\u00E9 \u00E0
|
||||
RocketCompCfg.lbl.ttip.componentmaterialaffects = Les mat\u00E9riaux utilis\u00E9s pour la pi\u00E8ce affectent le poids de la pi\u00E8ce.
|
||||
MaterialPanel.lbl.ttip.ComponentMaterialAffects = Les mat\u00E9riaux utilis\u00E9s pour la pi\u00E8ce affectent le poids de la pi\u00E8ce.
|
||||
RocketCompCfg.tab.Appearance = Apparence
|
||||
RocketCompCfg.tab.Comment = Commentaires
|
||||
RocketCompCfg.tab.Figstyleopt = Options de la forme
|
||||
@ -1205,15 +1204,15 @@ TrapezoidFinSetCfg.lbl.Finrotation = Rotation de l'aileron:
|
||||
TrapezoidFinSetCfg.lbl.Height = Hauteur:
|
||||
! TrapezoidFinSetConfig
|
||||
TrapezoidFinSetCfg.lbl.Nbroffins = Nombre d'ailerons:
|
||||
TrapezoidFinSetCfg.lbl.Posrelativeto = Position relative \u00E0:
|
||||
PlacementPanel.lbl.PosRelativeTo = Position relative \u00E0:
|
||||
TrapezoidFinSetCfg.lbl.Rootchord = Longueur de la base de l'aileron:
|
||||
TrapezoidFinSetCfg.lbl.Sweepangle = Angle du bord d'attaque:
|
||||
TrapezoidFinSetCfg.lbl.Sweeplength = Longueur du bord d'attaque:
|
||||
TrapezoidFinSetCfg.lbl.Thickness = Epaisseur:
|
||||
TrapezoidFinSetCfg.lbl.Tipchord = Longueur du bout de l'aileron:
|
||||
TrapezoidFinSetCfg.lbl.plus = plus
|
||||
PlacementPanel.lbl.plus = plus
|
||||
TrapezoidFinSetCfg.lbl.ttip.Fincant = Angle d'inclinaison des ailerons par rapport au tube du corps de la fus\u00E9e.
|
||||
TrapezoidFinSetCfg.lbl.ttip.Finrotation = Angle du premier aileron dans le jeu.
|
||||
FinSetCfg.lbl.FinRotation.ttip = Angle du premier aileron dans le jeu.
|
||||
TrapezoidFinSetCfg.lbl.ttip.Nbroffins = Le nombre d'ailerons composant le jeu.
|
||||
TrapezoidFinSetCfg.tab.General = G\u00E9n\u00E9ral
|
||||
TrapezoidFinSetCfg.tab.Generalproperties = Propri\u00E9t\u00E9s g\u00E9n\u00E9rales
|
||||
|
@ -689,14 +689,14 @@ RocketCompCfg.lbl.Mass = Massa:
|
||||
RocketCompCfg.lbl.Componentmass = La massa del componente :
|
||||
RocketCompCfg.lbl.overriddento = (sovrascritto a
|
||||
RocketCompCfg.lbl.overriddenby = (sovrascritto da
|
||||
RocketCompCfg.lbl.Componentmaterial = Materiale del componente:
|
||||
RocketCompCfg.lbl.Componentfinish = Finitura del componente:
|
||||
RocketCompCfg.lbl.ttip.componentmaterialaffects = Il materiale del componente influisce sulla sua massa.
|
||||
RocketCompCfg.combo.ttip.componentmaterialaffects = Il materiale del componente influisce sulla sua massa.
|
||||
RocketCompCfg.lbl.longA1 = <html>La finitura del componente influisce sull'aerodinamica dello stesso.<br>
|
||||
RocketCompCfg.lbl.longA2 = Il valore indicato e' la media dell'altezza delle asperita' della superficie.
|
||||
RocketCompCfg.but.Setforall = Imposta per tutti
|
||||
RocketCompCfg.but.ttip.Setforall = Imposta questa finitura per tutti i componenti del razzo.
|
||||
MaterialPanel.lbl.ComponentMaterial = Materiale del componente:
|
||||
MaterialPanel.lbl.ComponentFinish = Finitura del componente:
|
||||
MaterialPanel.lbl.ttip.ComponentMaterialAffects = Il materiale del componente influisce sulla sua massa.
|
||||
MaterialPanel.combo.ttip.ComponentMaterialAffects = Il materiale del componente influisce sulla sua massa.
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA1 = <html>La finitura del componente influisce sull'aerodinamica dello stesso.<br>
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA2 = Il valore indicato e' la media dell'altezza delle asperita' della superficie.
|
||||
MaterialPanel.but.SetForAll = Imposta per tutti
|
||||
MaterialPanel.but.SetForAll.ttip = Imposta questa finitura per tutti i componenti del razzo.
|
||||
RocketCompCfg.checkbox.Overridemass = Modifica la massa:
|
||||
RocketCompCfg.checkbox.Overridecenterofgrav = Sposta il centro di gravita':
|
||||
RocketCompCfg.checkbox.OverrideSubcomponents = Modifica di tutti i subcomponenti
|
||||
@ -765,7 +765,7 @@ FreeformFinSetCfg.tab.ttip.General = Proprieta' generali
|
||||
FreeformFinSetCfg.tab.Shape = Forma
|
||||
FreeformFinSetCfg.tab.ttip.Finshape = Forma delle pinne
|
||||
FreeformFinSetCfg.lbl.Numberoffins = Numero delle pinne:
|
||||
FreeformFinSetCfg.lbl.Finrotation = Rotazione delle pinne:
|
||||
FinSetCfg.lbl.FinRotation = Rotazione delle pinne:
|
||||
FreeformFinSetCfg.lbl.Fincant = Inclinazione delle pinne:
|
||||
FreeformFinSetCfg.lbl.ttip.Fincant = L'angolo d'inclinazione delle pinne rispetto al corpo del razzo.
|
||||
FreeformFinSetCfg.lbl.Posrelativeto = Posizione relativa a :
|
||||
@ -805,7 +805,6 @@ LaunchLugCfg.lbl.Outerdiam = Diametro Esterno:
|
||||
LaunchLugCfg.lbl.Innerdiam = Diametro Interno:
|
||||
LaunchLugCfg.lbl.Thickness = Spessore:
|
||||
LaunchLugCfg.lbl.Radialpos = Posizione radiale:
|
||||
LaunchLugCfg.lbl.Posrelativeto = Posizione relativa a :
|
||||
LaunchLugCfg.lbl.plus = pi\u00f9
|
||||
LaunchLugCfg.tab.General = Generale
|
||||
LaunchLugCfg.tab.Generalprop = Proprieta' generali
|
||||
@ -958,7 +957,7 @@ TransitionCfg.tab.Shoulderproperties = Proprieta' della spalla
|
||||
TrapezoidFinSetCfg.lbl.Nbroffins = Numero di pinne:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Nbroffins = Il numero di pinne nell'insieme di pinne.
|
||||
TrapezoidFinSetCfg.lbl.Finrotation = Rotazione delle pinne:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Finrotation = L'angolo della prima pinna dell'insieme.
|
||||
FinSetCfg.lbl.FinRotation.ttip = L'angolo della prima pinna dell'insieme.
|
||||
TrapezoidFinSetCfg.lbl.Fincant = Inclinazione della pinna:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Fincant =L'angolo di inclinazione delle pinne rispetto al corpo del razzo.
|
||||
TrapezoidFinSetCfg.lbl.Rootchord = Corda base:
|
||||
@ -968,8 +967,8 @@ TrapezoidFinSetCfg.lbl.Sweeplength = Sweep Lunghezza:
|
||||
TrapezoidFinSetCfg.lbl.Sweepangle = Sweep angolo:
|
||||
TrapezoidFinSetCfg.lbl.FincrossSection = Sezione della pinna:
|
||||
TrapezoidFinSetCfg.lbl.Thickness = Spessore:
|
||||
TrapezoidFinSetCfg.lbl.Posrelativeto = Posizione relativa a :
|
||||
TrapezoidFinSetCfg.lbl.plus = pi\u00f9
|
||||
PlacementPanel.lbl.PosRelativeTo = Posizione relativa a :
|
||||
PlacementPanel.lbl.plus = pi\u00f9
|
||||
TrapezoidFinSetCfg.tab.General = Generale
|
||||
TrapezoidFinSetCfg.tab.Generalproperties = Proprieta' generali
|
||||
|
||||
|
@ -719,14 +719,14 @@ RocketCompCfg.lbl.Mass = \u8CEA\u91CF\uFF1A
|
||||
RocketCompCfg.lbl.Componentmass = \u90E8\u54C1\u8CEA\u91CF\uFF1A
|
||||
RocketCompCfg.lbl.overriddento = (overridden to
|
||||
RocketCompCfg.lbl.overriddenby = (overridden by
|
||||
RocketCompCfg.lbl.Componentmaterial = \u90E8\u54C1\u6750\u6599\uFF1A
|
||||
RocketCompCfg.lbl.Componentfinish = \u90E8\u54C1\u4ED5\u4E0A\u3052\u65B9\uFF1A
|
||||
RocketCompCfg.lbl.ttip.componentmaterialaffects = \u90E8\u54C1\u6750\u6599\u306F\u91CD\u91CF\u306B\u5F71\u97FF\u3059\u308B
|
||||
RocketCompCfg.combo.ttip.componentmaterialaffects = \u90E8\u54C1\u6750\u6599\u306F\u91CD\u91CF\u306B\u5F71\u97FF\u3059\u308B
|
||||
RocketCompCfg.lbl.longA1 = <html>\u4ED5\u4E0A\u3052\u65B9\u306F\u6297\u529B\u4FC2\u6570\u306B\u5F71\u97FF\u3059\u308B<br>
|
||||
RocketCompCfg.lbl.longA2 = \u3053\u306E\u5024\u306F\u8868\u9762\u7C97\u3055\u306E\u5E73\u5747\u5024\u3092\u793A\u3059
|
||||
RocketCompCfg.but.Setforall = \u5168\u3066\u306B\u9069\u7528
|
||||
RocketCompCfg.but.ttip.Setforall = \u3053\u306E\u4ED5\u4E0A\u3052\u65B9\u3092\u5168\u3066\u306E\u90E8\u54C1\u306B\u9069\u7528\u3059\u308B
|
||||
MaterialPanel.lbl.ComponentMaterial = \u90E8\u54C1\u6750\u6599\uFF1A
|
||||
MaterialPanel.lbl.ComponentFinish = \u90E8\u54C1\u4ED5\u4E0A\u3052\u65B9\uFF1A
|
||||
MaterialPanel.lbl.ttip.ComponentMaterialAffects = \u90E8\u54C1\u6750\u6599\u306F\u91CD\u91CF\u306B\u5F71\u97FF\u3059\u308B
|
||||
MaterialPanel.combo.ttip.ComponentMaterialAffects = \u90E8\u54C1\u6750\u6599\u306F\u91CD\u91CF\u306B\u5F71\u97FF\u3059\u308B
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA1 = <html>\u4ED5\u4E0A\u3052\u65B9\u306F\u6297\u529B\u4FC2\u6570\u306B\u5F71\u97FF\u3059\u308B<br>
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA2 = \u3053\u306E\u5024\u306F\u8868\u9762\u7C97\u3055\u306E\u5E73\u5747\u5024\u3092\u793A\u3059
|
||||
MaterialPanel.but.SetForAll = \u5168\u3066\u306B\u9069\u7528
|
||||
MaterialPanel.but.SetForAll.ttip = \u3053\u306E\u4ED5\u4E0A\u3052\u65B9\u3092\u5168\u3066\u306E\u90E8\u54C1\u306B\u9069\u7528\u3059\u308B
|
||||
RocketCompCfg.checkbox.Overridemass = \u8CEA\u91CF\u306E\u518D\u5B9A\u7FA9\uFF1A
|
||||
RocketCompCfg.checkbox.Overridecenterofgrav = \u91CD\u5FC3\u306E\u518D\u5B9A\u7FA9\uFF1A
|
||||
RocketCompCfg.checkbox.OverrideSubcomponents = \u3059\u3079\u3066\u306e\u30b5\u30d6\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306b\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b
|
||||
@ -795,7 +795,7 @@ FreeformFinSetCfg.tab.ttip.General = \u4E00\u822C
|
||||
FreeformFinSetCfg.tab.Shape = \u5F62\u72B6
|
||||
FreeformFinSetCfg.tab.ttip.Finshape = \u30D5\u30A3\u30F3\u5F62\u72B6
|
||||
FreeformFinSetCfg.lbl.Numberoffins = \u30D5\u30A3\u30F3\u306E\u6570\uFF1A
|
||||
FreeformFinSetCfg.lbl.Finrotation = \u56DE\u8EE2\uFF1A
|
||||
FinSetCfg.lbl.FinRotation = \u56DE\u8EE2\uFF1A
|
||||
FreeformFinSetCfg.lbl.Fincant = \u50BE\u659C\uFF1A
|
||||
FreeformFinSetCfg.lbl.ttip.Fincant = \u30DC\u30C7\u30A3\u304B\u3089\u307F\u3066\u30D5\u30A3\u30F3\u306E\u50BE\u3044\u3066\u3044\u308B\u89D2\u5EA6
|
||||
FreeformFinSetCfg.lbl.Posrelativeto = \u4F4D\u7F6E\uFF1A
|
||||
@ -835,7 +835,6 @@ LaunchLugCfg.lbl.Outerdiam = \u5916\u5F84\uFF1A
|
||||
LaunchLugCfg.lbl.Innerdiam = \u5185\u5F84\uFF1A
|
||||
LaunchLugCfg.lbl.Thickness = \u539A\u3055\uFF1A
|
||||
LaunchLugCfg.lbl.Radialpos = \u56DE\u8EE2\u65B9\u5411\u4F4D\u7F6E\uFF1A
|
||||
LaunchLugCfg.lbl.Posrelativeto = \u4F4D\u7F6E\uFF1A
|
||||
LaunchLugCfg.lbl.plus = \u30D7\u30E9\u30B9
|
||||
LaunchLugCfg.tab.General = \u4E00\u822C
|
||||
LaunchLugCfg.tab.Generalprop = \u4E00\u822C
|
||||
@ -988,7 +987,7 @@ TransitionCfg.tab.Shoulderproperties = \u30B7\u30E7\u30EB\u30C0\u30FC
|
||||
TrapezoidFinSetCfg.lbl.Nbroffins = \u30D5\u30A3\u30F3\u306E\u6570
|
||||
TrapezoidFinSetCfg.lbl.ttip.Nbroffins = \u30D5\u30A3\u30F3\u306E\u6570
|
||||
TrapezoidFinSetCfg.lbl.Finrotation = \u56DE\u8EE2\uFF1A
|
||||
TrapezoidFinSetCfg.lbl.ttip.Finrotation = \u30D5\u30A3\u30F3\u306E\u89D2\u5EA6
|
||||
FinSetCfg.lbl.FinRotation.ttip = \u30D5\u30A3\u30F3\u306E\u89D2\u5EA6
|
||||
TrapezoidFinSetCfg.lbl.Fincant = \u50BE\u659C\uFF1A
|
||||
TrapezoidFinSetCfg.lbl.ttip.Fincant = \u30DC\u30C7\u30A3\u306B\u5BFE\u3057\u3066\u306E\u30D5\u30A3\u30F3\u306E\u50BE\u659C\u89D2\u5EA6
|
||||
TrapezoidFinSetCfg.lbl.Rootchord = \u6839\u672C\u9577\u3055\uFF1A
|
||||
@ -998,8 +997,8 @@ TrapezoidFinSetCfg.lbl.Sweeplength = \u5F8C\u9000\u9577\u3055\uFF1A
|
||||
TrapezoidFinSetCfg.lbl.Sweepangle = \u5F8C\u9000\u89D2\uFF1A
|
||||
TrapezoidFinSetCfg.lbl.FincrossSection = \u30D5\u30A3\u30F3\u65AD\u9762\u7A4D\uFF1A
|
||||
TrapezoidFinSetCfg.lbl.Thickness = \u539A\u3055\uFF1A
|
||||
TrapezoidFinSetCfg.lbl.Posrelativeto = \u4F4D\u7F6E\uFF1A
|
||||
TrapezoidFinSetCfg.lbl.plus = \u30D7\u30E9\u30B9
|
||||
PlacementPanel.lbl.PosRelativeTo = \u4F4D\u7F6E\uFF1A
|
||||
PlacementPanel.lbl.plus = \u30D7\u30E9\u30B9
|
||||
TrapezoidFinSetCfg.tab.General = \u4E00\u822C
|
||||
TrapezoidFinSetCfg.tab.Generalproperties = \u4E00\u822C
|
||||
|
||||
|
@ -837,14 +837,14 @@ RocketCompCfg.lbl.Mass = Massa:
|
||||
RocketCompCfg.lbl.Componentmass = Componentmassa:
|
||||
RocketCompCfg.lbl.overriddento = (overschreven naar
|
||||
RocketCompCfg.lbl.overriddenby = (overschreven door
|
||||
RocketCompCfg.lbl.Componentmaterial = Componentmateriaal:
|
||||
RocketCompCfg.lbl.Componentfinish = Componentafwerking:
|
||||
RocketCompCfg.lbl.ttip.componentmaterialaffects = Het materiaal van het onderdeel beïnvloedt het gewicht van het onderdeel.
|
||||
RocketCompCfg.combo.ttip.componentmaterialaffects = Het materiaal van het onderdeel beïnvloedt het gewicht van het onderdeel.
|
||||
RocketCompCfg.lbl.longA1 = <html>De afwerking van het onderdeel beïnvloedt de luchtweerstand van het onderdeel.<br>
|
||||
RocketCompCfg.lbl.longA2 = De aangegeven waarde is de gemiddelde ruwheidshoogte van het oppervlak.
|
||||
RocketCompCfg.but.Setforall = Instellen voor alle
|
||||
RocketCompCfg.but.ttip.Setforall = Stel deze afwerking in voor alle onderdelen van de raket.
|
||||
MaterialPanel.lbl.ComponentMaterial = Componentmateriaal:
|
||||
MaterialPanel.lbl.ComponentFinish = Componentafwerking:
|
||||
MaterialPanel.lbl.ttip.ComponentMaterialAffects = Het materiaal van het onderdeel beïnvloedt het gewicht van het onderdeel.
|
||||
MaterialPanel.combo.ttip.ComponentMaterialAffects = Het materiaal van het onderdeel beïnvloedt het gewicht van het onderdeel.
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA1 = <html>De afwerking van het onderdeel beïnvloedt de luchtweerstand van het onderdeel.<br>
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA2 = De aangegeven waarde is de gemiddelde ruwheidshoogte van het oppervlak.
|
||||
MaterialPanel.but.SetForAll = Instellen voor alle
|
||||
MaterialPanel.but.SetForAll.ttip = Stel deze afwerking in voor alle onderdelen van de raket.
|
||||
RocketCompCfg.checkbox.Overridemass = Overschrijf massa:
|
||||
RocketCompCfg.checkbox.Overridecenterofgrav = Overschrijf zwaartepunt:
|
||||
RocketCompCfg.checkbox.SetDragCoeff = Stel wrijvingscoëfficiënt in:
|
||||
@ -920,7 +920,7 @@ FreeformFinSetCfg.tab.ttip.General = Algemene eigenschappen
|
||||
FreeformFinSetCfg.tab.Shape = Vorm
|
||||
FreeformFinSetCfg.tab.ttip.Finshape = Vinvorm
|
||||
FreeformFinSetCfg.lbl.Numberoffins = Aantal vinnen:
|
||||
FreeformFinSetCfg.lbl.Finrotation = Vinrotatie:
|
||||
FinSetCfg.lbl.FinRotation = Vinrotatie:
|
||||
FreeformFinSetCfg.lbl.Fincant = Vinkanteling:
|
||||
FreeformFinSetCfg.lbl.ttip.Fincant = De hoek waarin de vinnen zijn gekanteld ten opzichte van de raketromp.
|
||||
FreeformFinSetCfg.lbl.Posrelativeto = Positie relatief t.o.v.:
|
||||
@ -969,7 +969,6 @@ LaunchLugCfg.lbl.Outerdiam = Buitendiameter:
|
||||
LaunchLugCfg.lbl.Innerdiam = Binnendiameter:
|
||||
LaunchLugCfg.lbl.Thickness = Dikte:
|
||||
LaunchLugCfg.lbl.Angle = Rotatie:
|
||||
LaunchLugCfg.lbl.Posrelativeto = Positie relatief t.o.v.:
|
||||
LaunchLugCfg.lbl.plus = plus
|
||||
LaunchLugCfg.tab.General = Algemeen
|
||||
LaunchLugCfg.tab.Generalprop = Algemene eigenschappen
|
||||
@ -1136,7 +1135,7 @@ TransitionCfg.tab.Shoulderproperties = Schoudereigenschappen
|
||||
TrapezoidFinSetCfg.lbl.Nbroffins = Aantal vinnen:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Nbroffins = Het aantal vinnen in de vinnenset.
|
||||
TrapezoidFinSetCfg.lbl.Finrotation = Vinrotatie:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Finrotation = De hoek van de eerste vin in de vinnenset.
|
||||
FinSetCfg.lbl.FinRotation.ttip = De hoek van de eerste vin in de vinnenset.
|
||||
TrapezoidFinSetCfg.lbl.Fincant = Vinkanteling:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Fincant = De hoek waarin de vinnen zijn gekanteld ten opzichte van de raketromp.
|
||||
TrapezoidFinSetCfg.lbl.Rootchord = Root chord:
|
||||
@ -1146,8 +1145,8 @@ TrapezoidFinSetCfg.lbl.Sweeplength = Zwaailengte:
|
||||
TrapezoidFinSetCfg.lbl.Sweepangle = Zwaaihoek:
|
||||
TrapezoidFinSetCfg.lbl.FincrossSection = Vindoorsnede:
|
||||
TrapezoidFinSetCfg.lbl.Thickness = Dikte:
|
||||
TrapezoidFinSetCfg.lbl.Posrelativeto = Positie relatief t.o.v.:
|
||||
TrapezoidFinSetCfg.lbl.plus = plus
|
||||
PlacementPanel.lbl.PosRelativeTo = Positie relatief t.o.v.:
|
||||
PlacementPanel.lbl.plus = plus
|
||||
TrapezoidFinSetCfg.tab.General = Algemeen
|
||||
TrapezoidFinSetCfg.tab.Generalproperties = Algemene eigenschappen
|
||||
|
||||
|
@ -633,14 +633,14 @@ update.dlg.latestVersion = Korzystasz z najnowszej wersji OpenRocket: %s.
|
||||
RocketCompCfg.lbl.Componentmass = Masa cz\u0119\u015Bci:
|
||||
RocketCompCfg.lbl.overriddento = (wymuszone do
|
||||
RocketCompCfg.lbl.overriddenby = (wymuszone przez
|
||||
RocketCompCfg.lbl.Componentmaterial = Materia\u0142 cz\u0119\u015Bci:
|
||||
RocketCompCfg.lbl.Componentfinish = Wyko\u0144czenie cz\u0119\u015Bci:
|
||||
RocketCompCfg.lbl.ttip.componentmaterialaffects = Materia\u0142 cz\u0119\u015Bci ma wp\u0142yw na jej ci\u0119\u017Car.
|
||||
RocketCompCfg.combo.ttip.componentmaterialaffects = Materia\u0142 cz\u0119\u015Bci ma wp\u0142yw na jej ci\u0119\u017Car.
|
||||
RocketCompCfg.lbl.longA1 = <html>Wyko\u0144czenie cz\u0119\u015Bci ma wp\u0142yw na jej opór aerodynamiczny.<br>
|
||||
RocketCompCfg.lbl.longA2 = Wskazana warto\u015B\u0107 okre\u015Bla przeci\u0119tn\u0105 chropowato\u015B\u0107 powierzchni.
|
||||
RocketCompCfg.but.Setforall = Ustaw dla wszystkich
|
||||
RocketCompCfg.but.ttip.Setforall = Nadaj to wyko\u0144czenie wszystkim cz\u0119\u015Bci\u0105 sk\u0142adow\u0105 rakiety.
|
||||
MaterialPanel.lbl.ComponentMaterial = Materia\u0142 cz\u0119\u015Bci:
|
||||
MaterialPanel.lbl.ComponentFinish = Wyko\u0144czenie cz\u0119\u015Bci:
|
||||
MaterialPanel.lbl.ttip.ComponentMaterialAffects = Materia\u0142 cz\u0119\u015Bci ma wp\u0142yw na jej ci\u0119\u017Car.
|
||||
MaterialPanel.combo.ttip.ComponentMaterialAffects = Materia\u0142 cz\u0119\u015Bci ma wp\u0142yw na jej ci\u0119\u017Car.
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA1 = <html>Wyko\u0144czenie cz\u0119\u015Bci ma wp\u0142yw na jej opór aerodynamiczny.<br>
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA2 = Wskazana warto\u015B\u0107 okre\u015Bla przeci\u0119tn\u0105 chropowato\u015B\u0107 powierzchni.
|
||||
MaterialPanel.but.SetForAll = Ustaw dla wszystkich
|
||||
MaterialPanel.but.SetForAll.ttip = Nadaj to wyko\u0144czenie wszystkim cz\u0119\u015Bci\u0105 sk\u0142adow\u0105 rakiety.
|
||||
RocketCompCfg.checkbox.Overridemass = Wymu\u015B ci\u0119\u017Car:
|
||||
RocketCompCfg.checkbox.Overridecenterofgrav = Wymu\u015B \u015Brodek ci\u0119\u017Cko\u015Bci:
|
||||
RocketCompCfg.checkbox.OverrideSubcomponents = Nadpisanie dla wszystkich podkomponent\u00F3w
|
||||
@ -710,7 +710,7 @@ ComponentInfo.EngineBlock = <b>Blokada silnika</b> unieruchamia silnik wewn\u01
|
||||
FreeformFinSetCfg.tab.Shape = Kszta\u0142t
|
||||
FreeformFinSetCfg.tab.ttip.Finshape = Kszta\u0142t stateczników
|
||||
FreeformFinSetCfg.lbl.Numberoffins = Liczba stateczników:
|
||||
FreeformFinSetCfg.lbl.Finrotation = Rotacja stateczników:
|
||||
FinSetCfg.lbl.FinRotation = Rotacja stateczników:
|
||||
FreeformFinSetCfg.lbl.Fincant = Nachylenie stateczników:
|
||||
FreeformFinSetCfg.lbl.ttip.Fincant = K\u0105t nachylenia stateczników wzgl\u0119dem korpusu.
|
||||
FreeformFinSetCfg.lbl.Posrelativeto = Po\u0142o\u017Cenie wzgl\u0119dem:
|
||||
@ -750,7 +750,6 @@ ComponentInfo.EngineBlock = <b>Blokada silnika</b> unieruchamia silnik wewn\u01
|
||||
LaunchLugCfg.lbl.Innerdiam = \u015Arednica wewn\u0119trzna:
|
||||
LaunchLugCfg.lbl.Thickness = Grubo\u015B\u0107:
|
||||
LaunchLugCfg.lbl.Radialpos = Po\u0142o\u017Cenie wzgl\u0119dem \u015Brodka:
|
||||
LaunchLugCfg.lbl.Posrelativeto = Po\u0142o\u017Cenie wzgl\u0119dem:
|
||||
LaunchLugCfg.lbl.plus = plus
|
||||
LaunchLugCfg.tab.General = Ogólne
|
||||
LaunchLugCfg.tab.Generalprop = W\u0142a\u015Bciwo\u015Bci ogólne
|
||||
@ -902,7 +901,7 @@ ComponentInfo.EngineBlock = <b>Blokada silnika</b> unieruchamia silnik wewn\u01
|
||||
TrapezoidFinSetCfg.lbl.Nbroffins = Liczba stateczników:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Nbroffins = Liczba stateczników w zestawie.
|
||||
TrapezoidFinSetCfg.lbl.Finrotation = Rotacja stateczników:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Finrotation = K\u0105t nachylenia pierwszego statecznika w zestawie.
|
||||
FinSetCfg.lbl.FinRotation.ttip = K\u0105t nachylenia pierwszego statecznika w zestawie.
|
||||
TrapezoidFinSetCfg.lbl.Fincant = Nachylenie stateczników:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Fincant = K\u0105t nachylenia stateczników wzgl\u0119dem korpusu.
|
||||
TrapezoidFinSetCfg.lbl.Rootchord = Kraw\u0119d\u017A podstawy:
|
||||
@ -912,8 +911,8 @@ ComponentInfo.EngineBlock = <b>Blokada silnika</b> unieruchamia silnik wewn\u01
|
||||
TrapezoidFinSetCfg.lbl.Sweepangle = K\u0105t przesuni\u0119cia:
|
||||
TrapezoidFinSetCfg.lbl.FincrossSection = Przekrój statecznika:
|
||||
TrapezoidFinSetCfg.lbl.Thickness = Grubo\u015B\u0107:
|
||||
TrapezoidFinSetCfg.lbl.Posrelativeto = Po\u0142o\u017Cenie wzgl\u0119dem:
|
||||
TrapezoidFinSetCfg.lbl.plus = plus
|
||||
PlacementPanel.lbl.PosRelativeTo = Po\u0142o\u017Cenie wzgl\u0119dem:
|
||||
PlacementPanel.lbl.plus = plus
|
||||
TrapezoidFinSetCfg.tab.General = Ogólne
|
||||
TrapezoidFinSetCfg.tab.Generalproperties = W\u0142a\u015Bciwo\u015Bci ogólne
|
||||
|
||||
|
@ -339,7 +339,7 @@ FreeformFinSet.FreeformFinSet = Conjunto de aletas de formato livre
|
||||
|
||||
FreeformFinSetCfg.lbl.Fincant = Inclina\u00e7\u00e3o da aleta:
|
||||
FreeformFinSetCfg.lbl.FincrossSection = Se\u00e7\u00e3o transversal da aleta:
|
||||
FreeformFinSetCfg.lbl.Finrotation = Rota\u00e7\u00e3o da aleta:
|
||||
FinSetCfg.lbl.FinRotation = Rota\u00e7\u00e3o da aleta:
|
||||
FreeformFinSetCfg.lbl.Numberoffins = N\u00famero de aletas:
|
||||
FreeformFinSetCfg.lbl.Posrelativeto = Posi\u00e7\u00e3o em rela\u00e7\u00e3o a:
|
||||
FreeformFinSetCfg.lbl.Thickness = Se\u00e7\u00e3o transversal da aleta:
|
||||
@ -473,7 +473,6 @@ LaunchLugCfg.lbl.Innerdiam = Di\u00e2metro interno:
|
||||
# LaunchLugConfig
|
||||
LaunchLugCfg.lbl.Length = Comprimento:
|
||||
LaunchLugCfg.lbl.Outerdiam = Di\u00e2metro Externo
|
||||
LaunchLugCfg.lbl.Posrelativeto = Posi\u00e7\u00e3o em rela\u00e7\u00e3o a:
|
||||
LaunchLugCfg.lbl.Radialpos = Posi\u00e7\u00e3o radial:
|
||||
LaunchLugCfg.lbl.Thickness = Espessura:
|
||||
LaunchLugCfg.lbl.plus = mais
|
||||
@ -803,22 +802,22 @@ RocketCfg.lbl.Revisionhistory = Hist\u00f3rico de Revis\u00e3o:
|
||||
|
||||
RocketCompCfg.border.Foreshoulder = Ressalto dianteiro
|
||||
RocketCompCfg.but.Saveasdefstyle = Salvar como estilo padr\u00e3o
|
||||
RocketCompCfg.but.Setforall = Definir para todos
|
||||
RocketCompCfg.but.ttip.Setforall = Definir este acabamento para todos os componentes do foguete.
|
||||
MaterialPanel.but.SetForAll = Definir para todos
|
||||
MaterialPanel.but.SetForAll.ttip = Definir este acabamento para todos os componentes do foguete.
|
||||
RocketCompCfg.checkbox.Endcapped = Fim tampado
|
||||
RocketCompCfg.checkbox.Overridecenterofgrav = Modificar o centro de gravidade:
|
||||
RocketCompCfg.checkbox.Overridecoeffofdrag = Modificar o coeficiente de arrasto:
|
||||
RocketCompCfg.checkbox.Overridemass = Modificar massa:
|
||||
RocketCompCfg.checkbox.OverrideSubcomponents = Modificar de todos os subcomponentes
|
||||
RocketCompCfg.checkbox.Usedefaultcolor = Use a cor padr\u00e3o
|
||||
RocketCompCfg.combo.ttip.componentmaterialaffects = O material do componente afeta o peso do componente.
|
||||
MaterialPanel.combo.ttip.ComponentMaterialAffects = O material do componente afeta o peso do componente.
|
||||
RocketCompCfg.lbl.Choosecolor = Escolha a cor
|
||||
RocketCompCfg.lbl.Commentsonthe = Coment\u00e1rios sobre o
|
||||
RocketCompCfg.lbl.Complinestyle = Estilo de linha de componentes:
|
||||
RocketCompCfg.lbl.Componentcolor = Cor do componente:
|
||||
RocketCompCfg.lbl.Componentfinish = Acabamento de componentes:
|
||||
MaterialPanel.lbl.ComponentFinish = Acabamento de componentes:
|
||||
RocketCompCfg.lbl.Componentmass = Massa do componente:
|
||||
RocketCompCfg.lbl.Componentmaterial = Material componente:
|
||||
MaterialPanel.lbl.ComponentMaterial = Material componente:
|
||||
# RocketComponentConfig
|
||||
RocketCompCfg.lbl.Componentname = Nome do componente:
|
||||
RocketCompCfg.lbl.Diameter = Di\u00e2metro:
|
||||
@ -826,13 +825,13 @@ RocketCompCfg.lbl.Figurestyle = Estilo da figura:
|
||||
RocketCompCfg.lbl.Length = Comprimento:
|
||||
RocketCompCfg.lbl.Mass = Massa:
|
||||
RocketCompCfg.lbl.Thickness = Espessura:
|
||||
RocketCompCfg.lbl.longA1 = <html>O acabamento do componente afeta o arrasto aerodin\u00e2mico do componente.<br>
|
||||
RocketCompCfg.lbl.longA2 = O valor indicado \u00e9 a altura m\u00e9dia da rugosidade da superf\u00edcie.
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA1 = <html>O acabamento do componente afeta o arrasto aerodin\u00e2mico do componente.<br>
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA2 = O valor indicado \u00e9 a altura m\u00e9dia da rugosidade da superf\u00edcie.
|
||||
RocketCompCfg.lbl.longB1 = <html>A massa modificada n\u00e3o inclui motores.<br>
|
||||
RocketCompCfg.lbl.longB2 = O centro de gravidade \u00e9 medido a partir da extremidade dianteira do
|
||||
RocketCompCfg.lbl.overriddenby = (substitu\u00eddo pela
|
||||
RocketCompCfg.lbl.overriddento = (substitu\u00eddo para
|
||||
RocketCompCfg.lbl.ttip.componentmaterialaffects = O material do componente afeta o peso do componente.
|
||||
MaterialPanel.lbl.ttip.ComponentMaterialAffects = O material do componente afeta o peso do componente.
|
||||
RocketCompCfg.tab.Comment = Coment\u00e1rio
|
||||
RocketCompCfg.tab.Figstyleopt = Op\u00e7\u00f5es do estilo de figura
|
||||
RocketCompCfg.tab.Figure = Figura
|
||||
@ -1168,15 +1167,15 @@ TrapezoidFinSetCfg.lbl.Finrotation = Rota\u00e7\u00e3o da aleta:
|
||||
TrapezoidFinSetCfg.lbl.Height = Altura:
|
||||
# TrapezoidFinSetConfig
|
||||
TrapezoidFinSetCfg.lbl.Nbroffins = N\u00famero de aletas:
|
||||
TrapezoidFinSetCfg.lbl.Posrelativeto = Posi\u00e7\u00e3o em rela\u00e7\u00e3o a:
|
||||
PlacementPanel.lbl.PosRelativeTo = Posi\u00e7\u00e3o em rela\u00e7\u00e3o a:
|
||||
TrapezoidFinSetCfg.lbl.Rootchord = Corda da raiz:
|
||||
TrapezoidFinSetCfg.lbl.Sweepangle = \u00c2ngulo do contorno:
|
||||
TrapezoidFinSetCfg.lbl.Sweeplength = Comprimento do contorno:
|
||||
TrapezoidFinSetCfg.lbl.Thickness = Espessura:
|
||||
TrapezoidFinSetCfg.lbl.Tipchord = Dica da corda:
|
||||
TrapezoidFinSetCfg.lbl.plus = mais
|
||||
PlacementPanel.lbl.plus = mais
|
||||
TrapezoidFinSetCfg.lbl.ttip.Fincant = O \u00e2ngulo que as aletas s\u00e3o obl\u00edquos em rela\u00e7\u00e3o ao corpo do foguete.
|
||||
TrapezoidFinSetCfg.lbl.ttip.Finrotation = \u00c2ngulo da primeira aleta no conjunto de aletas.
|
||||
FinSetCfg.lbl.FinRotation.ttip = \u00c2ngulo da primeira aleta no conjunto de aletas.
|
||||
TrapezoidFinSetCfg.lbl.ttip.Nbroffins = N\u00famero de alhetas no conjunto de aletas.
|
||||
TrapezoidFinSetCfg.tab.General = Geral
|
||||
TrapezoidFinSetCfg.tab.Generalproperties = Propriedades gerais
|
||||
|
@ -908,14 +908,14 @@ RocketCompCfg.lbl.Mass = \u041C\u0430\u0441\u0441\u0430:
|
||||
RocketCompCfg.lbl.Componentmass = \u041C\u0430\u0441\u0441\u0430 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430:
|
||||
RocketCompCfg.lbl.overriddento = (\u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043E \u043D\u0430
|
||||
RocketCompCfg.lbl.overriddenby = (\u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043E \u043D\u0430
|
||||
RocketCompCfg.lbl.Componentmaterial = \u041C\u0430\u0442\u0435\u0440\u0438\u0430\u043B \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430:
|
||||
RocketCompCfg.lbl.Componentfinish = \u041E\u0442\u0434\u0435\u043B\u043A\u0430 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430
|
||||
RocketCompCfg.lbl.ttip.componentmaterialaffects = \u041C\u0430\u0442\u0435\u0440\u0438\u0430\u043B \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 \u0432\u043B\u0438\u044F\u0435\u0442 \u043D\u0430 \u0435\u0433\u043E \u043C\u0430\u0441\u0441\u0443.
|
||||
RocketCompCfg.combo.ttip.componentmaterialaffects = \u041C\u0430\u0442\u0435\u0440\u0438\u0430\u043B \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 \u0432\u043B\u0438\u044F\u0435\u0442 \u043D\u0430 \u0435\u0433\u043E \u043C\u0430\u0441\u0441\u0443.
|
||||
RocketCompCfg.lbl.longA1 = <html>\u041E\u0442\u0434\u0435\u043B\u043A\u0430 \u0432\u043B\u0438\u044F\u0435\u0442 \u043D\u0430 \u0430\u044D\u0440\u043E\u0434\u0438\u043D\u0430\u043C\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0441\u043E\u043F\u0440\u043E\u0442\u0438\u0432\u043B\u0435\u043D\u0438\u0435 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430<br>
|
||||
RocketCompCfg.lbl.longA2 = \u0423\u043A\u0430\u0437\u0430\u043D\u043E \u0441\u0440\u0435\u0434\u043D\u0435\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0448\u0435\u0440\u043E\u0445\u043E\u0432\u0430\u0442\u043E\u0441\u0442\u0438.
|
||||
RocketCompCfg.but.Setforall = \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0434\u043B\u044F \u0432\u0441\u0435\u0445
|
||||
RocketCompCfg.but.ttip.Setforall = \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u044D\u0442\u0443 \u0448\u0435\u0440\u043E\u0445\u043E\u0432\u0430\u0442\u043E\u0441\u0442\u044C \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u043E\u0432 \u0440\u0430\u043A\u0435\u0442\u044B.
|
||||
MaterialPanel.lbl.ComponentMaterial = \u041C\u0430\u0442\u0435\u0440\u0438\u0430\u043B \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430:
|
||||
MaterialPanel.lbl.ComponentFinish = \u041E\u0442\u0434\u0435\u043B\u043A\u0430 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430
|
||||
MaterialPanel.lbl.ttip.ComponentMaterialAffects = \u041C\u0430\u0442\u0435\u0440\u0438\u0430\u043B \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 \u0432\u043B\u0438\u044F\u0435\u0442 \u043D\u0430 \u0435\u0433\u043E \u043C\u0430\u0441\u0441\u0443.
|
||||
MaterialPanel.combo.ttip.ComponentMaterialAffects = \u041C\u0430\u0442\u0435\u0440\u0438\u0430\u043B \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 \u0432\u043B\u0438\u044F\u0435\u0442 \u043D\u0430 \u0435\u0433\u043E \u043C\u0430\u0441\u0441\u0443.
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA1 = <html>\u041E\u0442\u0434\u0435\u043B\u043A\u0430 \u0432\u043B\u0438\u044F\u0435\u0442 \u043D\u0430 \u0430\u044D\u0440\u043E\u0434\u0438\u043D\u0430\u043C\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0441\u043E\u043F\u0440\u043E\u0442\u0438\u0432\u043B\u0435\u043D\u0438\u0435 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430<br>
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA2 = \u0423\u043A\u0430\u0437\u0430\u043D\u043E \u0441\u0440\u0435\u0434\u043D\u0435\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0448\u0435\u0440\u043E\u0445\u043E\u0432\u0430\u0442\u043E\u0441\u0442\u0438.
|
||||
MaterialPanel.but.SetForAll = \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0434\u043B\u044F \u0432\u0441\u0435\u0445
|
||||
MaterialPanel.but.SetForAll.ttip = \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u044D\u0442\u0443 \u0448\u0435\u0440\u043E\u0445\u043E\u0432\u0430\u0442\u043E\u0441\u0442\u044C \u0434\u043B\u044F \u0432\u0441\u0435\u0445 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u043E\u0432 \u0440\u0430\u043A\u0435\u0442\u044B.
|
||||
RocketCompCfg.checkbox.Overridemass = \u041F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C \u043C\u0430\u0441\u0441\u0443:
|
||||
RocketCompCfg.checkbox.Overridemass.ttip = \u041F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442 \u043C\u0430\u0441\u0441\u0443 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043D\u043D\u0443\u044E \u043F\u043E \u043E\u0431\u044A\u0435\u043C\u0443 \u0438 \u043F\u043B\u043E\u0442\u043D\u043E\u0441\u0442\u0438 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430.
|
||||
RocketCompCfg.checkbox.Overridecenterofgrav = \u041F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u044C \u0446\u0435\u043D\u0442\u0440 \u0442\u044F\u0436\u0435\u0441\u0442\u0438:
|
||||
@ -1003,7 +1003,7 @@ FreeformFinSetCfg.tab.ttip.General = \u041E\u0441\u043D\u043E\u0432\u043D\u044B\
|
||||
FreeformFinSetCfg.tab.Shape = \u0424\u043E\u0440\u043C\u0430
|
||||
FreeformFinSetCfg.tab.ttip.Finshape = \u0424\u043E\u0440\u043C\u0430 \u0441\u0442\u0430\u0431\u0438\u043B\u0438\u0437\u0430\u0442\u043E\u0440\u0430
|
||||
FreeformFinSetCfg.lbl.Numberoffins = \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u0442\u0430\u0431\u0438\u043B\u0438\u0437\u0430\u0442\u043E\u0440\u043E\u0432:
|
||||
FreeformFinSetCfg.lbl.Finrotation = \u0412\u0440\u0430\u0449\u0435\u043D\u0438\u0435:
|
||||
FinSetCfg.lbl.FinRotation = \u0412\u0440\u0430\u0449\u0435\u043D\u0438\u0435:
|
||||
FreeformFinSetCfg.lbl.Fincant = \u0423\u0433\u043E\u043B \u0430\u0442\u0430\u043A\u0438:
|
||||
FreeformFinSetCfg.lbl.ttip.Fincant = \u0423\u0433\u043E\u043B \u0430\u0442\u0430\u043A\u0438 \u0441\u0442\u0430\u0431\u0438\u043B\u0438\u0437\u0430\u0442\u043E\u0440\u0430 \u043F\u043E \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u044E \u043A \u043E\u0441\u0438 \u0440\u0430\u043A\u0435\u0442\u044B.
|
||||
FreeformFinSetCfg.lbl.Posrelativeto = \u041F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E:
|
||||
@ -1053,7 +1053,6 @@ LaunchLugCfg.lbl.Outerdiam = \u0412\u043D\u0435\u0448\u043D\u0438\u0439 \u0434\u
|
||||
LaunchLugCfg.lbl.Innerdiam = \u0412\u043D\u0443\u0442\u0440\u0435\u043D\u043D\u0438\u0439 \u0434\u0438\u0430\u043C\u0435\u0442\u0440:
|
||||
LaunchLugCfg.lbl.Thickness = \u0422\u043E\u043B\u0449\u0438\u043D\u0430:
|
||||
LaunchLugCfg.lbl.Angle = \u0423\u0433\u043E\u043B:
|
||||
LaunchLugCfg.lbl.Posrelativeto = \u041F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E:
|
||||
LaunchLugCfg.lbl.plus = \u043F\u043B\u044E\u0441
|
||||
LaunchLugCfg.tab.General = \u041E\u0441\u043D\u043E\u0432\u043D\u043E\u0435
|
||||
LaunchLugCfg.tab.Generalprop = \u041E\u0441\u043D\u043E\u0432\u043D\u044B\u0435 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B
|
||||
@ -1125,7 +1124,6 @@ NoseConeCfg.tab.ttip.Shoulder = \u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440
|
||||
Parachute.Parachute = \u041F\u0430\u0440\u0430\u0448\u044E\u0442
|
||||
ParachuteCfg.lbl.Canopy = \u041A\u0443\u043F\u043E\u043B:
|
||||
ParachuteCfg.lbl.Shroudlines = \u0421\u0442\u0440\u043E\u043F\u044B:
|
||||
ParachuteCfg.lbl.Placement = \u041F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435
|
||||
ParachuteCfg.lbl.Deployment = \u0420\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u0435
|
||||
ParachuteCfg.lbl.CanopyShape = \u0424\u043E\u0440\u043C\u0430 \u043A\u0443\u043F\u043E\u043B\u0430:
|
||||
ParachuteCfg.lbl.Diameter = \u0414\u0438\u0430\u043C\u0435\u0442\u0440:
|
||||
@ -1183,8 +1181,7 @@ SleeveCfg.tab.General = \u041E\u0441\u043D\u043E\u0432\u043D\u043E\u0435
|
||||
SleeveCfg.tab.Generalproperties = \u041E\u0441\u043D\u043E\u0432\u043D\u044B\u0435 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B
|
||||
|
||||
! StreamerConfig
|
||||
StreamerCfg.lbl.Attributes = \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044B
|
||||
StreamerCfg.lbl.Placement = \u041F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435
|
||||
PlacementPanel.title.Placement = \u041F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435
|
||||
StreamerCfg.lbl.Deployment = \u0420\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u0435
|
||||
StreamerCfg.lbl.Striplength = \u0414\u043B\u0438\u043D\u0430 \u043B\u0435\u043D\u0442\u044B:
|
||||
StreamerCfg.lbl.Stripwidth = \u0428\u0438\u0440\u0438\u043D\u0430 \u043B\u0435\u043D\u0442\u044B:
|
||||
@ -1246,7 +1243,7 @@ TransitionCfg.tab.Shoulderproperties = \u0421\u0432\u043E\u0439\u0441\u0442\u043
|
||||
TrapezoidFinSetCfg.lbl.Nbroffins = \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u0442\u0430\u0431\u0438\u043B\u0438\u0437\u0430\u0442\u043E\u0440\u043E\u0432:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Nbroffins = \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u0442\u0430\u0431\u0438\u043B\u0438\u0437\u0430\u0442\u043E\u0440\u043E\u0432 \u0432 \u043E\u043F\u0435\u0440\u0435\u043D\u0438\u0438.
|
||||
TrapezoidFinSetCfg.lbl.Finrotation = \u0412\u0440\u0430\u0449\u0435\u043D\u0438\u0435:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Finrotation = \u041F\u043E\u0432\u043E\u0440\u043E\u0442 \u043F\u0435\u0440\u0432\u043E\u0433\u043E \u0441\u0442\u0430\u0431\u0438\u043B\u0438\u0437\u0430\u0442\u043E\u0440\u0430 \u0432 \u043E\u043F\u0435\u0440\u0435\u043D\u0438\u0438.
|
||||
FinSetCfg.lbl.FinRotation.ttip = \u041F\u043E\u0432\u043E\u0440\u043E\u0442 \u043F\u0435\u0440\u0432\u043E\u0433\u043E \u0441\u0442\u0430\u0431\u0438\u043B\u0438\u0437\u0430\u0442\u043E\u0440\u0430 \u0432 \u043E\u043F\u0435\u0440\u0435\u043D\u0438\u0438.
|
||||
TrapezoidFinSetCfg.lbl.Fincant = \u0423\u0433\u043E\u043B \u0430\u0442\u0430\u043A\u0438:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Fincant = \u0423\u0433\u043E\u043B \u0430\u0442\u0430\u043A\u0438 \u0441\u0442\u0430\u0431\u0438\u043B\u0438\u0437\u0430\u0442\u043E\u0440\u0430 \u043F\u043E \u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u044E \u043A \u043E\u0441\u0438 \u0440\u0430\u043A\u0435\u0442\u044B.
|
||||
TrapezoidFinSetCfg.lbl.Rootchord = \u0414\u043B\u0438\u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u0430\u043D\u0438\u044F:
|
||||
@ -1256,8 +1253,8 @@ TrapezoidFinSetCfg.lbl.Sweeplength = \u0414\u043B\u0438\u043D\u0430 \u0441\u0442
|
||||
TrapezoidFinSetCfg.lbl.Sweepangle = \u0423\u0433\u043E\u043B \u0441\u0442\u0440\u0435\u043B\u043E\u0432\u0438\u0434\u043D\u043E\u0441\u0442\u0438:
|
||||
TrapezoidFinSetCfg.lbl.FincrossSection = \u041F\u0440\u043E\u0444\u0438\u043B\u044C \u0441\u0442\u0430\u0431\u0438\u043B\u0438\u0437\u0430\u0442\u043E\u0440\u0430:
|
||||
TrapezoidFinSetCfg.lbl.Thickness = \u0422\u043E\u043B\u0449\u0438\u043D\u0430:
|
||||
TrapezoidFinSetCfg.lbl.Posrelativeto = \u041F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E:
|
||||
TrapezoidFinSetCfg.lbl.plus = \u043F\u043B\u044E\u0441
|
||||
PlacementPanel.lbl.PosRelativeTo = \u041F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E:
|
||||
PlacementPanel.lbl.plus = \u043F\u043B\u044E\u0441
|
||||
TrapezoidFinSetCfg.tab.General = \u041E\u0441\u043D\u043E\u0432\u043D\u043E\u0435
|
||||
TrapezoidFinSetCfg.tab.Generalproperties = \u041E\u0441\u043D\u043E\u0432\u043D\u044B\u0435 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B
|
||||
|
||||
|
@ -790,14 +790,14 @@ RocketCompCfg.lbl.Mass = Mass:
|
||||
RocketCompCfg.lbl.Componentmass = Component mass:
|
||||
RocketCompCfg.lbl.overriddento = (overridden to
|
||||
RocketCompCfg.lbl.overriddenby = (overridden by
|
||||
RocketCompCfg.lbl.Componentmaterial = Component material:
|
||||
RocketCompCfg.lbl.Componentfinish = Component finish:
|
||||
RocketCompCfg.lbl.ttip.componentmaterialaffects = The component material affects the weight of the component.
|
||||
RocketCompCfg.combo.ttip.componentmaterialaffects = The component material affects the weight of the component.
|
||||
RocketCompCfg.lbl.longA1 = <html>The component finish affects the aerodynamic drag of the component.<br>
|
||||
RocketCompCfg.lbl.longA2 = The value indicated is the average roughness height of the surface.
|
||||
RocketCompCfg.but.Setforall = Set for all
|
||||
RocketCompCfg.but.ttip.Setforall = Set this finish for all components of the rocket.
|
||||
MaterialPanel.lbl.ComponentMaterial = Component material:
|
||||
MaterialPanel.lbl.ComponentFinish = Component finish:
|
||||
MaterialPanel.lbl.ttip.ComponentMaterialAffects = The component material affects the weight of the component.
|
||||
MaterialPanel.combo.ttip.ComponentMaterialAffects = The component material affects the weight of the component.
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA1 = <html>The component finish affects the aerodynamic drag of the component.<br>
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA2 = The value indicated is the average roughness height of the surface.
|
||||
MaterialPanel.but.SetForAll = Set for all
|
||||
MaterialPanel.but.SetForAll.ttip = Set this finish for all components of the rocket.
|
||||
RocketCompCfg.checkbox.Overridemass = Override mass:
|
||||
RocketCompCfg.checkbox.Overridecenterofgrav = Override center of gravity:
|
||||
RocketCompCfg.checkbox.Overridecoeffofdrag = Override coefficient of drag:
|
||||
@ -867,7 +867,7 @@ FreeformFinSetCfg.tab.ttip.General = General properties
|
||||
FreeformFinSetCfg.tab.Shape = Shape
|
||||
FreeformFinSetCfg.tab.ttip.Finshape = Fin shape
|
||||
FreeformFinSetCfg.lbl.Numberoffins = Number of fins:
|
||||
FreeformFinSetCfg.lbl.Finrotation = Fin rotation:
|
||||
FinSetCfg.lbl.FinRotation = Fin rotation:
|
||||
FreeformFinSetCfg.lbl.Fincant = Fin cant:
|
||||
FreeformFinSetCfg.lbl.ttip.Fincant = The angle that the fins are canted with respect to the rocket body.
|
||||
FreeformFinSetCfg.lbl.Posrelativeto = Position relative to:
|
||||
@ -907,7 +907,6 @@ LaunchLugCfg.lbl.Outerdiam = Outer diameter:
|
||||
LaunchLugCfg.lbl.Innerdiam = Inner diameter:
|
||||
LaunchLugCfg.lbl.Thickness = Thickness:
|
||||
LaunchLugCfg.lbl.Radialpos = Radial position:
|
||||
LaunchLugCfg.lbl.Posrelativeto = Position relative to:
|
||||
LaunchLugCfg.lbl.plus = plus
|
||||
LaunchLugCfg.tab.General = General
|
||||
LaunchLugCfg.tab.Generalprop = General properties
|
||||
@ -1061,7 +1060,7 @@ TransitionCfg.tab.Shoulderproperties = Shoulder properties
|
||||
TrapezoidFinSetCfg.lbl.Nbroffins = Number of fins:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Nbroffins = The number of fins in the fin set.
|
||||
TrapezoidFinSetCfg.lbl.Finrotation = Fin rotation:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Finrotation = The angle of the first fin in the fin set.
|
||||
FinSetCfg.lbl.FinRotation.ttip = The angle of the first fin in the fin set.
|
||||
TrapezoidFinSetCfg.lbl.Fincant = Fin cant:
|
||||
TrapezoidFinSetCfg.lbl.ttip.Fincant =The angle that the fins are canted with respect to the rocket body.
|
||||
TrapezoidFinSetCfg.lbl.Rootchord = Root chord:
|
||||
@ -1071,8 +1070,8 @@ TrapezoidFinSetCfg.lbl.Sweeplength = Sweep length:
|
||||
TrapezoidFinSetCfg.lbl.Sweepangle = Sweep angle:
|
||||
TrapezoidFinSetCfg.lbl.FincrossSection = Fin cross section:
|
||||
TrapezoidFinSetCfg.lbl.Thickness = Thickness:
|
||||
TrapezoidFinSetCfg.lbl.Posrelativeto = Position relative to:
|
||||
TrapezoidFinSetCfg.lbl.plus = plus
|
||||
PlacementPanel.lbl.PosRelativeTo = Position relative to:
|
||||
PlacementPanel.lbl.plus = plus
|
||||
TrapezoidFinSetCfg.tab.General = General
|
||||
TrapezoidFinSetCfg.tab.Generalproperties = General properties
|
||||
|
||||
|
@ -376,7 +376,7 @@ FreeformFinSet.FreeformFinSet = \u81EA\u7531\u66F2\u9762\u7A33\u5B9A\u7F
|
||||
|
||||
FreeformFinSetCfg.lbl.Fincant = \u7A33\u5B9A\u7FFC\u9762\u89D2:
|
||||
FreeformFinSetCfg.lbl.FincrossSection = \u7A33\u5B9A\u7FFC\u6A2A\u5207\u9762:
|
||||
FreeformFinSetCfg.lbl.Finrotation = \u7A33\u5B9A\u7FFC\u65CB\u5EA6:
|
||||
FinSetCfg.lbl.FinRotation = \u7A33\u5B9A\u7FFC\u65CB\u5EA6:
|
||||
FreeformFinSetCfg.lbl.Numberoffins = \u7A33\u5B9A\u7FFC\u6570\u91CF:
|
||||
FreeformFinSetCfg.lbl.Posrelativeto = \u76F8\u5BF9\u4F4D\u7F6E:
|
||||
FreeformFinSetCfg.lbl.Thickness = \u539A\u5EA6:
|
||||
@ -510,7 +510,6 @@ LaunchLugCfg.lbl.Innerdiam = \u5185\u76F4\u5F84:
|
||||
! LaunchLugConfig
|
||||
LaunchLugCfg.lbl.Length = \u957F\u5EA6:
|
||||
LaunchLugCfg.lbl.Outerdiam = \u5916\u76F4\u5F84:
|
||||
LaunchLugCfg.lbl.Posrelativeto = \u76F8\u5BF9\u4F4D\u7F6E:
|
||||
LaunchLugCfg.lbl.Radialpos = \u5F84\u5411\u4F4D\u7F6E:
|
||||
LaunchLugCfg.lbl.Thickness = \u539A\u5EA6:
|
||||
LaunchLugCfg.lbl.plus = \u52A0
|
||||
@ -892,21 +891,21 @@ RocketCfg.lbl.Revisionhistory = \u4FEE\u8BA2\u5386\u53F2:
|
||||
|
||||
RocketCompCfg.border.Foreshoulder = \u540E\u8FDE\u63A5\u5904
|
||||
RocketCompCfg.but.Saveasdefstyle = \u4FDD\u5B58\u4E3A\u9ED8\u8BA4\u6837\u5F0F
|
||||
RocketCompCfg.but.Setforall = \u8BBE\u7F6E\u6240\u6709
|
||||
RocketCompCfg.but.ttip.Setforall = \u5BF9\u6240\u6709\u7684\u7EC4\u4EF6\u4F7F\u7528\u540C\u79CD\u8868\u9762\u5904\u7406.
|
||||
MaterialPanel.but.SetForAll = \u8BBE\u7F6E\u6240\u6709
|
||||
MaterialPanel.but.SetForAll.ttip = \u5BF9\u6240\u6709\u7684\u7EC4\u4EF6\u4F7F\u7528\u540C\u79CD\u8868\u9762\u5904\u7406.
|
||||
RocketCompCfg.checkbox.Endcapped = \u6709\u7AEF\u76D6
|
||||
RocketCompCfg.checkbox.Overridecenterofgrav = \u8986\u5199\u91CD\u5FC3:
|
||||
RocketCompCfg.checkbox.Overridemass = \u8986\u5199\u8D28\u91CF:
|
||||
RocketCompCfg.checkbox.OverrideSubcomponents = \u8986\u5199\u6240\u6709\u7EC4\u4EF6\u7684\u91CD\u91CF\u548C\u91CD\u5FC3
|
||||
RocketCompCfg.checkbox.Usedefaultcolor = \u9ED8\u8BA4\u989C\u8272
|
||||
RocketCompCfg.combo.ttip.componentmaterialaffects = \u7EC4\u4EF6\u6750\u6599\u5C06\u4F1A\u5F71\u54CD\u5230\u7EC4\u4EF6\u91CD\u91CF.
|
||||
MaterialPanel.combo.ttip.ComponentMaterialAffects = \u7EC4\u4EF6\u6750\u6599\u5C06\u4F1A\u5F71\u54CD\u5230\u7EC4\u4EF6\u91CD\u91CF.
|
||||
RocketCompCfg.lbl.Choosecolor = \u989C\u8272\u9009\u62E9
|
||||
RocketCompCfg.lbl.Commentsonthe = \u6CE8\u91CA
|
||||
RocketCompCfg.lbl.Complinestyle = \u7EC4\u4EF6\u7EBF\u578B:
|
||||
RocketCompCfg.lbl.Componentcolor = \u7EC4\u4EF6\u989C\u8272:
|
||||
RocketCompCfg.lbl.Componentfinish = \u7EC4\u4EF6\u8868\u9762\u5904\u7406:
|
||||
MaterialPanel.lbl.ComponentFinish = \u7EC4\u4EF6\u8868\u9762\u5904\u7406:
|
||||
RocketCompCfg.lbl.Componentmass = \u7EC4\u4EF6\u8D28\u91CF:
|
||||
RocketCompCfg.lbl.Componentmaterial = \u7EC4\u4EF6\u6750\u6599:
|
||||
MaterialPanel.lbl.ComponentMaterial = \u7EC4\u4EF6\u6750\u6599:
|
||||
! RocketComponentConfig
|
||||
RocketCompCfg.lbl.Componentname = \u7EC4\u4EF6\u540D\u79F0:
|
||||
RocketCompCfg.lbl.Diameter = \u76F4\u5F84:
|
||||
@ -914,13 +913,13 @@ RocketCompCfg.lbl.Figurestyle = \u6837\u5F0F:
|
||||
RocketCompCfg.lbl.Length = \u957F\u5EA6:
|
||||
RocketCompCfg.lbl.Mass = \u8D28\u91CF:
|
||||
RocketCompCfg.lbl.Thickness = \u539A\u5EA6:
|
||||
RocketCompCfg.lbl.longA1 = <html>\u8868\u9762\u5904\u7406\u5C06\u4F1A\u5F71\u54CD\u5230\u7EC4\u4EF6\u7684\u7A7A\u6C14\u52A8\u529B.<br>
|
||||
RocketCompCfg.lbl.longA2 = \u8BE5\u6570\u503C\u4E3A\u5E73\u5747\u8868\u9762\u7C97\u7CD9\u5EA6.
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA1 = <html>\u8868\u9762\u5904\u7406\u5C06\u4F1A\u5F71\u54CD\u5230\u7EC4\u4EF6\u7684\u7A7A\u6C14\u52A8\u529B.<br>
|
||||
MaterialPanel.lbl.ComponentFinish.ttip.longA2 = \u8BE5\u6570\u503C\u4E3A\u5E73\u5747\u8868\u9762\u7C97\u7CD9\u5EA6.
|
||||
RocketCompCfg.lbl.longB1 = <html>\u8986\u5199\u8D28\u91CF\u4E0D\u5305\u62EC\u53D1\u52A8\u673A.<br>
|
||||
RocketCompCfg.lbl.longB2 = \u91CD\u5FC3\u4ECE\u5934\u90E8\u5F00\u59CB\u8BA1\u7B97
|
||||
RocketCompCfg.lbl.overriddenby = (\u88AB\u8986\u5199
|
||||
RocketCompCfg.lbl.overriddento = (\u8986\u5199\u5230
|
||||
RocketCompCfg.lbl.ttip.componentmaterialaffects = \u7EC4\u4EF6\u6750\u6599\u5C06\u4F1A\u5F71\u54CD\u5230\u7EC4\u4EF6\u91CD\u91CF.
|
||||
MaterialPanel.lbl.ttip.ComponentMaterialAffects = \u7EC4\u4EF6\u6750\u6599\u5C06\u4F1A\u5F71\u54CD\u5230\u7EC4\u4EF6\u91CD\u91CF.
|
||||
RocketCompCfg.tab.Appearance = \u5916\u89C2
|
||||
RocketCompCfg.tab.Comment = \u6CE8\u91CA
|
||||
RocketCompCfg.tab.Figstyleopt = \u6837\u5F0F\u9009\u9879
|
||||
@ -1274,15 +1273,15 @@ TrapezoidFinSetCfg.lbl.Finrotation = \u7A33\u5B9A\u7FFC\u65CB\u89D2:
|
||||
TrapezoidFinSetCfg.lbl.Height = \u9AD8\u5EA6:
|
||||
! TrapezoidFinSetConfig
|
||||
TrapezoidFinSetCfg.lbl.Nbroffins = \u7A33\u5B9A\u7FFC\u6570\u91CF:
|
||||
TrapezoidFinSetCfg.lbl.Posrelativeto = \u76F8\u5BF9\u4F4D\u7F6E:
|
||||
PlacementPanel.lbl.PosRelativeTo = \u76F8\u5BF9\u4F4D\u7F6E:
|
||||
TrapezoidFinSetCfg.lbl.Rootchord = \u7FFC\u6839\u5F26:
|
||||
TrapezoidFinSetCfg.lbl.Sweepangle = \u540E\u63A0\u89D2:
|
||||
TrapezoidFinSetCfg.lbl.Sweeplength = \u540E\u63A0\u957F\u5EA6:
|
||||
TrapezoidFinSetCfg.lbl.Thickness = \u539A\u5EA6:
|
||||
TrapezoidFinSetCfg.lbl.Tipchord = \u7FFC\u68A2\u5F26:
|
||||
TrapezoidFinSetCfg.lbl.plus = \u52A0
|
||||
PlacementPanel.lbl.plus = \u52A0
|
||||
TrapezoidFinSetCfg.lbl.ttip.Fincant = \u7A33\u5B9A\u7FFC\u7FFC\u9762\u4E0E\u7BAD\u4F53\u4E4B\u95F4\u7684\u5939\u89D2.
|
||||
TrapezoidFinSetCfg.lbl.ttip.Finrotation = \u7A33\u5B9A\u7FFC\u7EC4\u5408\u91CC\u7B2C\u4E00\u7247\u7684\u89D2\u5EA6
|
||||
FinSetCfg.lbl.FinRotation.ttip = \u7A33\u5B9A\u7FFC\u7EC4\u5408\u91CC\u7B2C\u4E00\u7247\u7684\u89D2\u5EA6
|
||||
TrapezoidFinSetCfg.lbl.ttip.Nbroffins = \u68AF\u5F62\u7A33\u5B9A\u7FFC\u7684\u6570\u91CF.
|
||||
TrapezoidFinSetCfg.tab.General = \u5E38\u89C4
|
||||
TrapezoidFinSetCfg.tab.Generalproperties = \u5E38\u89C4\u5C5E\u6027
|
||||
|
@ -66,7 +66,7 @@ public class AxialStageConfig extends ComponentAssemblyConfig {
|
||||
DoubleModel dm = new DoubleModel( sepConfig, "SeparationDelay", 0);
|
||||
JSpinner spin = new JSpinner(dm.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "width 45lp");
|
||||
panel.add(spin, "width 65lp");
|
||||
order.add(((SpinnerEditor)spin.getEditor()).getTextField());
|
||||
|
||||
//// seconds
|
||||
|
@ -107,7 +107,7 @@ public class BodyTubeConfig extends RocketComponentConfig {
|
||||
|
||||
//// Material
|
||||
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK, order);
|
||||
panel.add(materialPanel, "cell 4 0, gapleft paragraph, aligny 0%, spany");
|
||||
panel.add(materialPanel, "cell 4 0, gapleft 40lp, aligny 0%, spany");
|
||||
|
||||
//// General and General properties
|
||||
tabbedPane.insertTab(trans.get("BodyTubecfg.tab.General"), null, panel,
|
||||
|
@ -104,39 +104,11 @@ public class ComponentAssemblyConfig extends RocketComponentConfig {
|
||||
IntegerModel countModel = new IntegerModel( boosters, "InstanceCount", 1);
|
||||
JSpinner countSpinner = new JSpinner(countModel.getSpinnerModel());
|
||||
countSpinner.setEditor(new SpinnerEditor(countSpinner));
|
||||
motherPanel.add(countSpinner, "wmin 65lp, growx 1, wrap 10lp");
|
||||
motherPanel.add(countSpinner, "wmin 65lp, growx 1, wrap 30lp");
|
||||
order.add(((SpinnerEditor) countSpinner.getEditor()).getTextField());
|
||||
|
||||
// setPositions relative to parent component
|
||||
JLabel positionLabel = new JLabel(trans.get("LaunchLugCfg.lbl.Posrelativeto"));
|
||||
motherPanel.add( positionLabel);
|
||||
|
||||
ComboBoxModel<AxialMethod> axialPositionMethodModel = new EnumModel<AxialMethod>(component, "AxialMethod", AxialMethod.axialOffsetMethods );
|
||||
JComboBox<?> positionMethodCombo = new JComboBox<AxialMethod>( axialPositionMethodModel );
|
||||
motherPanel.add(positionMethodCombo, "spanx 3, wrap");
|
||||
order.add(positionMethodCombo);
|
||||
|
||||
// plus
|
||||
motherPanel.add(new JLabel(trans.get("StageConfig.parallel.plus")), "right");
|
||||
|
||||
final DoubleModel axialOffsetModel = new DoubleModel(component, "AxialOffset", UnitGroup.UNITS_LENGTH);
|
||||
final JSpinner axialOffsetSpinner = new JSpinner(axialOffsetModel.getSpinnerModel());
|
||||
axialOffsetSpinner.setEditor(new SpinnerEditor(axialOffsetSpinner));
|
||||
motherPanel.add(axialOffsetSpinner, "wmin 65lp, growx 1");
|
||||
order.add(((SpinnerEditor) axialOffsetSpinner.getEditor()).getTextField());
|
||||
|
||||
positionMethodCombo.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
axialOffsetModel.stateChanged(new EventObject(e));
|
||||
}
|
||||
});
|
||||
|
||||
motherPanel.add(new UnitSelector(axialOffsetModel));
|
||||
motherPanel.add(new BasicSlider(axialOffsetModel.getSliderModel(
|
||||
new DoubleModel(component.getParent(), "Length", -1.0, UnitGroup.UNITS_NONE),
|
||||
new DoubleModel(component.getParent(), "Length"))),
|
||||
"gapleft para, growx 2, wrap");
|
||||
// Position relative to
|
||||
motherPanel.add(new PlacementPanel(component, order), "span, grow, wrap");
|
||||
|
||||
return motherPanel;
|
||||
}
|
||||
|
@ -1,9 +1,6 @@
|
||||
package net.sf.openrocket.gui.configdialog;
|
||||
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.EventObject;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JLabel;
|
||||
@ -25,7 +22,6 @@ import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.material.Material;
|
||||
import net.sf.openrocket.rocketcomponent.FinSet;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
|
||||
@ -41,8 +37,8 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
||||
|
||||
JPanel mainPanel = new JPanel(new MigLayout());
|
||||
|
||||
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
|
||||
// Left side
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::]", ""));
|
||||
|
||||
//// Number of fins
|
||||
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.Nbroffins")));
|
||||
@ -54,21 +50,6 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
||||
panel.add(spin, "growx, wrap");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
|
||||
//// Base rotation
|
||||
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.Rotation")));
|
||||
|
||||
m = new DoubleModel(component, "BaseRotation", UnitGroup.UNITS_ANGLE);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 150lp, wrap");
|
||||
|
||||
|
||||
//// Fin cant
|
||||
JLabel label = new JLabel(trans.get("EllipticalFinSetCfg.Fincant"));
|
||||
//// "The angle that the fins are canted with respect to the rocket
|
||||
@ -85,7 +66,7 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
||||
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(-FinSet.MAX_CANT_RADIANS, FinSet.MAX_CANT_RADIANS)),
|
||||
"w 150lp, wrap");
|
||||
"w 100lp, wrap");
|
||||
|
||||
|
||||
|
||||
@ -100,7 +81,7 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.05, 0.2)), "w 150lp, wrap");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.05, 0.2)), "w 100lp, wrap");
|
||||
|
||||
|
||||
//// Height
|
||||
@ -114,84 +95,70 @@ public class EllipticalFinSetConfig extends FinSetConfig {
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.05, 0.2)), "w 150lp, wrap");
|
||||
|
||||
|
||||
//// Position
|
||||
//// Position relative to:
|
||||
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.Positionrelativeto")));
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.05, 0.2)), "w 100lp, wrap 30lp");
|
||||
|
||||
final EnumModel<AxialMethod> axialMethodModel = new EnumModel<AxialMethod>(component, "AxialMethod", AxialMethod.axialOffsetMethods );
|
||||
final JComboBox<AxialMethod> axialMethodCombo = new JComboBox<AxialMethod>( axialMethodModel );
|
||||
panel.add(axialMethodCombo, "spanx, growx, wrap");
|
||||
order.add(axialMethodCombo);
|
||||
|
||||
//// plus
|
||||
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.plus")), "right");
|
||||
|
||||
final DoubleModel axialOffsetModel = new DoubleModel(component, "AxialOffset", UnitGroup.UNITS_LENGTH);
|
||||
spin = new JSpinner(axialOffsetModel.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
axialMethodCombo.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
axialOffsetModel.stateChanged(new EventObject(e));
|
||||
}
|
||||
});
|
||||
|
||||
panel.add(new UnitSelector(axialOffsetModel), "growx");
|
||||
panel.add(new BasicSlider(axialOffsetModel.getSliderModel(
|
||||
new DoubleModel(component.getParent(), "Length", -1.0, UnitGroup.UNITS_NONE),
|
||||
new DoubleModel(component.getParent(), "Length"))),
|
||||
"w 150lp, wrap");
|
||||
|
||||
|
||||
//// Right portion
|
||||
mainPanel.add(panel, "aligny 0");
|
||||
|
||||
mainPanel.add(new JSeparator(SwingConstants.VERTICAL), "growy");
|
||||
|
||||
|
||||
|
||||
panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
|
||||
|
||||
|
||||
//// Cross section
|
||||
//// Fin cross section:
|
||||
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.FincrossSection")), "span, split");
|
||||
JComboBox<FinSet.CrossSection> sectionCombo = new JComboBox<FinSet.CrossSection>(
|
||||
new EnumModel<FinSet.CrossSection>(component, "CrossSection"));
|
||||
panel.add( sectionCombo, "growx, wrap unrel");
|
||||
order.add(sectionCombo);
|
||||
|
||||
//// Thickness:
|
||||
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.Thickness")));
|
||||
|
||||
m = new DoubleModel(component, "Thickness", UnitGroup.UNITS_LENGTH, 0);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 150lp, wrap 30lp");
|
||||
|
||||
|
||||
{//// Fin cross section:
|
||||
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.FincrossSection")), "span, split");
|
||||
JComboBox<FinSet.CrossSection> sectionCombo = new JComboBox<FinSet.CrossSection>(
|
||||
new EnumModel<FinSet.CrossSection>(component, "CrossSection"));
|
||||
panel.add(sectionCombo, "growx, wrap unrel");
|
||||
order.add(sectionCombo);
|
||||
}
|
||||
|
||||
{//// Thickness:
|
||||
panel.add(new JLabel(trans.get("EllipticalFinSetCfg.Thickness")));
|
||||
|
||||
m = new DoubleModel(component, "Thickness", UnitGroup.UNITS_LENGTH, 0);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap 30lp");
|
||||
}
|
||||
|
||||
mainPanel.add(panel, "aligny 0, gapright 50lp");
|
||||
|
||||
// Separator
|
||||
//mainPanel.add(new JSeparator(SwingConstants.VERTICAL), "growy, gapx 20lp 20lp");
|
||||
|
||||
// Right side panel
|
||||
panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::]", ""));
|
||||
|
||||
//// Root fillets
|
||||
panel.add(filletMaterialPanel(), "span, grow, wrap");
|
||||
|
||||
//// Material
|
||||
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK, order);
|
||||
panel.add(materialPanel, "span, wrap");
|
||||
panel.add(materialPanel, "span, grow, wrap");
|
||||
|
||||
panel.add(filletMaterialPanel(), "span, wrap");
|
||||
|
||||
|
||||
{// ------ Placement ------
|
||||
//// Position relative to:
|
||||
JPanel placementPanel = new PlacementPanel(component, order);
|
||||
panel.add(placementPanel, "span, grow");
|
||||
|
||||
{//// Fin rotation
|
||||
label = new JLabel(trans.get("FinSetCfg.lbl.FinRotation"));
|
||||
label.setToolTipText(trans.get("FinSetCfg.lbl.FinRotation.ttip"));
|
||||
placementPanel.add(label, "newline");
|
||||
|
||||
m = new DoubleModel(component, "BaseRotation", UnitGroup.UNITS_ANGLE);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
placementPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
placementPanel.add(new UnitSelector(m), "growx");
|
||||
placementPanel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 100lp, wrap");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
mainPanel.add(panel, "aligny 20%");
|
||||
mainPanel.add(panel, "aligny 0");
|
||||
|
||||
addFinSetButtons();
|
||||
|
||||
|
@ -148,7 +148,7 @@ public abstract class FinSetConfig extends RocketComponentConfig {
|
||||
private JPanel finTabPanel() {
|
||||
JPanel panel = new JPanel(
|
||||
new MigLayout("gap rel unrel, ins 25lp",
|
||||
"[150lp::][65lp::][30lp::][200lp::]", ""));
|
||||
"[100lp::][65lp::][30lp::][200lp::]", ""));
|
||||
// JPanel panel = new JPanel(new MigLayout("fillx, align 20% 20%, gap rel unrel",
|
||||
// "[40lp][80lp::][30lp::][100lp::]",""));
|
||||
|
||||
@ -565,22 +565,22 @@ public abstract class FinSetConfig extends RocketComponentConfig {
|
||||
UnitSelector us = new UnitSelector(m);
|
||||
filletPanel.add(us, "growx");
|
||||
us.setToolTipText(tip);
|
||||
BasicSlider bs =new BasicSlider(m.getSliderModel(0, 10));
|
||||
filletPanel.add(bs, "w 150lp, wrap para");
|
||||
BasicSlider bs = new BasicSlider(m.getSliderModel(0, 0.1));
|
||||
filletPanel.add(bs, "w 100lp, wrap para");
|
||||
bs.setToolTipText(tip);
|
||||
|
||||
// Fillet Material:
|
||||
JLabel label = new JLabel(trans.get("FinSetConfig.lbl.Finfilletmaterial"));
|
||||
label.setToolTipText(tip);
|
||||
//// The component material affects the weight of the component.
|
||||
label.setToolTipText(trans.get("RocketCompCfg.lbl.ttip.componentmaterialaffects"));
|
||||
label.setToolTipText(trans.get("MaterialPanel.lbl.ttip.ComponentMaterialAffects"));
|
||||
filletPanel.add(label, "spanx 4, wrap rel");
|
||||
|
||||
JComboBox<Material> materialCombo = new JComboBox<Material>(new MaterialModel(filletPanel, component, Material.Type.BULK, "FilletMaterial"));
|
||||
|
||||
//// The component material affects the weight of the component.
|
||||
materialCombo.setToolTipText(trans.get("RocketCompCfg.combo.ttip.componentmaterialaffects"));
|
||||
filletPanel.add( materialCombo, "spanx 4, growx, wrap paragraph");
|
||||
materialCombo.setToolTipText(trans.get("MaterialPanel.combo.ttip.ComponentMaterialAffects"));
|
||||
filletPanel.add( materialCombo, "spanx 4, growx");
|
||||
order.add(materialCombo);
|
||||
filletPanel.setToolTipText(tip);
|
||||
|
||||
|
@ -16,7 +16,6 @@ import java.io.IOException;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.Writer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.EventObject;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.AbstractAction;
|
||||
@ -69,7 +68,6 @@ import net.sf.openrocket.rocketcomponent.FinSet;
|
||||
import net.sf.openrocket.rocketcomponent.FreeformFinSet;
|
||||
import net.sf.openrocket.rocketcomponent.IllegalFinPointException;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
import net.sf.openrocket.util.Coordinate;
|
||||
@ -117,9 +115,9 @@ public class FreeformFinSetConfig extends FinSetConfig {
|
||||
|
||||
|
||||
private JPanel generalPane() {
|
||||
JPanel mainPanel = new JPanel(new MigLayout("fill"));
|
||||
JPanel mainPanel = new JPanel(new MigLayout());
|
||||
|
||||
JPanel panel = new JPanel(new MigLayout("fill, gap rel unrel", "[][65lp::][30lp::]", ""));
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::]", ""));
|
||||
|
||||
{ //// Number of fins:
|
||||
panel.add(new JLabel(trans.get("FreeformFinSetCfg.lbl.Numberoffins")));
|
||||
@ -132,21 +130,6 @@ public class FreeformFinSetConfig extends FinSetConfig {
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
}
|
||||
|
||||
{ //// Base rotation
|
||||
panel.add(new JLabel(trans.get("FreeformFinSetCfg.lbl.Finrotation")));
|
||||
|
||||
DoubleModel m = new DoubleModel(component, "BaseRotation", UnitGroup.UNITS_ANGLE);
|
||||
|
||||
JSpinner spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 150lp, wrap");
|
||||
}
|
||||
|
||||
|
||||
{ //// Fin cant
|
||||
JLabel label = new JLabel(trans.get("FreeformFinSetCfg.lbl.Fincant"));
|
||||
//// The angle that the fins are canted with respect to the rocket body.
|
||||
@ -161,47 +144,9 @@ public class FreeformFinSetConfig extends FinSetConfig {
|
||||
order.add(((SpinnerEditor) cantAngleSpinner.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(cantAngleModel), "growx");
|
||||
panel.add(new BasicSlider(cantAngleModel.getSliderModel(-FinSet.MAX_CANT_RADIANS, FinSet.MAX_CANT_RADIANS)), "w 150lp, wrap 20lp");
|
||||
panel.add(new BasicSlider(cantAngleModel.getSliderModel(-FinSet.MAX_CANT_RADIANS, FinSet.MAX_CANT_RADIANS)), "w 100lp, wrap 30lp");
|
||||
}
|
||||
|
||||
|
||||
{ //// Position
|
||||
//// Position relative to:
|
||||
panel.add(new JLabel(trans.get("FreeformFinSetCfg.lbl.Posrelativeto")));
|
||||
|
||||
|
||||
final EnumModel<AxialMethod> axialMethodModel = new EnumModel<AxialMethod>(component, "AxialMethod", AxialMethod.axialOffsetMethods);
|
||||
final JComboBox<AxialMethod> axialMethodCombo = new JComboBox<AxialMethod>(axialMethodModel);
|
||||
panel.add(axialMethodCombo, "spanx 3, growx, wrap");
|
||||
order.add(axialMethodCombo);
|
||||
|
||||
//// plus
|
||||
panel.add(new JLabel(trans.get("FreeformFinSetCfg.lbl.plus")), "right");
|
||||
|
||||
final DoubleModel axialOffsetModel = new DoubleModel(component, "AxialOffset", UnitGroup.UNITS_LENGTH);
|
||||
final JSpinner axialOffsetSpinner = new JSpinner(axialOffsetModel.getSpinnerModel());
|
||||
axialOffsetSpinner.setEditor(new SpinnerEditor(axialOffsetSpinner));
|
||||
panel.add(axialOffsetSpinner, "growx");
|
||||
order.add(((SpinnerEditor) axialOffsetSpinner.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(axialOffsetModel), "growx");
|
||||
panel.add(new BasicSlider(axialOffsetModel.getSliderModel(new DoubleModel(component.getParent(), "Length", -1.0, UnitGroup.UNITS_NONE), new DoubleModel(component.getParent(), "Length"))), "w 150lp, wrap");
|
||||
|
||||
axialMethodCombo.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
axialOffsetModel.stateChanged(new EventObject(e));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
mainPanel.add(panel, "aligny 0");
|
||||
mainPanel.add(new JSeparator(SwingConstants.VERTICAL), "growy, height 150lp");
|
||||
|
||||
|
||||
panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
|
||||
|
||||
|
||||
{ //// Cross section
|
||||
//// Fin cross section:
|
||||
panel.add(new JLabel(trans.get("FreeformFinSetCfg.lbl.FincrossSection")), "span, split");
|
||||
@ -221,17 +166,50 @@ public class FreeformFinSetConfig extends FinSetConfig {
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 150lp, wrap 30lp");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap 30lp");
|
||||
}
|
||||
|
||||
mainPanel.add(panel, "aligny 0, gapright 50lp");
|
||||
|
||||
// Separator
|
||||
//mainPanel.add(new JSeparator(SwingConstants.VERTICAL), "growy, gapx 20lp 20lp");
|
||||
|
||||
|
||||
// Right side panel
|
||||
panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::]", ""));
|
||||
|
||||
{ //// Root fillets
|
||||
panel.add(filletMaterialPanel(), "span, grow, wrap");
|
||||
}
|
||||
|
||||
{ //// Material
|
||||
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK, order);
|
||||
panel.add(materialPanel, "span, wrap");
|
||||
panel.add(materialPanel, "span, grow, wrap");
|
||||
}
|
||||
|
||||
panel.add(filletMaterialPanel(), "span, wrap");
|
||||
{//// -------- Placement ------
|
||||
//// Position relative to:
|
||||
JPanel placementPanel = new PlacementPanel(component, order);
|
||||
panel.add(placementPanel, "span, grow");
|
||||
|
||||
{//// Fin rotation
|
||||
JLabel label = new JLabel(trans.get("FinSetCfg.lbl.FinRotation"));
|
||||
label.setToolTipText(trans.get("FinSetCfg.lbl.FinRotation.ttip"));
|
||||
placementPanel.add(label, "newline");
|
||||
|
||||
DoubleModel m = new DoubleModel(component, "BaseRotation", UnitGroup.UNITS_ANGLE);
|
||||
|
||||
JSpinner spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
placementPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
placementPanel.add(new UnitSelector(m), "growx");
|
||||
placementPanel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 100lp, wrap");
|
||||
}
|
||||
}
|
||||
|
||||
mainPanel.add(panel, "aligny 20%");
|
||||
mainPanel.add(panel, "aligny 0");
|
||||
|
||||
return mainPanel;
|
||||
}
|
||||
@ -411,7 +389,7 @@ public class FreeformFinSetConfig extends FinSetConfig {
|
||||
chooser.setCurrentDirectory(((SwingPreferences) Application.getPreferences()).getDefaultDirectory());
|
||||
|
||||
JPanel desc = new JPanel(new MigLayout("fill, ins 0 para 0 para"));
|
||||
desc.add(new DescriptionArea(trans.get("CustomFinImport.description"), 5, 0), "grow, wmin 150lp");
|
||||
desc.add(new DescriptionArea(trans.get("CustomFinImport.description"), 5, 0), "grow, wmin 100lp");
|
||||
chooser.setAccessory(desc);
|
||||
|
||||
int option = chooser.showOpenDialog(this);
|
||||
|
@ -19,12 +19,13 @@ import java.util.List;
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JComponent;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JSeparator;
|
||||
import javax.swing.JSpinner;
|
||||
import javax.swing.SwingConstants;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.border.BevelBorder;
|
||||
|
||||
@ -34,7 +35,6 @@ import net.sf.openrocket.gui.Resettable;
|
||||
import net.sf.openrocket.gui.SpinnerEditor;
|
||||
import net.sf.openrocket.gui.adaptors.CustomFocusTraversalPolicy;
|
||||
import net.sf.openrocket.gui.adaptors.DoubleModel;
|
||||
import net.sf.openrocket.gui.adaptors.EnumModel;
|
||||
import net.sf.openrocket.gui.components.BasicSlider;
|
||||
import net.sf.openrocket.gui.components.DescriptionArea;
|
||||
import net.sf.openrocket.gui.components.UnitSelector;
|
||||
@ -47,7 +47,6 @@ import net.sf.openrocket.rocketcomponent.InnerTube;
|
||||
import net.sf.openrocket.rocketcomponent.MotorMount;
|
||||
import net.sf.openrocket.rocketcomponent.RingComponent;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
import net.sf.openrocket.util.BugException;
|
||||
@ -63,12 +62,14 @@ public class InnerTubeConfig extends RocketComponentConfig {
|
||||
public InnerTubeConfig(OpenRocketDocument d, RocketComponent c, JDialog parent) {
|
||||
super(d, c, parent);
|
||||
|
||||
//// General and General properties
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][15lp]", ""));
|
||||
JPanel mainPanel = new JPanel(new MigLayout());
|
||||
|
||||
//// Left panel
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::][]"));
|
||||
|
||||
DoubleModel m;
|
||||
JSpinner spin;
|
||||
DoubleModel od = null;
|
||||
DoubleModel od;
|
||||
|
||||
//// ---------------------------- Attributes ----------------------------
|
||||
|
||||
@ -77,7 +78,6 @@ public class InnerTubeConfig extends RocketComponentConfig {
|
||||
|
||||
//// OuterRadius
|
||||
od = new DoubleModel(component, "OuterRadius", 2, UnitGroup.UNITS_LENGTH, 0);
|
||||
// Diameter = 2*Radius
|
||||
|
||||
spin = new JSpinner(od.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
@ -85,7 +85,7 @@ public class InnerTubeConfig extends RocketComponentConfig {
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(od), "growx");
|
||||
panel.add(new BasicSlider(od.getSliderModel(0, 0.04, 0.2)), "growx, wrap");
|
||||
panel.add(new BasicSlider(od.getSliderModel(0, 0.04, 0.2)), "w 100lp, wrap");
|
||||
|
||||
if (od.isAutomaticAvailable()) {
|
||||
JCheckBox check = new JCheckBox(od.getAutomaticAction());
|
||||
@ -106,7 +106,7 @@ public class InnerTubeConfig extends RocketComponentConfig {
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(new DoubleModel(0), od)), "growx, wrap");
|
||||
panel.add(new BasicSlider(m.getSliderModel(new DoubleModel(0), od)), "w 100lp, wrap");
|
||||
|
||||
if (m.isAutomaticAvailable()) {
|
||||
JCheckBox check = new JCheckBox(m.getAutomaticAction());
|
||||
@ -128,7 +128,7 @@ public class InnerTubeConfig extends RocketComponentConfig {
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "growx, wrap");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap");
|
||||
|
||||
|
||||
//// Inner tube length
|
||||
@ -144,46 +144,26 @@ public class InnerTubeConfig extends RocketComponentConfig {
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 1.0)), "growx, wrap");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 1.0)), "w 100lp, wrap");
|
||||
|
||||
mainPanel.add(panel, "aligny 0, gapright 40lp");
|
||||
|
||||
// Separator
|
||||
//mainPanel.add(new JSeparator(SwingConstants.VERTICAL), "growy, gapx 10lp 10lp");
|
||||
|
||||
//// Right side of panel ----
|
||||
panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::][]"));
|
||||
|
||||
//// Material
|
||||
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK, order);
|
||||
panel.add(materialPanel, "spanx 4, growx, wrap 15lp");
|
||||
|
||||
|
||||
//// Right side of panel ----
|
||||
JPanel panel2 = new JPanel(new MigLayout("gap rel unrel, insets 0", "[][65lp::][30lp::][15lp]", ""));
|
||||
panel.add(panel2, "cell 4 0, gapleft 15lp, aligny 0%, spany");
|
||||
panel.add(materialPanel, "span, grow, wrap");
|
||||
|
||||
//// ---------------------------- Placement ----------------------------
|
||||
panel.add(new PlacementPanel(component, order), "span, grow");
|
||||
|
||||
//// Position relative to:
|
||||
panel2.add(new JLabel(trans.get("ringcompcfg.Positionrelativeto")));
|
||||
mainPanel.add(panel, "aligny 0");
|
||||
|
||||
JComboBox<?> combo = new JComboBox<AxialMethod>( new EnumModel<AxialMethod>(component, "AxialMethod", AxialMethod.axialOffsetMethods ));
|
||||
panel2.add(combo, "spanx 3, growx, wrap");
|
||||
order.add(combo);
|
||||
|
||||
//// plus
|
||||
panel2.add(new JLabel(trans.get("ringcompcfg.plus")), "right");
|
||||
|
||||
//// PositionValue
|
||||
m = new DoubleModel(component, "AxialOffset", UnitGroup.UNITS_LENGTH);
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel2.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel2.add(new UnitSelector(m), "growx");
|
||||
panel2.add(new BasicSlider(m.getSliderModel(
|
||||
new DoubleModel(component.getParent(), "Length", -1.0, UnitGroup.UNITS_NONE),
|
||||
new DoubleModel(component.getParent(), "Length"))),
|
||||
"growx, wrap");
|
||||
|
||||
|
||||
|
||||
|
||||
tabbedPane.insertTab(trans.get("ThicknessRingCompCfg.tab.General"), null, panel,
|
||||
tabbedPane.insertTab(trans.get("ThicknessRingCompCfg.tab.General"), null, mainPanel,
|
||||
trans.get("ThicknessRingCompCfg.tab.Generalprop"), 0);
|
||||
|
||||
MotorConfig motorConfig = new MotorConfig((MotorMount)c, order);
|
||||
|
@ -1,30 +1,26 @@
|
||||
package net.sf.openrocket.gui.configdialog;
|
||||
|
||||
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JSeparator;
|
||||
import javax.swing.JSpinner;
|
||||
import javax.swing.SwingConstants;
|
||||
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import net.sf.openrocket.document.OpenRocketDocument;
|
||||
import net.sf.openrocket.gui.SpinnerEditor;
|
||||
import net.sf.openrocket.gui.adaptors.CustomFocusTraversalPolicy;
|
||||
import net.sf.openrocket.gui.adaptors.DoubleModel;
|
||||
import net.sf.openrocket.gui.adaptors.EnumModel;
|
||||
import net.sf.openrocket.gui.components.BasicSlider;
|
||||
import net.sf.openrocket.gui.components.UnitSelector;
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.material.Material;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class LaunchLugConfig extends RocketComponentConfig {
|
||||
|
||||
@ -33,10 +29,10 @@ public class LaunchLugConfig extends RocketComponentConfig {
|
||||
public LaunchLugConfig(OpenRocketDocument d, RocketComponent c, JDialog parent) {
|
||||
super(d, c, parent);
|
||||
|
||||
JPanel primary = new JPanel(new MigLayout("fill"));
|
||||
JPanel primary = new JPanel(new MigLayout());
|
||||
|
||||
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]", ""));
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::][]", ""));
|
||||
|
||||
//// Body tube length
|
||||
//// Length:
|
||||
@ -98,62 +94,39 @@ public class LaunchLugConfig extends RocketComponentConfig {
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap 20lp");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap");
|
||||
|
||||
|
||||
//// Radial position:
|
||||
panel.add(new JLabel(trans.get("LaunchLugCfg.lbl.Angle")));
|
||||
|
||||
m = new DoubleModel(component, "AngleOffset", UnitGroup.UNITS_ANGLE, -180, 180);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI) ), "w 100lp, wrap");
|
||||
|
||||
// finish up the left column
|
||||
primary.add(panel, "grow, gapright 20lp");
|
||||
|
||||
// create a new panel for the right column
|
||||
panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]", ""));
|
||||
primary.add(panel, "grow, gapright 40lp");
|
||||
|
||||
//// Position relative to:
|
||||
panel.add(new JLabel(trans.get("LaunchLugCfg.lbl.Posrelativeto")));
|
||||
EnumModel<AxialMethod> positionModel = new EnumModel<AxialMethod>(component, "AxialMethod", AxialMethod.axialOffsetMethods );
|
||||
JComboBox<AxialMethod> positionCombo = new JComboBox<AxialMethod>( positionModel );
|
||||
panel.add(positionCombo, "spanx, growx, wrap");
|
||||
order.add(positionCombo);
|
||||
|
||||
//// plus
|
||||
final DoubleModel mAxOff = new DoubleModel(component, "AxialOffset", UnitGroup.UNITS_LENGTH);
|
||||
panel.add(new JLabel(trans.get("LaunchLugCfg.lbl.plus")), "right");
|
||||
spin = new JSpinner(mAxOff.getSpinnerModel()); // Plus quantity input
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(mAxOff), "growx"); // Unity selection
|
||||
panel.add(new BasicSlider(mAxOff.getSliderModel( // Plus quantity slider
|
||||
new DoubleModel(component.getParent(), "Length", -1.0, UnitGroup.UNITS_NONE),
|
||||
new DoubleModel(component.getParent(), "Length"))),
|
||||
"w 100lp, wrap para");
|
||||
// Separator
|
||||
//primary.add(new JSeparator(SwingConstants.VERTICAL), "growy, gapx 20lp 20lp");
|
||||
|
||||
// Right panel
|
||||
panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::][]", ""));
|
||||
|
||||
// Add an action listener to update the plus quantity, based on the selected reference point
|
||||
positionCombo.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
mAxOff.stateChanged(e);
|
||||
}
|
||||
});
|
||||
|
||||
//// Material
|
||||
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK, order);
|
||||
panel.add(materialPanel, "span, wrap");
|
||||
|
||||
|
||||
panel.add(materialPanel, "span, grow, wrap");
|
||||
|
||||
{//// Placement
|
||||
//// Position relative to:
|
||||
JPanel placementPanel = new PlacementPanel(component, order);
|
||||
panel.add(placementPanel, "span, grow, wrap");
|
||||
|
||||
//// Rotation:
|
||||
placementPanel.add(new JLabel(trans.get("LaunchLugCfg.lbl.Angle")), "newline");
|
||||
|
||||
m = new DoubleModel(component, "AngleOffset", UnitGroup.UNITS_ANGLE, -Math.PI, Math.PI);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
placementPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
placementPanel.add(new UnitSelector(m), "growx");
|
||||
placementPanel.add(new BasicSlider(m.getSliderModel()), "w 100lp, wrap");
|
||||
}
|
||||
|
||||
primary.add(panel, "grow");
|
||||
|
||||
//// General and General properties
|
||||
|
@ -22,7 +22,6 @@ import net.sf.openrocket.gui.components.UnitSelector;
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.rocketcomponent.MassComponent;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
import net.sf.openrocket.gui.widgets.SelectColorButton;
|
||||
@ -126,32 +125,12 @@ public class MassComponentConfig extends RocketComponentConfig {
|
||||
|
||||
//// Right side
|
||||
JPanel panel2 = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::]", ""));
|
||||
panel.add(panel2, "cell 4 0, gapleft paragraph, aligny 0%, spany");
|
||||
panel.add(panel2, "cell 4 0, gapleft 40lp, aligny 0%, spany");
|
||||
|
||||
// Placement
|
||||
|
||||
//// Position relative to:
|
||||
panel2.add(new JLabel(trans.get("MassComponentCfg.lbl.PosRelativeto")));
|
||||
|
||||
final EnumModel<AxialMethod> methodModel = new EnumModel<>(component, "AxialMethod", AxialMethod.axialOffsetMethods );
|
||||
final JComboBox<?> methodCombo = new JComboBox<>( methodModel );
|
||||
panel2.add(methodCombo, "spanx, growx, wrap");
|
||||
order.add(methodCombo);
|
||||
|
||||
//// plus
|
||||
panel2.add(new JLabel(trans.get("MassComponentCfg.lbl.plus")), "right");
|
||||
|
||||
m = new DoubleModel(component, "AxialOffset", UnitGroup.UNITS_LENGTH);
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel2.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel2.add(new UnitSelector(m), "growx");
|
||||
panel2.add(new BasicSlider(m.getSliderModel(
|
||||
new DoubleModel(component.getParent(), "Length", -1.0, UnitGroup.UNITS_NONE),
|
||||
new DoubleModel(component.getParent(), "Length"))),
|
||||
"w 100lp, wrap");
|
||||
//// Position
|
||||
panel2.add(new PlacementPanel(component, order), "span, grow, wrap");
|
||||
|
||||
|
||||
//// General and General properties
|
||||
|
@ -11,11 +11,13 @@ import net.sf.openrocket.rocketcomponent.ExternalComponent;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import java.awt.*;
|
||||
import javax.swing.border.EmptyBorder;
|
||||
import java.awt.Component;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.Iterator;
|
||||
@ -30,71 +32,76 @@ public class MaterialPanel extends JPanel {
|
||||
public MaterialPanel(RocketComponent component, OpenRocketDocument document,
|
||||
Material.Type type, String materialString, String finishString,
|
||||
String partName, List<Component> order) {
|
||||
super(new MigLayout("insets 0"));
|
||||
super(new MigLayout(component instanceof ExternalComponent ? "" : "ins 0"));
|
||||
if (component instanceof ExternalComponent) {
|
||||
this.setBorder(BorderFactory.createTitledBorder(trans.get("MaterialPanel.title.Material")));
|
||||
}
|
||||
|
||||
JLabel label = new JLabel(materialString);
|
||||
//// The component material affects the weight of the component.
|
||||
label.setToolTipText(trans.get("RocketCompCfg.lbl.ttip.componentmaterialaffects"));
|
||||
label.setToolTipText(trans.get("MaterialPanel.lbl.ttip.ComponentMaterialAffects"));
|
||||
this.add(label, "spanx 4, wrap rel");
|
||||
|
||||
JComboBox<Material> materialCombo = new JComboBox<>(new MaterialModel(this, component, type, partName));
|
||||
//// The component material affects the weight of the component.
|
||||
materialCombo.setToolTipText(trans.get("RocketCompCfg.combo.ttip.componentmaterialaffects"));
|
||||
materialCombo.setToolTipText(trans.get("MaterialPanel.combo.ttip.ComponentMaterialAffects"));
|
||||
this.add(materialCombo, "spanx 4, growx, wrap paragraph");
|
||||
order.add(materialCombo);
|
||||
|
||||
if (component instanceof ExternalComponent) {
|
||||
label = new JLabel(finishString);
|
||||
////<html>The component finish affects the aerodynamic drag of the component.<br>
|
||||
String tip = trans.get("RocketCompCfg.lbl.longA1")
|
||||
//// The value indicated is the average roughness height of the surface.
|
||||
+ trans.get("RocketCompCfg.lbl.longA2");
|
||||
label.setToolTipText(tip);
|
||||
this.add(label, "spanx 4, wmin 220lp, wrap rel");
|
||||
|
||||
JComboBox<ExternalComponent.Finish> finishCombo = new JComboBox<ExternalComponent.Finish>(
|
||||
new EnumModel<ExternalComponent.Finish>(component, "Finish"));
|
||||
finishCombo.setToolTipText(tip);
|
||||
this.add(finishCombo, "spanx 4, growx, split");
|
||||
order.add(finishCombo);
|
||||
|
||||
//// Set for all
|
||||
JButton button = new SelectColorButton(trans.get("RocketCompCfg.but.Setforall"));
|
||||
//// Set this finish for all components of the rocket.
|
||||
button.setToolTipText(trans.get("RocketCompCfg.but.ttip.Setforall"));
|
||||
button.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
ExternalComponent.Finish f = ((ExternalComponent) component).getFinish();
|
||||
try {
|
||||
document.startUndo("Set rocket finish");
|
||||
|
||||
// Do changes
|
||||
Iterator<RocketComponent> iter = component.getRoot().iterator();
|
||||
while (iter.hasNext()) {
|
||||
RocketComponent c = iter.next();
|
||||
if (c instanceof ExternalComponent) {
|
||||
((ExternalComponent) c).setFinish(f);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
document.stopUndo();
|
||||
}
|
||||
}
|
||||
});
|
||||
this.add(button, "wrap paragraph");
|
||||
order.add(button);
|
||||
if (!(component instanceof ExternalComponent)) {
|
||||
return;
|
||||
}
|
||||
label = new JLabel(finishString);
|
||||
////<html>The component finish affects the aerodynamic drag of the component.<br>
|
||||
String tip = trans.get("MaterialPanel.lbl.ComponentFinish.ttip.longA1")
|
||||
//// The value indicated is the average roughness height of the surface.
|
||||
+ trans.get("MaterialPanel.lbl.ComponentFinish.ttip.longA2");
|
||||
label.setToolTipText(tip);
|
||||
this.add(label, "spanx 4, wmin 220lp, wrap rel");
|
||||
|
||||
JComboBox<ExternalComponent.Finish> finishCombo = new JComboBox<ExternalComponent.Finish>(
|
||||
new EnumModel<>(component, "Finish"));
|
||||
finishCombo.setToolTipText(tip);
|
||||
this.add(finishCombo, "spanx 4, growx, split");
|
||||
order.add(finishCombo);
|
||||
|
||||
//// Set for all
|
||||
JButton button = new SelectColorButton(trans.get("MaterialPanel.but.SetForAll"));
|
||||
//// Set this finish for all components of the rocket.
|
||||
button.setToolTipText(trans.get("MaterialPanel.but.SetForAll.ttip"));
|
||||
button.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
ExternalComponent.Finish f = ((ExternalComponent) component).getFinish();
|
||||
try {
|
||||
document.startUndo("Set rocket finish");
|
||||
|
||||
// Do changes
|
||||
Iterator<RocketComponent> iter = component.getRoot().iterator();
|
||||
while (iter.hasNext()) {
|
||||
RocketComponent c = iter.next();
|
||||
if (c instanceof ExternalComponent) {
|
||||
((ExternalComponent) c).setFinish(f);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
document.stopUndo();
|
||||
}
|
||||
}
|
||||
});
|
||||
this.add(button);
|
||||
order.add(button);
|
||||
}
|
||||
|
||||
public MaterialPanel(RocketComponent component, OpenRocketDocument document,
|
||||
Material.Type type, String partName, List<Component> order) {
|
||||
this(component, document, type, trans.get("RocketCompCfg.lbl.Componentmaterial"),
|
||||
trans.get("RocketCompCfg.lbl.Componentfinish"), partName, order);
|
||||
this(component, document, type, trans.get("MaterialPanel.lbl.ComponentMaterial"),
|
||||
trans.get("MaterialPanel.lbl.ComponentFinish"), partName, order);
|
||||
}
|
||||
|
||||
public MaterialPanel(RocketComponent component, OpenRocketDocument document,
|
||||
Material.Type type, List<Component> order) {
|
||||
this(component, document, type, trans.get("RocketCompCfg.lbl.Componentmaterial"),
|
||||
trans.get("RocketCompCfg.lbl.Componentfinish"), "Material", order);
|
||||
this(component, document, type, trans.get("MaterialPanel.lbl.ComponentMaterial"),
|
||||
trans.get("MaterialPanel.lbl.ComponentFinish"), "Material", order);
|
||||
}
|
||||
}
|
||||
|
@ -176,7 +176,7 @@ public class NoseConeConfig extends RocketComponentConfig {
|
||||
//// Material
|
||||
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK, order);
|
||||
panel2.add(materialPanel, "span, wrap");
|
||||
panel.add(panel2, "cell 4 0, gapleft paragraph, aligny 0%, spany");
|
||||
panel.add(panel2, "cell 4 0, gapleft 40lp, aligny 0%, spany");
|
||||
|
||||
|
||||
//// General and General properties
|
||||
|
@ -14,7 +14,9 @@ import javax.swing.JComboBox;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JSeparator;
|
||||
import javax.swing.JSpinner;
|
||||
import javax.swing.SwingConstants;
|
||||
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import net.sf.openrocket.document.OpenRocketDocument;
|
||||
@ -23,7 +25,6 @@ import net.sf.openrocket.gui.adaptors.*;
|
||||
import net.sf.openrocket.gui.components.BasicSlider;
|
||||
import net.sf.openrocket.gui.components.HtmlLabel;
|
||||
import net.sf.openrocket.gui.components.StyledLabel;
|
||||
import net.sf.openrocket.gui.components.StyledLabel.Style;
|
||||
import net.sf.openrocket.gui.components.UnitSelector;
|
||||
import net.sf.openrocket.gui.widgets.SelectColorButton;
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
@ -32,7 +33,6 @@ import net.sf.openrocket.rocketcomponent.DeploymentConfiguration;
|
||||
import net.sf.openrocket.rocketcomponent.DeploymentConfiguration.DeployEvent;
|
||||
import net.sf.openrocket.rocketcomponent.Parachute;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
|
||||
@ -47,7 +47,7 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
|
||||
|
||||
// Left Side
|
||||
JPanel primary = new JPanel(new MigLayout());
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]", ""));
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::][]", ""));
|
||||
|
||||
// ---------------------------- Canopy ----------------------------
|
||||
JPanel canopyPanel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]"));
|
||||
@ -156,141 +156,117 @@ public class ParachuteConfig extends RecoveryDeviceConfig {
|
||||
order.add(shroudMaterialCombo);
|
||||
|
||||
panel.add(shroudPanel, "spanx, wrap");
|
||||
primary.add(panel, "grow");
|
||||
primary.add(panel, "grow, gapright 20lp");
|
||||
|
||||
// Separator
|
||||
//primary.add(new JSeparator(SwingConstants.VERTICAL), "growy, gapx 10lp 10lp");
|
||||
|
||||
// Right side
|
||||
panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]", ""));
|
||||
panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::][]", ""));
|
||||
|
||||
// ---------------------------- Placement ----------------------------
|
||||
JPanel placementPanel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]"));
|
||||
placementPanel.setBorder(BorderFactory.createTitledBorder(trans.get("ParachuteCfg.lbl.Placement")));
|
||||
{// ---------------------------- Placement ----------------------------
|
||||
//// Position relative to:
|
||||
JPanel placementPanel = new PlacementPanel(component, order);
|
||||
panel.add(placementPanel, "span, grow, wrap");
|
||||
|
||||
//// Position relative to:
|
||||
placementPanel.add(new JLabel(trans.get("ParachuteCfg.lbl.Posrelativeto")));
|
||||
|
||||
final EnumModel<AxialMethod> methodModel =
|
||||
new EnumModel<AxialMethod>(component, "AxialMethod", AxialMethod.axialOffsetMethods );
|
||||
JComboBox<AxialMethod> positionCombo = new JComboBox<AxialMethod>( methodModel );
|
||||
placementPanel.add( positionCombo, "spanx, growx, wrap");
|
||||
order.add(positionCombo);
|
||||
|
||||
//// plus
|
||||
placementPanel.add(new JLabel(trans.get("ParachuteCfg.lbl.plus")), "right");
|
||||
|
||||
m = new DoubleModel(component, "AxialOffset", UnitGroup.UNITS_LENGTH);
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
focusElement = spin;
|
||||
placementPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
//// Packed length:
|
||||
placementPanel.add(new JLabel(trans.get("ParachuteCfg.lbl.Packedlength")), "newline");
|
||||
|
||||
placementPanel.add(new UnitSelector(m), "growx");
|
||||
placementPanel.add(new BasicSlider(m.getSliderModel(
|
||||
new DoubleModel(component.getParent(), "Length", -1.0, UnitGroup.UNITS_NONE),
|
||||
new DoubleModel(component.getParent(), "Length"))),
|
||||
"w 150lp, wrap");
|
||||
|
||||
//// Spatial length
|
||||
//// Packed length:
|
||||
placementPanel.add(new JLabel(trans.get("ParachuteCfg.lbl.Packedlength")));
|
||||
|
||||
m = new DoubleModel(component, "Length", UnitGroup.UNITS_LENGTH, 0);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
placementPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
m = new DoubleModel(component, "Length", UnitGroup.UNITS_LENGTH, 0);
|
||||
|
||||
placementPanel.add(new UnitSelector(m), "growx");
|
||||
placementPanel.add(new BasicSlider(m.getSliderModel(0, 0.1, 0.5)), "w 150lp, wrap");
|
||||
|
||||
|
||||
//// Tube diameter
|
||||
//// Packed diameter:
|
||||
placementPanel.add(new JLabel(trans.get("ParachuteCfg.lbl.Packeddiam")));
|
||||
|
||||
final DoubleModel od = new DoubleModel(component, "Radius", 2, UnitGroup.UNITS_LENGTH, 0);
|
||||
// Diameter = 2*Radius
|
||||
|
||||
spin = new JSpinner(od.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
placementPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
placementPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
placementPanel.add(new UnitSelector(od), "growx");
|
||||
placementPanel.add(new BasicSlider(od.getSliderModel(0, 0.04, 0.2)), "w 150lp, wrap");
|
||||
|
||||
////// Automatic
|
||||
JCheckBox checkAutoPackedRadius = new JCheckBox(od.getAutomaticAction());
|
||||
checkAutoPackedRadius.setText(trans.get("ParachuteCfg.checkbox.AutomaticPacked"));
|
||||
checkAutoPackedRadius.setToolTipText(trans.get("ParachuteCfg.checkbox.AutomaticPacked.ttip"));
|
||||
placementPanel.add(checkAutoPackedRadius, "skip, span 2, wrap");
|
||||
order.add(checkAutoPackedRadius);
|
||||
|
||||
panel.add(placementPanel, "spanx, growx, wrap");
|
||||
placementPanel.add(new UnitSelector(m), "growx");
|
||||
placementPanel.add(new BasicSlider(m.getSliderModel(0, 0.1, 0.5)), "w 100lp, wrap");
|
||||
|
||||
|
||||
// ---------------------------- Deployment ----------------------------
|
||||
JPanel deploymentPanel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]"));
|
||||
deploymentPanel.setBorder(BorderFactory.createTitledBorder(trans.get("ParachuteCfg.lbl.Deployment")));
|
||||
//// Packed diameter:
|
||||
placementPanel.add(new JLabel(trans.get("ParachuteCfg.lbl.Packeddiam")));
|
||||
|
||||
//// Deploys at:
|
||||
deploymentPanel.add(new JLabel(trans.get("ParachuteCfg.lbl.Deploysat") + " " + CommonStrings.dagger), "");
|
||||
|
||||
DeploymentConfiguration deploymentConfig = parachute.getDeploymentConfigurations().getDefault();
|
||||
// this issues a warning because EnumModel ipmlements ComboBoxModel without a parameter...
|
||||
ComboBoxModel<DeploymentConfiguration.DeployEvent> deployOptionsModel =
|
||||
new EnumModel<DeploymentConfiguration.DeployEvent>(deploymentConfig, "DeployEvent");
|
||||
JComboBox<DeploymentConfiguration.DeployEvent> eventCombo =
|
||||
new JComboBox<DeploymentConfiguration.DeployEvent>( deployOptionsModel );
|
||||
if( (component.getStageNumber() + 1 ) == d.getRocket().getStageCount() ){
|
||||
// This is the bottom stage: Restrict deployment options.
|
||||
eventCombo.removeItem( DeployEvent.LOWER_STAGE_SEPARATION );
|
||||
final DoubleModel od = new DoubleModel(component, "Radius", 2, UnitGroup.UNITS_LENGTH, 0);
|
||||
|
||||
spin = new JSpinner(od.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
placementPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
placementPanel.add(new UnitSelector(od), "growx");
|
||||
placementPanel.add(new BasicSlider(od.getSliderModel(0, 0.04, 0.2)), "w 100lp, wrap");
|
||||
|
||||
////// Automatic
|
||||
JCheckBox checkAutoPackedRadius = new JCheckBox(od.getAutomaticAction());
|
||||
checkAutoPackedRadius.setText(trans.get("ParachuteCfg.checkbox.AutomaticPacked"));
|
||||
checkAutoPackedRadius.setToolTipText(trans.get("ParachuteCfg.checkbox.AutomaticPacked.ttip"));
|
||||
placementPanel.add(checkAutoPackedRadius, "skip, spanx 2");
|
||||
order.add(checkAutoPackedRadius);
|
||||
}
|
||||
eventCombo.addItemListener(new ItemListener() {
|
||||
@Override
|
||||
public void itemStateChanged(ItemEvent e) {
|
||||
updateFields();
|
||||
|
||||
{// ---------------------------- Deployment ----------------------------
|
||||
JPanel deploymentPanel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]"));
|
||||
deploymentPanel.setBorder(BorderFactory.createTitledBorder(trans.get("ParachuteCfg.lbl.Deployment")));
|
||||
|
||||
//// Deploys at:
|
||||
deploymentPanel.add(new JLabel(trans.get("ParachuteCfg.lbl.Deploysat") + " " + CommonStrings.dagger), "");
|
||||
|
||||
DeploymentConfiguration deploymentConfig = parachute.getDeploymentConfigurations().getDefault();
|
||||
// this issues a warning because EnumModel ipmlements ComboBoxModel without a parameter...
|
||||
ComboBoxModel<DeploymentConfiguration.DeployEvent> deployOptionsModel =
|
||||
new EnumModel<DeploymentConfiguration.DeployEvent>(deploymentConfig, "DeployEvent");
|
||||
JComboBox<DeploymentConfiguration.DeployEvent> eventCombo =
|
||||
new JComboBox<DeploymentConfiguration.DeployEvent>(deployOptionsModel);
|
||||
if ((component.getStageNumber() + 1) == d.getRocket().getStageCount()) {
|
||||
// This is the bottom stage: Restrict deployment options.
|
||||
eventCombo.removeItem(DeployEvent.LOWER_STAGE_SEPARATION);
|
||||
}
|
||||
});
|
||||
deploymentPanel.add(eventCombo, "spanx 3, growx, wrap");
|
||||
order.add(eventCombo);
|
||||
|
||||
// ... and delay
|
||||
//// plus
|
||||
deploymentPanel.add(new JLabel(trans.get("ParachuteCfg.lbl.plusdelay")), "right");
|
||||
|
||||
m = new DoubleModel(deploymentConfig, "DeployDelay", 0);
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin, 3));
|
||||
deploymentPanel.add(spin, "spanx, split");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
//// seconds
|
||||
deploymentPanel.add(new JLabel(trans.get("ParachuteCfg.lbl.seconds")), "wrap paragraph");
|
||||
|
||||
//// Altitude:
|
||||
label = new JLabel(trans.get("ParachuteCfg.lbl.Altitude") + CommonStrings.dagger);
|
||||
altitudeComponents.add(label);
|
||||
deploymentPanel.add(label);
|
||||
|
||||
m = new DoubleModel(deploymentConfig, "DeployAltitude", UnitGroup.UNITS_DISTANCE, 0);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
altitudeComponents.add(spin);
|
||||
deploymentPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
UnitSelector unit = new UnitSelector(m);
|
||||
altitudeComponents.add(unit);
|
||||
deploymentPanel.add(unit, "growx");
|
||||
BasicSlider slider = new BasicSlider(m.getSliderModel(100, 1000));
|
||||
altitudeComponents.add(slider);
|
||||
deploymentPanel.add(slider, "w 150lp, wrap");
|
||||
eventCombo.addItemListener(new ItemListener() {
|
||||
@Override
|
||||
public void itemStateChanged(ItemEvent e) {
|
||||
updateFields();
|
||||
}
|
||||
});
|
||||
deploymentPanel.add(eventCombo, "spanx 3, growx, wrap");
|
||||
order.add(eventCombo);
|
||||
|
||||
deploymentPanel.add(new StyledLabel(CommonStrings.override_description, -1), "spanx, wrap");
|
||||
// ... and delay
|
||||
//// plus
|
||||
deploymentPanel.add(new JLabel(trans.get("ParachuteCfg.lbl.plusdelay")), "right");
|
||||
|
||||
m = new DoubleModel(deploymentConfig, "DeployDelay", 0);
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin, 3));
|
||||
deploymentPanel.add(spin, "spanx, split");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
//// seconds
|
||||
deploymentPanel.add(new JLabel(trans.get("ParachuteCfg.lbl.seconds")), "wrap paragraph");
|
||||
|
||||
//// Altitude:
|
||||
label = new JLabel(trans.get("ParachuteCfg.lbl.Altitude") + CommonStrings.dagger);
|
||||
altitudeComponents.add(label);
|
||||
deploymentPanel.add(label);
|
||||
|
||||
m = new DoubleModel(deploymentConfig, "DeployAltitude", UnitGroup.UNITS_DISTANCE, 0);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
altitudeComponents.add(spin);
|
||||
deploymentPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
UnitSelector unit = new UnitSelector(m);
|
||||
altitudeComponents.add(unit);
|
||||
deploymentPanel.add(unit, "growx");
|
||||
BasicSlider slider = new BasicSlider(m.getSliderModel(100, 1000));
|
||||
altitudeComponents.add(slider);
|
||||
deploymentPanel.add(slider, "w 100lp, wrap");
|
||||
|
||||
deploymentPanel.add(new StyledLabel(CommonStrings.override_description, -1), "spanx, wrap");
|
||||
|
||||
panel.add(deploymentPanel, "spanx, growx, wrap para");
|
||||
}
|
||||
|
||||
panel.add(deploymentPanel, "spanx, growx, wrap para");
|
||||
primary.add(panel, "grow");
|
||||
|
||||
updateFields();
|
||||
|
@ -0,0 +1,66 @@
|
||||
package net.sf.openrocket.gui.configdialog;
|
||||
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import net.sf.openrocket.gui.SpinnerEditor;
|
||||
import net.sf.openrocket.gui.adaptors.DoubleModel;
|
||||
import net.sf.openrocket.gui.adaptors.EnumModel;
|
||||
import net.sf.openrocket.gui.components.BasicSlider;
|
||||
import net.sf.openrocket.gui.components.UnitSelector;
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JSpinner;
|
||||
import java.awt.Component;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.EventObject;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Panel for configuring a component's placement relative to its parent.
|
||||
*/
|
||||
public class PlacementPanel extends JPanel {
|
||||
private static final Translator trans = Application.getTranslator();
|
||||
|
||||
public PlacementPanel(RocketComponent component, List<Component> order) {
|
||||
super(new MigLayout("gap rel unrel", "[][65lp::][30lp::]"));
|
||||
this.setBorder(BorderFactory.createTitledBorder(trans.get("PlacementPanel.title.Placement")));
|
||||
|
||||
this.add(new JLabel(trans.get("PlacementPanel.lbl.PosRelativeTo")));
|
||||
|
||||
final EnumModel<AxialMethod> axialMethodModel = new EnumModel<>(component, "AxialMethod", AxialMethod.axialOffsetMethods );
|
||||
final JComboBox<AxialMethod> axialMethodCombo = new JComboBox<>(axialMethodModel);
|
||||
this.add(axialMethodCombo, "spanx, growx, wrap");
|
||||
order.add(axialMethodCombo);
|
||||
|
||||
//// plus
|
||||
this.add(new JLabel(trans.get("PlacementPanel.lbl.plus")), "right");
|
||||
|
||||
final DoubleModel axialOffsetModel = new DoubleModel(component, "AxialOffset", UnitGroup.UNITS_LENGTH);
|
||||
final JSpinner axialOffsetSpinner = new JSpinner(axialOffsetModel.getSpinnerModel());
|
||||
axialOffsetSpinner.setEditor(new SpinnerEditor(axialOffsetSpinner));
|
||||
|
||||
this.add(axialOffsetSpinner, "growx");
|
||||
order.add(((SpinnerEditor) axialOffsetSpinner.getEditor()).getTextField());
|
||||
|
||||
axialMethodCombo.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
axialOffsetModel.stateChanged(new EventObject(e));
|
||||
}
|
||||
});
|
||||
|
||||
this.add(new UnitSelector(axialOffsetModel), "growx");
|
||||
this.add(new BasicSlider(axialOffsetModel.getSliderModel(
|
||||
new DoubleModel(component.getParent(), "Length", -1.0, UnitGroup.UNITS_NONE),
|
||||
new DoubleModel(component.getParent(), "Length"))),
|
||||
"w 100lp");
|
||||
}
|
||||
}
|
@ -1,24 +1,24 @@
|
||||
package net.sf.openrocket.gui.configdialog;
|
||||
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JSeparator;
|
||||
import javax.swing.JSpinner;
|
||||
import javax.swing.SwingConstants;
|
||||
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import net.sf.openrocket.document.OpenRocketDocument;
|
||||
import net.sf.openrocket.gui.SpinnerEditor;
|
||||
import net.sf.openrocket.gui.adaptors.CustomFocusTraversalPolicy;
|
||||
import net.sf.openrocket.gui.adaptors.DoubleModel;
|
||||
import net.sf.openrocket.gui.adaptors.EnumModel;
|
||||
import net.sf.openrocket.gui.adaptors.IntegerModel;
|
||||
import net.sf.openrocket.gui.components.BasicSlider;
|
||||
import net.sf.openrocket.gui.components.UnitSelector;
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.material.Material;
|
||||
import net.sf.openrocket.rocketcomponent.RailButton;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
|
||||
@ -44,9 +44,9 @@ public class RailButtonConfig extends RocketComponentConfig {
|
||||
|
||||
private JPanel buttonTab( final RailButton rbc ){
|
||||
|
||||
JPanel primary = new JPanel(new MigLayout("fill"));
|
||||
JPanel primary = new JPanel(new MigLayout());
|
||||
|
||||
JPanel panel = new JPanel( new MigLayout("gap rel unrel"));
|
||||
JPanel panel = new JPanel( new MigLayout("gap rel unrel, ins 0"));
|
||||
|
||||
|
||||
{ //// Outer Diameter
|
||||
@ -110,53 +110,62 @@ public class RailButtonConfig extends RocketComponentConfig {
|
||||
panel.add(heightSpinner, "growx");
|
||||
order.add(((SpinnerEditor) heightSpinner.getEditor()).getTextField());
|
||||
panel.add(new UnitSelector(heightModel), "growx");
|
||||
panel.add(new BasicSlider(heightModel.getSliderModel(0, 0.02)), "w 100lp, wrap 20lp");
|
||||
panel.add(new BasicSlider(heightModel.getSliderModel(0, 0.02)), "w 100lp, wrap 30lp");
|
||||
}
|
||||
|
||||
{ //// Rotation:
|
||||
panel.add(new JLabel(trans.get("RailBtnCfg.lbl.Angle")));
|
||||
DoubleModel angleModel = new DoubleModel(component, "AngleOffset", UnitGroup.UNITS_ANGLE, -180, +180);
|
||||
JSpinner angleSpinner = new JSpinner( angleModel.getSpinnerModel());
|
||||
angleSpinner.setEditor(new SpinnerEditor(angleSpinner));
|
||||
panel.add(angleSpinner, "growx");
|
||||
order.add(((SpinnerEditor) angleSpinner.getEditor()).getTextField());
|
||||
panel.add(new UnitSelector( angleModel), "growx");
|
||||
panel.add(new BasicSlider( angleModel.getSliderModel(-Math.PI, Math.PI)), "w 100lp, wrap");
|
||||
{ //// Instance Count
|
||||
panel.add(new JLabel(trans.get("RocketCompCfg.lbl.InstanceCount")));
|
||||
IntegerModel countModel = new IntegerModel(component, "InstanceCount", 1);
|
||||
JSpinner countSpinner = new JSpinner( countModel.getSpinnerModel());
|
||||
countSpinner.setEditor(new SpinnerEditor(countSpinner));
|
||||
panel.add(countSpinner, "growx, wrap rel");
|
||||
order.add(((SpinnerEditor) countSpinner.getEditor()).getTextField());
|
||||
}
|
||||
|
||||
primary.add(panel, "grow, gapright 201p");
|
||||
panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]", ""));
|
||||
|
||||
{ //// Position relative to:
|
||||
panel.add(new JLabel(trans.get("RailBtnCfg.lbl.PosRelativeTo")));
|
||||
|
||||
final EnumModel<AxialMethod> methodModel = new EnumModel<AxialMethod>(component, "AxialMethod", AxialMethod.axialOffsetMethods );
|
||||
JComboBox<AxialMethod> relToCombo = new JComboBox<AxialMethod>( methodModel );
|
||||
panel.add( relToCombo, "spanx, growx, wrap");
|
||||
order.add(relToCombo);
|
||||
{ //// Instance separation
|
||||
panel.add(new JLabel(trans.get("RocketCompCfg.lbl.InstanceSeparation")));
|
||||
DoubleModel separationModel = new DoubleModel(component, "InstanceSeparation", UnitGroup.UNITS_LENGTH);
|
||||
JSpinner separationSpinner = new JSpinner( separationModel.getSpinnerModel());
|
||||
separationSpinner.setEditor(new SpinnerEditor(separationSpinner));
|
||||
panel.add(separationSpinner, "growx");
|
||||
order.add(((SpinnerEditor) separationSpinner.getEditor()).getTextField());
|
||||
panel.add(new UnitSelector(separationModel), "growx");
|
||||
double maxSeparationDistance = 0.1;
|
||||
if (component.getParent() != null && component.getParent().getLength() > 0) {
|
||||
maxSeparationDistance = component.getParent().getLength();
|
||||
}
|
||||
panel.add(new BasicSlider(separationModel.getSliderModel(0, 0.001, maxSeparationDistance)), "w 100lp, wrap para");
|
||||
}
|
||||
|
||||
{ //// plus
|
||||
panel.add(new JLabel(trans.get("RailBtnCfg.lbl.Plus")), "right");
|
||||
DoubleModel offsetModel = new DoubleModel(component, "AxialOffset", UnitGroup.UNITS_LENGTH);
|
||||
JSpinner offsetSpinner = new JSpinner(offsetModel.getSpinnerModel());
|
||||
offsetSpinner.setEditor(new SpinnerEditor(offsetSpinner));
|
||||
focusElement = offsetSpinner;
|
||||
panel.add(offsetSpinner, "growx");
|
||||
order.add(((SpinnerEditor) offsetSpinner.getEditor()).getTextField());
|
||||
panel.add(new UnitSelector(offsetModel), "growx");
|
||||
panel.add(new BasicSlider(offsetModel.getSliderModel(
|
||||
new DoubleModel(component.getParent(), "Length", -1.0, UnitGroup.UNITS_NONE),
|
||||
new DoubleModel(component.getParent(), "Length"))),
|
||||
"w 100lp, wrap para");
|
||||
|
||||
}
|
||||
//// Instance count/separation
|
||||
panel.add(instanceablePanel(), "span, wrap");
|
||||
primary.add(panel, "grow, gapright 50lp");
|
||||
|
||||
// Separator
|
||||
//primary.add(new JSeparator(SwingConstants.VERTICAL), "growy, gapx 20lp 20lp");
|
||||
|
||||
// Right side panel
|
||||
panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::][]", ""));
|
||||
|
||||
//// Material
|
||||
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK, order);
|
||||
panel.add(materialPanel,"span, wrap");
|
||||
panel.add(materialPanel,"span, grow, wrap");
|
||||
|
||||
{// -------- Placement ------
|
||||
//// Position relative to:
|
||||
JPanel placementPanel = new PlacementPanel(component, order);
|
||||
panel.add(placementPanel, "span, grow, wrap");
|
||||
|
||||
{ //// Rotation:
|
||||
placementPanel.add(new JLabel(trans.get("RailBtnCfg.lbl.Angle")), "newline");
|
||||
DoubleModel angleModel = new DoubleModel(component, "AngleOffset", UnitGroup.UNITS_ANGLE, -180, +180);
|
||||
JSpinner angleSpinner = new JSpinner( angleModel.getSpinnerModel());
|
||||
angleSpinner.setEditor(new SpinnerEditor(angleSpinner));
|
||||
placementPanel.add(angleSpinner, "growx");
|
||||
order.add(((SpinnerEditor) angleSpinner.getEditor()).getTextField());
|
||||
placementPanel.add(new UnitSelector(angleModel), "growx");
|
||||
placementPanel.add(new BasicSlider(angleModel.getSliderModel(-Math.PI, Math.PI)), "w 100lp");
|
||||
}
|
||||
}
|
||||
|
||||
primary.add(panel, "grow");
|
||||
|
||||
|
@ -2,24 +2,23 @@ package net.sf.openrocket.gui.configdialog;
|
||||
|
||||
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JSeparator;
|
||||
import javax.swing.JSpinner;
|
||||
import javax.swing.SwingConstants;
|
||||
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import net.sf.openrocket.document.OpenRocketDocument;
|
||||
import net.sf.openrocket.gui.SpinnerEditor;
|
||||
import net.sf.openrocket.gui.adaptors.DoubleModel;
|
||||
import net.sf.openrocket.gui.adaptors.EnumModel;
|
||||
import net.sf.openrocket.gui.components.BasicSlider;
|
||||
import net.sf.openrocket.gui.components.UnitSelector;
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.material.Material;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.rocketcomponent.ThicknessRingComponent;
|
||||
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
|
||||
@ -33,7 +32,9 @@ public class RingComponentConfig extends RocketComponentConfig {
|
||||
|
||||
|
||||
protected JPanel generalTab(String outer, String inner, String thickness, String length) {
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
|
||||
JPanel primary = new JPanel(new MigLayout());
|
||||
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::]", ""));
|
||||
DoubleModel m;
|
||||
JSpinner spin;
|
||||
DoubleModel od = null;
|
||||
@ -46,8 +47,7 @@ public class RingComponentConfig extends RocketComponentConfig {
|
||||
|
||||
//// OuterRadius
|
||||
od = new DoubleModel(component, "OuterRadius", 2, UnitGroup.UNITS_LENGTH, 0);
|
||||
// Diameter = 2*Radius
|
||||
|
||||
|
||||
spin = new JSpinner(od.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
@ -61,7 +61,7 @@ public class RingComponentConfig extends RocketComponentConfig {
|
||||
//// Automatic
|
||||
check.setText(trans.get("ringcompcfg.Automatic"));
|
||||
check.setToolTipText(trans.get("ringcompcfg.AutomaticOuter.ttip"));
|
||||
panel.add(check, "skip, span 2, wrap");
|
||||
panel.add(check, "skip, spanx 2, wrap");
|
||||
order.add(check);
|
||||
}
|
||||
}
|
||||
@ -133,43 +133,23 @@ public class RingComponentConfig extends RocketComponentConfig {
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.1, 1.0)), "w 100lp, wrap");
|
||||
}
|
||||
|
||||
primary.add(panel, "grow, gapright 40lp");
|
||||
|
||||
// Separator
|
||||
//primary.add(new JSeparator(SwingConstants.VERTICAL), "growy, gapx 10lp 10lp");
|
||||
|
||||
// Right side panel
|
||||
JPanel rightSide = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::]", ""));
|
||||
primary.add(rightSide, "cell 4 0, aligny 0, spany");
|
||||
|
||||
//// Material
|
||||
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK, order);
|
||||
panel.add(materialPanel, "gaptop 20lp, spanx 4, growx, wrap");
|
||||
rightSide.add(materialPanel, "span, grow, wrap");
|
||||
|
||||
//// Placement ----
|
||||
JPanel positionPanel = new JPanel(new MigLayout("gap rel unrel, insets 0", "[][65lp::][30lp::]", ""));
|
||||
//// Position
|
||||
rightSide.add(new PlacementPanel(component, order), "span, grow");
|
||||
|
||||
//// Position relative to:
|
||||
positionPanel.add(new JLabel(trans.get("ringcompcfg.Positionrelativeto")));
|
||||
|
||||
final EnumModel<AxialMethod> methodModel = new EnumModel<AxialMethod>(component, "AxialMethod", AxialMethod.axialOffsetMethods );
|
||||
final JComboBox<AxialMethod> positionCombo = new JComboBox<AxialMethod>( methodModel );
|
||||
positionPanel.add(positionCombo, "spanx 3, growx, wrap");
|
||||
order.add(positionCombo);
|
||||
|
||||
//// plus
|
||||
positionPanel.add(new JLabel(trans.get("ringcompcfg.plus")), "right");
|
||||
|
||||
//// PositionValue
|
||||
m = new DoubleModel(component, "AxialOffset", UnitGroup.UNITS_LENGTH);
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
if (!(component instanceof ThicknessRingComponent)) {
|
||||
focusElement = spin;
|
||||
}
|
||||
positionPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
positionPanel.add(new UnitSelector(m), "growx");
|
||||
positionPanel.add(new BasicSlider(m.getSliderModel(
|
||||
new DoubleModel(component.getParent(), "Length", -1.0, UnitGroup.UNITS_NONE),
|
||||
new DoubleModel(component.getParent(), "Length"))),
|
||||
"w 100lp, wrap");
|
||||
|
||||
panel.add(positionPanel, "cell 4 0, gapleft paragraph, aligny 0%, spany");
|
||||
|
||||
return panel;
|
||||
return primary;
|
||||
}
|
||||
|
||||
|
||||
|
@ -464,34 +464,6 @@ public class RocketComponentConfig extends JPanel {
|
||||
}
|
||||
}
|
||||
|
||||
protected JPanel instanceablePanel() {
|
||||
JPanel panel = new JPanel( new MigLayout("fill, insets 0") );
|
||||
{ // Instance Count
|
||||
panel.add(new JLabel(trans.get("RocketCompCfg.lbl.InstanceCount")));
|
||||
IntegerModel countModel = new IntegerModel(component, "InstanceCount", 1);
|
||||
JSpinner countSpinner = new JSpinner( countModel.getSpinnerModel());
|
||||
countSpinner.setEditor(new SpinnerEditor(countSpinner));
|
||||
panel.add(countSpinner, "w 100lp, wrap rel");
|
||||
order.add(((SpinnerEditor) countSpinner.getEditor()).getTextField());
|
||||
}
|
||||
|
||||
{ // Instance separation
|
||||
panel.add(new JLabel(trans.get("RocketCompCfg.lbl.InstanceSeparation")));
|
||||
DoubleModel separationModel = new DoubleModel(component, "InstanceSeparation", UnitGroup.UNITS_LENGTH);
|
||||
JSpinner separationSpinner = new JSpinner( separationModel.getSpinnerModel());
|
||||
separationSpinner.setEditor(new SpinnerEditor(separationSpinner));
|
||||
panel.add(separationSpinner, "growx");
|
||||
order.add(((SpinnerEditor) separationSpinner.getEditor()).getTextField());
|
||||
panel.add(new UnitSelector(separationModel), "growx");
|
||||
double maxSeparationDistance = 0.1;
|
||||
if (component.getParent() != null && component.getParent().getLength() > 0) {
|
||||
maxSeparationDistance = component.getParent().getLength();
|
||||
}
|
||||
panel.add(new BasicSlider(separationModel.getSliderModel(0, 0.001, maxSeparationDistance)), "w 100lp, wrap para");
|
||||
}
|
||||
return panel;
|
||||
}
|
||||
|
||||
private JPanel overrideTab() {
|
||||
JPanel panel = new JPanel(new MigLayout("align 0% 20%, gap rel unrel",
|
||||
"[][65lp::80lp][::20lp][]", ""));
|
||||
|
@ -8,7 +8,6 @@ import net.sf.openrocket.document.OpenRocketDocument;
|
||||
import net.sf.openrocket.gui.SpinnerEditor;
|
||||
import net.sf.openrocket.gui.adaptors.CustomFocusTraversalPolicy;
|
||||
import net.sf.openrocket.gui.adaptors.DoubleModel;
|
||||
import net.sf.openrocket.gui.adaptors.EnumModel;
|
||||
import net.sf.openrocket.gui.components.BasicSlider;
|
||||
import net.sf.openrocket.gui.components.UnitSelector;
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
@ -16,7 +15,6 @@ import net.sf.openrocket.material.Material;
|
||||
import net.sf.openrocket.gui.widgets.SelectColorButton;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.rocketcomponent.ShockCord;
|
||||
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
|
||||
@ -30,16 +28,17 @@ public class ShockCordConfig extends RocketComponentConfig {
|
||||
public ShockCordConfig(OpenRocketDocument d, RocketComponent component, JDialog parent) {
|
||||
super(d, component, parent);
|
||||
|
||||
JLabel label;
|
||||
DoubleModel m;
|
||||
JSpinner spin;
|
||||
JPanel primary = new JPanel(new MigLayout());
|
||||
|
||||
////// Left side
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::]", ""));
|
||||
primary.add(panel, "grow");
|
||||
JLabel label;
|
||||
DoubleModel m;
|
||||
JSpinner spin;
|
||||
|
||||
// Attributes
|
||||
|
||||
// Cord length
|
||||
//// Shock cord length
|
||||
label = new JLabel(trans.get("ShockCordCfg.lbl.Shockcordlength"));
|
||||
panel.add(label);
|
||||
@ -52,86 +51,65 @@ public class ShockCordConfig extends RocketComponentConfig {
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 1, 10)), "w 150lp, wrap");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 1, 10)), "w 100lp, wrap");
|
||||
|
||||
// Material
|
||||
//// Shock cord material:
|
||||
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.LINE,
|
||||
trans.get("ShockCordCfg.lbl.Shockcordmaterial"), null, "Material", order);
|
||||
panel.add(materialPanel, "spanx 4, wrap");
|
||||
|
||||
panel.add(materialPanel, "spanx 4, wrap, gapright 40lp");
|
||||
|
||||
// Separator
|
||||
//primary.add(new JSeparator(SwingConstants.VERTICAL), "growy, gapx 10lp 10lp");
|
||||
|
||||
///// Right side
|
||||
JPanel panel2 = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
|
||||
panel.add(panel2, "cell 4 0, gapleft paragraph, aligny 0%, spany");
|
||||
|
||||
// Placement
|
||||
panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::]", ""));
|
||||
primary.add(panel, "aligny 0%, grow, spany");
|
||||
|
||||
//// Position relative to:
|
||||
panel2.add(new JLabel(trans.get("ShockCordCfg.lbl.Posrelativeto")));
|
||||
|
||||
final EnumModel<AxialMethod> methodModel = new EnumModel<AxialMethod>(component, "AxialMethod", AxialMethod.axialOffsetMethods );
|
||||
final JComboBox<AxialMethod> combo = new JComboBox<AxialMethod>( methodModel );
|
||||
panel2.add(combo, "spanx, growx, wrap");
|
||||
order.add(combo);
|
||||
|
||||
//// plus
|
||||
panel2.add(new JLabel(trans.get("ShockCordCfg.lbl.plus")), "right");
|
||||
|
||||
m = new DoubleModel(component, "AxialOffset", UnitGroup.UNITS_LENGTH);
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
focusElement = spin;
|
||||
panel2.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel2.add(new UnitSelector(m), "growx");
|
||||
panel2.add(new BasicSlider(m.getSliderModel(
|
||||
new DoubleModel(component.getParent(), "Length", -1.0, UnitGroup.UNITS_NONE),
|
||||
new DoubleModel(component.getParent(), "Length"))),
|
||||
"w 150lp, wrap");
|
||||
|
||||
{ // ----------- Placement ----------
|
||||
//// Position relative to:
|
||||
JPanel placementPanel = new PlacementPanel(component, order);
|
||||
panel.add(placementPanel, "span, grow, wrap");
|
||||
|
||||
//// Spatial length
|
||||
//// Packed length:
|
||||
panel2.add(new JLabel(trans.get("ShockCordCfg.lbl.Packedlength")));
|
||||
|
||||
m = new DoubleModel(component, "Length", UnitGroup.UNITS_LENGTH, 0);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel2.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel2.add(new UnitSelector(m), "growx");
|
||||
panel2.add(new BasicSlider(m.getSliderModel(0, 0.1, 0.5)), "w 150lp, wrap");
|
||||
|
||||
{//// Packed length:
|
||||
placementPanel.add(new JLabel(trans.get("ShockCordCfg.lbl.Packedlength")), "newline");
|
||||
|
||||
//// Tube diameter
|
||||
//// Packed diameter:
|
||||
panel2.add(new JLabel(trans.get("ShockCordCfg.lbl.Packeddiam")));
|
||||
|
||||
DoubleModel od = new DoubleModel(component, "Radius", 2, UnitGroup.UNITS_LENGTH, 0);
|
||||
// Diameter = 2*Radius
|
||||
|
||||
spin = new JSpinner(od.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel2.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel2.add(new UnitSelector(od), "growx");
|
||||
panel2.add(new BasicSlider(od.getSliderModel(0, 0.04, 0.2)), "w 150lp, wrap");
|
||||
m = new DoubleModel(component, "Length", UnitGroup.UNITS_LENGTH, 0);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
placementPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
placementPanel.add(new UnitSelector(m), "growx");
|
||||
placementPanel.add(new BasicSlider(m.getSliderModel(0, 0.1, 0.5)), "w 100lp, wrap");
|
||||
}
|
||||
|
||||
|
||||
{//// Packed diameter:
|
||||
placementPanel.add(new JLabel(trans.get("ShockCordCfg.lbl.Packeddiam")));
|
||||
|
||||
DoubleModel od = new DoubleModel(component, "Radius", 2, UnitGroup.UNITS_LENGTH, 0);
|
||||
spin = new JSpinner(od.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
placementPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
placementPanel.add(new UnitSelector(od), "growx");
|
||||
placementPanel.add(new BasicSlider(od.getSliderModel(0, 0.04, 0.2)), "w 100lp, wrap");
|
||||
|
||||
////// Automatic
|
||||
JCheckBox checkAutoPackedRadius = new JCheckBox(od.getAutomaticAction());
|
||||
checkAutoPackedRadius.setText(trans.get("ParachuteCfg.checkbox.AutomaticPacked"));
|
||||
checkAutoPackedRadius.setToolTipText(trans.get("ParachuteCfg.checkbox.AutomaticPacked.ttip"));
|
||||
placementPanel.add(checkAutoPackedRadius, "skip, spanx 2, wrap");
|
||||
order.add(checkAutoPackedRadius);
|
||||
}
|
||||
}
|
||||
|
||||
////// Automatic
|
||||
JCheckBox checkAutoPackedRadius = new JCheckBox(od.getAutomaticAction());
|
||||
checkAutoPackedRadius.setText(trans.get("ParachuteCfg.checkbox.AutomaticPacked"));
|
||||
checkAutoPackedRadius.setToolTipText(trans.get("ParachuteCfg.checkbox.AutomaticPacked.ttip"));
|
||||
panel2.add(checkAutoPackedRadius, "skip, span 2, wrap");
|
||||
order.add(checkAutoPackedRadius);
|
||||
|
||||
//// General and General properties
|
||||
tabbedPane.insertTab(trans.get("ShockCordCfg.tab.General"), null, panel,
|
||||
tabbedPane.insertTab(trans.get("ShockCordCfg.tab.General"), null, primary,
|
||||
trans.get("ShockCordCfg.tab.ttip.General"), 0);
|
||||
//// Radial position and Radial position configuration
|
||||
tabbedPane.insertTab(trans.get("ShockCordCfg.tab.Radialpos"), null, positionTab(),
|
||||
|
@ -31,7 +31,6 @@ import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.material.Material;
|
||||
import net.sf.openrocket.rocketcomponent.DeploymentConfiguration;
|
||||
import net.sf.openrocket.rocketcomponent.DeploymentConfiguration.DeployEvent;
|
||||
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.rocketcomponent.Streamer;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
@ -45,71 +44,69 @@ public class StreamerConfig extends RecoveryDeviceConfig {
|
||||
super(d, component, parent);
|
||||
Streamer streamer = (Streamer) component;
|
||||
|
||||
// Left side
|
||||
JPanel primary = new JPanel(new MigLayout());
|
||||
|
||||
JPanel panel = new JPanel(new MigLayout());
|
||||
|
||||
// Left side
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::][]"));
|
||||
|
||||
//// ---------------------------- Attributes ----------------------------
|
||||
JPanel attributesPanel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]"));
|
||||
attributesPanel.setBorder(BorderFactory.createTitledBorder(trans.get("StreamerCfg.lbl.Attributes")));
|
||||
|
||||
//// Strip length:
|
||||
attributesPanel.add(new JLabel(trans.get("StreamerCfg.lbl.Striplength")));
|
||||
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Striplength")));
|
||||
|
||||
DoubleModel m = new DoubleModel(component, "StripLength", UnitGroup.UNITS_LENGTH, 0);
|
||||
|
||||
JSpinner spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
attributesPanel.add(spin, "growx");
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
attributesPanel.add(new UnitSelector(m), "growx");
|
||||
attributesPanel.add(new BasicSlider(m.getSliderModel(0, 0.6, 1.5)), "w 150lp, wrap");
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.6, 1.5)), "w 150lp, wrap");
|
||||
|
||||
//// Strip width:
|
||||
attributesPanel.add(new JLabel(trans.get("StreamerCfg.lbl.Stripwidth")));
|
||||
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Stripwidth")));
|
||||
|
||||
m = new DoubleModel(component, "StripWidth", UnitGroup.UNITS_LENGTH, 0);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
attributesPanel.add(spin, "growx");
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
attributesPanel.add(new UnitSelector(m), "growx");
|
||||
attributesPanel.add(new BasicSlider(m.getSliderModel(0, 0.2)), "w 150lp, wrap 10lp");
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.2)), "w 150lp, wrap 10lp");
|
||||
|
||||
//// Strip area:
|
||||
attributesPanel.add(new JLabel(trans.get("StreamerCfg.lbl.Striparea")));
|
||||
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Striparea")));
|
||||
|
||||
m = new DoubleModel(component, "Area", UnitGroup.UNITS_AREA, 0);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
attributesPanel.add(spin, "growx");
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
attributesPanel.add(new UnitSelector(m), "growx");
|
||||
attributesPanel.add(new BasicSlider(m.getSliderModel(0, 0.04, 0.25)), "w 150lp, wrap");
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.04, 0.25)), "w 150lp, wrap");
|
||||
|
||||
//// Aspect ratio:
|
||||
attributesPanel.add(new JLabel(trans.get("StreamerCfg.lbl.Aspectratio")));
|
||||
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Aspectratio")));
|
||||
|
||||
m = new DoubleModel(component, "AspectRatio", UnitGroup.UNITS_NONE, 0);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
attributesPanel.add(spin, "growx");
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
// panel.add(new UnitSelector(m),"growx");
|
||||
attributesPanel.add(new BasicSlider(m.getSliderModel(2, 15)), "skip, w 150lp, wrap 10lp");
|
||||
panel.add(new BasicSlider(m.getSliderModel(2, 15)), "skip, w 150lp, wrap 10lp");
|
||||
|
||||
//// Material:
|
||||
attributesPanel.add(new JLabel(trans.get("StreamerCfg.lbl.Material")));
|
||||
panel.add(new JLabel(trans.get("StreamerCfg.lbl.Material")));
|
||||
|
||||
JComboBox<Material> streamerMaterialCombo = new JComboBox<Material>(new MaterialModel(attributesPanel, component,
|
||||
JComboBox<Material> streamerMaterialCombo = new JComboBox<Material>(new MaterialModel(panel, component,
|
||||
Material.Type.SURFACE));
|
||||
//// The component material affects the weight of the component.
|
||||
streamerMaterialCombo.setToolTipText(trans.get("StreamerCfg.combo.ttip.MaterialModel"));
|
||||
attributesPanel.add(streamerMaterialCombo, "spanx 3, growx, wrap 15lp");
|
||||
panel.add(streamerMaterialCombo, "spanx 3, growx, wrap 15lp");
|
||||
order.add(streamerMaterialCombo);
|
||||
|
||||
// CD
|
||||
@ -120,97 +117,73 @@ public class StreamerConfig extends RecoveryDeviceConfig {
|
||||
//// "A larger drag coefficient yields a slowed descent rate.
|
||||
trans.get("StreamerCfg.lbl.longB2");
|
||||
label.setToolTipText(tip);
|
||||
attributesPanel.add(label);
|
||||
panel.add(label);
|
||||
|
||||
m = new DoubleModel(component, "CD", UnitGroup.UNITS_COEFFICIENT, 0);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setToolTipText(tip);
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
attributesPanel.add(spin, "growx");
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
JCheckBox check = new JCheckBox(m.getAutomaticAction());
|
||||
//// Automatic
|
||||
check.setText(trans.get("StreamerCfg.lbl.AutomaticCd"));
|
||||
check.setToolTipText(trans.get("StreamerCfg.lbl.AutomaticCd.ttip"));
|
||||
attributesPanel.add(check, "skip, span, wrap");
|
||||
panel.add(check, "skip, span, wrap");
|
||||
order.add(check);
|
||||
|
||||
//// The drag coefficient is relative to the area of the streamer.
|
||||
attributesPanel.add(new StyledLabel(trans.get("StreamerCfg.lbl.longC1"),
|
||||
panel.add(new StyledLabel(trans.get("StreamerCfg.lbl.longC1"),
|
||||
-1, StyledLabel.Style.ITALIC), "gapleft para, span, wrap");
|
||||
|
||||
panel.add(attributesPanel, "growx, wrap");
|
||||
|
||||
primary.add(panel, "grow, gapright 20lp");
|
||||
|
||||
// Separator
|
||||
//primary.add(new JSeparator(SwingConstants.VERTICAL), "growy, gapx 10lp 10lp");
|
||||
|
||||
// Right side
|
||||
primary.add(panel, "grow");
|
||||
panel = new JPanel(new MigLayout());
|
||||
panel = new JPanel(new MigLayout("ins 0"));
|
||||
|
||||
|
||||
//// ---------------------------- Placement ----------------------------
|
||||
JPanel placementPanel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]"));
|
||||
placementPanel.setBorder(BorderFactory.createTitledBorder(trans.get("StreamerCfg.lbl.Placement")));
|
||||
{//// ---------------------------- Placement ----------------------------
|
||||
JPanel placementPanel = new PlacementPanel(component, order);
|
||||
|
||||
//// Position relative to:
|
||||
placementPanel.add(new JLabel(trans.get("StreamerCfg.lbl.Posrelativeto")));
|
||||
|
||||
final EnumModel<AxialMethod> methodModel = new EnumModel<>(component, "AxialMethod", AxialMethod.axialOffsetMethods );
|
||||
final JComboBox<AxialMethod> positionCombo = new JComboBox<>( methodModel );
|
||||
placementPanel.add( positionCombo, "spanx, growx, wrap");
|
||||
order.add(positionCombo);
|
||||
|
||||
//// plus
|
||||
placementPanel.add(new JLabel(trans.get("StreamerCfg.lbl.plus")), "right");
|
||||
|
||||
m = new DoubleModel(component, "AxialOffset", UnitGroup.UNITS_LENGTH);
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
focusElement = spin;
|
||||
placementPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
//// Packed length:
|
||||
placementPanel.add(new JLabel(trans.get("StreamerCfg.lbl.Packedlength")), "newline");
|
||||
|
||||
placementPanel.add(new UnitSelector(m), "growx");
|
||||
placementPanel.add(new BasicSlider(m.getSliderModel(
|
||||
new DoubleModel(component.getParent(), "Length", -1.0, UnitGroup.UNITS_NONE),
|
||||
new DoubleModel(component.getParent(), "Length"))),
|
||||
"w 150lp, wrap");
|
||||
|
||||
//// Packed length:
|
||||
placementPanel.add(new JLabel(trans.get("StreamerCfg.lbl.Packedlength")));
|
||||
|
||||
m = new DoubleModel(component, "Length", UnitGroup.UNITS_LENGTH, 0);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
placementPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
m = new DoubleModel(component, "Length", UnitGroup.UNITS_LENGTH, 0);
|
||||
|
||||
placementPanel.add(new UnitSelector(m), "growx");
|
||||
placementPanel.add(new BasicSlider(m.getSliderModel(0, 0.1, 0.5)), "w 150lp, wrap");
|
||||
|
||||
//// Packed diameter:
|
||||
placementPanel.add(new JLabel(trans.get("StreamerCfg.lbl.Packeddiam")));
|
||||
|
||||
DoubleModel od = new DoubleModel(component, "Radius", 2, UnitGroup.UNITS_LENGTH, 0);
|
||||
spin = new JSpinner(od.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
placementPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
placementPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
placementPanel.add(new UnitSelector(od), "growx");
|
||||
placementPanel.add(new BasicSlider(od.getSliderModel(0, 0.04, 0.2)), "w 150lp, wrap");
|
||||
placementPanel.add(new UnitSelector(m), "growx");
|
||||
placementPanel.add(new BasicSlider(m.getSliderModel(0, 0.1, 0.5)), "w 100lp, wrap");
|
||||
|
||||
////// Automatic
|
||||
JCheckBox checkAutoPackedRadius = new JCheckBox(od.getAutomaticAction());
|
||||
checkAutoPackedRadius.setText(trans.get("ParachuteCfg.checkbox.AutomaticPacked"));
|
||||
checkAutoPackedRadius.setToolTipText(trans.get("ParachuteCfg.checkbox.AutomaticPacked.ttip"));
|
||||
placementPanel.add(checkAutoPackedRadius, "skip, spanx 2");
|
||||
order.add(checkAutoPackedRadius);
|
||||
//// Packed diameter:
|
||||
placementPanel.add(new JLabel(trans.get("StreamerCfg.lbl.Packeddiam")));
|
||||
|
||||
panel.add(placementPanel, "growx, wrap 15lp");
|
||||
DoubleModel od = new DoubleModel(component, "Radius", 2, UnitGroup.UNITS_LENGTH, 0);
|
||||
spin = new JSpinner(od.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
placementPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
placementPanel.add(new UnitSelector(od), "growx");
|
||||
placementPanel.add(new BasicSlider(od.getSliderModel(0, 0.04, 0.2)), "w 100lp, wrap");
|
||||
|
||||
////// Automatic
|
||||
JCheckBox checkAutoPackedRadius = new JCheckBox(od.getAutomaticAction());
|
||||
checkAutoPackedRadius.setText(trans.get("ParachuteCfg.checkbox.AutomaticPacked"));
|
||||
checkAutoPackedRadius.setToolTipText(trans.get("ParachuteCfg.checkbox.AutomaticPacked.ttip"));
|
||||
placementPanel.add(checkAutoPackedRadius, "skip, spanx 2");
|
||||
order.add(checkAutoPackedRadius);
|
||||
|
||||
panel.add(placementPanel, "growx, wrap");
|
||||
}
|
||||
|
||||
//// ---------------------------- Deployment ----------------------------
|
||||
JPanel deploymentPanel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]"));
|
||||
@ -265,7 +238,7 @@ public class StreamerConfig extends RecoveryDeviceConfig {
|
||||
deploymentPanel.add(unit, "growx");
|
||||
BasicSlider slider = new BasicSlider(m.getSliderModel(100, 1000));
|
||||
altitudeComponents.add(slider);
|
||||
deploymentPanel.add(slider, "w 150lp, wrap");
|
||||
deploymentPanel.add(slider, "w 100lp, wrap");
|
||||
|
||||
deploymentPanel.add(new StyledLabel(CommonStrings.override_description, -1), "spanx, wrap");
|
||||
|
||||
|
@ -33,8 +33,7 @@ public class TransitionConfig extends RocketComponentConfig {
|
||||
|
||||
private static final Translator trans = Application.getTranslator();
|
||||
private JComboBox<Transition.Shape> typeBox;
|
||||
//private JLabel description;
|
||||
|
||||
|
||||
private JLabel shapeLabel;
|
||||
private JSpinner shapeSpinner;
|
||||
private BasicSlider shapeSlider;
|
||||
@ -194,7 +193,7 @@ public class TransitionConfig extends RocketComponentConfig {
|
||||
//// Material
|
||||
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK, order);
|
||||
panel2.add(materialPanel, "span, wrap");
|
||||
panel.add(panel2, "cell 4 0, gapleft paragraph, aligny 0%, spany");
|
||||
panel.add(panel2, "cell 4 0, gapleft 40lp, aligny 0%, spany");
|
||||
|
||||
//// General and General properties
|
||||
tabbedPane.insertTab(trans.get("TransitionCfg.tab.General"), null, panel,
|
||||
|
@ -1,9 +1,6 @@
|
||||
package net.sf.openrocket.gui.configdialog;
|
||||
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.EventObject;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JLabel;
|
||||
@ -26,7 +23,6 @@ import net.sf.openrocket.material.Material;
|
||||
import net.sf.openrocket.rocketcomponent.FinSet;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.rocketcomponent.TrapezoidFinSet;
|
||||
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
|
||||
@ -40,8 +36,8 @@ public class TrapezoidFinSetConfig extends FinSetConfig {
|
||||
|
||||
JPanel mainPanel = new JPanel(new MigLayout());
|
||||
|
||||
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
|
||||
// Left side
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::]", ""));
|
||||
|
||||
//// Number of fins:
|
||||
JLabel label = new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Nbroffins"));
|
||||
@ -58,24 +54,6 @@ public class TrapezoidFinSetConfig extends FinSetConfig {
|
||||
panel.add(finCountSpinner, "growx, wrap");
|
||||
order.add(((SpinnerEditor) finCountSpinner.getEditor()).getTextField());
|
||||
|
||||
|
||||
{ /// Base rotation
|
||||
label = new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Finrotation"));
|
||||
//// The angle of the first fin in the fin set.
|
||||
label.setToolTipText(trans.get("TrapezoidFinSetCfg.lbl.ttip.Finrotation"));
|
||||
panel.add(label);
|
||||
|
||||
final DoubleModel baseRotationModel = new DoubleModel(component, "BaseRotation", UnitGroup.UNITS_ANGLE);
|
||||
|
||||
final JSpinner baseRotationSpinner = new JSpinner(baseRotationModel.getSpinnerModel());
|
||||
baseRotationSpinner.setEditor(new SpinnerEditor(baseRotationSpinner));
|
||||
panel.add(baseRotationSpinner, "growx");
|
||||
order.add(((SpinnerEditor) baseRotationSpinner.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(baseRotationModel), "growx");
|
||||
panel.add(new BasicSlider(baseRotationModel.getSliderModel(-Math.PI, Math.PI)), "w 150lp, wrap");
|
||||
}
|
||||
|
||||
{//// Fin cant:
|
||||
label = new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Fincant"));
|
||||
//// The angle that the fins are canted with respect to the rocket
|
||||
@ -91,7 +69,7 @@ public class TrapezoidFinSetConfig extends FinSetConfig {
|
||||
|
||||
panel.add(new UnitSelector(cantModel), "growx");
|
||||
panel.add(new BasicSlider(cantModel.getSliderModel(-FinSet.MAX_CANT_RADIANS, FinSet.MAX_CANT_RADIANS)),
|
||||
"w 150lp, wrap");
|
||||
"w 100lp, wrap");
|
||||
}
|
||||
|
||||
{//// Root chord:
|
||||
@ -105,7 +83,7 @@ public class TrapezoidFinSetConfig extends FinSetConfig {
|
||||
order.add(((SpinnerEditor) rootChordSpinner.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(rootChordModel), "growx");
|
||||
panel.add(new BasicSlider(rootChordModel.getSliderModel(0, 0.05, 0.2)), "w 150lp, wrap");
|
||||
panel.add(new BasicSlider(rootChordModel.getSliderModel(0, 0.05, 0.2)), "w 100lp, wrap");
|
||||
}
|
||||
|
||||
{//// Tip chord:
|
||||
@ -119,7 +97,7 @@ public class TrapezoidFinSetConfig extends FinSetConfig {
|
||||
order.add(((SpinnerEditor) tipChordSpinner.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(tipChordModel), "growx");
|
||||
panel.add(new BasicSlider(tipChordModel.getSliderModel(0, 0.05, 0.2)), "w 150lp, wrap");
|
||||
panel.add(new BasicSlider(tipChordModel.getSliderModel(0, 0.05, 0.2)), "w 100lp, wrap");
|
||||
}
|
||||
|
||||
{//// Height:
|
||||
@ -133,7 +111,7 @@ public class TrapezoidFinSetConfig extends FinSetConfig {
|
||||
order.add(((SpinnerEditor) heightSpinner.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(heightModel), "growx");
|
||||
panel.add(new BasicSlider(heightModel.getSliderModel(0, 0.05, 0.2)), "w 150lp, wrap");
|
||||
panel.add(new BasicSlider(heightModel.getSliderModel(0, 0.05, 0.2)), "w 100lp, wrap");
|
||||
}
|
||||
|
||||
{//// Sweep length:
|
||||
@ -151,7 +129,7 @@ public class TrapezoidFinSetConfig extends FinSetConfig {
|
||||
// sweep slider from -1.1*TipChord to 1.1*RootChord
|
||||
DoubleModel tc = new DoubleModel(component, "TipChord", -1.1, UnitGroup.UNITS_LENGTH);
|
||||
DoubleModel rc = new DoubleModel(component, "RootChord", 1.1, UnitGroup.UNITS_LENGTH);
|
||||
panel.add(new BasicSlider(sweepDistanceModel.getSliderModel(tc, rc)), "w 150lp, wrap");
|
||||
panel.add(new BasicSlider(sweepDistanceModel.getSliderModel(tc, rc)), "w 100lp, wrap");
|
||||
}
|
||||
|
||||
{//// Sweep angle:
|
||||
@ -168,59 +146,18 @@ public class TrapezoidFinSetConfig extends FinSetConfig {
|
||||
|
||||
panel.add(new UnitSelector(sweepAngleModel), "growx");
|
||||
panel.add(new BasicSlider(sweepAngleModel.getSliderModel(-Math.PI / 4, Math.PI / 4)),
|
||||
"w 150lp, wrap paragraph");
|
||||
"w 100lp, wrap 30lp");
|
||||
}
|
||||
|
||||
{//// Position relative to:
|
||||
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Posrelativeto")));
|
||||
|
||||
final EnumModel<AxialMethod> axialMethodModel = new EnumModel<AxialMethod>(component, "AxialMethod", AxialMethod.axialOffsetMethods );
|
||||
final JComboBox<AxialMethod> axialMethodCombo = new JComboBox<AxialMethod>( axialMethodModel );
|
||||
panel.add(axialMethodCombo, "spanx, growx, wrap");
|
||||
order.add(axialMethodCombo);
|
||||
|
||||
//// plus
|
||||
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.plus")), "right");
|
||||
|
||||
final DoubleModel axialOffsetModel = new DoubleModel(component, "AxialOffset", UnitGroup.UNITS_LENGTH);
|
||||
final JSpinner axialOffsetSpinner = new JSpinner(axialOffsetModel.getSpinnerModel());
|
||||
axialOffsetSpinner.setEditor(new SpinnerEditor(axialOffsetSpinner));
|
||||
|
||||
panel.add(axialOffsetSpinner, "growx");
|
||||
order.add(((SpinnerEditor) axialOffsetSpinner.getEditor()).getTextField());
|
||||
|
||||
axialMethodCombo.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
axialOffsetModel.stateChanged(new EventObject(e));
|
||||
}
|
||||
});
|
||||
|
||||
panel.add(new UnitSelector(axialOffsetModel), "growx");
|
||||
panel.add(new BasicSlider(axialOffsetModel.getSliderModel(
|
||||
new DoubleModel(component.getParent(), "Length", -1.0, UnitGroup.UNITS_NONE),
|
||||
new DoubleModel(component.getParent(), "Length"))),
|
||||
"w 150lp, wrap para");
|
||||
|
||||
|
||||
mainPanel.add(panel, "aligny 0");
|
||||
|
||||
mainPanel.add(new JSeparator(SwingConstants.VERTICAL), "growy");
|
||||
}
|
||||
|
||||
|
||||
panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::]", ""));
|
||||
|
||||
|
||||
{//// Fin cross section:
|
||||
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.FincrossSection")));
|
||||
JComboBox<FinSet.CrossSection> sectionCombo = new JComboBox<FinSet.CrossSection>(
|
||||
new EnumModel<FinSet.CrossSection>(component, "CrossSection"));
|
||||
new EnumModel<>(component, "CrossSection"));
|
||||
panel.add(sectionCombo, "span, growx, wrap");
|
||||
order.add(sectionCombo);
|
||||
}
|
||||
|
||||
|
||||
//// Thickness:
|
||||
{ //// Thickness:
|
||||
panel.add(new JLabel(trans.get("TrapezoidFinSetCfg.lbl.Thickness")));
|
||||
|
||||
final DoubleModel thicknessModel = new DoubleModel(component, "Thickness", UnitGroup.UNITS_LENGTH, 0);
|
||||
@ -231,19 +168,49 @@ public class TrapezoidFinSetConfig extends FinSetConfig {
|
||||
order.add(((SpinnerEditor) thicknessSpinner.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(thicknessModel), "growx");
|
||||
panel.add(new BasicSlider(thicknessModel.getSliderModel(0, 0.01)), "w 150lp, wrap para");
|
||||
panel.add(new BasicSlider(thicknessModel.getSliderModel(0, 0.01)), "w 100lp, wrap para");
|
||||
}
|
||||
|
||||
|
||||
mainPanel.add(panel, "aligny 0, gapright 50lp");
|
||||
|
||||
// Separator
|
||||
//mainPanel.add(new JSeparator(SwingConstants.VERTICAL), "growy, gapx 20lp 20lp");
|
||||
|
||||
// Right side panel
|
||||
panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::]", ""));
|
||||
|
||||
// Root fillets
|
||||
panel.add(filletMaterialPanel(), "span, grow, wrap");
|
||||
|
||||
//// Material
|
||||
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK, order);
|
||||
panel.add(materialPanel, "span, wrap");
|
||||
|
||||
|
||||
|
||||
mainPanel.add(panel, "aligny 20%");
|
||||
|
||||
panel.add(filletMaterialPanel(), "span, wrap");
|
||||
panel.add(materialPanel, "span, grow, wrap");
|
||||
|
||||
{//// -------- Placement -------
|
||||
// Position relative to:
|
||||
JPanel placementPanel = new PlacementPanel(component, order);
|
||||
panel.add(placementPanel, "span, grow");
|
||||
|
||||
{ /// Fin rotation
|
||||
label = new JLabel(trans.get("FinSetCfg.lbl.FinRotation"));
|
||||
label.setToolTipText(trans.get("FinSetCfg.lbl.FinRotation.ttip"));
|
||||
placementPanel.add(label, "newline");
|
||||
|
||||
final DoubleModel baseRotationModel = new DoubleModel(component, "BaseRotation",
|
||||
UnitGroup.UNITS_ANGLE, -Math.PI, Math.PI);
|
||||
|
||||
final JSpinner baseRotationSpinner = new JSpinner(baseRotationModel.getSpinnerModel());
|
||||
baseRotationSpinner.setEditor(new SpinnerEditor(baseRotationSpinner));
|
||||
placementPanel.add(baseRotationSpinner, "growx");
|
||||
order.add(((SpinnerEditor) baseRotationSpinner.getEditor()).getTextField());
|
||||
|
||||
placementPanel.add(new UnitSelector(baseRotationModel), "growx");
|
||||
placementPanel.add(new BasicSlider(baseRotationModel.getSliderModel()), "w 100lp, wrap");
|
||||
}
|
||||
}
|
||||
|
||||
mainPanel.add(panel, "aligny 0");
|
||||
|
||||
//// General and General properties
|
||||
tabbedPane.insertTab(trans.get("TrapezoidFinSetCfg.tab.General"), null, mainPanel,
|
||||
trans.get("TrapezoidFinSetCfg.tab.Generalproperties"), 0);
|
||||
|
@ -1,29 +1,25 @@
|
||||
package net.sf.openrocket.gui.configdialog;
|
||||
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.util.EventObject;
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JComboBox;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JSeparator;
|
||||
import javax.swing.JSpinner;
|
||||
import javax.swing.SwingConstants;
|
||||
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import net.sf.openrocket.document.OpenRocketDocument;
|
||||
import net.sf.openrocket.gui.SpinnerEditor;
|
||||
import net.sf.openrocket.gui.adaptors.CustomFocusTraversalPolicy;
|
||||
import net.sf.openrocket.gui.adaptors.DoubleModel;
|
||||
import net.sf.openrocket.gui.adaptors.EnumModel;
|
||||
import net.sf.openrocket.gui.adaptors.IntegerModel;
|
||||
import net.sf.openrocket.gui.components.BasicSlider;
|
||||
import net.sf.openrocket.gui.components.UnitSelector;
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.material.Material;
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.rocketcomponent.position.AxialMethod;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
|
||||
@ -34,10 +30,10 @@ public class TubeFinSetConfig extends RocketComponentConfig {
|
||||
public TubeFinSetConfig(OpenRocketDocument d, RocketComponent c, JDialog parent) {
|
||||
super(d, c, parent);
|
||||
|
||||
JPanel primary = new JPanel(new MigLayout("fill"));
|
||||
JPanel primary = new JPanel(new MigLayout());
|
||||
|
||||
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]", ""));
|
||||
JPanel panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::][]", ""));
|
||||
|
||||
//// Number of fins
|
||||
panel.add(new JLabel(trans.get("TubeFinSetCfg.lbl.Nbroffins")));
|
||||
@ -68,8 +64,7 @@ public class TubeFinSetConfig extends RocketComponentConfig {
|
||||
panel.add(new JLabel(trans.get("TubeFinSetCfg.lbl.Outerdiam")));
|
||||
|
||||
DoubleModel od = new DoubleModel(component, "OuterRadius", 2, UnitGroup.UNITS_LENGTH, 0);
|
||||
// Diameter = 2*Radius
|
||||
|
||||
|
||||
spin = new JSpinner(od.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
@ -114,65 +109,43 @@ public class TubeFinSetConfig extends RocketComponentConfig {
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap 20lp");
|
||||
|
||||
|
||||
//// Base rotation
|
||||
//// Fin rotation:
|
||||
JLabel label = new JLabel(trans.get("TubeFinSetCfg.lbl.Finrotation"));
|
||||
//// The angle of the first fin in the fin set.
|
||||
label.setToolTipText(trans.get("TubeFinSetCfg.lbl.ttip.Finrotation"));
|
||||
panel.add(label);
|
||||
|
||||
m = new DoubleModel(component, "BaseRotation", UnitGroup.UNITS_ANGLE);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
panel.add(new UnitSelector(m), "growx");
|
||||
panel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 100lp, wrap");
|
||||
|
||||
primary.add(panel, "grow, gapright 20lp");
|
||||
panel = new JPanel(new MigLayout("gap rel unrel", "[][65lp::][30lp::][]", ""));
|
||||
|
||||
//// Position relative to:
|
||||
panel.add(new JLabel(trans.get("LaunchLugCfg.lbl.Posrelativeto"))); // (note re-uses the label from LaunchLug, because they're the same
|
||||
|
||||
final EnumModel<AxialMethod> axialMethodModel = new EnumModel<AxialMethod>(component, "AxialMethod", AxialMethod.axialOffsetMethods );
|
||||
final JComboBox<AxialMethod> axialMethodCombo = new JComboBox<AxialMethod>( axialMethodModel );
|
||||
panel.add(axialMethodCombo, "spanx, growx, wrap");
|
||||
order.add(axialMethodCombo);
|
||||
primary.add(panel, "grow, gapright 50lp");
|
||||
|
||||
//// plus
|
||||
panel.add(new JLabel(trans.get("LaunchLugCfg.lbl.plus")), "right");
|
||||
|
||||
final DoubleModel axialOffsetModel = new DoubleModel(component, "AxialOffset", UnitGroup.UNITS_LENGTH);
|
||||
spin = new JSpinner(axialOffsetModel.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
panel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
// Separator
|
||||
//primary.add(new JSeparator(SwingConstants.VERTICAL), "growy, gapx 10lp 10lp");
|
||||
|
||||
axialMethodCombo.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
axialOffsetModel.stateChanged(new EventObject(e));
|
||||
}
|
||||
});
|
||||
|
||||
panel.add(new UnitSelector(axialOffsetModel), "growx");
|
||||
panel.add(new BasicSlider(axialOffsetModel.getSliderModel(
|
||||
new DoubleModel(component.getParent(), "Length", -1.0, UnitGroup.UNITS_NONE),
|
||||
new DoubleModel(component.getParent(), "Length"))),
|
||||
"w 100lp, wrap para");
|
||||
|
||||
|
||||
// Right side panel
|
||||
panel = new JPanel(new MigLayout("gap rel unrel, ins 0", "[][65lp::][30lp::][]", ""));
|
||||
|
||||
//// Material
|
||||
MaterialPanel materialPanel = new MaterialPanel(component, document, Material.Type.BULK, order);
|
||||
panel.add(materialPanel, "span, wrap");
|
||||
|
||||
panel.add(materialPanel, "span, grow, wrap");
|
||||
|
||||
{ //// Placement
|
||||
//// Position relative to:
|
||||
JPanel placementPanel = new PlacementPanel(component, order);
|
||||
panel.add(placementPanel, "span, grow, wrap");
|
||||
|
||||
//// Fin rotation:
|
||||
JLabel label = new JLabel(trans.get("TubeFinSetCfg.lbl.Finrotation"));
|
||||
//// The angle of the first fin in the fin set.
|
||||
label.setToolTipText(trans.get("TubeFinSetCfg.lbl.ttip.Finrotation"));
|
||||
placementPanel.add(label, "newline");
|
||||
|
||||
m = new DoubleModel(component, "BaseRotation", UnitGroup.UNITS_ANGLE);
|
||||
|
||||
spin = new JSpinner(m.getSpinnerModel());
|
||||
spin.setEditor(new SpinnerEditor(spin));
|
||||
placementPanel.add(spin, "growx");
|
||||
order.add(((SpinnerEditor) spin.getEditor()).getTextField());
|
||||
|
||||
placementPanel.add(new UnitSelector(m), "growx");
|
||||
placementPanel.add(new BasicSlider(m.getSliderModel(-Math.PI, Math.PI)), "w 100lp, wrap");
|
||||
}
|
||||
|
||||
primary.add(panel, "grow");
|
||||
|
||||
|
||||
|
||||
//// General and General properties
|
||||
tabbedPane.insertTab(trans.get("LaunchLugCfg.tab.General"), null, primary,
|
||||
trans.get("LaunchLugCfg.tab.Generalprop"), 0);
|
||||
|
@ -314,7 +314,7 @@ public class PresetEditorDialog extends JDialog implements ItemListener {
|
||||
ncFilledCB = new JCheckBox("Filled");
|
||||
ncPanel.add(ncFilledCB, "cell 1 1");
|
||||
|
||||
JLabel ncMaterialLabel = new JLabel(trans.get("RocketCompCfg.lbl.Componentmaterial"));
|
||||
JLabel ncMaterialLabel = new JLabel(trans.get("MaterialPanel.lbl.ComponentMaterial"));
|
||||
ncPanel.add(ncMaterialLabel, "cell 0 1,alignx left");
|
||||
|
||||
JLabel ncMassLabel = new JLabel(trans.get("RocketCompCfg.lbl.Componentmass"));
|
||||
|
Loading…
x
Reference in New Issue
Block a user