Skip to content

Commit fe276cf

Browse files
committed
Fix category selection missing first input
1 parent 3e8078b commit fe276cf

File tree

4 files changed

+15
-6
lines changed

4 files changed

+15
-6
lines changed

app/src/cc/arduino/contributions/libraries/ui/LibraryManagerUI.java

+1
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ public LibraryManagerUI(Frame parent, LibraryInstaller installer) {
119119
@Override
120120
public void actionPerformed(ActionEvent event) {
121121
DropdownItem<ContributedLibrary> selected = (DropdownItem<ContributedLibrary>) typeChooser.getSelectedItem();
122+
previousRowAtPoint = -1;
122123
if (typeFilter == null || !typeFilter.equals(selected)) {
123124
typeFilter = selected.getFilterPredicate();
124125
if (contribTable.getCellEditor() != null) {

app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellEditor.java

+6-3
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,12 @@ public Component getTableCellEditorComponent(JTable table, Object _value,
7474
.getSelectedItem();
7575
onInstall(selected, value.getInstalled());
7676
});
77-
cell.versionToInstallChooser.addItemListener(e -> value
78-
.select((ContributedPlatform) cell.versionToInstallChooser
79-
.getSelectedItem()));
77+
cell.versionToInstallChooser.addActionListener(e -> {
78+
value.select((ContributedPlatform) cell.versionToInstallChooser.getSelectedItem());
79+
if (cell.versionToInstallChooser.getSelectedIndex() != 0) {
80+
InstallerTableCell.dropdownSelected(true);
81+
}
82+
});
8083

8184
setEnabled(true);
8285

app/src/cc/arduino/contributions/packages/ui/ContributedPlatformTableCellJPanel.java

+3
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,9 @@ public ContributedPlatformTableCellJPanel() {
9898
Object selectVersionItem = downgradeChooser.getItemAt(0);
9999
boolean disableDowngrade = (e.getItem() == selectVersionItem);
100100
downgradeButton.setEnabled(!disableDowngrade);
101+
if (!disableDowngrade) {
102+
InstallerTableCell.dropdownSelected(true);
103+
}
101104
});
102105

103106
versionToInstallChooser = new JComboBox();

app/src/cc/arduino/contributions/ui/InstallerJDialog.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ public abstract class InstallerJDialog<T> extends JDialog {
9090
private final JButton closeButton;
9191
private final JButton dismissErrorMessageButton;
9292

93+
protected int previousRowAtPoint = -1;
94+
9395
abstract protected FilteredAbstractTableModel<T> createContribModel();
9496

9597
abstract protected TableCellRenderer createCellRenderer();
@@ -120,6 +122,7 @@ public InstallerJDialog(Frame parent, String title, ModalityType applicationModa
120122
filterField = new FilterJTextField(tr("Filter your search...")) {
121123
@Override
122124
protected void onFilter(String[] _filters) {
125+
previousRowAtPoint = -1;
123126
filters = _filters;
124127
if (contribTable.getCellEditor() != null) {
125128
contribTable.getCellEditor().stopCellEditing();
@@ -171,12 +174,10 @@ public void keyReleased(KeyEvent keyEvent) {
171174

172175
contribTable.addMouseMotionListener(new MouseMotionListener() {
173176

174-
int previousRowAtPoint = -1;
175-
176177
public void mouseDragged(MouseEvent e) {}
177178

178179
public void mouseMoved(MouseEvent e) {
179-
// avoid firing edits events until:
180+
// avoid firing edits events until the mouse changes cell or the user is back on the cell after selecting a dropdown
180181
int rowAtPoint = contribTable.rowAtPoint(e.getPoint());
181182
if (!InstallerTableCell.isDropdownSelected() && rowAtPoint != previousRowAtPoint) {
182183
contribTable.editCellAt(rowAtPoint, 0);
@@ -309,6 +310,7 @@ private void setErrorMessageVisible(boolean visible) {
309310
@Override
310311
public void actionPerformed(ActionEvent event) {
311312
DropdownItem<T> selected = (DropdownItem<T>) categoryChooser.getSelectedItem();
313+
previousRowAtPoint = -1;
312314
if (categoryFilter == null || !categoryFilter.equals(selected)) {
313315
categoryFilter = selected.getFilterPredicate();
314316
if (contribTable.getCellEditor() != null) {

0 commit comments

Comments
 (0)