Use radio buttons for units buttons
This commit is contained in:
parent
d6b5034764
commit
a9c328d8b1
@ -1,5 +1,7 @@
|
|||||||
package net.sf.openrocket.gui.dialogs.preset;
|
package net.sf.openrocket.gui.dialogs.preset;
|
||||||
|
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
import java.awt.event.ItemEvent;
|
import java.awt.event.ItemEvent;
|
||||||
import java.awt.event.ItemListener;
|
import java.awt.event.ItemListener;
|
||||||
import java.awt.event.MouseAdapter;
|
import java.awt.event.MouseAdapter;
|
||||||
@ -7,13 +9,14 @@ import java.awt.event.MouseEvent;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.swing.ButtonGroup;
|
||||||
import javax.swing.JCheckBoxMenuItem;
|
import javax.swing.JCheckBoxMenuItem;
|
||||||
import javax.swing.JMenu;
|
import javax.swing.JMenu;
|
||||||
import javax.swing.JPopupMenu;
|
import javax.swing.JPopupMenu;
|
||||||
|
import javax.swing.JRadioButtonMenuItem;
|
||||||
import javax.swing.JTable;
|
import javax.swing.JTable;
|
||||||
import javax.swing.ListSelectionModel;
|
import javax.swing.ListSelectionModel;
|
||||||
import javax.swing.RowFilter;
|
import javax.swing.RowFilter;
|
||||||
@ -286,33 +289,38 @@ public class ComponentPresetTable extends JTable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class UnitSelectorMenuItem extends JMenu implements ItemListener {
|
private class UnitSelectorMenuItem extends JMenu {
|
||||||
ComponentPresetTableColumn.DoubleWithUnit col;
|
ComponentPresetTableColumn.DoubleWithUnit col;
|
||||||
|
ButtonGroup buttonGroup; // To group the radio buttons
|
||||||
|
|
||||||
UnitSelectorMenuItem(ComponentPresetTableColumn.DoubleWithUnit col) {
|
UnitSelectorMenuItem(ComponentPresetTableColumn.DoubleWithUnit col) {
|
||||||
super(trans.get("ComponentPresetChooserDialog.menu.units"));
|
super(trans.get("ComponentPresetChooserDialog.menu.units"));
|
||||||
this.col = col;
|
this.col = col;
|
||||||
|
|
||||||
|
buttonGroup = new ButtonGroup(); // Create a new ButtonGroup to hold the radio buttons
|
||||||
|
|
||||||
UnitGroup group = col.unitGroup;
|
UnitGroup group = col.unitGroup;
|
||||||
Unit selectedUnit = col.selectedUnit;
|
Unit selectedUnit = col.selectedUnit;
|
||||||
|
|
||||||
for (Unit u : group.getUnits()) {
|
for (Unit u : group.getUnits()) {
|
||||||
JCheckBoxMenuItem item = new JCheckBoxMenuItem(u.toString());
|
JRadioButtonMenuItem item = new JRadioButtonMenuItem(u.toString());
|
||||||
|
|
||||||
if (u == selectedUnit) {
|
if (u == selectedUnit) {
|
||||||
item.setSelected(true);
|
item.setSelected(true);
|
||||||
}
|
}
|
||||||
item.addItemListener(this);
|
|
||||||
this.add(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
item.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void itemStateChanged(ItemEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
JCheckBoxMenuItem item = (JCheckBoxMenuItem) e.getItem();
|
col.selectedUnit = u;
|
||||||
String val = item.getText();
|
|
||||||
col.selectedUnit = col.unitGroup.findApproximate(val);
|
|
||||||
ComponentPresetTable.this.tableModel.fireTableDataChanged();
|
ComponentPresetTable.this.tableModel.fireTableDataChanged();
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
buttonGroup.add(item); // Add the radio button to the button group
|
||||||
|
this.add(item); // Add the radio button to the menu
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user