[UI] fixed RailButton UI, file I/O

This commit is contained in:
Daniel_M_Williams 2015-11-23 23:54:07 -05:00
parent 1ce452265c
commit 657c407ba5
6 changed files with 44 additions and 11 deletions

View File

@ -870,6 +870,8 @@ RocketCompCfg.title.Noseconeshoulder = Nose cone shoulder
RocketCompCfg.title.Aftshoulder = Aft shoulder RocketCompCfg.title.Aftshoulder = Aft shoulder
RocketCompCfg.border.Foreshoulder = Fore shoulder RocketCompCfg.border.Foreshoulder = Fore shoulder
!RocketCompCfg.lbl.Length = Length: !RocketCompCfg.lbl.Length = Length:
RocketCompCfg.lbl.InstanceCount = Instance Count
RocketCompCfg.lbl.InstanceSeparation = Instance Separation
! BulkheadConfig ! BulkheadConfig
BulkheadCfg.tab.Diameter = Diameter: BulkheadCfg.tab.Diameter = Diameter:

View File

@ -186,7 +186,7 @@ class DocumentConfig {
// RailButton // RailButton
setters.put("RailButton:instancecount", new IntSetter( setters.put("RailButton:instancecount", new IntSetter(
Reflection.findMethod( RailButton.class, "setInstanceCount",int.class))); Reflection.findMethod( RailButton.class, "setInstanceCount",int.class)));
setters.put("RailButton:instanceseparation", new DoubleSetter( setters.put("RailButton:linseparation", new DoubleSetter(
Reflection.findMethod( RailButton.class, "setInstanceSeparation", double.class))); Reflection.findMethod( RailButton.class, "setInstanceSeparation", double.class)));
setters.put("RailButton:angularoffset", new DoubleSetter( setters.put("RailButton:angularoffset", new DoubleSetter(
Reflection.findMethod( RailButton.class, "setAngularOffset", double.class), Math.PI / 180.0)); Reflection.findMethod( RailButton.class, "setAngularOffset", double.class), Math.PI / 180.0));

View File

@ -87,10 +87,10 @@ public class RocketComponentSaver {
if ( c instanceof Instanceable) { if ( c instanceof Instanceable) {
int instanceCount = c.getInstanceCount(); int instanceCount = c.getInstanceCount();
if( 1 < instanceCount ){ if( 1 < instanceCount ){
emitDouble( elements, "instancecount", c.getInstanceCount() ); emitString( elements, "instancecount", Integer.toString( c.getInstanceCount()) );
if( c instanceof LineInstanceable ){ if( c instanceof LineInstanceable ){
LineInstanceable line = (LineInstanceable)c; LineInstanceable line = (LineInstanceable)c;
emitDouble( elements, "lineseparation", line.getInstanceSeparation()); emitDouble( elements, "linseparation", line.getInstanceSeparation());
} }
if( c instanceof RingInstanceable){ if( c instanceof RingInstanceable){
RingInstanceable ring = (RingInstanceable)c; RingInstanceable ring = (RingInstanceable)c;

View File

@ -258,6 +258,7 @@ public class RailButton extends ExternalComponent implements LineInstanceable {
@Override @Override
public void setInstanceSeparation(final double _separation){ public void setInstanceSeparation(final double _separation){
this.instanceSeparation = _separation; this.instanceSeparation = _separation;
fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
} }
@Override @Override
@ -265,6 +266,7 @@ public class RailButton extends ExternalComponent implements LineInstanceable {
if( 0 < newCount ){ if( 0 < newCount ){
this.instanceCount = newCount; this.instanceCount = newCount;
} }
fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
} }
@Override @Override

View File

@ -44,7 +44,7 @@ public class RailButtonConfig extends RocketComponentConfig {
} }
private JPanel buttonTab( final RailButton rbc ){ private JPanel buttonTab( final RailButton rbc ){
JPanel panel = new JPanel( new MigLayout("fill")); JPanel panel = new JPanel( new MigLayout());
{ //// Outer Diameter { //// Outer Diameter
@ -54,7 +54,7 @@ public class RailButtonConfig extends RocketComponentConfig {
ODSpinner.setEditor(new SpinnerEditor(ODSpinner)); ODSpinner.setEditor(new SpinnerEditor(ODSpinner));
panel.add(ODSpinner, "growx"); panel.add(ODSpinner, "growx");
panel.add(new UnitSelector(ODModel), "growx"); panel.add(new UnitSelector(ODModel), "growx");
panel.add(new BasicSlider(ODModel.getSliderModel(0, 0.001, 0.02)), "w 100lp, wrap para"); panel.add(new BasicSlider(ODModel.getSliderModel(0, 0.001, 0.02)), "w 100lp, wrap");
} }
{ //// Height { //// Height
panel.add(new JLabel(trans.get("RailBtnCfg.lbl.TotalHeight"))); panel.add(new JLabel(trans.get("RailBtnCfg.lbl.TotalHeight")));
@ -63,17 +63,17 @@ public class RailButtonConfig extends RocketComponentConfig {
heightSpinner.setEditor(new SpinnerEditor(heightSpinner)); heightSpinner.setEditor(new SpinnerEditor(heightSpinner));
panel.add(heightSpinner, "growx"); panel.add(heightSpinner, "growx");
panel.add(new UnitSelector(heightModel), "growx"); panel.add(new UnitSelector(heightModel), "growx");
panel.add(new BasicSlider(heightModel.getSliderModel(0, 0.001, 0.02)), "w 100lp, wrap para"); panel.add(new BasicSlider(heightModel.getSliderModel(0, 0.001, 0.02)), "w 100lp, wrap");
} }
{ //// RadialPos: { //// Angular Position:
panel.add(new JLabel(trans.get("RailBtnCfg.lbl.Angle"))); panel.add(new JLabel(trans.get("RailBtnCfg.lbl.Angle")));
DoubleModel angleModel = new DoubleModel(component, "AngularOffset", UnitGroup.UNITS_ANGLE, -180, +180); DoubleModel angleModel = new DoubleModel(component, "AngularOffset", UnitGroup.UNITS_ANGLE, -180, +180);
JSpinner angleSpinner = new JSpinner( angleModel.getSpinnerModel()); JSpinner angleSpinner = new JSpinner( angleModel.getSpinnerModel());
angleSpinner .setEditor(new SpinnerEditor(angleSpinner)); angleSpinner.setEditor(new SpinnerEditor(angleSpinner));
panel.add(angleSpinner, "growx"); panel.add(angleSpinner, "growx");
panel.add(new UnitSelector( angleModel), "growx"); panel.add(new UnitSelector( angleModel), "growx");
panel.add(new BasicSlider( angleModel.getSliderModel(-180, 180)), "w 100lp, wrap rel"); panel.add(new BasicSlider( angleModel.getSliderModel(-180, 180)), "w 100lp, wrap");
} }
{ //// Position relative to: { //// Position relative to:
@ -87,7 +87,7 @@ public class RailButtonConfig extends RocketComponentConfig {
RocketComponent.Position.BOTTOM, RocketComponent.Position.BOTTOM,
RocketComponent.Position.ABSOLUTE RocketComponent.Position.ABSOLUTE
})); }));
panel.add( relToCombo, "spanx, growx, wrap"); panel.add( relToCombo, "growx, wrap rel");
} }
{ //// plus { //// plus
@ -103,7 +103,12 @@ public class RailButtonConfig extends RocketComponentConfig {
} }
//// Material //// Material
panel.add(materialPanel( Material.Type.BULK), "span, wrap"); panel.add( instanceablePanel(rbc), "cell 4 0, spany 3, wrap para");
//// Material
panel.add(materialPanel(Material.Type.BULK),"cell 4 2, spany 2, gapleft paragraph, aligny 0%, growy");
// ... spany");
return panel; return panel;
} }

View File

@ -31,6 +31,7 @@ import net.sf.openrocket.gui.SpinnerEditor;
import net.sf.openrocket.gui.adaptors.BooleanModel; import net.sf.openrocket.gui.adaptors.BooleanModel;
import net.sf.openrocket.gui.adaptors.DoubleModel; import net.sf.openrocket.gui.adaptors.DoubleModel;
import net.sf.openrocket.gui.adaptors.EnumModel; import net.sf.openrocket.gui.adaptors.EnumModel;
import net.sf.openrocket.gui.adaptors.IntegerModel;
import net.sf.openrocket.gui.adaptors.MaterialModel; import net.sf.openrocket.gui.adaptors.MaterialModel;
import net.sf.openrocket.gui.adaptors.PresetModel; import net.sf.openrocket.gui.adaptors.PresetModel;
import net.sf.openrocket.gui.components.BasicSlider; import net.sf.openrocket.gui.components.BasicSlider;
@ -44,6 +45,7 @@ import net.sf.openrocket.preset.ComponentPreset;
import net.sf.openrocket.rocketcomponent.ComponentAssembly; import net.sf.openrocket.rocketcomponent.ComponentAssembly;
import net.sf.openrocket.rocketcomponent.ExternalComponent; import net.sf.openrocket.rocketcomponent.ExternalComponent;
import net.sf.openrocket.rocketcomponent.ExternalComponent.Finish; import net.sf.openrocket.rocketcomponent.ExternalComponent.Finish;
import net.sf.openrocket.rocketcomponent.Instanceable;
import net.sf.openrocket.rocketcomponent.NoseCone; import net.sf.openrocket.rocketcomponent.NoseCone;
import net.sf.openrocket.rocketcomponent.RocketComponent; import net.sf.openrocket.rocketcomponent.RocketComponent;
import net.sf.openrocket.startup.Application; import net.sf.openrocket.startup.Application;
@ -270,6 +272,28 @@ public class RocketComponentConfig extends JPanel {
return subPanel; return subPanel;
} }
protected JPanel instanceablePanel( Instanceable inst ){
JPanel panel = new JPanel( new MigLayout("fill"));
{ // 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");
}
{ // 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");
panel.add(new UnitSelector(separationModel), "growx");
panel.add(new BasicSlider(separationModel.getSliderModel(0, 0.001, 0.02)), "w 100lp, wrap para");
}
return panel;
}
private JPanel overrideTab() { private JPanel overrideTab() {
JPanel panel = new JPanel(new MigLayout("align 50% 20%, fillx, gap rel unrel", JPanel panel = new JPanel(new MigLayout("align 50% 20%, fillx, gap rel unrel",
"[][65lp::][30lp::][]", "")); "[][65lp::][30lp::][]", ""));