diff --git a/src/main/java/com/insidious/plugin/ui/library/LibraryComponent.java b/src/main/java/com/insidious/plugin/ui/library/LibraryComponent.java index aea186fd8..6e47bb956 100644 --- a/src/main/java/com/insidious/plugin/ui/library/LibraryComponent.java +++ b/src/main/java/com/insidious/plugin/ui/library/LibraryComponent.java @@ -62,16 +62,7 @@ public LibraryComponent(Project project) { @Override public void mouseClicked(MouseEvent e) { super.mouseClicked(e); - selectedMocks.clear(); - selectedCandidates.clear(); - - for (DeclaredMockItemPanel listedMockItem : listedMockItems) { - listedMockItem.setSelected(false); - } - for (StoredCandidateItemPanel listedMockItem : listedCandidateItems) { - listedMockItem.setSelected(false); - } - updateSelectionLabel(); + clearSelection(); reloadItems(); } }); @@ -107,7 +98,6 @@ public void mouseClicked(MouseEvent e) { } }); - deleteButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); deleteButton.addMouseListener(new MouseAdapter() { @Override @@ -119,10 +109,13 @@ public void mouseClicked(MouseEvent e) { return; } DialogBuilder builder = new DialogBuilder(project); + builder.addOkAction(); builder.addCancelAction(); builder.setTitle("Confirm Delete"); - builder.setErrorText( - "Are you sure you want to delete " + selectedCount + " mock definition" + (selectedCount == 1 ? "s" : "")); + + builder.setCenterPanel(new JLabel( + "Are you sure you want to delete " + selectedCount + " mock definition" + (selectedCount == 1 ? "s" : ""))); + builder.setOkOperation(() -> { for (DeclaredMock selectedMock : selectedMocks) { atomicRecordService.deleteMockDefinition(selectedMock); @@ -132,14 +125,18 @@ public void mouseClicked(MouseEvent e) { "Deleted " + selectedCount + " mock definition" + (selectedCount == 1 ? "s" : ""), NotificationType.INFORMATION); }); + builder.show(); } else if (filterModel.isShowTests()) { int selectedCount = selectedCandidates.size(); DialogBuilder builder = new DialogBuilder(project); + builder.addOkAction(); builder.addCancelAction(); builder.setTitle("Confirm Delete"); - builder.setErrorText( - "Are you sure you want to delete " + selectedCount + " relay test" + (selectedCount == 1 ? "s" : "")); + + builder.setCenterPanel(new JLabel( + "Are you sure you want to delete " + selectedCount + " relay test" + (selectedCount == 1 ? "s" : ""))); + builder.setOkOperation(() -> { for (StoredCandidate storedCandidate : selectedCandidates) { atomicRecordService.deleteStoredCandidate(storedCandidate.getMethod(), @@ -150,6 +147,7 @@ public void mouseClicked(MouseEvent e) { + (selectedCount == 1 ? "s" : ""), NotificationType.INFORMATION); }); + builder.show(); } @@ -166,15 +164,18 @@ public void onSelect(DeclaredMock item) { @Override public void onUnSelect(DeclaredMock item) { selectedMocks.remove(item); + updateSelectionLabel(); } @Override public void onDelete(DeclaredMock item) { DialogBuilder builder = new DialogBuilder(project); + builder.addOkAction(); builder.addCancelAction(); builder.setTitle("Confirm Delete"); - builder.setErrorText("Are you sure you want to delete " + "mock definition"); + builder.setCenterPanel(new JLabel("Are you sure you want to delete " + "mock definition")); + builder.setOkOperation(() -> { atomicRecordService.deleteMockDefinition(item); reloadItems(); @@ -182,6 +183,7 @@ public void onDelete(DeclaredMock item) { "Deleted " + "mock definition", NotificationType.INFORMATION); }); + builder.show(); } @Override @@ -199,24 +201,26 @@ public void onSelect(StoredCandidate item) { @Override public void onUnSelect(StoredCandidate item) { selectedCandidates.remove(item); + updateSelectionLabel(); } @Override public void onDelete(StoredCandidate item) { DialogBuilder builder = new DialogBuilder(project); + builder.addOkAction(); builder.addCancelAction(); builder.setTitle("Confirm Delete"); - builder.setErrorText("Are you sure you want to delete " + "replay test"); + builder.setCenterPanel(new JLabel("Are you sure you want to delete " + "replay test")); builder.setOkOperation(() -> { atomicRecordService.deleteStoredCandidate(item.getMethod(), item.getCandidateId()); reloadItems(); InsidiousNotification.notifyMessage( "Deleted " + "replay test", NotificationType.INFORMATION); + reloadItems(); }); - - reloadItems(); + builder.show(); } @Override @@ -238,19 +242,13 @@ public void mouseClicked(MouseEvent e) { }); reloadItems(); - includeMocksCheckBox.addChangeListener(new ChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - logger.warn("filter type checkbox change: " + e); - } - }); - includeMocksCheckBox.addActionListener(e -> { boolean reload = false; if (includeMocksCheckBox.isSelected()) { if (filterModel.isShowTests()) { filterModel.setShowMocks(true); filterModel.setShowTests(false); + updateSelectionLabel(); reload = true; } } @@ -266,6 +264,7 @@ public void stateChanged(ChangeEvent e) { if (filterModel.isShowMocks()) { filterModel.setShowMocks(false); filterModel.setShowTests(true); + updateSelectionLabel(); reload = true; } } @@ -322,14 +321,30 @@ public void mouseClicked(MouseEvent e) { } + private void clearSelection() { + selectedMocks.clear(); + selectedCandidates.clear(); + + for (DeclaredMockItemPanel listedMockItem : listedMockItems) { + listedMockItem.setSelected(false); + } + for (StoredCandidateItemPanel listedMockItem : listedCandidateItems) { + listedMockItem.setSelected(false); + } + updateSelectionLabel(); + } + private void updateSelectionLabel() { + int count; if (filterModel.isShowMocks()) { - int selectedMocksCount = selectedMocks.size(); - selectAllLabel.setText(selectedMocksCount + " selected"); + count = selectedMocks.size(); + selectAllLabel.setText(count + " selected"); } else { - int selectedMocksCount = selectedCandidates.size(); - selectAllLabel.setText(selectedMocksCount + " selected"); + count = selectedCandidates.size(); + selectAllLabel.setText(count + " selected"); } + deleteButton.setVisible(count > 0); + deleteButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); } private GridBagConstraints createGBCForFakeComponent(int yIndex) { @@ -451,6 +466,7 @@ public void reloadItems() { listedMockItems.clear(); listedCandidateItems.clear(); + clearSelection(); itemScrollPanel.setViewportView(itemsContainer); diff --git a/src/main/resources/icons/png/arrow-left-up-line.png b/src/main/resources/icons/png/arrow-left-up-line.png new file mode 100644 index 000000000..1fa1978a8 Binary files /dev/null and b/src/main/resources/icons/png/arrow-left-up-line.png differ diff --git a/src/main/resources/icons/png/braces-line.png b/src/main/resources/icons/png/braces-line.png new file mode 100644 index 000000000..6c5d614a7 Binary files /dev/null and b/src/main/resources/icons/png/braces-line.png differ diff --git a/src/main/resources/icons/png/checkbox-blank-circle-line.png b/src/main/resources/icons/png/checkbox-blank-circle-line.png new file mode 100644 index 000000000..003c6a78a Binary files /dev/null and b/src/main/resources/icons/png/checkbox-blank-circle-line.png differ diff --git a/src/main/resources/icons/png/close-line-black.png b/src/main/resources/icons/png/close-line-black.png new file mode 100644 index 000000000..f593feaef Binary files /dev/null and b/src/main/resources/icons/png/close-line-black.png differ diff --git a/src/main/resources/icons/png/delete-bin-2-line-red.png b/src/main/resources/icons/png/delete-bin-2-line-red.png new file mode 100644 index 000000000..8f5a1401f Binary files /dev/null and b/src/main/resources/icons/png/delete-bin-2-line-red.png differ diff --git a/src/main/resources/icons/png/delete-bin-3-line.png b/src/main/resources/icons/png/delete-bin-3-line.png new file mode 100644 index 000000000..ef7fba830 Binary files /dev/null and b/src/main/resources/icons/png/delete-bin-3-line.png differ diff --git a/src/main/resources/icons/png/edit-line-black.png b/src/main/resources/icons/png/edit-line-black.png new file mode 100644 index 000000000..5f2820441 Binary files /dev/null and b/src/main/resources/icons/png/edit-line-black.png differ diff --git a/src/main/resources/icons/png/equalizer-line.png b/src/main/resources/icons/png/equalizer-line.png new file mode 100644 index 000000000..850116a5c Binary files /dev/null and b/src/main/resources/icons/png/equalizer-line.png differ diff --git a/src/main/resources/icons/png/execute.png b/src/main/resources/icons/png/execute.png new file mode 100644 index 000000000..730bc8c20 Binary files /dev/null and b/src/main/resources/icons/png/execute.png differ diff --git a/src/main/resources/icons/png/expand-up-down-line.png b/src/main/resources/icons/png/expand-up-down-line.png new file mode 100644 index 000000000..2b66a6275 Binary files /dev/null and b/src/main/resources/icons/png/expand-up-down-line.png differ diff --git a/src/main/resources/icons/png/link.png b/src/main/resources/icons/png/link.png new file mode 100644 index 000000000..b5048bf1e Binary files /dev/null and b/src/main/resources/icons/png/link.png differ diff --git a/src/main/resources/icons/png/number-1.png b/src/main/resources/icons/png/number-1.png new file mode 100644 index 000000000..f75c290d0 Binary files /dev/null and b/src/main/resources/icons/png/number-1.png differ diff --git a/src/main/resources/icons/png/number-2.png b/src/main/resources/icons/png/number-2.png new file mode 100644 index 000000000..5a269ae6b Binary files /dev/null and b/src/main/resources/icons/png/number-2.png differ diff --git a/src/main/resources/icons/png/number-3.png b/src/main/resources/icons/png/number-3.png new file mode 100644 index 000000000..1528b40b5 Binary files /dev/null and b/src/main/resources/icons/png/number-3.png differ diff --git a/src/main/resources/icons/png/number-4.png b/src/main/resources/icons/png/number-4.png new file mode 100644 index 000000000..8fe7d302a Binary files /dev/null and b/src/main/resources/icons/png/number-4.png differ diff --git a/src/main/resources/icons/png/number-5.png b/src/main/resources/icons/png/number-5.png new file mode 100644 index 000000000..d4fea2609 Binary files /dev/null and b/src/main/resources/icons/png/number-5.png differ diff --git a/src/main/resources/icons/png/pushpin-2-fill.png b/src/main/resources/icons/png/pushpin-2-fill.png new file mode 100644 index 000000000..5d0f8ffab Binary files /dev/null and b/src/main/resources/icons/png/pushpin-2-fill.png differ diff --git a/src/main/resources/icons/png/pushpin-2-line.png b/src/main/resources/icons/png/pushpin-2-line.png new file mode 100644 index 000000000..a703d3956 Binary files /dev/null and b/src/main/resources/icons/png/pushpin-2-line.png differ diff --git a/src/main/resources/icons/png/pushpin-line.png b/src/main/resources/icons/png/pushpin-line.png new file mode 100644 index 000000000..b3af25746 Binary files /dev/null and b/src/main/resources/icons/png/pushpin-line.png differ diff --git a/src/main/resources/icons/png/step-icon-1.png b/src/main/resources/icons/png/step-icon-1.png new file mode 100644 index 000000000..0a93901fb Binary files /dev/null and b/src/main/resources/icons/png/step-icon-1.png differ diff --git a/src/main/resources/icons/png/unpin-line.png b/src/main/resources/icons/png/unpin-line.png new file mode 100644 index 000000000..fbc4fb569 Binary files /dev/null and b/src/main/resources/icons/png/unpin-line.png differ