[fixes #1026] Show number of motors in motor selection table

This commit is contained in:
Sibo Van Gool 2021-10-06 19:48:59 +02:00
parent c8f985ea32
commit 6e27d60a03
2 changed files with 41 additions and 0 deletions

View File

@ -1211,6 +1211,8 @@ StorageOptChooser.lbl.Saveopt = Save options
TCMotorSelPan.lbl.Selrocketmotor = Select rocket motor:
TCMotorSelPan.checkbox.hideSimilar = Hide very similar thrust curves
TCMotorSelPan.checkbox.hideUsed = Hide motors already used in the mount
TCMotorSelPan.lbl.nrOfMotors = Number of motors:
TCMotorSelPan.lbl.ttip.nrOfMotors = Number of motors currently visible in the motor selection table
TCMotorSelPan.checkbox.limitlength = Limit motor length to mount length
TCMotorSelPan.checkbox.limitdiameter = Limit motor diameter to mount diameter
TCMotorSelPan.checkbox.hideUnavailable = Hide motors which are not in regular production

View File

@ -2,6 +2,7 @@ package net.sf.openrocket.gui.dialogs.motor.thrustcurve;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Paint;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
@ -11,6 +12,7 @@ import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.EventObject;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@ -36,9 +38,12 @@ import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.RowSorterEvent;
import javax.swing.event.RowSorterListener;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
import net.sf.openrocket.util.StateChangeListener;
import org.jfree.chart.ChartColor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -93,6 +98,7 @@ public class ThrustCurveMotorSelectionPanel extends JPanel implements MotorSelec
private final JComboBox<MotorHolder> curveSelectionBox;
private final DefaultComboBoxModel<MotorHolder> curveSelectionModel;
private final JComboBox<String> delayBox;
private final JLabel nrOfMotorsLabel;
private final MotorInformationPanel motorInformationPanel;
private final MotorFilterPanel motorFilterPanel;
@ -288,6 +294,28 @@ public class ThrustCurveMotorSelectionPanel extends JPanel implements MotorSelec
}
// Number of motors
{
nrOfMotorsLabel = new JLabel();
nrOfMotorsLabel.setToolTipText(trans.get("TCMotorSelPan.lbl.ttip.nrOfMotors"));
updateNrOfMotors();
nrOfMotorsLabel.setForeground(Color.darkGray);
nrOfMotorsLabel.setFont(new Font(Font.SANS_SERIF, Font.ITALIC, 11));
panel.add(nrOfMotorsLabel, "gapleft para, spanx, wrap");
sorter.addRowSorterListener(new RowSorterListener() {
@Override
public void sorterChanged(RowSorterEvent e) {
updateNrOfMotors();
}
});
rowFilter.addChangeListener(new StateChangeListener() {
@Override
public void stateChanged(EventObject e) {
updateNrOfMotors();
}
});
}
// Search field
{
//// Search:
@ -499,6 +527,17 @@ public class ThrustCurveMotorSelectionPanel extends JPanel implements MotorSelec
return motors;
}
private void updateNrOfMotors() {
if (table != null && nrOfMotorsLabel != null) {
int rowCount = table.getRowCount();
String motorCount = "None";
if (rowCount > 0) {
motorCount = String.valueOf(rowCount);
}
nrOfMotorsLabel.setText(trans.get("TCMotorSelPan.lbl.nrOfMotors") + " " + motorCount);
}
}
private void scrollSelectionVisible() {
if (selectedMotorSet != null) {