summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan C Nuno <juancnuno@google.com>2022-08-09 14:45:31 -0700
committerJuan Nuno <juancnuno@google.com>2022-08-11 23:37:35 +0000
commit31400fcbf3b38236e3e65f59cc22f844d010da98 (patch)
tree7c751e6877a72bcb8ca31f3169ca2c661036f511
parent7bb253d4e93e7e4a078839d02772b04cb709b025 (diff)
downloadidea-31400fcbf3b38236e3e65f59cc22f844d010da98.tar.gz
Use TableModel::isCellEditable
Instead of Component::setEnabled in RemoveButtonTableCellEditor Bug: 239478720 Test: PhysicalDeviceTableModelTest Change-Id: I84455ebec85733ec88621672cc5d7c51896bd80c
-rw-r--r--device-manager/src/com/android/tools/idea/devicemanager/physicaltab/PhysicalDeviceTableModel.java1
-rw-r--r--device-manager/src/com/android/tools/idea/devicemanager/physicaltab/RemoveButtonTableCellEditor.java7
-rw-r--r--device-manager/testSrc/com/android/tools/idea/devicemanager/physicaltab/PhysicalDeviceTableModelTest.java24
-rw-r--r--device-manager/testSrc/com/android/tools/idea/devicemanager/physicaltab/RemoveButtonTableCellEditorTest.java34
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());
- }
}