diff options
author | Juan C Nuno <juancnuno@google.com> | 2022-08-09 14:45:31 -0700 |
---|---|---|
committer | Juan Nuno <juancnuno@google.com> | 2022-08-11 23:37:35 +0000 |
commit | 31400fcbf3b38236e3e65f59cc22f844d010da98 (patch) | |
tree | 7c751e6877a72bcb8ca31f3169ca2c661036f511 | |
parent | 7bb253d4e93e7e4a078839d02772b04cb709b025 (diff) | |
download | idea-31400fcbf3b38236e3e65f59cc22f844d010da98.tar.gz |
Use TableModel::isCellEditable
Instead of Component::setEnabled in RemoveButtonTableCellEditor
Bug: 239478720
Test: PhysicalDeviceTableModelTest
Change-Id: I84455ebec85733ec88621672cc5d7c51896bd80c
4 files changed, 26 insertions, 40 deletions
diff --git a/device-manager/src/com/android/tools/idea/devicemanager/physicaltab/PhysicalDeviceTableModel.java b/device-manager/src/com/android/tools/idea/devicemanager/physicaltab/PhysicalDeviceTableModel.java index 986950b4493..ac874cce953 100644 --- a/device-manager/src/com/android/tools/idea/devicemanager/physicaltab/PhysicalDeviceTableModel.java +++ b/device-manager/src/com/android/tools/idea/devicemanager/physicaltab/PhysicalDeviceTableModel.java @@ -212,6 +212,7 @@ final class PhysicalDeviceTableModel extends AbstractTableModel { case ACTIVATE_DEVICE_FILE_EXPLORER_WINDOW_MODEL_COLUMN_INDEX: return myCombinedDevices.get(modelRowIndex).isOnline(); case REMOVE_MODEL_COLUMN_INDEX: + return !myCombinedDevices.get(modelRowIndex).isOnline(); case POP_UP_MENU_MODEL_COLUMN_INDEX: return true; default: diff --git a/device-manager/src/com/android/tools/idea/devicemanager/physicaltab/RemoveButtonTableCellEditor.java b/device-manager/src/com/android/tools/idea/devicemanager/physicaltab/RemoveButtonTableCellEditor.java index 149ec5385a7..df5746530ff 100644 --- a/device-manager/src/com/android/tools/idea/devicemanager/physicaltab/RemoveButtonTableCellEditor.java +++ b/device-manager/src/com/android/tools/idea/devicemanager/physicaltab/RemoveButtonTableCellEditor.java @@ -38,7 +38,7 @@ final class RemoveButtonTableCellEditor extends IconButtonTableCellEditor { @VisibleForTesting RemoveButtonTableCellEditor(@NotNull PhysicalDevicePanel panel, @NotNull BiPredicate<@NotNull Object, @NotNull Project> askToRemove) { - super(RemoveValue.INSTANCE, AllIcons.Actions.GC); + super(RemoveValue.INSTANCE, AllIcons.Actions.GC, "Remove this offline device from the list."); myButton.addActionListener(actionEvent -> { DeviceManagerEvent deviceManagerEvent = DeviceManagerEvent.newBuilder() @@ -73,12 +73,7 @@ final class RemoveButtonTableCellEditor extends IconButtonTableCellEditor { int viewRowIndex, int viewColumnIndex) { super.getTableCellEditorComponent(table, value, selected, viewRowIndex, viewColumnIndex); - myDevice = ((PhysicalDeviceTable)table).getDeviceAt(viewRowIndex); - boolean online = myDevice.isOnline(); - - myButton.setEnabled(!online); - myButton.setToolTipText(online ? "Connected devices can not be removed from the list." : "Remove this offline device from the list."); return myButton; } diff --git a/device-manager/testSrc/com/android/tools/idea/devicemanager/physicaltab/PhysicalDeviceTableModelTest.java b/device-manager/testSrc/com/android/tools/idea/devicemanager/physicaltab/PhysicalDeviceTableModelTest.java index 4f4b2ac9d9f..ccda34ef4bd 100644 --- a/device-manager/testSrc/com/android/tools/idea/devicemanager/physicaltab/PhysicalDeviceTableModelTest.java +++ b/device-manager/testSrc/com/android/tools/idea/devicemanager/physicaltab/PhysicalDeviceTableModelTest.java @@ -204,6 +204,30 @@ public final class PhysicalDeviceTableModelTest { } @Test + public void isCellEditableCaseRemoveModelColumnIndexDeviceIsOnline() { + // Arrange + TableModel model = new PhysicalDeviceTableModel(List.of(TestPhysicalDevices.ONLINE_GOOGLE_PIXEL_5)); + + // Act + boolean editable = model.isCellEditable(0, PhysicalDeviceTableModel.REMOVE_MODEL_COLUMN_INDEX); + + // Assert + assertFalse(editable); + } + + @Test + public void isCellEditableCaseRemoveModelColumnIndex() { + // Arrange + TableModel model = new PhysicalDeviceTableModel(List.of(TestPhysicalDevices.GOOGLE_PIXEL_5)); + + // Act + boolean editable = model.isCellEditable(0, PhysicalDeviceTableModel.REMOVE_MODEL_COLUMN_INDEX); + + // Assert + assertTrue(editable); + } + + @Test public void getValueAtDeviceModelColumnIndex() { // Arrange TableModel model = new PhysicalDeviceTableModel(List.of(TestPhysicalDevices.GOOGLE_PIXEL_3)); diff --git a/device-manager/testSrc/com/android/tools/idea/devicemanager/physicaltab/RemoveButtonTableCellEditorTest.java b/device-manager/testSrc/com/android/tools/idea/devicemanager/physicaltab/RemoveButtonTableCellEditorTest.java index 1a94b6fa323..77a235514eb 100644 --- a/device-manager/testSrc/com/android/tools/idea/devicemanager/physicaltab/RemoveButtonTableCellEditorTest.java +++ b/device-manager/testSrc/com/android/tools/idea/devicemanager/physicaltab/RemoveButtonTableCellEditorTest.java @@ -15,19 +15,13 @@ */ package com.android.tools.idea.devicemanager.physicaltab; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - import com.android.tools.idea.devicemanager.DeviceTables; import com.android.tools.idea.devicemanager.SerialNumber; import com.android.tools.idea.devicemanager.physicaltab.PhysicalDeviceTableModel.RemoveValue; import com.intellij.openapi.project.Project; import javax.swing.AbstractButton; -import javax.swing.JComponent; import javax.swing.JTable; import javax.swing.event.CellEditorListener; -import javax.swing.table.TableCellEditor; import org.jetbrains.annotations.NotNull; import org.junit.Test; import org.junit.runner.RunWith; @@ -82,32 +76,4 @@ public final class RemoveButtonTableCellEditorTest { Mockito.verify(listener).editingStopped(editor.getChangeEvent()); Mockito.verify(model).remove(new SerialNumber("86UX00F4R")); } - - @Test - public void getTableCellEditorComponentNotOnline() { - // Arrange - TableCellEditor editor = new RemoveButtonTableCellEditor(myPanel); - JTable table = DeviceTables.mock(TestPhysicalDevices.GOOGLE_PIXEL_3); - - // Act - JComponent component = (JComponent)editor.getTableCellEditorComponent(table, RemoveValue.INSTANCE, false, 0, 4); - - // Assert - assertTrue(component.isEnabled()); - assertEquals("Remove this offline device from the list.", component.getToolTipText()); - } - - @Test - public void getTableCellEditorComponentOnline() { - // Arrange - TableCellEditor editor = new RemoveButtonTableCellEditor(myPanel); - JTable table = DeviceTables.mock(TestPhysicalDevices.ONLINE_GOOGLE_PIXEL_3); - - // Act - JComponent component = (JComponent)editor.getTableCellEditorComponent(table, RemoveValue.INSTANCE, false, 0, 4); - - // Assert - assertFalse(component.isEnabled()); - assertEquals("Connected devices can not be removed from the list.", component.getToolTipText()); - } } |