Merge pull request #1008 from SiboVG/issue-1001
[fixes #1001 + others] Change default tab + separation event when adding new stage
This commit is contained in:
commit
a2987cf8ba
@ -496,10 +496,24 @@ public class Rocket extends ComponentAssembly {
|
||||
|
||||
@Override
|
||||
public void update(){
|
||||
updateStageNumbers();
|
||||
updateStageMap();
|
||||
updateConfigurations();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update all the stage numbers based on their position in the component tree
|
||||
*/
|
||||
private void updateStageNumbers() {
|
||||
for (RocketComponent component : getChildren()) {
|
||||
if (component instanceof AxialStage) {
|
||||
AxialStage stage = (AxialStage) component;
|
||||
forgetStage(stage);
|
||||
stage.setStageNumber(getChildPosition(stage));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void updateStageMap(){
|
||||
for( RocketComponent component : getChildren() ){
|
||||
if (component instanceof AxialStage) {
|
||||
|
@ -96,7 +96,7 @@ public class StageSeparationConfiguration implements FlightConfigurableParameter
|
||||
private static final Translator trans = Application.getTranslator();
|
||||
|
||||
|
||||
private SeparationEvent separationEvent = SeparationEvent.NEVER;
|
||||
private SeparationEvent separationEvent = SeparationEvent.UPPER_IGNITION;
|
||||
private double separationDelay = 0;
|
||||
|
||||
public SeparationEvent getSeparationEvent() {
|
||||
|
@ -31,7 +31,8 @@ public class AxialStageConfig extends ComponentAssemblyConfig {
|
||||
if (component.getStageNumber() > 0) {
|
||||
JPanel tab = separationTab((AxialStage) component);
|
||||
tabbedPane.insertTab(trans.get("StageConfig.tab.Separation"), null, tab,
|
||||
trans.get("StageConfig.tab.Separation.ttip"), 2);
|
||||
trans.get("StageConfig.tab.Separation.ttip"), 0);
|
||||
tabbedPane.setSelectedIndex(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -29,9 +29,12 @@ import net.sf.openrocket.gui.widgets.SelectColorButton;
|
||||
import net.sf.openrocket.motor.IgnitionEvent;
|
||||
import net.sf.openrocket.motor.Motor;
|
||||
import net.sf.openrocket.motor.MotorConfiguration;
|
||||
import net.sf.openrocket.rocketcomponent.AxialStage;
|
||||
import net.sf.openrocket.rocketcomponent.BodyTube;
|
||||
import net.sf.openrocket.rocketcomponent.ComponentChangeEvent;
|
||||
import net.sf.openrocket.rocketcomponent.FlightConfiguration;
|
||||
import net.sf.openrocket.rocketcomponent.FlightConfigurationId;
|
||||
import net.sf.openrocket.rocketcomponent.InnerTube;
|
||||
import net.sf.openrocket.rocketcomponent.MotorMount;
|
||||
import net.sf.openrocket.rocketcomponent.Rocket;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
@ -139,6 +142,15 @@ public class MotorConfigurationPanel extends FlightConfigurablePanel<MotorMount>
|
||||
protected boolean includeComponent(MotorMount component) {
|
||||
return component.isMotorMount();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void componentChanged(ComponentChangeEvent cce) {
|
||||
super.componentChanged(cce);
|
||||
// This will catch a name change to cause a change in the header of the table
|
||||
if ((cce.getSource() instanceof BodyTube || cce.getSource() instanceof InnerTube) && cce.isNonFunctionalChange()) {
|
||||
fireTableStructureChanged();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Listen to changes to the table so we can disable the help text when a
|
||||
|
@ -76,6 +76,14 @@ public class SeparationConfigurationPanel extends FlightConfigurablePanel<AxialS
|
||||
return component.getStageNumber() > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void componentChanged(ComponentChangeEvent cce) {
|
||||
super.componentChanged(cce);
|
||||
// This will catch a name change of the stage to cause a change in the header of the table
|
||||
if (cce.getSource() instanceof AxialStage && cce.isNonFunctionalChange()) {
|
||||
fireTableStructureChanged();
|
||||
}
|
||||
}
|
||||
};
|
||||
JTable separationTable = new JTable(separationTableModel);
|
||||
separationTable.getTableHeader().setReorderingAllowed(false);
|
||||
|
Loading…
x
Reference in New Issue
Block a user