Merge branch 'unstable' into issue-244
This commit is contained in:
commit
218368ecf8
@ -159,6 +159,7 @@ public class DescriptionArea extends JScrollPane {
|
||||
|
||||
Dimension dim = editorPane.getPreferredSize();
|
||||
dim.height = lineheight * rows + extraheight + 2;
|
||||
this.setPreferredSize(dim);
|
||||
|
||||
this.setViewportView(editorPane);
|
||||
this.setText(text);
|
||||
|
@ -11,6 +11,7 @@ import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.awt.event.WindowListener;
|
||||
import java.util.ArrayList;
|
||||
import java.util.EventObject;
|
||||
import java.util.List;
|
||||
@ -82,6 +83,7 @@ public class ComponentAnalysisDialog extends JDialog implements StateChangeListe
|
||||
private final JToggleButton worstToggle;
|
||||
private boolean fakeChange = false;
|
||||
private AerodynamicCalculator aerodynamicCalculator;
|
||||
private double initTheta;
|
||||
|
||||
private final ColumnTableModel longitudeStabilityTableModel;
|
||||
private final ColumnTableModel dragTableModel;
|
||||
@ -115,6 +117,7 @@ public class ComponentAnalysisDialog extends JDialog implements StateChangeListe
|
||||
aoa = new DoubleModel(rocketPanel, "CPAOA", UnitGroup.UNITS_ANGLE, 0, Math.PI);
|
||||
rocketPanel.setCPMach(Application.getPreferences().getDefaultMach());
|
||||
mach = new DoubleModel(rocketPanel, "CPMach", UnitGroup.UNITS_COEFFICIENT, 0);
|
||||
initTheta = rocketPanel.getFigure().getRotation();
|
||||
rocketPanel.setCPTheta(rocketPanel.getFigure().getRotation());
|
||||
theta = new DoubleModel(rocketPanel, "CPTheta", UnitGroup.UNITS_ANGLE, 0, 2 * Math.PI);
|
||||
rocketPanel.setCPRoll(0);
|
||||
@ -428,6 +431,8 @@ public class ComponentAnalysisDialog extends JDialog implements StateChangeListe
|
||||
this.addWindowListener(new WindowAdapter() {
|
||||
@Override
|
||||
public void windowClosed(WindowEvent e) {
|
||||
theta.setValue(initTheta);
|
||||
|
||||
//System.out.println("Closing method called: " + this);
|
||||
theta.removeChangeListener(ComponentAnalysisDialog.this);
|
||||
aoa.removeChangeListener(ComponentAnalysisDialog.this);
|
||||
|
@ -209,7 +209,7 @@ public class BasicFrame extends JFrame {
|
||||
//// Rocket design
|
||||
tabbedPane.addTab(trans.get("BasicFrame.tab.Rocketdesign"), null, designTab());
|
||||
//// Flight configurations
|
||||
tabbedPane.addTab(trans.get("BasicFrame.tab.Flightconfig"), null, new FlightConfigurationPanel(document));
|
||||
tabbedPane.addTab(trans.get("BasicFrame.tab.Flightconfig"), null, new FlightConfigurationPanel(this, document));
|
||||
//// Flight simulations
|
||||
tabbedPane.addTab(trans.get("BasicFrame.tab.Flightsim"), null, simulationPanel);
|
||||
|
||||
@ -1690,10 +1690,14 @@ public class BasicFrame extends JFrame {
|
||||
}
|
||||
}
|
||||
|
||||
public void setSelectedComponent(RocketComponent component) {
|
||||
this.selectionModel.setSelectedComponent(component);
|
||||
}
|
||||
|
||||
public void stateChanged(ChangeEvent e) {
|
||||
JTabbedPane tabSource = (JTabbedPane) e.getSource();
|
||||
String tab = tabSource.getTitleAt(tabSource.getSelectedIndex());
|
||||
if (tab.equals(trans.get("BasicFrame.tab.Flightsim"))) {
|
||||
int tab = tabSource.getSelectedIndex();
|
||||
if (tab == SIMULATION_TAB) {
|
||||
simulationPanel.activating();
|
||||
}
|
||||
}
|
||||
|
@ -138,7 +138,7 @@ public class ComponentTreeModel implements TreeModel, ComponentChangeListener {
|
||||
|
||||
@Override
|
||||
public void componentChanged(ComponentChangeEvent e) {
|
||||
if (e.isTreeChange() || e.isUndoChange() || e.isMassChange()) {
|
||||
if (e.isTreeChange() || e.isUndoChange()) {
|
||||
// Tree must be fully updated also in case of an undo change
|
||||
fireTreeStructureChanged(e.getSource());
|
||||
if (e.isTreeChange() && e.isUndoChange()) {
|
||||
|
@ -136,7 +136,7 @@ public abstract class FlightConfigurablePanel<T extends FlightConfigurableCompon
|
||||
table.changeSelection(row, col, true, false);
|
||||
}
|
||||
|
||||
private final void installTableListener() {
|
||||
protected void installTableListener() {
|
||||
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
|
||||
|
||||
@Override
|
||||
|
@ -41,7 +41,8 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe
|
||||
|
||||
private final OpenRocketDocument document;
|
||||
private final Rocket rocket;
|
||||
|
||||
|
||||
private final BasicFrame basicFrame;
|
||||
private final JButton newConfButton, renameConfButton, removeConfButton, copyConfButton;
|
||||
|
||||
private final JTabbedPane tabs;
|
||||
@ -53,9 +54,10 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe
|
||||
private final static int RECOVERY_TAB_INDEX = 1;
|
||||
private final static int SEPARATION_TAB_INDEX = 2;
|
||||
|
||||
public FlightConfigurationPanel(OpenRocketDocument doc) {
|
||||
public FlightConfigurationPanel(BasicFrame basicFrame, OpenRocketDocument doc) {
|
||||
super(new MigLayout("fill","[grow][][][][][grow]"));
|
||||
|
||||
|
||||
this.basicFrame = basicFrame;
|
||||
this.document = doc;
|
||||
this.rocket = doc.getRocket();
|
||||
this.rocket.addChangeListener(this);
|
||||
@ -291,6 +293,10 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe
|
||||
}
|
||||
}
|
||||
|
||||
public void setSelectedComponent(RocketComponent component) {
|
||||
this.basicFrame.setSelectedComponent(component);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stateChanged(EventObject e) {
|
||||
updateButtonState();
|
||||
|
@ -4,6 +4,8 @@ import java.awt.CardLayout;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.FocusEvent;
|
||||
import java.awt.event.FocusListener;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
@ -22,12 +24,12 @@ import javax.swing.JTable;
|
||||
import javax.swing.KeyStroke;
|
||||
import javax.swing.ListSelectionModel;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.event.ListSelectionEvent;
|
||||
import javax.swing.event.ListSelectionListener;
|
||||
import javax.swing.event.TableModelEvent;
|
||||
import javax.swing.event.TableModelListener;
|
||||
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import net.sf.openrocket.gui.components.StyledLabel;
|
||||
import net.sf.openrocket.gui.components.StyledLabel.Style;
|
||||
import net.sf.openrocket.gui.dialogs.flightconfiguration.IgnitionSelectionDialog;
|
||||
import net.sf.openrocket.gui.dialogs.flightconfiguration.MotorMountConfigurationPanel;
|
||||
import net.sf.openrocket.gui.dialogs.motor.MotorChooserDialog;
|
||||
@ -41,6 +43,7 @@ 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.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
import net.sf.openrocket.util.Chars;
|
||||
|
||||
@ -206,6 +209,40 @@ public class MotorConfigurationPanel extends FlightConfigurablePanel<MotorMount>
|
||||
return configurationTable;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void installTableListener() {
|
||||
super.installTableListener();
|
||||
|
||||
table.getColumnModel().getSelectionModel().addListSelectionListener(new ListSelectionListener() {
|
||||
@Override
|
||||
public void valueChanged(ListSelectionEvent e) {
|
||||
updateComponentSelection(e);
|
||||
}
|
||||
});
|
||||
|
||||
table.addFocusListener(new FocusListener() {
|
||||
@Override
|
||||
public void focusGained(FocusEvent e) {
|
||||
updateComponentSelection(new ListSelectionEvent(this, 0, 0, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void focusLost(FocusEvent e) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void updateComponentSelection(ListSelectionEvent e) {
|
||||
if (e.getValueIsAdjusting()) {
|
||||
return;
|
||||
}
|
||||
MotorMount mount = getSelectedComponent();
|
||||
if (mount instanceof RocketComponent) {
|
||||
flightConfigurationPanel.setSelectedComponent((RocketComponent) mount);
|
||||
}
|
||||
}
|
||||
|
||||
protected void updateButtonState() {
|
||||
if( configurationTableModel.getColumnCount() > 1 ) {
|
||||
showContent();
|
||||
|
Loading…
x
Reference in New Issue
Block a user